July 14, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10643

           Summary: Refused const array struct field initialized with void
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: bearophile_hugs@eml.cc


--- Comment #0 from bearophile_hugs@eml.cc 2013-07-14 14:35:41 PDT ---
class Bar {
    const int[1000] x = void;
    this(int n) {
        x[] = n;
    }
}
void main() {}



dmd 2.064alpha gives errors but I think the code is correct:

test.d(2): Warning: const field with initializer should be static, __gshared,
or an enum
test.d(4): Error: slice x[] is not mutable


There is also some discussion in this thread:

http://forum.dlang.org/thread/laxoykycmqqggbfqvobm@forum.dlang.org

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
July 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10643


Maxim Fomin <maxim@maxim-fomin.ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |maxim@maxim-fomin.ru


--- Comment #1 from Maxim Fomin <maxim@maxim-fomin.ru> 2013-07-14 19:38:14 PDT ---
From http://dlang.org/changelog.html#staticfields : "Eventually, they will be deprecated, and then will trigger an error."

The issue is that void initializer does not disable initialization but fills aggregate member with zero (it also fills data with zeros for types which .init property is not zero). If you replace void with some number, the code would not still compile, so this is not a specific to void. Also this fails in accordance with change-log.

I think this can be change to request to make void behavior to what it does for local variables or request to update the spec, but in current circumstances this issue is resolved-invalid.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------