On Sunday, 16 May 2021 at 18:27:40 UTC, H. S. Teoh wrote:
On Sun, May 16, 2021 at 05:24:40PM +0000, Alain De Vos via Digitalmars-d-learn wrote:
On Sunday, 16 May 2021 at 16:58:15 UTC, H. S. Teoh wrote:
> On Sun, May 16, 2021 at 04:40:53PM +0000, Alain De Vos via > Digitalmars-d-learn wrote:
> > This works also,
> > > > ```
> > import std.stdio:writeln;
> > > > int [] fun(){
> >       int[3]s=[1,2,3];
> >       int[] r=s;
> >       return r;
> > }
> > > > void main(){
> >       writeln(fun()[0]);
> > }
> > ```
> > https://issues.dlang.org/show_bug.cgi?id=15932 > > Though I believe if you compile with -dip25 -dip1000 the > compiler should emit an error for the above code. If not, > please file a bug against -dip1000.
[...]
I use ldc2. No dip flags here.

---------snip---------
import std.stdio:writeln;

int [] fun() @safe {            // N.B.: need @safe
        int[3]s=[1,2,3];
        int[] r=s;
        return r;
}

void main() @safe {             // N.B.: need @safe
        writeln(fun()[0]);
}
---------snip---------


LDC output:

---------snip---------
$ ldc2 -dip1000 /tmp/test.d
/tmp/test.d(6): Error: scope variable `r` may not be returned
---------snip---------


T

So I put everywhere @safe ?
When not ?

Reply via email to