class AssignableRange
{
int element;
int front()
{
return element;
}
alias back = front;
void front(int newValue)
{
element = newValue;
}
alias back = front;
}
`back` is aliased twice. It still doesn't error if the second alias is changed to target `element`.
Comment #1 by razvan.nitu1305 — 2023-05-01T12:11:49Z
Using `back` when `element` is aliased leads to an ice:
class AssignableRange
{
int element;
int front()
{
return element;
}
alias back = front;
void front(int newValue)
{
element = newValue;
}
alias back = element;
}
void main()
{
AssignableRange a = new AssignableRange();
a.back;
}
core.exception.AssertError@src/dmd/access.d(341): Non overloadable Aliasee in overload list
Comment #2 by dlang-bot — 2023-10-14T02:17:10Z
@SixthDot created dlang/dmd pull request #15681 "fix issue 23865 - ICE on attempt to insert an non overloadable symbol…" fixing this issue:
- fix issue 23865 - ICE on attempt to insert an non overloadable symbol in a set
https://github.com/dlang/dmd/pull/15681
Comment #3 by dlang-bot — 2023-10-14T11:15:14Z
dlang/dmd pull request #15681 "fix issue 23865 - ICE on attempt to insert an non overloadable symbol…" was merged into stable:
- c3ba5d65c6d0e7a6798638870f8d34d9aa73c7f2 by Basile Burg:
fix issue 23865 - ICE on attempt to insert an non overloadable symbol in a set
https://github.com/dlang/dmd/pull/15681
Comment #4 by dlang-bot — 2023-11-01T22:39:23Z
dlang/dmd pull request #15771 "merge stable" was merged into master:
- 201fb344984dab010eb5c64e4c704423803c9789 by SixthDot:
fix issue 23865 - ICE on attempt to insert an non overloadable symbol in a set (#15681)
https://github.com/dlang/dmd/pull/15771