diff options
author | Araq <rumpf_a@web.de> | 2012-09-04 00:55:13 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-09-04 00:55:13 +0200 |
commit | 6753d3685448eb2ba5760de0bcc842a887d09a84 (patch) | |
tree | c4689853edb97b78dbff6edb337735a873e6bb97 /tests/patterns/tstar.nim | |
parent | b4cd119800c96361ff74ab804002c32d303233fc (diff) | |
download | Nim-6753d3685448eb2ba5760de0bcc842a887d09a84.tar.gz |
further improvements for term rewriting macros
Diffstat (limited to 'tests/patterns/tstar.nim')
-rw-r--r-- | tests/patterns/tstar.nim | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/patterns/tstar.nim b/tests/patterns/tstar.nim new file mode 100644 index 000000000..6dbff3cd6 --- /dev/null +++ b/tests/patterns/tstar.nim @@ -0,0 +1,19 @@ +discard """ + output: "my awesome concat" +""" + +var + calls = 0 + +proc `&&`(s: varargs[string]): string = + result = s[0] + for i in 1..len(s)-1: result.add s[i] + inc calls + +template optConc{ `&&` * a }(a: expr): expr = &&a + +let space = " " +echo "my" && (space & "awe" && "some " ) && "concat" + +# check that it's been properly optimized: +doAssert calls == 1 |