diff options
author | Charles Blake <cblake@csail.mit.edu> | 2015-08-09 06:58:36 -0400 |
---|---|---|
committer | Charles Blake <cblake@csail.mit.edu> | 2015-08-09 06:58:36 -0400 |
commit | 9c3c48a6d0b89447e2f2efac953bce34a2b96fa8 (patch) | |
tree | 577c4cb15baead3a22fd4e11588d1bb6fd134330 /tests | |
parent | 26f7a53d4a526b6305a2bca3d28c3c5eb9cfa297 (diff) | |
parent | 34ca9dd5861d5504bbbeb71469318c8c8caba6d7 (diff) | |
download | Nim-9c3c48a6d0b89447e2f2efac953bce34a2b96fa8.tar.gz |
Merge ../Nim into devel
Diffstat (limited to 'tests')
-rw-r--r-- | tests/destructor/tdestructor3.nim | 47 | ||||
-rw-r--r-- | tests/exception/tdefer1.nim | 27 | ||||
-rw-r--r-- | tests/generics/mclosed_sym.nim | 10 | ||||
-rw-r--r-- | tests/generics/tclosed_sym.nim | 11 | ||||
-rw-r--r-- | tests/generics/tdictdestruct.nim (renamed from tests/destructor/tdictdestruct.nim) | 0 | ||||
-rw-r--r-- | tests/stdlib/tunittest.nim | 5 | ||||
-rw-r--r-- | tests/template/twhen_gensym.nim | 13 |
7 files changed, 112 insertions, 1 deletions
diff --git a/tests/destructor/tdestructor3.nim b/tests/destructor/tdestructor3.nim new file mode 100644 index 000000000..0968f1fd7 --- /dev/null +++ b/tests/destructor/tdestructor3.nim @@ -0,0 +1,47 @@ +discard """ + output: '''assign +destroy +destroy +destroy Foo: 5 +5 +destroy Foo: 123 +123''' +""" + +# bug #2821 +{.experimental.} + +type T = object + +proc `=`(lhs: var T, rhs: T) = + echo "assign" + +proc `=destroy`(v: var T) = + echo "destroy" + +block: + var v1 : T + var v2 : T = v1 + + +# bug #1632 + +type + Foo = object of RootObj + x: int + +proc `=destroy`(a: var Foo) = + echo "destroy Foo: " & $a.x + +template toFooPtr(a: int{lit}): ptr Foo = + var temp = Foo(x:a) + temp.addr + +proc test(a: ptr Foo) = + echo a[].x + +proc main = + test(toFooPtr(5)) + test(toFooPtr(123)) + +main() diff --git a/tests/exception/tdefer1.nim b/tests/exception/tdefer1.nim index 61439530a..cb3d09b01 100644 --- a/tests/exception/tdefer1.nim +++ b/tests/exception/tdefer1.nim @@ -1,6 +1,11 @@ discard """ output: '''hi -hi''' +hi +1 +hi +2 +B +A''' """ # bug #1742 @@ -16,3 +21,23 @@ import strutils let x = try: parseInt("133a") except: -1 finally: echo "hi" + + +template atFuncEnd = + defer: + echo "A" + defer: + echo "B" + +template testB(): expr = + let a = 0 + defer: echo "hi" # Delete this line to make it work + a + +proc main = + atFuncEnd() + echo 1 + let i = testB() + echo 2 + +main() diff --git a/tests/generics/mclosed_sym.nim b/tests/generics/mclosed_sym.nim new file mode 100644 index 000000000..bcccd9a85 --- /dev/null +++ b/tests/generics/mclosed_sym.nim @@ -0,0 +1,10 @@ + +type R* = object + +type Data*[T] = object + d*: T + +proc same(r:R, d:int) = echo "TEST2" + +proc doIt*(d:Data, r:R) = + r.same(1) # Expecting this to invoke the local `same()` method diff --git a/tests/generics/tclosed_sym.nim b/tests/generics/tclosed_sym.nim new file mode 100644 index 000000000..ff620c267 --- /dev/null +++ b/tests/generics/tclosed_sym.nim @@ -0,0 +1,11 @@ +discard """ + output: "TEST2" +""" + +# bug #2664 + +import mclosed_sym + +proc same(r:R, d:int) = echo "TEST1" + +doIt(Data[int](d:123), R()) diff --git a/tests/destructor/tdictdestruct.nim b/tests/generics/tdictdestruct.nim index 17ded4853..17ded4853 100644 --- a/tests/destructor/tdictdestruct.nim +++ b/tests/generics/tdictdestruct.nim diff --git a/tests/stdlib/tunittest.nim b/tests/stdlib/tunittest.nim index fb9b02243..1389214ea 100644 --- a/tests/stdlib/tunittest.nim +++ b/tests/stdlib/tunittest.nim @@ -21,6 +21,11 @@ test "unittest typedescs": check(none(int) != some(1)) +test "unittest multiple requires": + require(true) + require(true) + + import math from strutils import parseInt proc defectiveRobot() = diff --git a/tests/template/twhen_gensym.nim b/tests/template/twhen_gensym.nim new file mode 100644 index 000000000..d84ee6f03 --- /dev/null +++ b/tests/template/twhen_gensym.nim @@ -0,0 +1,13 @@ +discard """ + output: "hi" +""" + +# bug #2670 +template testTemplate(b: bool): stmt = + when b: + var a = "hi" + else: + var a = 5 + echo a + +testTemplate(true) |