[Issue 18039] New: Deprecation: symbol is not visible from module when accessed in a with () of something that imports it
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Dec 6 11:59:12 UTC 2017
https://issues.dlang.org/show_bug.cgi?id=18039
Issue ID: 18039
Summary: Deprecation: symbol is not visible from module when
accessed in a with () of something that imports it
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: zorael at gmail.com
Arch/Manjaro 64-bit, dmd 2.0.77.0
app.d
---------------------
import third;
void main()
{
import std.stdio;
import second : Second;
Second second;
with (second)
{
writeln(Third.stringof);
}
}
second.d
---------------------
module second;
struct Second
{
import third : Third;
}
third.d
---------------------
module third;
struct Third {}
source/app.d(11,17): Deprecation: second.Second.Third is not visible from
module app
The top-level `import third` in app.d is ignored and it only complains about
implicitly (and erroneously?) inheriting the import from `with (second)`. You
can only silence it by moving the import out of Second (eg. to module-level),
or by placing a new `import third` inside the with ().
--
More information about the Digitalmars-d-bugs
mailing list