More descriptive names of test files (#9531)
* change generic `tissues` name to more specific * change `tvarious` to more specific names
This commit is contained in:
parent
8d9866a6d4
commit
1b17c9f693
20 changed files with 8 additions and 7 deletions
|
|
@ -1,185 +0,0 @@
|
|||
discard """
|
||||
output: '''
|
||||
Version 2 was called.
|
||||
This has the highest precedence.
|
||||
This has the second-highest precedence.
|
||||
This has the lowest precedence.
|
||||
baseobj ==
|
||||
true
|
||||
even better! ==
|
||||
true
|
||||
done extraI=0
|
||||
test 0 complete, loops=0
|
||||
done extraI=1
|
||||
test 1.0 complete, loops=1
|
||||
done extraI=0
|
||||
done extraI passed 0
|
||||
test no extra complete, loops=2
|
||||
1
|
||||
'''
|
||||
"""
|
||||
|
||||
|
||||
# issue 4675
|
||||
import importA # comment this out to make it work
|
||||
import importB
|
||||
|
||||
var x: Foo[float]
|
||||
var y: Foo[float]
|
||||
let r = t1(x) + t2(y)
|
||||
|
||||
|
||||
|
||||
# Bug: https://github.com/nim-lang/Nim/issues/4475
|
||||
# Fix: https://github.com/nim-lang/Nim/pull/4477
|
||||
proc test(x: varargs[string], y: int) = discard
|
||||
test(y = 1)
|
||||
|
||||
|
||||
|
||||
# bug #2220
|
||||
when true:
|
||||
type A[T] = object
|
||||
type B = A[int]
|
||||
|
||||
proc q[X](x: X) =
|
||||
echo "Version 1 was called."
|
||||
|
||||
proc q(x: B) =
|
||||
echo "Version 2 was called."
|
||||
|
||||
q(B()) # This call reported as ambiguous.
|
||||
|
||||
|
||||
|
||||
# bug #2219
|
||||
template testPred(a: untyped) =
|
||||
block:
|
||||
type A = object of RootObj
|
||||
type B = object of A
|
||||
type SomeA = A|A # A hack to make "A" a typeclass.
|
||||
|
||||
when a >= 3:
|
||||
proc p[X: A](x: X) =
|
||||
echo "This has the highest precedence."
|
||||
when a == 2:
|
||||
proc p[X: SomeA](x: X) =
|
||||
echo "This has the second-highest precedence."
|
||||
when a >= 1:
|
||||
proc p[X](x: X) =
|
||||
echo "This has the lowest precedence."
|
||||
|
||||
p(B())
|
||||
|
||||
testPred(3)
|
||||
testPred(2)
|
||||
testPred(1)
|
||||
|
||||
|
||||
|
||||
# bug #6526
|
||||
type
|
||||
BaseObj = ref object of RootObj
|
||||
DerivedObj = ref object of BaseObj
|
||||
OtherDerivate = ref object of BaseObj
|
||||
|
||||
proc `==`*[T1, T2: BaseObj](a: T1, b: T2): bool =
|
||||
echo "baseobj =="
|
||||
return true
|
||||
|
||||
let a = DerivedObj()
|
||||
let b = DerivedObj()
|
||||
echo a == b
|
||||
|
||||
proc `==`*[T1, T2: OtherDerivate](a: T1, b: T2): bool =
|
||||
echo "even better! =="
|
||||
return true
|
||||
|
||||
let a2 = OtherDerivate()
|
||||
let b2 = OtherDerivate()
|
||||
echo a2 == b2
|
||||
|
||||
|
||||
|
||||
# bug #2481
|
||||
import math
|
||||
|
||||
template test(loopCount: int, extraI: int, testBody: untyped): typed =
|
||||
block:
|
||||
for i in 0..loopCount-1:
|
||||
testBody
|
||||
echo "done extraI=", extraI
|
||||
|
||||
template test(loopCount: int, extraF: float, testBody: untyped): typed =
|
||||
block:
|
||||
test(loopCount, round(extraF).int, testBody)
|
||||
|
||||
template test(loopCount: int, testBody: untyped): typed =
|
||||
block:
|
||||
test(loopCount, 0, testBody)
|
||||
echo "done extraI passed 0"
|
||||
|
||||
when isMainModule:
|
||||
var
|
||||
loops = 0
|
||||
|
||||
test 0, 0:
|
||||
loops += 1
|
||||
echo "test 0 complete, loops=", loops
|
||||
|
||||
test 1, 1.0:
|
||||
loops += 1
|
||||
echo "test 1.0 complete, loops=", loops
|
||||
|
||||
when true:
|
||||
# when true we get the following compile time error:
|
||||
# b.nim(35, 6) Error: expression 'loops += 1' has no type (or is ambiguous)
|
||||
loops = 0
|
||||
test 2:
|
||||
loops += 1
|
||||
echo "test no extra complete, loops=", loops
|
||||
|
||||
|
||||
|
||||
|
||||
# bug #2229
|
||||
type
|
||||
Type1 = object
|
||||
id: int
|
||||
Type2 = object
|
||||
id: int
|
||||
|
||||
proc init(self: var Type1, a: int, b: ref Type2) =
|
||||
echo "1"
|
||||
|
||||
proc init(self: var Type2, a: int) =
|
||||
echo """
|
||||
Works when this proc commented out
|
||||
Otherwise error:
|
||||
test.nim(14, 4) Error: ambiguous call; both test.init(self: var Type1, a: int, b: ref Type2) and test.init(self: var Type1, a: int, b: ref Type2) match for: (Type1, int literal(1), ref Type2)
|
||||
"""
|
||||
|
||||
var aa: Type1
|
||||
init(aa, 1, (
|
||||
var bb = new(Type2);
|
||||
bb
|
||||
))
|
||||
|
||||
|
||||
|
||||
# bug #4545
|
||||
type
|
||||
SomeObject = object
|
||||
a: int
|
||||
AbstractObject = object
|
||||
objet: ptr SomeObject
|
||||
|
||||
proc convert(this: var SomeObject): AbstractObject =
|
||||
AbstractObject(objet: this.addr)
|
||||
|
||||
proc varargProc(args: varargs[AbstractObject, convert]): int =
|
||||
for arg in args:
|
||||
result += arg.objet.a
|
||||
|
||||
var obj = SomeObject(a: 17)
|
||||
discard varargProc(obj)
|
||||
Loading…
Add table
Add a link
Reference in a new issue