November 25, 2014 [Issue 13776] New: Incorrect "recursive alias declaration" error with `__traits(compiles, ...)` | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13776 Issue ID: 13776 Summary: Incorrect "recursive alias declaration" error with `__traits(compiles, ...)` Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: rejects-valid Severity: regression Priority: P1 Component: DMD Assignee: nobody@puremagic.com Reporter: verylonglogin.reg@gmail.com This code used to compile: --- enum t1(T) = __traits(compiles, { T; }); enum t2(A...) = 1; template t3() { struct S; alias t3 = t2!(t1!S); } void main() { alias t = t3!(); } --- main.d(8): Error: alias main.t3!().t3 recursive alias declaration main.d(8): Error: template instance t2!(t1!(S)) recursive template expansion main.d(8): Error: alias main.t3!().t3 recursive alias declaration main.d(8): Error: alias main.t3!().t3 recursive alias declaration main.d(8): Error: template instance main.t1!(S) error instantiating main.d(13): instantiated from here: t3!() --- -- |
Copyright © 1999-2021 by the D Language Foundation