summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gdscript/tests')
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.gd2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.gd2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd5
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd11
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.gd10
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.out1
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.gd6
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/lambda_no_continue_on_new_line.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.gd59
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_ends_with_new_line.out25
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.gd10
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.out (renamed from modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.out)2
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.gd28
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.out14
20 files changed, 151 insertions, 38 deletions
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.gd b/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.gd
index 38c2faa859..8709b89b54 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.gd
+++ b/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.gd
@@ -1,2 +1,2 @@
func test():
- CanvasItem.new()
+ InstancePlaceholder.new()
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.out b/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.out
index 9eff912b59..36224c6b6f 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/abstract_class_instantiate.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Native class "CanvasItem" cannot be constructed as it is abstract.
+Native class "InstancePlaceholder" cannot be constructed as it is abstract.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.gd b/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.gd
index 118e7e8a45..be67182efb 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.gd
+++ b/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.gd
@@ -1,4 +1,4 @@
-class A extends CanvasItem:
+class A extends InstancePlaceholder:
func _init():
print('no')
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.out b/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.out
index 8b956f5974..260f062555 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/abstract_script_instantiate.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Class "abstract_script_instantiate.gd::B" cannot be constructed as it is based on abstract native class "CanvasItem".
+Class "abstract_script_instantiate.gd::B" cannot be constructed as it is based on abstract native class "InstancePlaceholder".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd b/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd
deleted file mode 100644
index c34d927035..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.gd
+++ /dev/null
@@ -1,2 +0,0 @@
-func test():
- _get_property_list()
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out b/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out
deleted file mode 100644
index ce2f49a5e5..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/errors/virtual_method_not_implemented.out
+++ /dev/null
@@ -1,2 +0,0 @@
-GDTEST_ANALYZER_ERROR
-Cannot call virtual function "_get_property_list()" because it hasn't been defined.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd b/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd
deleted file mode 100644
index 57dfffdbee..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.gd
+++ /dev/null
@@ -1,5 +0,0 @@
-func _init():
- super()
-
-func test():
- pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out b/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out
deleted file mode 100644
index e68759223c..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/errors/virtual_super_not_implemented.out
+++ /dev/null
@@ -1,2 +0,0 @@
-GDTEST_ANALYZER_ERROR
-Cannot call the parent class' virtual function "_init()" because it hasn't been defined.
diff --git a/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd b/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd
deleted file mode 100644
index 1aacd1d11c..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.gd
+++ /dev/null
@@ -1,11 +0,0 @@
-class TestOne:
- func _get_property_list():
- return {}
-
-class TestTwo extends TestOne:
- func _init():
- var _x = _get_property_list()
-
-func test():
- var x = TestTwo.new()
- var _x = x._get_property_list()
diff --git a/modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.gd b/modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.gd
deleted file mode 100644
index c447003619..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.gd
+++ /dev/null
@@ -1,10 +0,0 @@
-class TestOne:
- func _init():
- pass
-
-class TestTwo extends TestOne:
- func _init():
- super()
-
-func test():
- pass
diff --git a/modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.out b/modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.out
deleted file mode 100644
index d73c5eb7cd..0000000000
--- a/modules/gdscript/tests/scripts/analyzer/features/virtual_super_implemented.out
+++ /dev/null
@@ -1 +0,0 @@
-GDTEST_OK
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/errors/yield_instead_of_await.out b/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out
index 36cb699e92..f68d76d101 100644
--- a/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out
+++ b/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out
@@ -1,2 +1,2 @@
GDTEST_PARSER_ERROR
-"yield" was removed in Godot 4.0. Use "await" instead.
+"yield" was removed in Godot 4. Use "await" 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
diff --git a/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.gd b/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.gd
new file mode 100644
index 0000000000..c774ebf83c
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.gd
@@ -0,0 +1,10 @@
+# GH-77666
+
+func test():
+ var ref := RefCounted.new()
+ print(ref.get_reference_count())
+
+ if true:
+ var _temp := ref
+
+ print(ref.get_reference_count())
diff --git a/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.out b/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.out
index d73c5eb7cd..04b4638adf 100644
--- a/modules/gdscript/tests/scripts/analyzer/features/virtual_method_implemented.out
+++ b/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.out
@@ -1 +1,3 @@
GDTEST_OK
+1
+1
diff --git a/modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.gd b/modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.gd
new file mode 100644
index 0000000000..c45f8dce48
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.gd
@@ -0,0 +1,28 @@
+# GH-56223, GH-76569
+
+func test():
+ for i in 3:
+ var a
+ if true:
+ var b
+ if true:
+ var c
+ prints("Begin:", i, a, b, c)
+ a = 1
+ b = 1
+ c = 1
+ prints("End:", i, a, b, c)
+ print("===")
+ var j := 0
+ while j < 3:
+ var a
+ if true:
+ var b
+ if true:
+ var c
+ prints("Begin:", j, a, b, c)
+ a = 1
+ b = 1
+ c = 1
+ prints("End:", j, a, b, c)
+ j += 1
diff --git a/modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.out b/modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.out
new file mode 100644
index 0000000000..7eddcbf903
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/reset_unassigned_variables_in_loops.out
@@ -0,0 +1,14 @@
+GDTEST_OK
+Begin: 0 <null> <null> <null>
+End: 0 1 1 1
+Begin: 1 <null> <null> <null>
+End: 1 1 1 1
+Begin: 2 <null> <null> <null>
+End: 2 1 1 1
+===
+Begin: 0 <null> <null> <null>
+End: 0 1 1 1
+Begin: 1 <null> <null> <null>
+End: 1 1 1 1
+Begin: 2 <null> <null> <null>
+End: 2 1 1 1