Thread overview
DMD chokes on UDAs of mixin enum members
Apr 26, 2013
BLM768
Apr 27, 2013
anonymous
Apr 27, 2013
BLM768
April 26, 2013
I've got some code that reduces to the following test case:

------
mixin template stuff() {
	enum someEnum = "testing";
	
	static void test() {
		foreach(member; __traits(allMembers, typeof(this))) {
			pragma(msg, member);
			foreach(attribute; __traits(getAttributes, __traits(getMember, typeof(this), member))) {
				pragma(msg, attribute);
			}
		}
	}
}

enum Attribute;

struct Test {
	mixin stuff;

	@Attribute size_t n;
}
------

DMD handles most of the members just fine, but it is unable to process someEnum:

------
>rdmd case.d
someEnum
case.d(7): Error: first argument is not a symbol
case.d(7): Error: invalid foreach aggregate false
test
n
Attribute
------

Is there some subtle point I'm missing, or is this just a bug?
April 27, 2013
On Friday, 26 April 2013 at 21:50:51 UTC, BLM768 wrote:
[...]
> Is there some subtle point I'm missing, or is this just a bug?

Looks like http://d.puremagic.com/issues/show_bug.cgi?id=9652
April 27, 2013
That's probably it. I guess I'll have to work around it for now.

On Saturday, 27 April 2013 at 00:21:02 UTC, anonymous wrote:
> On Friday, 26 April 2013 at 21:50:51 UTC, BLM768 wrote:
> [...]
>> Is there some subtle point I'm missing, or is this just a bug?
>
> Looks like http://d.puremagic.com/issues/show_bug.cgi?id=9652