* 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
This commit is contained in:
Andreas Rumpf 2020-10-06 16:47:15 +02:00 • committed by GitHub
commit 92163fa330
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 232 additions and 68 deletions

View file

@ -1,5 +1,7 @@
discard """
nimout: '''##[ValueError, Gen[string]]##'''
nimout: '''##[ValueError, Gen[string]]##
%%[RootEffect]%%
true true'''
"""
import macros
@ -10,13 +12,18 @@ type
x: T
macro m(call: typed): untyped =
echo "##", repr getRaisesList(call), "##"
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)