summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/tests/scripts
diff options
context:
space:
mode:
authorDanil Alexeev <danil@alexeev.xyz>2023-10-05 13:50:26 +0300
committerDanil Alexeev <danil@alexeev.xyz>2023-10-05 13:50:26 +0300
commit9e2273abc7f24a7652889a1936b0d8ff71353d60 (patch)
tree105744795654a3a6c66533d3467c8e683a6959ae /modules/gdscript/tests/scripts
parentc7ed5d795ef396650e1e2853cf0d76cbdb1cb45e (diff)
downloadredot-engine-9e2273abc7f24a7652889a1936b0d8ff71353d60.tar.gz
GDScript: Add error when exporting node in non [Node]-derived classes
Diffstat (limited to 'modules/gdscript/tests/scripts')
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.gd8
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.gd9
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.gd8
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/export_variable.gd7
-rw-r--r--modules/gdscript/tests/scripts/parser/features/export_variable.out2
8 files changed, 39 insertions, 1 deletions
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.gd b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.gd
new file mode 100644
index 0000000000..05aa726a05
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.gd
@@ -0,0 +1,8 @@
+# GH-82809
+
+extends Resource
+
+@export var node: Node
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.out b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.out
new file mode 100644
index 0000000000..9a45bbb515
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_1.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Node export is only supported in Node-derived classes, but the current class inherits "Resource".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.gd b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.gd
new file mode 100644
index 0000000000..c210e7c043
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.gd
@@ -0,0 +1,9 @@
+# GH-82809
+
+extends Node
+
+class Inner:
+ @export var node: Node
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.out b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.out
new file mode 100644
index 0000000000..3da6d6d7ac
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_2.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Node export is only supported in Node-derived classes, but the current class inherits "RefCounted".
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.gd b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.gd
new file mode 100644
index 0000000000..6f2c104643
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.gd
@@ -0,0 +1,8 @@
+# GH-82809
+
+extends Resource
+
+@export var node_array: Array[Node]
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.out b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.out
new file mode 100644
index 0000000000..9a45bbb515
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/export_node_in_non_node_derived_class_3.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+Node export is only supported in Node-derived classes, but the current class inherits "Resource".
diff --git a/modules/gdscript/tests/scripts/parser/features/export_variable.gd b/modules/gdscript/tests/scripts/parser/features/export_variable.gd
index acf9ff2e21..c9d05a7e68 100644
--- a/modules/gdscript/tests/scripts/parser/features/export_variable.gd
+++ b/modules/gdscript/tests/scripts/parser/features/export_variable.gd
@@ -1,3 +1,5 @@
+extends Node
+
@export var example = 99
@export_range(0, 100) var example_range = 100
@export_range(0, 100, 1) var example_range_step = 101
@@ -6,7 +8,8 @@
@export var color: Color
@export_color_no_alpha var color_no_alpha: Color
@export_node_path("Sprite2D", "Sprite3D", "Control", "Node") var nodepath := ^"hello"
-
+@export var node: Node
+@export var node_array: Array[Node]
func test():
print(example)
@@ -16,3 +19,5 @@ func test():
print(color)
print(color_no_alpha)
print(nodepath)
+ print(node)
+ print(var_to_str(node_array))
diff --git a/modules/gdscript/tests/scripts/parser/features/export_variable.out b/modules/gdscript/tests/scripts/parser/features/export_variable.out
index bae35e75c6..5430c975f4 100644
--- a/modules/gdscript/tests/scripts/parser/features/export_variable.out
+++ b/modules/gdscript/tests/scripts/parser/features/export_variable.out
@@ -6,3 +6,5 @@ GDTEST_OK
(0, 0, 0, 1)
(0, 0, 0, 1)
hello
+<null>
+Array[Node]([])