https://issues.dlang.org/show_bug.cgi?id=17341

          Issue ID: 17341
           Summary: Partial initialization of static array should not be
                    allowed
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nob...@puremagic.com
          Reporter: b2.t...@gmx.com

In this example:

```
enum E{e0,e1,e2}
static immutable int[E.max + 1]  a = [0,1]; // oops no 3rd element
static assert(isStaticArray!(typeof(a))); // no detected
```

we use an enum to define the size of a static array. The ArrayInitializer only
sets the 2 first elements and nothing allows to statically check the omission
(that could happen for example when adding new members to an enum).

Two possible actions:
- The compiler could emit a warning for this case.
- Deprecate "partial initialization of static arrays" and update the
specifications.

--

Reply via email to