dmd.blockexit
Find out in what ways control flow can exit a statement block.
License
Source: blockexit.d
Documentation: https://dlang.org/phobos/dmd_blockexit.html
-
Declaration
enum
BE
: int;BE
stands for BlockExit.Discussion
It indicates if a statement does transfer control to another block. A block is a sequence of statements enclosed in { }
-
Declaration
int
blockExit
(Statements
, FuncDeclarationfunc
, boolmustNotThrow
);Determine mask of ways that a statement can exit.
Discussion
Only valid after semantic analysis.
Parameters
Statement
s
statement to check for block exit status
FuncDeclaration
func
function that statement
s
is inbool
mustNotThrow
generate an error if it throws
Return Value
BE.xxxx
-
Declaration
BE
checkThrow
(const ref Locloc
, Expressionexp
, const boolmustNotThrow
, FuncDeclarationfunc
);Checks whether
throw <
throws anexp
>Exception
or anError
and raises an error if this violatesnothrow
.Parameters
Loc
loc
location of the
throw
Expression
exp
expression yielding the throwable
bool
mustNotThrow
inside of a
nothrow
scope?FuncDeclaration
func
function containing the
throw
Return Value
BE.[err]throw
depending on the type ofexp