summary refs log tree commit diff stats
path: root/tests/effects/tstrict_effects.nim
blob: eee8fb71ac93d0482f18747fdbaab83b5f49f70e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
discard """
  errormsg: "s1 can raise an unlisted exception: CatchableError"
  line: 27
"""

{.push warningAsError[Effect]: on.}
{.experimental: "strictEffects".}

# bug #18376

{.push raises: [Defect].}
type Call = proc (x: int): int {.gcsafe, raises: [Defect, CatchableError].}

type Bar* = object
  foo*: Call

proc passOn*(x: Call) = discard

proc barCal(b: var Bar, s: string, s1: Call) =
  #compiler complains that his line can throw CatchableError
  passOn s1


proc passOnB*(x: Call) {.effectsOf: x.} = discard

proc barCal2(b: var Bar, s: string, s1: Call) =
  passOnB s1