@@ -5,9 +5,10 @@ discard """
55
66# if excessive, could remove 'cpp' from targets
77
8- from strutils import endsWith, contains
8+ from strutils import endsWith, contains, strip
99from std/ macros import newLit
10- macro deb (a): string = newLit a.repr
10+
11+ macro deb (a): string = newLit a.repr.strip
1112
1213template main () =
1314 doAssert repr ({3 ,5 }) == " {3, 5}"
@@ -67,17 +68,16 @@ template main() =
6768 else :
6869 doAssert reprOpenarray (arr) == " [1, 2, 3]"
6970
70- block : # bug #17292
71+ block : # bug #17292 repr with `do`
7172 template foo (a, b, c, d) = discard
7273 block :
7374 let a = deb:
7475 foo (1 , 2 , 3 , 4 )
75- doAssert a == " \n foo (1, 2, 3, 4)"
76+ doAssert a == " foo (1, 2, 3, 4)"
7677 block :
7778 let a = deb:
7879 foo (1 , 2 , 3 ): 4
7980 doAssert a == """
80-
8181foo(1, 2, 3):
8282 4 """
8383
@@ -86,7 +86,6 @@ foo(1, 2, 3):
8686 foo (1 , 2 ): 3
8787 do : 4
8888 doAssert a == """
89-
9089foo(1, 2):
9190 3
9291do:
9897 do : 3
9998 do : 4
10099 doAssert a == """
101-
102100foo(1):
103101 3
104102do:
118116 4
119117
120118 doAssert a == """
121-
122119foo(1):
123120 3
124121do:
135132 do : 3
136133 do : 4
137134 doAssert a == """
138-
139135foo:
140136 1
141137do:
145141do:
146142 4 """
147143
144+ block : # bug #17292 repr with `(discard)` (`discard` would result in illegal code)
145+ let a = deb:
146+ let f {.inject .} = () => (discard )
147+ doAssert a == """
148+ let f {.inject.} = () =>
149+ (discard ) """
150+
148151static : main ()
149152main ()
0 commit comments