blob: be80dbb34d124e9aa48f4544c91d7375ab7ddd06 [file] [log] [blame]
// EXTRA_FILES: imports/test20530a.d imports/plainpackage/plainmodule.d imports/pkgmodule/package.d imports/pkgmodule/plainmodule.d
module mod;
static assert(is(mod == module));
static assert(is(mixin("mod") == module));
static assert(!is(mod == package));
static assert(!is(mixin("mod") == package));
import imports.test20530a;
static assert(is(imports == package));
static assert(is(mixin("imports") == package));
static assert(!is(imports == module));
static assert(!is(mixin("imports") == module));
import imports.plainpackage.plainmodule;
import imports.pkgmodule.plainmodule;
struct MyStruct;
alias a = mixin("imports.plainpackage");
alias b = mixin("imports.pkgmodule.plainmodule");
static assert(is(mixin("imports.plainpackage") == package));
static assert(is(mixin("a") == package));
static assert(!is(mixin("imports.plainpackage.plainmodule") == package));
static assert(!is(mixin("b") == package));
static assert(is(mixin("imports.pkgmodule") == package));
mixin("static assert(is(imports.pkgmodule == package));");
static assert(!is(mixin("MyStruct") == package));
static assert(!is(mixin("imports.plainpackage") == module));
static assert(!is(mixin("a") == module));
static assert(is(mixin("imports.plainpackage.plainmodule") == module));
static assert(is(mixin("b") == module));
static assert(is(mixin("imports.pkgmodule") == module));
mixin("static assert(is(imports.pkgmodule == module));");
static assert(!is(mixin("MyStruct") == module));
static assert(!is(mixin("imports.nonexistent") == package));
static assert(!is(mixin("imports.nonexistent") == module));
// this won't work due to mixin argument .stringof expansion,
// it will expand to mixin(package imports.pkgmodule). Issue 20519.
//static assert(is(mixin(imports.pkgmodule) == package));
//static assert(is(mixin(imports.pkgmodule) == module));