godot/modules/gdscript/tests/scripts/parser/features/property_setter_getter.gd

# 4.0+ replacement for `setget`:
var _backing: int = 0
var property:
	get:
		return _backing + 1000
	set(value):
		_backing = value - 1000

var property_2:
	get(): # Allow parentheses.
		return 123

func test():
	print("Not using self:")
	print(property)
	print(_backing)
	property = 5000
	print(property)
	print(_backing)
	_backing = -50
	print(property)
	print(_backing)
	property = 5000
	print(property)
	print(_backing)

	# In Godot 4.0 and later, using `self` no longer makes a difference for
	# getter/setter execution in GDScript.
	print("Using self:")
	print(self.property)
	print(self._backing)
	self.property = 5000
	print(self.property)
	print(self._backing)
	self._backing = -50
	print(self.property)
	print(self._backing)
	self.property = 5000
	print(self.property)
	print(self._backing)

	print(property_2)