Get basic superclass method calls working.

This commit is contained in:
Bob Nystrom
2013-12-13 08:37:49 -08:00
parent 4957728893
commit d54bca3067
7 changed files with 299 additions and 45 deletions

View File

@ -0,0 +1,22 @@
class Base {
foo {
io.write("Base.foo")
}
}
class Derived is Base {
bar {
io.write("Derived.bar")
super.foo
}
}
Derived.new.bar
// expect: Derived.bar
// expect: Base.foo
// TODO(bob): Super constructor calls.
// TODO(bob): Super operator calls.
// TODO(bob): Calling super outside of a class.
// TODO(bob): Super calls inside nested functions in methods.
// TODO(bob): Super where there is no inherited method.

View File

@ -0,0 +1,16 @@
class Base {
foo {
io.write("Base.foo")
}
}
class Derived is Base {
foo {
io.write("Derived.foo")
super.foo
}
}
Derived.new.foo
// expect: Derived.foo
// expect: Base.foo

View File

@ -0,0 +1,18 @@
class A {
foo {
io.write("A.foo")
}
}
class B is A {}
class C is B {
foo {
io.write("C.foo")
super.foo
}
}
C.new.foo
// expect: C.foo
// expect: A.foo