www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 875] New: crash in glue.c line 700

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=875

           Summary: crash in glue.c line 700
           Product: D
           Version: 1.00
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: kevinbealer gmail.com


Boiled down code shown below; I'm not sure how legal this syntax should be, but
its enough to derail dmd.  What I'm trying to do is specialize on two variadic
type lists by wrapping them in tuples.

Thanks,
Kevin
-----
import std.traits;

int main(char[][] args)
{
    double bongos(int flux, char[] soup)
    {
        return 0.0;
    }

    auto foo = mk_future(& bongos, 99, "soup"[]);

    return 0;
}

int mk_future(A, B...)(A cmd, B args)
{
    typedef ReturnType!(A) TReturn;
    typedef ParameterTypeTuple!(A) TParams;
    typedef B TArgs;

    alias Foo!(TReturn, TParams, TArgs) TFoo;

    return 0;
}

class Foo(A, B, C) {
    this(A delegate(B), C)
    {
    }
}
-----
dmd -ofbasic basic.d
dmd: glue.c:700: virtual unsigned int Type::totym(): Assertion `0' failed.


-- 
Jan 22 2007
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=875






Added to DStress as
http://dstress.kuehne.cn/run/b/bug_glue_700_A.d
http://dstress.kuehne.cn/run/b/bug_glue_700_B.d
http://dstress.kuehne.cn/run/b/bug_glue_700_C.d
http://dstress.kuehne.cn/run/b/bug_glue_700_D.d


-- 
Feb 27 2007