[Dlang-internal] DIP1000 discussion and testing

Mathias Lang via Dlang-internal dlang-internal at puremagic.com
Wed Nov 23 03:05:58 PST 2016


On Wednesday, 23 November 2016 at 03:25:20 UTC, Walter Bright 
wrote:
> I understand your point. The trouble is, it will break too much 
> code.

Maybe I am missing something here: I didn't consider it as 
breaking more code than it's `@safe` counterpart.

>> I found that the following code compiles:
>> [...]
> I get:
>
> bug9.d(7): Error: cannot return non-void from void function

My bad, I tried to reduce the snippet a bit more and broke it :)
Here's the corrected version:

```
void main () @safe
{
     int x;
     void* escape = bar(&x);
}

void* bar (scope void* x) @safe
{
     return fun(&x);
}

void* fun (scope void** ptr) @safe
{
     return *ptr;
}
```

Using the top of your branch, that is:
b8df860 allow 'return' attribute on nested functions (68 minutes 
ago) <Walter Bright>


More information about the Dlang-internal mailing list