From 0a28b4cd94540e1b99ccd79a70bd37170e1cb614 Mon Sep 17 00:00:00 2001 From: George Marques Date: Mon, 23 May 2022 12:25:03 -0300 Subject: GDScript: Do not allow standalone lambdas They cannot be accessed in this case, so an error is shown to avoid misleading the uses, especially in case of named lambdas. --- modules/gdscript/tests/scripts/parser/errors/lambda_standalone.gd | 3 +++ modules/gdscript/tests/scripts/parser/errors/lambda_standalone.out | 2 ++ 2 files changed, 5 insertions(+) create mode 100644 modules/gdscript/tests/scripts/parser/errors/lambda_standalone.gd create mode 100644 modules/gdscript/tests/scripts/parser/errors/lambda_standalone.out (limited to 'modules/gdscript/tests/scripts/parser') diff --git a/modules/gdscript/tests/scripts/parser/errors/lambda_standalone.gd b/modules/gdscript/tests/scripts/parser/errors/lambda_standalone.gd new file mode 100644 index 0000000000..fa0a43094e --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/lambda_standalone.gd @@ -0,0 +1,3 @@ +func test(): + func standalone(): + print("can't be accessed") diff --git a/modules/gdscript/tests/scripts/parser/errors/lambda_standalone.out b/modules/gdscript/tests/scripts/parser/errors/lambda_standalone.out new file mode 100644 index 0000000000..c6830c8258 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/lambda_standalone.out @@ -0,0 +1,2 @@ +GDTEST_PARSER_ERROR +Standalone lambdas cannot be accessed. Consider assigning it to a variable. -- cgit v1.2.3 From 969f1980d29cfc48c45a1bebdc98935b641dda50 Mon Sep 17 00:00:00 2001 From: George Marques Date: Mon, 23 May 2022 21:13:25 -0300 Subject: GDScript: Fix `if` after lambda being seen as ternary --- modules/gdscript/tests/scripts/parser/features/if_after_lambda.gd | 7 +++++++ modules/gdscript/tests/scripts/parser/features/if_after_lambda.out | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 modules/gdscript/tests/scripts/parser/features/if_after_lambda.gd create mode 100644 modules/gdscript/tests/scripts/parser/features/if_after_lambda.out (limited to 'modules/gdscript/tests/scripts/parser') diff --git a/modules/gdscript/tests/scripts/parser/features/if_after_lambda.gd b/modules/gdscript/tests/scripts/parser/features/if_after_lambda.gd new file mode 100644 index 0000000000..f5e26ab1ab --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/if_after_lambda.gd @@ -0,0 +1,7 @@ +# https://github.com/godotengine/godot/issues/61231 + +func test(): + var my_lambda = func(): + print("hello") + if 0 == 0: + my_lambda.call() diff --git a/modules/gdscript/tests/scripts/parser/features/if_after_lambda.out b/modules/gdscript/tests/scripts/parser/features/if_after_lambda.out new file mode 100644 index 0000000000..58774d2d3f --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/if_after_lambda.out @@ -0,0 +1,2 @@ +GDTEST_OK +hello -- cgit v1.2.3 From 1b76a9d70515cc98d9772c72daadbf2634aa788f Mon Sep 17 00:00:00 2001 From: George Marques Date: Mon, 23 May 2022 21:38:31 -0300 Subject: GDScript: Fix lambda captures in default argument values --- .../scripts/parser/features/lambda_default_parameter_capture.gd | 7 +++++++ .../scripts/parser/features/lambda_default_parameter_capture.out | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.gd create mode 100644 modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.out (limited to 'modules/gdscript/tests/scripts/parser') diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.gd b/modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.gd new file mode 100644 index 0000000000..2140b6923e --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.gd @@ -0,0 +1,7 @@ +# https://github.com/godotengine/godot/issues/56751 + +func test(): + var x = "local" + var lambda = func(param = x): + print(param) + lambda.call() diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.out b/modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.out new file mode 100644 index 0000000000..ce3241b94d --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/lambda_default_parameter_capture.out @@ -0,0 +1,2 @@ +GDTEST_OK +local -- cgit v1.2.3