[Issue 1409] New: Assertion failure: '0' on line 4799 in file 'expression.c'
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Aug 9 18:20:10 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1409
Summary: Assertion failure: '0' on line 4799 in file
'expression.c'
Product: D
Version: 1.020
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: sky at quit-clan.de
The compiler crashes on the following code (which is, in its current state,
invalid - but i can't debug it because of the compiler crash).
I'm sorry that i could not reduce it further.
-----
import std.traits;
private template XParameters(uint n, T...)
{
alias T[0..n] types;
alias T[n..$] curried;
}
private template FuncOpcalls(uint i, alias F, alias parameters)
{
alias Func!(F, parameters.curried.length + i) NewFunc;
NewFunc opCall(parameters.types[0..i] p)
{
return new NewFunc(parameters.curried, p);
}
static if (i < parameters.types.length)
mixin FuncOpcalls!(i+1, F, parameters);
}
class Func(alias F, uint nCurried=0)
{
alias ParameterTypeTuple!(F) paramTypes;
paramTypes[0..nCurried] curriedParameters;
mixin FuncOpcalls!(1, F, XParameters!(paramTypes.length, paramTypes,
curriedParameters));
}
void add(int)
{
}
alias Func!(add) c_add;
-----
Compiler output:
-----
Assertion failure: '0' on line 4799 in file 'expression.c'
abnormal program termination
-----
--
More information about the Digitalmars-d-bugs
mailing list