diff options
author | Daniil Yarancev <21169548+Yardanico@users.noreply.github.com> | 2017-09-16 23:54:32 +0300 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-09-16 22:54:32 +0200 |
commit | ae7fe5087f3e4f6ddc572254ae3ddcc8324099f1 (patch) | |
tree | b88ec2af2620a8e2a3325dc7c64657b6594edb13 /tests | |
parent | 5b8f33a9058b78e2e714ce341107ac52d98dcc5f (diff) | |
download | Nim-ae7fe5087f3e4f6ddc572254ae3ddcc8324099f1.tar.gz |
Closes #6083, closes #6086, closes #6379 (#6392)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/vm/tvmmisc.nim | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/tests/vm/tvmmisc.nim b/tests/vm/tvmmisc.nim index b7112b099..42a58fa8f 100644 --- a/tests/vm/tvmmisc.nim +++ b/tests/vm/tvmmisc.nim @@ -1,16 +1,66 @@ - - # bug #4462 import macros -proc foo(t: typedesc) {.compileTime.} = - echo getType(t).treeRepr +block: + proc foo(t: typedesc) {.compileTime.} = + assert sameType(getType(t), getType(int)) -static: - foo(int) + static: + foo(int) # #4412 -proc default[T](t: typedesc[T]): T {.inline.} = discard +block: + proc default[T](t: typedesc[T]): T {.inline.} = discard + + static: + var x = default(type(0)) +# #6379 static: - var x = default(type(0)) + import algorithm + + var numArray = [1, 2, 3, 4, -1] + numArray.sort(cmp) + assert numArray == [-1, 1, 2, 3, 4] + + var str = "cba" + str.sort(cmp) + assert str == "abc" + +# #6086 +import math, sequtils, future + +block: + proc f: int = + toSeq(10..<10_000).filter( + a => a == ($a).map( + d => (d.ord-'0'.ord).int^4 + ).sum + ).sum + + var a = f() + const b = f() + + assert a == b + +block: + proc f(): seq[char] = + result = "hello".map(proc(x: char): char = x) + + var runTime = f() + const compTime = f() + assert runTime == compTime + +# #6083 +block: + proc abc(): seq[int] = + result = @[0] + result.setLen(2) + var tmp: int + + for i in 0 .. <2: + inc tmp + result[i] = tmp + + const fact1000 = abc() + assert fact1000 == @[1, 2] |