← Back to index
|
Original Bugzilla link
Bug 11256 – Error mixing struct with disabled default construction and templated with lambda struct
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-10-14T03:25:00Z
Last change time
2013-10-14T12:39:56Z
Keywords
ice, pull, rejects-valid
Assigned to
nobody
Creator
verylonglogin.reg
Comments
Comment #0
by verylonglogin.reg — 2013-10-14T03:25:57Z
--- struct S { @disable this(); } struct Z(Ranges...) { Ranges ranges; // line 6 this(Ranges rs) { ranges = rs; } } struct F(alias pred) { this(int[] = null) { } } Z!Ranges z(Ranges...)(Ranges ranges) { return Z!Ranges(ranges); } // line 16 void main() { z(S.init, F!(gv => true)()); // line 20 } --- Output: --- main.d(16): Error: field Z!(S, F!((gv) => true))._ranges_field_0 must be initialized because it has no default constructor main.d(20): Error: template instance main.z!(S, F!((gv) => true)) error instantiating --- Output if line 6 is `Ranges ranges = Ranges.init;`: --- Internal error: e2ir.c 5321 --- Output if line 6 is `Ranges ranges = void;`: --- Assertion failure: 'v->type->ty == Tsarray && vsz == 0' on line 470 in file 'todt.c' --- This causes e.g. error on `zip` over non-default constructable range and filter result.
Comment #1
by k.hara.pg — 2013-10-14T09:49:23Z
https://github.com/D-Programming-Language/dmd/pull/2666
Comment #2
by github-bugzilla — 2013-10-14T12:39:17Z
Commits pushed to master at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/fbfb7ca42e02243f6517dc17925fd99af60cbd32
fix Issue 11256 - Error mixing struct with disabled default construction and templated with lambda struct
https://github.com/D-Programming-Language/dmd/commit/02c41d3131d56f5073d1c5017a8ee0362ef7588a
Fix ICE case 1 in issue 11256
https://github.com/D-Programming-Language/dmd/commit/3a7b56d0e6fe8d8ff4c44c0c143b4556e4069067
Fix ICE case 2 in issue 11256
https://github.com/D-Programming-Language/dmd/commit/4a2fabf1d4b9fbeda49187ecce5ebaeba79dc5a4
Merge pull request #2666 from 9rnsr/fix11256 [REG2.063] Issue 11256 - Error mixing struct with disabled default construction and templated with lambda struct
Comment #3
by github-bugzilla — 2013-10-14T12:39:44Z
Commit pushed to 2.064 at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/bafe0cbda4d6da9efae971b6496791e07ceb5215
Merge pull request #2666 from 9rnsr/fix11256 [REG2.063] Issue 11256 - Error mixing struct with disabled default construction and templated with lambda struct