Reduced code: void main() { S s; s.foo(); } struct S { float[] array; alias array this; template erroneousTemplateInstantiation() { static assert(false); } void foo() { S ret; ret[] = erroneousTemplateInstantiation!(); } }
Introduced in https://github.com/D-Programming-Language/dmd/pull/443
https://github.com/D-Programming-Language/dmd/pull/4686
First release affected was 2.066.0.
Commits pushed to stable at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/6fcef51018ab366fb8fd7ec011597e08bb65f9ec fix Issue 14621 - ICE: Assertion failure: 'global.gaggedErrors || global.errors' on line 752 in file 'statement.c' https://github.com/D-Programming-Language/dmd/commit/d99699301eb0f5d46b4f9240236ca7c1694bb39b Merge pull request #4948 from 9rnsr/fix14621 Issue 14621, 14624, 14625 - Fix bugs in array operator overloading semantics
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/6fcef51018ab366fb8fd7ec011597e08bb65f9ec fix Issue 14621 - ICE: Assertion failure: 'global.gaggedErrors || global.errors' on line 752 in file 'statement.c' https://github.com/D-Programming-Language/dmd/commit/d99699301eb0f5d46b4f9240236ca7c1694bb39b Merge pull request #4948 from 9rnsr/fix14621