digitalmars.D.learn - getSymbolsByUDA toSymbols error instantiating
- Oleg B (28/28) Feb 27 2017 Hello. I have this code:
- =?UTF-8?Q?Ali_=c3=87ehreli?= (3/29) Feb 27 2017 This looks like a bug to me. Please file it at https://issues.dlang.org/
Hello. I have this code: ```d import std.traits; enum myuda; class A { myuda int x; } class B : A { myuda int some; void foo() { foreach (s; getSymbolsByUDA!(typeof(this), myuda)) {} } } void main() { (new B).foo(); } ``` And have this error: ``` % rdmd uda_symbols.d /usr/include/dmd/phobos/std/traits.d-mixin-7250(7250): Error: template instance AliasSeq!(some, x) AliasSeq!(some, x) is nested in both B and A /usr/include/dmd/phobos/std/traits.d(7259): Error: template instance std.traits.getSymbolsByUDA!(B, myuda).toSymbols!("some", "x") error instantiating uda_symbols.d(10): instantiated from here: getSymbolsByUDA!(B, myuda) ``` If I understand correctly it's happens because code in std.traits can't choose between A.x and B.x, but I don't understand why. It's a bug or it's has a more complex base?
Feb 27 2017
On 02/27/2017 06:26 AM, Oleg B wrote:Hello. I have this code: ```d import std.traits; enum myuda; class A { myuda int x; } class B : A { myuda int some; void foo() { foreach (s; getSymbolsByUDA!(typeof(this), myuda)) {} } } void main() { (new B).foo(); } ``` And have this error: ``` % rdmd uda_symbols.d /usr/include/dmd/phobos/std/traits.d-mixin-7250(7250): Error: template instance AliasSeq!(some, x) AliasSeq!(some, x) is nested in both B and A /usr/include/dmd/phobos/std/traits.d(7259): Error: template instance std.traits.getSymbolsByUDA!(B, myuda).toSymbols!("some", "x") error instantiating uda_symbols.d(10): instantiated from here: getSymbolsByUDA!(B, myuda) ``` If I understand correctly it's happens because code in std.traits can't choose between A.x and B.x, but I don't understand why. It's a bug or it's has a more complex base?This looks like a bug to me. Please file it at https://issues.dlang.org/ Ali
Feb 27 2017