You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
unittest {
import std.complex : complex;
static assert(!__traits(compiles, { alias a = std.complex.abs; }));
}
unittest {
import std.complex : complex;
import std.internal.test.uda; // module with no imports
static assert(__traits(compiles, { alias a = std.complex.abs; }));
}
In the first block above, we can't refer to std.complex.abs, as it's not imported by the selective import statement. In the second block however, the presence of a second, non-selective, import statement makes std.complex.abs accessible again.
Note that the module selected has no imports, and it's thus not a case of referring to imports in that imported module.
Note also that the name of the second module is important - it needs to be in the same package as the first imported module. I tested with a module called `bar`, and the static assert correctly triggered, but renaming the module to std.bar (still an empty file) made it compile again.
The text was updated successfully, but these errors were encountered:
Simen Kjaeraas reported this on 2019-09-19T07:38:52Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=20229
Description
unittest { import std.complex : complex; static assert(!__traits(compiles, { alias a = std.complex.abs; })); } unittest { import std.complex : complex; import std.internal.test.uda; // module with no imports static assert(__traits(compiles, { alias a = std.complex.abs; })); } In the first block above, we can't refer to std.complex.abs, as it's not imported by the selective import statement. In the second block however, the presence of a second, non-selective, import statement makes std.complex.abs accessible again. Note that the module selected has no imports, and it's thus not a case of referring to imports in that imported module. Note also that the name of the second module is important - it needs to be in the same package as the first imported module. I tested with a module called `bar`, and the static assert correctly triggered, but renaming the module to std.bar (still an empty file) made it compile again.The text was updated successfully, but these errors were encountered: