Re: Mixin and introspection ordering

2019-10-16 Thread Dennis via Digitalmars-d-learn
On Wednesday, 16 October 2019 at 10:09:51 UTC, Sebastiaan Koppe wrote: Do we want to be able to catch things in their 'before' state? Or is it a bug? The 'before' and 'after' are implementation details showing up as a result of underspecification. Module level declarations are supposed to be

Re: Mixin and introspection ordering

2019-10-16 Thread Sebastiaan Koppe via Digitalmars-d-learn
On Tuesday, 15 October 2019 at 19:50:33 UTC, Paul Backus wrote: On Tuesday, 15 October 2019 at 19:19:58 UTC, Sebastiaan Koppe wrote: You would expect 2 to print `tuple(a)` as well, but it doesn't. Don't know if it is a bug. Any time you use a construct that mutates the AST (template mixin, st

Re: Mixin and introspection ordering

2019-10-15 Thread Paul Backus via Digitalmars-d-learn
On Tuesday, 15 October 2019 at 19:19:58 UTC, Sebastiaan Koppe wrote: You would expect 2 to print `tuple(a)` as well, but it doesn't. Don't know if it is a bug. Any time you use a construct that mutates the AST (template mixin, string mixin, static if, static foreach), it's possible to catch i

Mixin and introspection ordering

2019-10-15 Thread Sebastiaan Koppe via Digitalmars-d-learn
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, getSymbolsByU