@@ -2369,18 +2369,17 @@ proc semProcBody(c: PContext, n: PNode): PNode =
23692369 # # comment
23702370 # are not expressions:
23712371 fixNilType (c, result )
2372+ elif result .kind == nkStmtListExpr:
2373+ # in order to preserve doc comments, apply the return to the last
2374+ # statement in the list, not to the whole list
2375+ result .transitionSonsKind (nkStmtList)
2376+ result .typ = nil
2377+ let last = semReturn (c, newTreeI (nkReturnStmt, n.info, result [^ 1 ]))
2378+ result [^ 1 ] = last
2379+ if last.kind == nkError:
2380+ result = c.config.wrapError (result )
23722381 else :
2373- if result .kind == nkStmtListExpr:
2374- # in order to preserve doc comments, apply the return to the last
2375- # statement in the list, not to the whole list
2376- result .transitionSonsKind (nkStmtList)
2377- result .typ = nil
2378- let last = semReturn (c, newTreeI (nkReturnStmt, n.info, result [^ 1 ]))
2379- result [^ 1 ] = last
2380- if last.kind == nkError:
2381- result = c.config.wrapError (result )
2382- else :
2383- result = semReturn (c, newTreeI (nkReturnStmt, n.info, result ))
2382+ result = semReturn (c, newTreeI (nkReturnStmt, n.info, result ))
23842383 else :
23852384 result = discardCheck (c, result , {})
23862385
0 commit comments