Re: scope pointers in @safe code

2017-07-26 Thread John Colvin via Digitalmars-d

On Wednesday, 26 July 2017 at 08:20:42 UTC, Shachar Shemesh wrote:

void fn(scope int* var) @safe {
(*var)++;
}

void fn2() @safe {
int a;

fn();
}

The above program does not compile:
d.d(8): Error: cannot take address of local a in @safe function 
fn2


I propose that the scope keyword be activated to mean "I do not 
pass the pointer you gave me out of the function", which would 
make this code compile (as it should, as it is not doing 
anything unsafe).


Shachar


compile with -dip1000


scope pointers in @safe code

2017-07-26 Thread Shachar Shemesh via Digitalmars-d

void fn(scope int* var) @safe {
(*var)++;
}

void fn2() @safe {
int a;

fn();
}

The above program does not compile:
d.d(8): Error: cannot take address of local a in @safe function fn2

I propose that the scope keyword be activated to mean "I do not pass the 
pointer you gave me out of the function", which would make this code 
compile (as it should, as it is not doing anything unsafe).


Shachar