Files
wren/test/this/nested_class.wren
T
Bob Nystrom e3b3fef0fb feat: make this the implicit receiver for method calls inside class bodies
In the compiler, when a bare name is encountered inside a class definition and it does not resolve to a local variable or global, emit an implicit `this.` load before the call, enabling getter, setter, and method calls without explicit receiver. Update all benchmark, builtin, and test files to remove redundant `this.` qualifiers, and add comprehensive test suites for implicit receiver behavior across instance, inherited, static, nested, and shadowing scenarios.
2014-02-13 01:33:35 +00:00

23 lines
337 B
Plaintext

class Outer {
method {
IO.print(this) // expect: Outer
fn {
IO.print(this) // expect: Outer
class Inner {
method {
IO.print(this) // expect: Inner
}
toString { return "Inner" }
}
(new Inner).method
}.call
}
toString { return "Outer" }
}
(new Outer).method