diff options
-rw-r--r-- | compiler/transf.nim | 2 | ||||
-rw-r--r-- | tests/exception/texcas.nim | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/compiler/transf.nim b/compiler/transf.nim index 14ff58c90..94899c5d4 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -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)) diff --git a/tests/exception/texcas.nim b/tests/exception/texcas.nim index 4b4ebe448..fee45af3f 100644 --- a/tests/exception/texcas.nim +++ b/tests/exception/texcas.nim @@ -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() \ No newline at end of file +test2() +testTryAsExpr(5) |