Files
Nim/tests/effects/teffectsmisc.nim
ringabout 196f444699 fixes #25400; Naked raised causes wrong exception effect (#25422)
fixes #25400

infers `Exception` for Naked raised

(cherry picked from commit 9a23ff36bd)
2026-01-26 09:12:51 +01:00

60 lines
919 B
Nim

discard """
output: '''
printing from adder
'''
"""
import std/sugar
block:
proc makeAdder(a: int): (int) -> void =
proc discard_adder(x: int) {.closure.} =
discard a + x
proc echo_adder(x: int) {.closure.} =
echo("printing from adder")
if a > 0:
discard_adder
else:
echo_adder
let newAdder = makeAdder(0)
newAdder(5)
block:
proc makeAdder(a: int): (int) -> void =
proc discard_adder(x: int) {.closure.} =
discard a + x
proc echo_adder(x: int) {.closure.} =
echo("printing from adder")
if a > 0:
echo_adder
else:
discard_adder
let newAdder = makeAdder(0)
newAdder(5)
block:
proc g() = discard
proc f() {.raises: [IOError].} =
try:
g()
except IOError:
raise
f()
block:
proc g() = discard
proc f() {.raises: [IOError].} =
try:
g()
except IOError as e:
raise
f()