summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/tests/scripts/runtime
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-05-28 16:21:42 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-05-28 16:21:42 +0200
commitdbc6f2af1d81e9539fdcf8b25bfbed8e0f465cef (patch)
treecc785a0f17c393f706d6f48078cc786cc5518538 /modules/gdscript/tests/scripts/runtime
parente408c77f5777448684e4e920454ef3885791523a (diff)
parent4b692959de8a70edb0ccaef2289570e7fe7a8203 (diff)
downloadredot-engine-dbc6f2af1d81e9539fdcf8b25bfbed8e0f465cef.tar.gz
Merge pull request #92241 from dalexeev/gds-fix-lambda-captures-non-local-vars
GDScript: Fix lambdas capturing non-local variables
Diffstat (limited to 'modules/gdscript/tests/scripts/runtime')
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/lambda_captures.gd26
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/lambda_captures.out5
2 files changed, 31 insertions, 0 deletions
diff --git a/modules/gdscript/tests/scripts/runtime/features/lambda_captures.gd b/modules/gdscript/tests/scripts/runtime/features/lambda_captures.gd
new file mode 100644
index 0000000000..bbdf745540
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/lambda_captures.gd
@@ -0,0 +1,26 @@
+# GH-92217
+# TODO: Add more tests.
+
+static var static_var: int:
+ set(value):
+ prints("set static_var", value)
+ get:
+ print("get static_var")
+ return 0
+
+var member_var: int:
+ set(value):
+ prints("set member_var", value)
+ get:
+ print("get member_var")
+ return 0
+
+func test():
+ var lambda := func ():
+ var _tmp := static_var
+ _tmp = member_var
+
+ static_var = 1
+ member_var = 1
+
+ lambda.call()
diff --git a/modules/gdscript/tests/scripts/runtime/features/lambda_captures.out b/modules/gdscript/tests/scripts/runtime/features/lambda_captures.out
new file mode 100644
index 0000000000..0bdf74a43f
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/lambda_captures.out
@@ -0,0 +1,5 @@
+GDTEST_OK
+get static_var
+get member_var
+set static_var 1
+set member_var 1