assignement of thrown extension to variable of type string
in an unusual case (exception thrown in code in the return) the thrown exception is returned from the function and then assigned to a variable with another type (e.g. string); if the variable is later evaluated, the exception is then actually thrown there (and not in the original function).
the bug is the problem in the asignement of a thrown exception to another type. the coding style is unfortunate and not encourage, but the compiler should report an error. (code like
= do ...
return (case x of
0 -> throw Anexception
)
produces the error.
i attach a file to demonstrate the problem.