Files
wren/test/language/inheritance/inherited_fields_in_closure.wren
T
Bob Nystrom 64eccdd9be Reorganize tests and benchmark scripts.
Mainly to get rid of one top level directory. But this will
also be useful when there are tests of the embedding API.
2015-03-14 12:45:56 -07:00

37 lines
899 B
Plaintext

class Foo {
new { _field = "Foo field" }
closeOverFooGet {
return new Fn { new Fn { _field } }
}
closeOverFooSet {
return new Fn { new Fn { _field = "new foo value" } }
}
}
class Bar is Foo {
new {
super
_field = "Bar field"
}
closeOverBarGet {
return new Fn { new Fn { _field } }
}
closeOverBarSet {
return new Fn { new Fn { _field = "new bar value" } }
}
}
var bar = new Bar
IO.print(bar.closeOverFooGet.call().call()) // expect: Foo field
IO.print(bar.closeOverBarGet.call().call()) // expect: Bar field
bar.closeOverFooSet.call().call()
IO.print(bar.closeOverFooGet.call().call()) // expect: new foo value
IO.print(bar.closeOverBarGet.call().call()) // expect: Bar field
bar.closeOverBarSet.call().call()
IO.print(bar.closeOverFooGet.call().call()) // expect: new foo value
IO.print(bar.closeOverBarGet.call().call()) // expect: new bar value