scope guards

via Digitalmars-d digitalmars-d at puremagic.com
Sat Aug 9 06:00:57 PDT 2014


On Saturday, 9 August 2014 at 11:51:06 UTC, Idan Arye wrote:
> If that was the case, the error would have said it's illegal to 
> throw from "finally or scope bodies". The fact that it 
> specifically specifies `scope(exit)` and `scope(success)` and 
> leave out `scope(failure)` means that whoever wrote that error 
> message made a conscious decision that it's OK to return in 
> `scope(failure)`.

DMD src/statement.c:3621 says:

     if (sc->os && sc->os->tok != TOKon_scope_failure)
         error("return statements cannot be in %s bodies", 
Token::toChars(sc->os->tok));

So `scope(failure)` is explicitly exempted from the check.


More information about the Digitalmars-d mailing list