Merge branch 'devel' of github.com:nim-lang/Nim into devel
This commit is contained in:
commit
77d590f483
3 changed files with 20 additions and 11 deletions
|
|
@ -667,10 +667,11 @@ proc semCustomPragma(c: PContext, n: PNode): PNode =
|
||||||
else:
|
else:
|
||||||
result = n
|
result = n
|
||||||
|
|
||||||
result = c.semOverloadedCall(c, result, n, {skTemplate}, {})
|
let r = c.semOverloadedCall(c, result, n, {skTemplate}, {})
|
||||||
if sfCustomPragma notin result[0].sym.flags:
|
if r.isNil or sfCustomPragma notin r[0].sym.flags:
|
||||||
invalidPragma(n)
|
invalidPragma(n)
|
||||||
|
else:
|
||||||
|
result = r
|
||||||
if n.kind == nkIdent:
|
if n.kind == nkIdent:
|
||||||
result = result[0]
|
result = result[0]
|
||||||
elif n.kind == nkExprColonExpr:
|
elif n.kind == nkExprColonExpr:
|
||||||
|
|
|
||||||
|
|
@ -716,7 +716,7 @@ proc transformExceptBranch(c: PTransf, n: PNode): PTransNode =
|
||||||
result = transformSons(c, n)
|
result = transformSons(c, n)
|
||||||
if n[0].isInfixAs():
|
if n[0].isInfixAs():
|
||||||
let excTypeNode = n[0][1]
|
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())`
|
# Generating `let exc = (excType)(getCurrentException())`
|
||||||
# -> getCurrentException()
|
# -> getCurrentException()
|
||||||
let excCall = PTransNode(callCodegenProc("getCurrentException", ast.emptyNode))
|
let excCall = PTransNode(callCodegenProc("getCurrentException", ast.emptyNode))
|
||||||
|
|
|
||||||
|
|
@ -21,5 +21,13 @@ proc test2() =
|
||||||
testTemplate(Exception)
|
testTemplate(Exception)
|
||||||
doAssert(not declared(foobar))
|
doAssert(not declared(foobar))
|
||||||
|
|
||||||
|
|
||||||
|
proc testTryAsExpr(i: int) =
|
||||||
|
let x = try: i
|
||||||
|
except ValueError as ex:
|
||||||
|
echo(ex.msg)
|
||||||
|
-1
|
||||||
|
|
||||||
test[Exception]()
|
test[Exception]()
|
||||||
test2()
|
test2()
|
||||||
|
testTryAsExpr(5)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue