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: nob...@puremagic.com Reporter: schue...@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; --