diff options
author | Danil Alexeev <danil@alexeev.xyz> | 2023-10-05 13:50:26 +0300 |
---|---|---|
committer | Danil Alexeev <danil@alexeev.xyz> | 2023-10-05 13:50:26 +0300 |
commit | 9e2273abc7f24a7652889a1936b0d8ff71353d60 (patch) | |
tree | 105744795654a3a6c66533d3467c8e683a6959ae /modules/gdscript/tests/scripts | |
parent | c7ed5d795ef396650e1e2853cf0d76cbdb1cb45e (diff) | |
download | redot-engine-9e2273abc7f24a7652889a1936b0d8ff71353d60.tar.gz |
GDScript: Add error when exporting node in non [Node]-derived classes
Diffstat (limited to 'modules/gdscript/tests/scripts')
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]([]) |