Trying to update a field from a subclass and print the results doesn’t work.
class A {
name {
_name
}
name=(value){
_name=value
}
construct new () {
_name = "hello"
}
thing() {
System.print(name)
}
}
class B is A {
construct new () {}
update(name){
super.name = name
return this
}
}
var b = B.new()
b.update("world").thing()
If you change System.print(name) to System.print(_name) it works but it doesn’t when using the getter. You get null when System.print(name) is called.
Trying to update a field from a subclass and print the results doesn’t work.
If you change System.print(name) to System.print(_name) it works but it doesn’t when using the getter. You get null when System.print(name) is called.Same if you use this.name
Your `name` getter isn't working properly. Weirdly, Wren's implicit returns only work for functions written on a single line.
The getter either needs to be (exactly) `name { _name }` or it needs to explicitly `return _name`.
https://wren.io/functions.html#returning-values
That was it. Nuance in the “no new line after…” parsing. Thanks, it works now. Awesome!