On Thursday, September 27, 2012 14:01:39 Namespace wrote: > So you mean this code should give an error? > > import std.stdio; > > class A { } > > A ga; > > void foo(scope A a) { > ga = a; > } > > void main() { > A a = new A(); > > foo(a); > }
Yes. You escaped a reference, which scope is supposed to prevent, but it rarely actually complains even though it's supposed to. Odds are that a lot of uses of scope (and in, since in is const scope) are going to break once scope has been fixed. - Jonathan M Davis