← Back to index
|
Original Bugzilla link
Bug 10720 – ICE with is(aaOfNonCopyableStruct.nonExistingField)
Status
RESOLVED
Resolution
FIXED
Severity
minor
Priority
P2
Component
druntime
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-07-27T04:35:00Z
Last change time
2013-09-22T11:03:04Z
Keywords
ice, pull
Assigned to
nobody
Creator
dlang-bugzilla
Comments
Comment #0
by dlang-bugzilla — 2013-07-27T04:35:02Z
struct NC { @disable this(this) {} } void main() { NC[string] aa; is(aa.nonExistingField); }
Comment #1
by henning — 2013-07-29T06:52:24Z
https://github.com/D-Programming-Language/dmd/pull/2409
Comment #2
by k.hara.pg — 2013-07-29T19:31:55Z
I think this is rather druntime issue.
https://github.com/D-Programming-Language/druntime/pull/554
Comment #3
by github-bugzilla — 2013-08-01T00:49:23Z
Commits pushed to master at
https://github.com/D-Programming-Language/druntime
https://github.com/D-Programming-Language/druntime/commit/2473c2204180be54d35bcd099b09949f13025199
fix issue 10720 - ICE with is(aaOfNonCopyableStruct.nonExistingField) AA.dup should be disabled if Value type is not copyable. The root cause was the use of Value.init. Built-in `init` property makes rvalue, therefore the 'static if' condition did not properly test 'copyable' trait of Value type.
https://github.com/D-Programming-Language/druntime/commit/ee1eb100a7c0c283d798d4e4913d6472f1c50443
Merge pull request #554 from 9rnsr/fix10720 issue 10720 - ICE with is(aaOfNonCopyableStruct.nonExistingField)
Comment #4
by code — 2013-08-01T00:56:48Z
Apparently the ICE happened because the instantiation of AssociativeArray!(Key, Value) failed so that TypeAArray::getImpl returns null.