[Issue 24602] New: Internal compiler error static initialization of set

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jun 12 16:15:21 UTC 2024


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

          Issue ID: 24602
           Summary: Internal compiler error static initialization of set
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: sahan.h.fernando at gmail.com

The following code fails to compile on dmd, with the error message below.

Code: 

```
class Set {
    bool[string] s;
}

Set newSet(string[] values) {
    auto s = new Set();
    foreach (v; values) {
        s.s[v] = true;
    }
    return s;
}

class Bar {
    Set x = newSet(["a", "b"]);
}

void main() {}
```

Compile command:

```
$ dmd repro.d
```

Error message:

```
repro.d(8): Error: internal compiler error: failed to detect static
initialization of associative array
```

I hit this on `DMD64 D Compiler v2.108.1`, as packaged by the arch linux
maintainers (Looking through the build files for the package at
https://gitlab.archlinux.org/archlinux/packaging/packages/dmd/-/blob/1-2.108.1-1/PKGBUILD?ref_type=tags,
it doesn't seem like there were any patches applied by them, so I believe this
must be a bug in the compiler).

--


More information about the Digitalmars-d-bugs mailing list