Remove expr/stmt (#5857)

This commit is contained in:
Arne Döring 2017-07-25 09:28:23 +02:00 • committed by Andreas Rumpf
commit 000b8afd26
168 changed files with 497 additions and 529 deletions

View file

@ -1,7 +1,8 @@
discard """
output: '''a 1 b 2 x @[3, 4, 5] y 6 z 7
yay
12'''
12
'''
"""
proc test(a, b: int, x: varargs[int]; y, z: int) =
@ -9,9 +10,10 @@ proc test(a, b: int, x: varargs[int]; y, z: int) =
test 1, 2, 3, 4, 5, 6, 7
template takesBlock(a, b: int, x: varargs[expr]; blck: stmt) =
# XXX maybe this should also work with ``varargs[untyped]``
template takesBlockA(a, b: untyped; x: varargs[typed]; blck: untyped): untyped =
blck
echo a, b
takesBlock 1, 2, "some", 0.90, "random stuff":
takesBlockA 1, 2, "some", 0.90, "random stuff":
echo "yay"

View file

@ -71,7 +71,7 @@ var ri: ref int
gen(ri) # "ref T"
template rem(x: expr) = discard
template rem(x) = discard
#proc rem[T](x: T) = discard
rem unresolvedExpression(undeclaredIdentifier)

View file

@ -2,17 +2,17 @@
# bug #2481
import math
template test(loopCount: int, extraI: int, testBody: stmt): stmt =
template test(loopCount: int, extraI: int, testBody: untyped): typed =
block:
for i in 0..loopCount-1:
testBody
echo "done extraI=", extraI
template test(loopCount: int, extraF: float, testBody: stmt): stmt =
template test(loopCount: int, extraF: float, testBody: untyped): typed =
block:
test(loopCount, round(extraF).int, testBody)
template test(loopCount: int, testBody: stmt): stmt =
template test(loopCount: int, testBody: untyped): typed =
block:
test(loopCount, 0, testBody)
echo "done extraI passed 0"