diff options
author | 今井きなみ <kinami.imai@gmail.com> | 2023-06-20 00:47:18 +0200 |
---|---|---|
committer | 今井きなみ <kinami.imai@gmail.com> | 2023-06-21 12:56:57 +0200 |
commit | bf04c5517534848970de1652866b13afac50eba9 (patch) | |
tree | b1ea76e504717b32a78bf831d3362fcc80a2219d /modules/gdscript/tests/scripts/parser | |
parent | 329652b6feac2114c4e30062f18ece36d4e3addc (diff) | |
download | redot-engine-bf04c5517534848970de1652866b13afac50eba9.tar.gz |
Fix lambda parsing continuing on subsequent lines #73273
Diffstat (limited to 'modules/gdscript/tests/scripts/parser')
4 files changed, 92 insertions, 0 deletions
diff --git a/modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.gd b/modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.gd new file mode 100644 index 0000000000..8c5fb46109 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.gd @@ -0,0 +1,6 @@ +# https://github.com/godotengine/godot/issues/73273 + +func not_called(): + var v + v=func(): v=1 + in v diff --git a/modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.out b/modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.out new file mode 100644 index 0000000000..539240f790 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.out @@ -0,0 +1,2 @@ +GDTEST_PARSER_ERROR +Expected statement, found "in" instead. diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.gd b/modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.gd new file mode 100644 index 0000000000..df6001c7e2 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.gd @@ -0,0 +1,59 @@ +# https://github.com/godotengine/godot/issues/73273 + +func other(callable : Callable): + callable.call() + +func four_parameters(_a, callable : Callable, b=func(): print(10)): + callable.call() + b.call() + +func test(): + var v + v=func():v=1 + if true: v=1 + print(v) + print() + + v=func(): print(2) if false else print(3) + @warning_ignore("unsafe_cast") + (v as Callable).call() + print() + + v=func(): + print(4) + print(5) + @warning_ignore("unsafe_cast") + if true: (v as Callable).call() + print() + + other(v) + print() + + other(func(): print(6)) + print() + + other(func(): + print(7) + print(8) + ) + print() + + four_parameters(1,func():print(9)) + four_parameters(1,func():print(9), func(): print(11)) + four_parameters(1,func(): + print(12) + print(13) + , func(): print(11)) + print() + + from_ticket() + +func from_ticket(): + var _v + if true: _v = (func(): test()) + if true: _v = (func(): test()) + if true: _v = (func(): test()) + + if true: _v = func(): test() + if true: _v = func(): test() + print(14) diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.out b/modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.out new file mode 100644 index 0000000000..4347310960 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.out @@ -0,0 +1,25 @@ +GDTEST_OK +1 + +3 + +4 +5 + +4 +5 + +6 + +7 +8 + +9 +10 +9 +11 +12 +13 +11 + +14 |