Comment #0 by kovrov+puremagic — 2008-12-17T07:36:37Z
class Base { }
class Derived(alias TEST) : Base { mixin TEST; }
void test()() {}
void main()
{
//alias Derived!(test) MyDerived; // ok
typedef Derived!(test) MyDerived; // ICE
Base obj = new MyDerived();
}
Comment #1 by clugdbug — 2009-05-04T09:28:33Z
Patch against DMD2.029.
Index: e2ir.c
===================================================================
--- e2ir.c (revision 24)
+++ e2ir.c (working copy)
@@ -3603,7 +3603,7 @@
cdfrom = e1->type->isClassHandle();
cdto = t->isClassHandle();
- if (cdfrom->isInterfaceDeclaration())
+ if (cdfrom && cdfrom->isInterfaceDeclaration())
{
rtl = RTLSYM_INTERFACE_CAST;
if (cdfrom->isCPPinterface())