Fix compiler crash on try expression with infix as (Fixes #7116) (#7112)

* Fix compiler crash

* make sure type is not lost
This commit is contained in:
cooldome
2018-01-29 04:59:49 +00:00
committed by Andreas Rumpf
parent fcd4cd82c3
commit 12b11fd848
2 changed files with 10 additions and 2 deletions

View File

@@ -716,7 +716,7 @@ proc transformExceptBranch(c: PTransf, n: PNode): PTransNode =
result = transformSons(c, n)
if n[0].isInfixAs():
let excTypeNode = n[0][1]
let actions = newTransNode(nkStmtList, n[1].info, 2)
let actions = newTransNode(nkStmtListExpr, n[1], 2)
# Generating `let exc = (excType)(getCurrentException())`
# -> getCurrentException()
let excCall = PTransNode(callCodegenProc("getCurrentException", ast.emptyNode))

View File

@@ -21,5 +21,13 @@ proc test2() =
testTemplate(Exception)
doAssert(not declared(foobar))
proc testTryAsExpr(i: int) =
let x = try: i
except ValueError as ex:
echo(ex.msg)
-1
test[Exception]()
test2()
test2()
testTryAsExpr(5)