Bug 23646 – A nastier forward reference bug

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2023-01-21T18:56:32Z
Last change time
2024-12-13T19:26:51Z
Keywords
rejects-valid
Assigned to
No Owner
Creator
Max Samukha
See also
https://issues.dlang.org/show_bug.cgi?id=23598, https://issues.dlang.org/show_bug.cgi?id=23652
Moved to GitHub: dmd#20217 →

Comments

Comment #0 by maxsamukha — 2023-01-21T18:56:32Z
alias aliases(a...) = a; alias Components = Dependencies!Top; template Dependencies(alias Component) { alias Dependencies = aliases!(Top.DirectDependencies); // alias Dependencies = Top.DirectDependencies; // but this succeeds } struct Top { alias DirectDependencies = aliases!(); enum l = Components.length; } ---- Error: template instance `onlineapp.Dependencies!(Top)` error instantiating Moving `Components` last makes the code compile.
Comment #1 by maxsamukha — 2023-01-22T08:35:43Z
Further reduced: alias aliases(a...) = a; alias Components = Dependencies!(); template Dependencies() { alias Dependencies = aliases!(Top.DirectDependencies); // alias Dependencies = Top.DirectDependencies; // but this succeeds } struct Top { alias DirectDependencies = aliases!(); enum l = Components.length; }
Comment #2 by robert.schadek — 2024-12-13T19:26:51Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/20217 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB