Bug 2325 – D1: ICE(toir.c) using alias template parameter with anonymous delegate before passing it on
Status
RESOLVED
Resolution
WONTFIX
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
All
OS
All
Creation time
2008-09-01T07:34:00Z
Last change time
2013-11-24T19:34:27Z
Keywords
ice
Assigned to
nobody
Creator
fawzi
Comments
Comment #0 by fawzi — 2008-09-01T07:34:00Z
the following code fails to compile
{{{
int f(alias g)(int x){
return g(x);
}
int h(alias g)(int x){
int y=x;
y=g(x); // this line makes the compiler crash
return f!(g)(y);
}
void main(){
int y,z;
y=h!((int x){return 2*x;})(z); // fails only with inline delegate
}
}}}
Comment #1 by fawzi — 2008-09-01T07:38:56Z
I got to this error trying to reduce an error that made the compiler stop with the following message
"template instance inconsistent nesting levels for h and f"
Comment #2 by clugdbug — 2009-04-21T03:33:24Z
DMD1.042 and 2.029 display:
Internal error: toir.c 183