I guess that this is technically an ICE, but it doesn't really cause problems. The compiler really shouldn't be failing an assertion though. This code:
----------------------
struct S
{
this(string a, string a)
{
}
}
void main()
{
}
----------------------
results in this error
test.d(3): Error: constructor test.S.this parameter this.a is already defined
core.exception.AssertError@ddmd/dsymbolsem.d(1624): Assertion failure
----------------
The error message is correct, but the AssertError that happens afterwards shouldn't be happening.
Comment #1 by razvan.nitu1305 — 2017-11-10T10:00:24Z