From 87c90a573c26ddcbe1b5d9f523b57a89d76dc6df Mon Sep 17 00:00:00 2001 From: George Marques Date: Tue, 9 Jul 2024 12:45:07 -0300 Subject: GDScript: Call setter on simple setter chain without getter Fixes a bug where a member variable was being set directly before calling the setter. --- .../runtime/features/simple_setter_chain_call_setter.gd | 13 +++++++++++++ .../runtime/features/simple_setter_chain_call_setter.out | 4 ++++ 2 files changed, 17 insertions(+) create mode 100644 modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.gd create mode 100644 modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.out (limited to 'modules/gdscript/tests/scripts') diff --git a/modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.gd b/modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.gd new file mode 100644 index 0000000000..9e27a500bf --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.gd @@ -0,0 +1,13 @@ +# https://github.com/godotengine/godot/issues/85952 + +var vec: Vector2 = Vector2.ZERO: + set(new_vec): + prints("setting vec from", vec, "to", new_vec) + if new_vec == Vector2(1, 1): + vec = new_vec + +func test(): + vec.x = 2 + vec.y = 2 + + prints("vec is", vec) diff --git a/modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.out b/modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.out new file mode 100644 index 0000000000..31b3b3a3a8 --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/simple_setter_chain_call_setter.out @@ -0,0 +1,4 @@ +GDTEST_OK +setting vec from (0, 0) to (2, 0) +setting vec from (0, 0) to (0, 2) +vec is (0, 0) -- cgit v1.2.3