[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