diff options
Diffstat (limited to 'tests/trmacros/tor.nim')
-rw-r--r-- | tests/trmacros/tor.nim | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/tests/trmacros/tor.nim b/tests/trmacros/tor.nim index 500851582..9defc4d1b 100644 --- a/tests/trmacros/tor.nim +++ b/tests/trmacros/tor.nim @@ -1,16 +1,28 @@ discard """ - output: '''3030 + output: ''' +3 +30 true -3''' +''' """ -template arithOps: expr = (`+` | `-` | `*`) -template testOr{ (arithOps{f})(a, b) }(a, b, f: expr): expr = f(a+1, b) + +# bug #798 +template t012{(0|1|2){x}}(x: untyped): untyped = x+1 +let z = 1 +# outputs 3 thanks to fixpoint iteration: +echo z + + +template arithOps: untyped = (`+` | `-` | `*`) +template testOr{ (arithOps{f})(a, b) }(a, b, f: untyped): untyped = + {.noRewrite.}: + f(a mod 10, b) let xx = 10 echo 10*xx -template t{x = (~x){y} and (~x){z}}(x, y, z: bool): stmt = +template t{x = (~x){y} and (~x){z}}(x, y, z: bool): typed = x = y if x: x = z @@ -20,9 +32,3 @@ var c = false a = b and a echo a - -# bug #798 -template t012{(0|1|2){x}}(x: expr): expr = x+1 -let z = 1 -# outputs 3 thanks to fixpoint iteration: -echo z |