https://issues.dlang.org/show_bug.cgi?id=14996
Issue ID: 14996 Summary: only(EnumMembers!T) eats all my memory when T : string Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: r...@rcorre.net Created attachment 1546 --> https://issues.dlang.org/attachment.cgi?id=1546&action=edit compiling with dmd should consume excessive memory I am trying to return a range of all members in a named enum using only(EnumMembers!MyEnum). This works fine, unless MyEnum uses string as a backing value and has more than one element, in which case it eats all 8GB of my memory and crashes DMD. Test file is attached and pasted below: --- import std.range : only; import std.traits : EnumMembers; enum Bad : string { confirm = "confirm", cancel = "cancel" , rotateL = "rotateL", rotateR = "rotateR", turbo = "turbo" , menu = "menu" , } enum Fine { confirm, cancel , rotatel, rotater, turbo , menu , } enum AlsoFine : string { confirm = "confirm", } auto allButtons() { //return only(EnumMembers!Fine); // compiles just fine //return only(EnumMembers!AlsoFine); // compiles just fine return only(EnumMembers!Bad); // eats all my memory (8GB) } void main() { } --- --