summaryrefslogtreecommitdiff
path: root/modules/gdscript/tests
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-02-23 13:54:56 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-02-23 13:54:56 +0100
commit76d80c2cba0ca30585b3c39f2e5b7591b6f1726e (patch)
tree728223723c397ac9027ad08ae90ef1c9afb18df6 /modules/gdscript/tests
parent486b0b690de1b204876367845504cce51b331f9f (diff)
parentb0b1eaeb6de20bd364a471132cd2e29a21b5e738 (diff)
Merge pull request #73798 from vonagam/fix-bad-continue-in-lambda
GDScript: Fix parsing unexpected break/continue in lambda
Diffstat (limited to 'modules/gdscript/tests')
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.gd5
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.gd13
-rw-r--r--modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.out2
4 files changed, 22 insertions, 0 deletions
diff --git a/modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.gd b/modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.gd
new file mode 100644
index 0000000000..319c1801c0
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.gd
@@ -0,0 +1,5 @@
+func test():
+ for index in range(0, 1):
+ var lambda := func():
+ continue
+ print('not ok')
diff --git a/modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.out b/modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.out
new file mode 100644
index 0000000000..262dfbc09b
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/bad_continue_in_lambda.out
@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+Cannot use "continue" outside of a loop.
diff --git a/modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.gd b/modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.gd
new file mode 100644
index 0000000000..2fa45c1d7d
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.gd
@@ -0,0 +1,13 @@
+func test():
+ var i_string := ''
+ for i in 3:
+ if i == 1: continue
+ var lambda := func():
+ var j_string := ''
+ for j in 3:
+ if j == 1: continue
+ j_string += str(j)
+ return j_string
+ i_string += lambda.call()
+ assert(i_string == '0202')
+ print('ok')
diff --git a/modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.out b/modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.out
new file mode 100644
index 0000000000..1b47ed10dc
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/good_continue_in_lambda.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+ok