More tests for super calls.

This commit is contained in:
Bob Nystrom
2014-04-19 11:51:36 -07:00
parent 48dab5323d
commit 09c707e16a
3 changed files with 27 additions and 1 deletions

View File

@ -0,0 +1,20 @@
class Base {
foo { IO.print("Base.foo") }
foo(a) { IO.print("Base.foo(a)") }
foo(a, b) { IO.print("Base.foo(a, b)") }
}
class Derived is Base {
foo(a) {
IO.print("Derived.bar(a)")
super
super(1)
super(1, 2)
}
}
(new Derived).foo(1)
// expect: Derived.bar(a)
// expect: Base.foo
// expect: Base.foo(a)
// expect: Base.foo(a, b)

View File

@ -16,5 +16,4 @@ class Derived is Base {
// expect: Base.foo
// TODO: Super operator calls.
// TODO: Super where there is no inherited method.
// TODO: Super setter calls.

View File

@ -0,0 +1,7 @@
class Base {}
class Derived is Base {
foo { super.doesNotExist } // expect runtime error: Base does not implement method 'doesNotExist'.
}
(new Derived).foo