On Sunday, 6 July 2014 at 22:03:21 UTC, hane wrote:
On Sunday, 6 July 2014 at 12:31:42 UTC, NCrashed wrote:

```
void bar()
{
        throw new Exception("");
}

void foo() nothrow
{
        scope(failure) {}
        bar();
}

void main() {}
```
Doesn't compile with 2.066:
```
source/app.d(9): Error: 'app.bar' is not nothrow
source/app.d(6): Error: function 'app.foo' is nothrow yet may throw
```

This is a bug which was already fixed.
Instead, you can use this:
scope(failure) assert(0);

See: https://issues.dlang.org/show_bug.cgi?id=11542

To be exact: "a bug" I said is that scope(failure) { } breaks nothrow checking.

Reply via email to