123456789101112131415161718192021222324252627282930 |
- 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)
|