December 11, 2018 [Issue 19477] New: Circular alias this makes constructor not work with UFCS only | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=19477 Issue ID: 19477 Summary: Circular alias this makes constructor not work with UFCS only Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: dkorpel@live.nl I created two types that can convert to eachother: ``` struct Q16 { Q32 toQ32() {return Q32.init;} alias toQ32 this; } struct Q32 { this(Q16 a) {} Q16 toQ16() {return Q16.init;} alias toQ16 this; } void main() { auto x = Q32(Q16.init); auto y = Q16.init.Q32; } ``` The assignment of x compiles, but for y you get "Error: cannot resolve identifier Q32". Removing either of the "alias this" makes it work. -- |
Copyright © 1999-2021 by the D Language Foundation