diff options
Diffstat (limited to 'tests/method/tmultim1.nim')
-rw-r--r-- | tests/method/tmultim1.nim | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/tests/method/tmultim1.nim b/tests/method/tmultim1.nim deleted file mode 100644 index 010468a5b..000000000 --- a/tests/method/tmultim1.nim +++ /dev/null @@ -1,29 +0,0 @@ -discard """ - file: "tmultim1.nim" - output: "7" -""" -# Test multi methods - -type - Expression = ref object {.inheritable.} - Literal = ref object of Expression - x: int - PlusExpr = ref object of Expression - a, b: Expression - -method eval(e: Expression): int {.base.} = quit "to override!" -method eval(e: Literal): int = return e.x -method eval(e: PlusExpr): int = return eval(e.a) + eval(e.b) - -proc newLit(x: int): Literal = - new(result) - result.x = x - -proc newPlus(a, b: Expression): PlusExpr = - new(result) - result.a = a - result.b = b - -echo eval(newPlus(newPlus(newLit(1), newLit(2)), newLit(4))) #OUT 7 - - |