traits compiles does not work for symbols from other modules
Andre Pany via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Jul 25 04:46:45 PDT 2017
On Tuesday, 25 July 2017 at 11:34:23 UTC, Andre Pany wrote:
> On Tuesday, 25 July 2017 at 08:30:43 UTC, ag0aep6g wrote:
>> Works for me. What compiler are you using?
>
> I reduced the example too lot. The issue is occuring if there
> is also a package.d is involved.
>
> m1.d
> -----------------------
>
> module m1;
>
> import sub; // Does not throw if replaced with: import sub.m2;
>
> class Foo
> {
> int foo;
> }
>
> void main()
> {
> static assert(__traits(compiles, m1.Foo.foo));
> mixin(`static assert(__traits(compiles, sub.m2.Bar.bar));`);
> }
>
> sub/m2.d
> ----------------------
>
> module sub.m2;
>
> class Bar
> {
> int bar;
> }
>
> sub/package.d
> ----------------------
>
> module sub;
>
> public import sub.m2;
>
>
> I use DMD master (as I already need the static foreach) on
> windows 10.
> DMD32 D Compiler v2.075.0-rc1-master-af3eacf
>
>>> [...]
>
> Kind regards
> André
Issue created: https://issues.dlang.org/show_bug.cgi?id=17683
Is there a known workaround?
Kind regards
André
More information about the Digitalmars-d-learn
mailing list