Bug 13847 – CTFE internal error: dottype

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2014-12-10T04:16:00Z
Last change time
2015-02-18T03:41:11Z
Keywords
CTFE, pull, rejects-valid
Assigned to
nobody
Creator
k.hara.pg

Comments

Comment #0 by k.hara.pg — 2014-12-10T04:16:52Z
Dot-Type expression is not yet properly supported in CTFE. class B { int foo() { return 1; } } class C : B { override int foo() { return 2; } } static assert({ C c = new C(); assert(c.B.foo() == 1); return 1; }());
Comment #1 by k.hara.pg — 2014-12-10T04:48:29Z
Comment #2 by github-bugzilla — 2014-12-14T22:29:32Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/57091af50ba5d531a34770bb810df26eafe58812 fix Issue 13847 - CTFE internal error: dottype Handle function values in each CTFE steps, then simplify CallExp::interpret() and we need to interpret CallExp::e1 just only once. After all, DotTypeExp will be one of the function values in CTFE, and CallExp::interpret can distinguish 'virtual call' and 'direct call' properly. Also simplify ThisExp::interpret because pthis is always interpreted to a literal expression (TOKstructliteral or TOKclassreference). https://github.com/D-Programming-Language/dmd/commit/8597cda969db9221350f28903a85fe88fef26821 Merge pull request #4208 from 9rnsr/fix13847 Issue 13847 - CTFE internal error: dottype
Comment #3 by github-bugzilla — 2015-02-18T03:41:11Z