123456789101112131415161718192021222324252627282930313233 |
- 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
|