June 09, 2022 [Issue 11522] mixing template mixins of template functions creates issues for dmd | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=11522 RazvanN <razvan.nitu1305@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |razvan.nitu1305@gmail.com Resolution|--- |INVALID --- Comment #3 from RazvanN <razvan.nitu1305@gmail.com> --- This is the expected behavior. The innerMixin introduces a new scope so the function that is constrainted to "toto" actually has priority over the function constrained to "tata". To achieve what you want you have to introduce innerMixin.someFunc in the same overload set as outerMixin.somefunc: mixin template outerMixin() { mixin innerMixin im; alias somefunc = im.someFunc(); //If you comment out this function, it compiles and work. void someFunc( string s )() if( s == "toto" ) { } } Then the code will compile. -- |
Copyright © 1999-2021 by the D Language Foundation