use v6;
use Test;
plan 8;
{
module A {
sub Afoo() is export { 'sub A::Afoo' };
sub Abar() is export { 'sub A::Abar' };
}
import A <Afoo>;
is Afoo(), 'sub A::Afoo', 'import imports things explicitly from named module';
eval_dies_ok q{ Abar() }, "doesn't import non-requested exports";
}
{
import (module B {
sub Bfoo() is export { 'sub B::Bfoo' };
sub Bbar() is export { 'sub B::Bbar' };
}) <Bfoo>;
is Bfoo(), 'sub B::Bfoo',
'import imports things explicitly from inlined module';
eval_dies_ok q{ Bbar() }, "doesn't import non-requested exports";
}
{
module C {
sub Cfoo() is export { 'sub C::Cfoo' };
sub Cbar() is export { 'sub C::Cbar' };
}
import C;
is Cfoo(), 'sub C::Cfoo',
'import imports things implicitly from named module';
is Cbar(), 'sub C::Cbar',
'import imports more things implicitly from named module';
}
{
import module D {
sub Dfoo() is export { 'sub D::Dfoo' };
sub Dbar() is export { 'sub D::Dbar' };
}
is Dfoo(), 'sub D::Dfoo',
'import imports things implicitly from inlined module';
is Dbar(), 'sub D::Dbar',
'import imports more things implicitly from inlined module';
}