https://issues.dlang.org/show_bug.cgi?id=12652
Issue ID: 12652 Summary: Non-constant hash initializers should have a special-case diagnostic Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic Severity: enhancement Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: andrej.mitrov...@gmail.com ----- int[int] x = [1:1]; void main() { } ----- test.d(2): Error: non-constant expression [1:1] Associative arrays are supposed to be a first-class feature of D, but until we make them CTFE-able we should emit better diagnostics (essentially do some special-cases when hashes are involved). The above code is something newcomers to D very frequently run into, and the diagnostic doesn't really tell them what's wrong. Some suggestions: ----- Error: Associative array literals currently cannot be used to initialize globals. Try using a module constructor instead. ----- This will at least point them to a workaround. Maybe a link to a page with a workaround would be nice too. --