Bug 23865 – duplicate alias not detected

Status
RESOLVED
Resolution
FIXED
Severity
critical
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2023-04-28T18:35:52Z
Last change time
2023-11-01T22:39:23Z
Keywords
ice, pull
Assigned to
No Owner
Creator
Nick Treleaven

Comments

Comment #0 by nick — 2023-04-28T18:35:52Z
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