[Issue 14889] New: ICE: Assertion `o->dyncast() == DYNCAST_DSYMBOL' failed.
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Sun Aug  9 06:27:09 PDT 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=14889
          Issue ID: 14889
           Summary: ICE: Assertion `o->dyncast() == DYNCAST_DSYMBOL'
                    failed.
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Keywords: ice, ice-on-valid-code
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: schuetzm at gmx.net
I believe this should work:
    struct A(alias Exc) {
        alias ExceptionType = Exc;
    }
    alias TT(Args...) = Args;
    alias X = TT!(A!Throwable());
    alias Y = X[0].ExceptionType;
But it produces the following ICE:
dmd: dsymbol.c:484: Dsymbol* Dsymbol::takeTypeTupleIndex(Loc, Scope*, Dsymbol*,
RootObject*, Expression*): Assertion `o->dyncast() == DYNCAST_DSYMBOL' failed.
Replacing the last line by the following makes it work:
    auto z = X[0];
    alias Y = z.ExceptionType;
--
    
    
More information about the Digitalmars-d-bugs
mailing list