diff options
author | SirOlaf <34164198+SirOlaf@users.noreply.github.com> | 2023-07-22 21:13:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-22 21:13:55 +0200 |
commit | 62869a5c68e4dd91e00ee77b039f0175482ef4fa (patch) | |
tree | b7a6acbdeac77ccaeeeea11f301b4a844e6f9323 | |
parent | b10d3cd98d66b9fff20f9bf37d454c07ebbd42b2 (diff) | |
download | Nim-62869a5c68e4dd91e00ee77b039f0175482ef4fa.tar.gz |
Check try block for endsInNoReturn (#22314)
Co-authored-by: SirOlaf <>
-rw-r--r-- | compiler/semstmts.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 836be6e4a..5c1a363b4 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -235,8 +235,8 @@ proc semTry(c: PContext, n: PNode; flags: TExprFlags; expectedType: PType = nil) var typ = commonTypeBegin var expectedType = expectedType n[0] = semExprBranchScope(c, n[0], expectedType) - typ = commonType(c, typ, n[0].typ) if not endsInNoReturn(n[0]): + typ = commonType(c, typ, n[0].typ) expectedType = typ var last = n.len - 1 @@ -312,7 +312,8 @@ proc semTry(c: PContext, n: PNode; flags: TExprFlags; expectedType: PType = nil) result.typ = c.enforceVoidContext else: if n.lastSon.kind == nkFinally: discardCheck(c, n.lastSon.lastSon, flags) - n[0] = fitNode(c, typ, n[0], n[0].info) + if not endsInNoReturn(n[0]): + n[0] = fitNode(c, typ, n[0], n[0].info) for i in 1..last: var it = n[i] let j = it.len-1 |