diff options
author | metagn <metagngn@gmail.com> | 2023-06-06 07:54:07 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-06 06:54:07 +0200 |
commit | b97d603cd00a210547bda1a2a1c3e09f97fcc49e (patch) | |
tree | 080b4ad7b5826b88a9483c6a0e4d697096f12cc1 /tests/borrow | |
parent | 2ab948ce53e3d9b80bf9b02644c8ec8991f34d0a (diff) | |
download | Nim-b97d603cd00a210547bda1a2a1c3e09f97fcc49e.tar.gz |
some test cleanups & category reorganization (#22010)
* clean up some test categories * mention exact slice issue * magics into system * move trangechecks into overflow * move tmemory to system * try fix CI * try fix CI * final CI fix
Diffstat (limited to 'tests/borrow')
-rw-r--r-- | tests/borrow/tborrow.nim | 91 | ||||
-rw-r--r-- | tests/borrow/tinvalidborrow.nim | 25 | ||||
-rw-r--r-- | tests/borrow/typeclassborrow.nim | 48 |
3 files changed, 0 insertions, 164 deletions
diff --git a/tests/borrow/tborrow.nim b/tests/borrow/tborrow.nim deleted file mode 100644 index 35652e2e0..000000000 --- a/tests/borrow/tborrow.nim +++ /dev/null @@ -1,91 +0,0 @@ -discard """ - output: '''4887 true -0.5''' -""" - -# test the new borrow feature that works with generics: - -proc `++`*[T: int | float](a, b: T): T = - result = a + b - -type - DI = distinct int - DF = distinct float - DS = distinct string - -proc `++`(x, y: DI): DI {.borrow.} -proc `++`(x, y: DF): DF {.borrow.} - -proc `$`(x: DI): string {.borrow.} -proc `$`(x: DF): string {.borrow.} - -echo 4544.DI ++ 343.DI, " ", (4.5.DF ++ 0.5.DF).float == 5.0 - -# issue #14440 - -type Radians = distinct float64 - -func `-=`(a: var Radians, b: Radians) {.borrow.} - -var a = Radians(1.5) -let b = Radians(1.0) - -a -= b - -echo a.float64 - -block: #14449 - type - Foo[T] = object - foo: T - - Bar[T] {.borrow:`.`.} = distinct Foo[T] - SomeThing {.borrow:`.`.} = distinct Foo[float] - OtherThing {.borrow:`.`.} = distinct SomeThing - - var - a: Bar[int] - b: SomeThing - c: OtherThing - a.foo = 300 - b.foo = 400 - c.foo = 42 - assert a.foo == 300 - assert b.foo == 400d - assert c.foo == 42d - -block: # Borrow from muliple aliasses #16666 - type - AImpl = object - i: int - - A = AImpl - - B {.borrow: `.`.} = distinct A - C = B - D {.borrow: `.`.} = distinct C - E {.borrow: `.`.} = distinct D - - let - b = default(B) - d = default(D) - e = default(E) - - assert b.i == 0 - assert d.i == 0 - assert e.i == 0 - -block: # Borrow from generic alias - type - AImpl[T] = object - i: T - B[T] = AImpl[T] - C {.borrow: `.`.} = distinct B[int] - D = B[float] - E {.borrow: `.`.} = distinct D - - let - c = default(C) - e = default(E) - assert c.i == int(0) - assert e.i == 0d \ No newline at end of file diff --git a/tests/borrow/tinvalidborrow.nim b/tests/borrow/tinvalidborrow.nim deleted file mode 100644 index 08148608d..000000000 --- a/tests/borrow/tinvalidborrow.nim +++ /dev/null @@ -1,25 +0,0 @@ -discard """ - cmd: "nim check --hints:off --warnings:off $file" - action: "reject" - nimout:''' -tinvalidborrow.nim(18, 3) Error: only a 'distinct' type can borrow `.` -tinvalidborrow.nim(19, 3) Error: only a 'distinct' type can borrow `.` -tinvalidborrow.nim(20, 1) Error: no symbol to borrow from found -''' -""" - -# bug #516 - -type - TAtom = culong - Test {.borrow:`.`.} = distinct int - Foo[T] = object - a: int - Bar[T] {.borrow:`.`.} = Foo[T] - OtherFoo {.borrow:`.`.} = Foo[int] -proc `==`*(a, b: TAtom): bool {.borrow.} - -var - d, e: TAtom - -discard( $(d == e) ) diff --git a/tests/borrow/typeclassborrow.nim b/tests/borrow/typeclassborrow.nim deleted file mode 100644 index ee0b07829..000000000 --- a/tests/borrow/typeclassborrow.nim +++ /dev/null @@ -1,48 +0,0 @@ -type - Foo = distinct seq[int] - Bar[N: static[int]] = distinct seq[int] - Baz = distinct Bar[10] - -proc newSeq(s: var Foo, n: Natural) {.borrow.} -proc newSeq(s: var Bar, n: Natural) {.borrow.} -proc newSeq(s: var Baz, n: Natural) {.borrow.} - - -proc `$`(s: Foo): string {.borrow.} -proc `$`(s: Bar): string {.borrow.} -proc `$`(s: Baz): string {.borrow.} - -proc doThing(b: Bar) = discard -proc doThing(b: Baz) {.borrow.} - -var - foo: Foo - bar: Bar[10] - baz: Baz - -newSeq(foo, 100) -newSeq(bar, bar.N) -newSeq(baz, 10) - -bar.doThing() -baz.doThing() - -assert $seq[int](foo) == $foo -assert $seq[int](bar) == $bar -assert $seq[int](baz) == $baz - -type - Fine* = distinct string - -proc `==`*(x, y: Fine): bool {.borrow.} = - ## Here is the documentation - runnableExamples: - var x = Fine("1234") - var y = Fine("1234") - doAssert x == y - doAssert false - - -var x = Fine("1234") -var y = Fine("1234") -doAssert x == y |