Internal error: e2ir.c 1242
    Tobias Pankrath 
    tobias at pankrath.net
       
    Wed Nov  9 02:39:14 PST 2011
    
    
  
I'd say, I found another compiler bug.
-----------------
import std.stdio;
template Struct(alias bar)
{
    struct S
    {
        void foo()
        {
            FancyFunc!(this, bar).fn();
        }
    }
}
template FancyFunc(alias context, alias f)
{
    void fn()
    {
        writeln("before");
        f(context);
        writeln("after");
    }
}
void bar(CT)(CT context)
{
    writeln(CT.stringof);
}
void main()
{
    alias Struct!(bar).S MyStruct;
    MyStruct s = MyStruct();
    s.foo();
}
----------------------
Compile it with dmd and dmd will print:
> Internal error: e2ir.c 1242
Should the aliasing of "this" in FancyFunc!(this, bar) work, if there were 
no internal compiler error?
In any case I've filed a report 
(http://d.puremagic.com/issues/show_bug.cgi?id=6918).
--
Tobias
    
    
More information about the Digitalmars-d-learn
mailing list