summary refs log tree commit diff stats
path: root/tests/bind
diff options
context:
space:
mode:
authorMiran <narimiran@users.noreply.github.com>2018-10-12 17:02:46 +0200
committerAndreas Rumpf <rumpf_a@web.de>2018-10-12 17:02:46 +0200
commit7f18d7cbc1fc8ad87c389b8d4d873e1d1169f794 (patch)
tree8c4839495fd6fc10376dc44cc8f9c7e3c625d18f /tests/bind
parentd2b04a8bc7a78845d25e8b789184ae54e98073ec (diff)
downloadNim-7f18d7cbc1fc8ad87c389b8d4d873e1d1169f794.tar.gz
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
Diffstat (limited to 'tests/bind')
-rw-r--r--tests/bind/tbind.nim69
-rw-r--r--tests/bind/tbind1.nim21
-rw-r--r--tests/bind/tbind3.nim11
-rw-r--r--tests/bind/tbindoverload.nim12
-rw-r--r--tests/bind/tmixin.nim27
5 files changed, 69 insertions, 71 deletions
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)