diff options
Diffstat (limited to 'tests/method/tvarious.nim')
-rw-r--r-- | tests/method/tvarious.nim | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/tests/method/tvarious.nim b/tests/method/tvarious.nim deleted file mode 100644 index fd022717b..000000000 --- a/tests/method/tvarious.nim +++ /dev/null @@ -1,83 +0,0 @@ -discard """ - output: ''' -do nothing -HELLO WORLD! -''' -""" - - -# tmethods1 -method somethin(obj: RootObj) {.base.} = - echo "do nothing" - -type - TNode* = object {.inheritable.} - PNode* = ref TNode - - PNodeFoo* = ref object of TNode - - TSomethingElse = object - PSomethingElse = ref TSomethingElse - -method foo(a: PNode, b: PSomethingElse) {.base.} = discard -method foo(a: PNodeFoo, b: PSomethingElse) = discard - -var o: RootObj -o.somethin() - - - -# tmproto -type - Obj1 = ref object {.inheritable.} - Obj2 = ref object of Obj1 - -method beta(x: Obj1): int {.base.} - -proc delta(x: Obj2): int = - beta(x) - -method beta(x: Obj2): int - -proc alpha(x: Obj1): int = - beta(x) - -method beta(x: Obj1): int = 1 -method beta(x: Obj2): int = 2 - -proc gamma(x: Obj1): int = - beta(x) - -doAssert alpha(Obj1()) == 1 -doAssert gamma(Obj1()) == 1 -doAssert alpha(Obj2()) == 2 -doAssert gamma(Obj2()) == 2 -doAssert delta(Obj2()) == 2 - - - -# tsimmeth -import strutils -var x = "hello world!".toLowerAscii.toUpperAscii -x.echo() - - - -# trecmeth -# Note: We only compile this to verify that code generation -# for recursive methods works, no code is being executed -type Obj = ref object of RootObj - -# Mutual recursion -method alpha(x: Obj) {.base.} -method beta(x: Obj) {.base.} - -method alpha(x: Obj) = - beta(x) - -method beta(x: Obj) = - alpha(x) - -# Simple recursion -method gamma(x: Obj) {.base.} = - gamma(x) |