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