added a test case ensuring exception inference continues to work
This commit is contained in:
parent
57609902c4
commit
2ca6169ba1
1 changed files with 32 additions and 0 deletions
32
tests/exception/texception_inference.nim
Normal file
32
tests/exception/texception_inference.nim
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
discard """
|
||||||
|
output: '''good'''
|
||||||
|
cmd: "nim c --gc:orc -d:release $file"
|
||||||
|
"""
|
||||||
|
|
||||||
|
type
|
||||||
|
Raising[T, E] = object
|
||||||
|
|
||||||
|
proc foo[T, Errors](x: proc (x: Raising[T, Errors])) {.raises: Errors.} =
|
||||||
|
discard
|
||||||
|
|
||||||
|
proc callback(x: Raising[int, ValueError]) =
|
||||||
|
echo "callback"
|
||||||
|
|
||||||
|
proc xy() {.raises: [ValueError].} =
|
||||||
|
foo callback
|
||||||
|
|
||||||
|
proc x[E]() {.raises: [E, IOError].} =
|
||||||
|
raise newException(E, "text here")
|
||||||
|
|
||||||
|
try:
|
||||||
|
x[ValueError]()
|
||||||
|
except ValueError:
|
||||||
|
echo "good"
|
||||||
|
|
||||||
|
proc callback2(x: Raising[int, IOError]) =
|
||||||
|
discard
|
||||||
|
|
||||||
|
proc foo2[T, OtherErrors](x: proc(x: Raising[T, OtherErrors])) {.raises: [ValueError, OtherErrors].} =
|
||||||
|
discard
|
||||||
|
|
||||||
|
foo2 callback2
|
||||||
Loading…
Add table
Add a link
Reference in a new issue