Scoping not handled correctly in the presence of exceptions. Consider the following program,
load system io.
function goo with none do
throw Error("exception").
end
function foo with none do
let a = 1.
try
goo().
catch _ do
io @println "exception caught".
end
assert(a==1). -- a no longer in scope
end
foo ().
The nested function goo throws an exception. When the exception is caught scoping no longer works correctly - a is no longer in scope.
Scoping not handled correctly in the presence of exceptions. Consider the following program,
The nested function
goothrows an exception. When the exception is caught scoping no longer works correctly -ais no longer in scope.