On Monday, February 27, 2012 09:34:49 Nathan M. Swan wrote: > I don't think this should happen: > > private enum KeywordsToTypes = [ > "import"d : TT.KwIMPORT, > "public"d : TT.KwPUBLIC, > "protected"d : TT.KwPROTECTED, > "private"d : TT.KwPRIVATE, > "static"d : TT.KwSTATIC, > ]; > > static this() { > // writes "0" > std.stdio.writeln("import"d in KeywordsToTypes); > } > > Is there a reason why, or is this a bug?
No, that shouldn't happen, and I think that there's already a bug report on a similar issue. But I would point out that the value of an enum is effectively copy-pasted wherever it is used, so you're going to end up with a new instance of the AA everywhere that you use it. So, having an enum which is an AA is a _bad_ idea. It would be far better to use immutable. - Jonathan M Davis