mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
Fixes incorrect scoping in semstmts.semTry.
This commit is contained in:
@@ -274,7 +274,7 @@ proc semTry(c: PContext, n: PNode): PNode =
|
||||
var a = n.sons[i]
|
||||
checkMinSonsLen(a, 1)
|
||||
var length = sonsLen(a)
|
||||
|
||||
openScope(c)
|
||||
if a.kind == nkExceptBranch:
|
||||
# so that ``except [a, b, c]`` is supported:
|
||||
if length == 2 and a.sons[0].kind == nkBracket:
|
||||
@@ -319,6 +319,7 @@ proc semTry(c: PContext, n: PNode): PNode =
|
||||
a.sons[length-1] = semExprBranchScope(c, a.sons[length-1])
|
||||
if a.kind != nkFinally: typ = commonType(typ, a.sons[length-1].typ)
|
||||
else: dec last
|
||||
closeScope(c)
|
||||
|
||||
dec c.p.inTryStmt
|
||||
if isEmptyType(typ) or typ.kind == tyNil:
|
||||
|
||||
@@ -8,7 +8,6 @@ proc test[T]() =
|
||||
raise newException(T, "Hello")
|
||||
except T as foobar:
|
||||
echo(foobar.msg)
|
||||
echo(declared(foobar))
|
||||
doAssert(not declared(foobar))
|
||||
|
||||
template testTemplate() =
|
||||
|
||||
Reference in New Issue
Block a user