summary refs log tree commit diff stats
path: root/tests/patterns/tstar.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/patterns/tstar.nim')
-rw-r--r--tests/patterns/tstar.nim19
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