[Issue 15025] New: duplicate array initializers are only checked in todt glue code

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Sep 7 15:21:26 PDT 2015


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

          Issue ID: 15025
           Summary: duplicate array initializers are only checked in todt
                    glue code
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: code at dawg.eu

cat > bug.d << CODE
void main()
{
    import std.stdio;
    int[] ary = [0: 1, 2, 1: 3]; // silently overwrites 2
    writeln(ary);
}
CODE

dmd -run bug
----
[1, 3]
----

cat > bug.d << CODE
int[] ary = [0: 1, 2, 1: 3]; // fails during data emission in glue layer
void main()
{
    import std.stdio;
    writeln(ary);
}
CODE

dmd -run bug
----
bug.d(1): Error: duplicate initializations for index
----

Both programs should have the same result and to avoid silently overwriting an
already initialized element, both programs should error.

--


More information about the Digitalmars-d-bugs mailing list