Merge tests into a larger file (part 1 of ∞) (#9318)
* merge actiontable tests * merge arithm tests * merge array tests * merge assign tests * merge bind tests * merge casestmt tests * merge closure tests * merge cnt seq tests * merge collections tests * merge concept issues tests * merge concept tests * fix failing tests * smaller outputs Use `doAssert` where possible. * fix wrong output * split `tcomputedgoto` * revert merging concepts * fix failing test
This commit is contained in:
parent
d2b04a8bc7
commit
7f18d7cbc1
103 changed files with 3736 additions and 3368 deletions
69
tests/bind/tbind.nim
Normal file
69
tests/bind/tbind.nim
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
discard """
|
||||
file: "tbind.nim"
|
||||
output:
|
||||
'''
|
||||
3
|
||||
1
|
||||
1
|
||||
1
|
||||
'''
|
||||
"""
|
||||
|
||||
|
||||
block tbind:
|
||||
# Test the new ``bind`` keyword for templates
|
||||
|
||||
proc p1(x: int8, y: int): int = return x + y
|
||||
|
||||
template tempBind(x, y): untyped =
|
||||
bind p1
|
||||
p1(x, y)
|
||||
|
||||
proc p1(x: int, y: int8): int = return x - y
|
||||
|
||||
# This is tricky: the call to ``p1(1'i8, 2'i8)`` should not fail in line 6,
|
||||
# because it is not ambiguous there. But it is ambiguous after line 8.
|
||||
|
||||
echo tempBind(1'i8, 2'i8) #OUT 3
|
||||
|
||||
|
||||
import mbind3
|
||||
echo genId() #OUT 1
|
||||
|
||||
|
||||
import strtabs
|
||||
block tbinoverload:
|
||||
template t() =
|
||||
block:
|
||||
bind newStringTable
|
||||
discard {"Content-Type": "text/html"}.newStringTable()
|
||||
|
||||
discard {:}.newStringTable
|
||||
#discard {"Content-Type": "text/html"}.newStringTable()
|
||||
t()
|
||||
|
||||
|
||||
block tmixin:
|
||||
type
|
||||
TFoo1 = object of RootObj
|
||||
v: int
|
||||
TFoo2 = object of TFoo1
|
||||
v2: int
|
||||
|
||||
proc test(f: TFoo1) =
|
||||
echo "1"
|
||||
|
||||
proc Foo[T](f: T) =
|
||||
mixin test
|
||||
test(f)
|
||||
|
||||
var
|
||||
a: TFoo1
|
||||
b: TFoo2
|
||||
|
||||
|
||||
proc test(f: TFoo2) =
|
||||
echo "2"
|
||||
|
||||
Foo(a)
|
||||
Foo(b)
|
||||
Loading…
Add table
Add a link
Reference in a new issue