http://d.puremagic.com/issues/show_bug.cgi?id=11256
Summary: Error mixing struct with disabled default construction and templated with lambda struct Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: ice, rejects-valid Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: verylonglogin....@gmail.com --- Comment #0 from Denis Shelomovskij <verylonglogin....@gmail.com> 2013-10-14 14:25:57 MSD --- --- 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. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------