Files
Nim/tests/macros/tgetraiseslist.nim
Andreas Rumpf 92163fa330 implements https://github.com/nim-lang/RFCs/issues/258 (#15503)
* implements https://github.com/nim-lang/RFCs/issues/258

* don't be too strict with custom pragma blocks

* cast pragmas: documentation

* added most missing inference query procs to effecttraits.nim
2020-10-06 16:47:15 +02:00

30 lines
586 B
Nim

discard """
nimout: '''##[ValueError, Gen[string]]##
%%[RootEffect]%%
true true'''
"""
import macros
import std / effecttraits
type
Gen[T] = object of CatchableError
x: T
macro m(call: typed): untyped =
echo "##", repr getRaisesList(call[0]), "##"
echo "%%", repr getTagsList(call[0]), "%%"
echo isGcSafe(call[0]), " ", hasNoSideEffects(call[0])
result = call
proc gutenTag() {.tags: RootEffect.} = discard
proc r(inp: int) =
if inp == 0:
raise newException(ValueError, "bah")
elif inp == 1:
raise newException(Gen[string], "bahB")
gutenTag()
m r(2)