diff options
Diffstat (limited to 'tests/macros/tbug1149.nim')
-rw-r--r-- | tests/macros/tbug1149.nim | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/tests/macros/tbug1149.nim b/tests/macros/tbug1149.nim index 5c4cb8530..d2bff61d3 100644 --- a/tests/macros/tbug1149.nim +++ b/tests/macros/tbug1149.nim @@ -2,7 +2,13 @@ discard """ msg: '''a s d -f''' +f +TTaa +TTaa +TTaa +TTaa''' + +output: '''test''' """ type @@ -18,3 +24,41 @@ macro test(): stmt = echo i.s test() + + +# bug 1297 + +import macros + +type TType = tuple[s: string] + +macro echotest(): stmt = + var t: TType + t.s = "" + t.s.add("test") + result = newCall(newIdentNode("echo"), newStrLitNode(t.s)) + +echotest() + +# bug #1103 + +type + Td = tuple + a:string + b:int + +proc get_data(d: Td) : string {.compileTime.} = + result = d.a # Works if a literal string is used here. + # Bugs if line A or B is active. Works with C + result &= "aa" # A + #result.add("aa") # B + #result = result & "aa" # C + +macro m(s:static[Td]) : stmt = + echo get_data(s) + echo get_data(s) + result = newEmptyNode() + +const s=("TT", 3) +m(s) +m(s) |