On Friday, 27 December 2019 at 18:22:10 UTC, Sjoerd Nijboer wrote:
When calling the mixin directly instead of through the template mixin it breaks with thesame error message.

What exactly did you do here?

struct C
        static foreach (m; mixins)

works for me...

I don't know if this an actual compiler bug or if this is me not properly understanding D.

This is a case of the function hijacking rules biting you: https://dlang.org/articles/hijack.html

template mixins take things in two different scopes:


creates two separate things that do not overload each other. You have to `alias name = xxx` twice in the same scope to merge them.

string mixin works differently, it doesn't produce a scope. In your case you probably just want to use string mixin and take the `mix` item out entirely.

But anyway the mixin results from the two things do NOT automatically merge whcih is what causes your errors.

Reply via email to