Bug 19973 – Too many template forward reference errors in recursive template

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2019-06-16T09:46:10Z
Last change time
2024-12-13T19:04:01Z
Keywords
diagnostic
Assigned to
No Owner
Creator
Iain Buclaw
Moved to GitHub: dmd#19586 →

Comments

Comment #0 by ibuclaw — 2019-06-16T09:46:10Z
auto a(int b = a) {} auto a(int b) {} The error when compiling the above is: --- a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a a.d(1): Error: forward reference to template a --- Which is about 18 errors too many. Reverse the declarations, and the error becomes a little more reasonable: --- a.d(2): Error: forward reference to template a a.d(2): Error: forward reference to template a a.d(2): Error: none of the overloads of a are callable using argument types (), candidates are: a.d(1): a.a(int b) a.d(2): a.a(int b = a) ---
Comment #1 by robert.schadek — 2024-12-13T19:04:01Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19586 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB