Bug 14889 – ICE: Assertion `o->dyncast() == DYNCAST_DSYMBOL' failed.

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-08-09T13:27:00Z
Last change time
2015-08-24T11:44:28Z
Keywords
ice, pull
Assigned to
nobody
Creator
schuetzm

Comments

Comment #0 by schuetzm — 2015-08-09T13:27:09Z
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;
Comment #1 by k.hara.pg — 2015-08-11T07:55:50Z
Comment #2 by github-bugzilla — 2015-08-23T10:10:16Z
Commits pushed to stable at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/107567b721f90ccea5fc5c2ffeea77039de10d4a fix Issue 14889 - ICE: Assertion `o->dyncast() == DYNCAST_DSYMBOL' failed. https://github.com/D-Programming-Language/dmd/commit/4cf5cf76e2399f14d5673439da48cf511546a7b3 Merge pull request #4918 from 9rnsr/fix14889 Issue 14889 & 14900 & [REG2.068.0] 14911 - Reimplement fix for issue 1215
Comment #3 by github-bugzilla — 2015-08-24T11:44:28Z