From 7f18d7cbc1fc8ad87c389b8d4d873e1d1169f794 Mon Sep 17 00:00:00 2001 From: Miran Date: Fri, 12 Oct 2018 17:02:46 +0200 Subject: Merge tests into a larger file (part 1 of ∞) (#9318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- tests/bind/tbind.nim | 69 ++++++++++++++++++++++++++++++++++++++++++++ tests/bind/tbind1.nim | 21 -------------- tests/bind/tbind3.nim | 11 ------- tests/bind/tbindoverload.nim | 12 -------- tests/bind/tmixin.nim | 27 ----------------- 5 files changed, 69 insertions(+), 71 deletions(-) create mode 100644 tests/bind/tbind.nim delete mode 100644 tests/bind/tbind1.nim delete mode 100644 tests/bind/tbind3.nim delete mode 100644 tests/bind/tbindoverload.nim delete mode 100644 tests/bind/tmixin.nim (limited to 'tests/bind') diff --git a/tests/bind/tbind.nim b/tests/bind/tbind.nim new file mode 100644 index 000000000..6fcf95433 --- /dev/null +++ b/tests/bind/tbind.nim @@ -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) diff --git a/tests/bind/tbind1.nim b/tests/bind/tbind1.nim deleted file mode 100644 index 9b13a7d11..000000000 --- a/tests/bind/tbind1.nim +++ /dev/null @@ -1,21 +0,0 @@ -discard """ - file: "tbind1.nim" - output: "3" -""" -# 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 - - - diff --git a/tests/bind/tbind3.nim b/tests/bind/tbind3.nim deleted file mode 100644 index 551acc10f..000000000 --- a/tests/bind/tbind3.nim +++ /dev/null @@ -1,11 +0,0 @@ -discard """ - file: "tbind3.nim" - output: "1" -""" -# Module B -import mbind3 - -echo genId() #OUT 1 - - - diff --git a/tests/bind/tbindoverload.nim b/tests/bind/tbindoverload.nim deleted file mode 100644 index 6f5bb339e..000000000 --- a/tests/bind/tbindoverload.nim +++ /dev/null @@ -1,12 +0,0 @@ -import strtabs - -template t*() = - block: - bind newStringTable - discard {"Content-Type": "text/html"}.newStringTable() - - discard {:}.newStringTable - -#discard {"Content-Type": "text/html"}.newStringTable() - -t() diff --git a/tests/bind/tmixin.nim b/tests/bind/tmixin.nim deleted file mode 100644 index 65c650261..000000000 --- a/tests/bind/tmixin.nim +++ /dev/null @@ -1,27 +0,0 @@ -discard """ - output: "1\n2" -""" - -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) -- cgit 1.4.1-2-gfad0