The following snippet shows an inner anonymous class, that uses the constructor to copy local values to member var. This is to make a closure behaviour. When the inner class later tries to access the outer class, a segmentation fault happens. The compiler should either given an error or it should work. void main(){ auto o = new Outer; o.run(5); } interface Intf { void doIt(); } class Outer { int i; void inc( int v ){ i += v ; } void run( int v2 ){ auto i = new class Intf { int v2_; this(){ v2_ = v2; } void doIt(){ inc( v2_ ); // (1) segmentation fault } }; i.doIt(); } }
This doesn't segfault for me in DMD1.042. Has it been fixed?
This was fixed in either 1.029 or 1.030. Works now.