digitalmars.D.bugs - [Issue 18694] New: pure functions using static/global structs with
- d-bugmail puremagic.com (28/28) Mar 29 2018 https://issues.dlang.org/show_bug.cgi?id=18694
https://issues.dlang.org/show_bug.cgi?id=18694 Issue ID: 18694 Summary: pure functions using static/global structs with no fields should pass compilation Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: andrei erdani.com Consider: struct S { enum int x = 42; } static S dummy; pure int fun(int x) { return dummy.x + x; } This code fails to compile: Error: pure function onlineapp.fun cannot access mutable static data dummy However, there is no mutable data to talk about in the first place so the code should pass compilation. The technique of using static data for a zero-sized struct is frequently used in the allocator framework. --
Mar 29 2018