On 01/14/2016 09:36 AM, Daniel Kozak via Digitalmars-d wrote:
V Thu, 14 Jan 2016 14:25:43 +0000
Byron Heads via Digitalmars-d <digitalmars-d@puremagic.com> napsáno:
I got burned by this yesterday, this code should not compile
import std.experimental.logger : trace;
void foo() {
import std.net.curl : trace;
trace("hello");
}
void main() {
foo();
}
Not sure if this is a duplicate
https://issues.dlang.org/show_bug.cgi?id=15567
No this is OK, there is no reason to not compile.
It is same as:
import std.stdio;
string trace = "trace";
void foo() {
int trace = 7;
writeln(trace);
}
void main() {
foo();
writeln(trace);
}
local symbols can hide global symbols
Correct. The implicitly introduced locals are the problem. Can anyone on
the compiler team work on this? -- Andrei