test case haul to prevent pileup (#24525)

closes #6013, closes #7009, closes #9190, closes #12487, closes #12831,
closes #13184, closes #13252, closes #14860, closes #14877, closes
#14894, closes #14917, closes #16153, closes #16439, closes #17779,
closes #18074, closes #18202, closes #18314, closes #18648, closes
#19063, closes #19446, closes #20065, closes #20367, closes #22126,
closes #22820, closes #22888, closes #23020, closes #23287, closes
#23510
This commit is contained in:
metagn
2024-12-09 10:11:47 +03:00
committed by GitHub
parent d408b94063
commit aeb3fe9505
27 changed files with 393 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
discard """
output: '''
1
2
3
FooBar
foo1
foo2
foo3
seq[int]
@[5, 6]
'''
"""
# issue #13252
import macros
type
FooBar = object
a: seq[int]
macro genFoobar(fb: static FooBar): untyped =
result = newStmtList()
for b in fb.a:
result.add(newCall(bindSym"echo", newLit b))
proc foobar(fb: static FooBar) =
genFoobar(fb)
echo fb.type # added line, same error when wrapped in static:
# Error: undeclared field: 'a'
for b in fb.a:
echo "foo" & $b
proc main() =
const a: seq[int] = @[1, 2, 3]
const fb = Foobar(a: a)
foobar(fb)
main()
# issue #14917
proc passSeq2[T](a : static seq[T]) =
echo a
template passSeq1[T](a : static seq[T]) =
echo type(a)
passSeq2(a)
passSeq1(@[5,6])