Sometimes ordering is important when combining mixins and introspection, this is another such case:

```
import std.traits;

enum myuda;

mixin template Slot(string name) {
    mixin("@myuda int "~name~";");
}

struct OuterOption {
    mixin Slot!"a";
}

struct App {
pragma(msg, getSymbolsByUDA!(OuterOption, myuda).stringof); // 1. prints 'tuple(a)' // pragma(msg, getSymbolsByUDA!(InnerOption, myuda).stringof); // 2. prints '()'
    struct InnerOption {
        mixin Slot!"a";
    }
pragma(msg, getSymbolsByUDA!(InnerOption, myuda).stringof); // 3. prints 'tuple(a)'
}
```

You would expect 2 to print `tuple(a)` as well, but it doesn't. Don't know if it is a bug.

Reply via email to