diff options
Diffstat (limited to 'modules/gdscript/tests')
98 files changed, 1018 insertions, 20 deletions
diff --git a/modules/gdscript/tests/scripts/completion/class_a.notest.gd b/modules/gdscript/tests/scripts/completion/class_a.notest.gd new file mode 100644 index 0000000000..47c64dc674 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/class_a.notest.gd @@ -0,0 +1,8 @@ +extends Node + +signal signal_of_a + +var property_of_a + +func func_of_a(): + pass diff --git a/modules/gdscript/tests/scripts/completion/get_node/get_node.tscn b/modules/gdscript/tests/scripts/completion/get_node/get_node.tscn new file mode 100644 index 0000000000..35ac666941 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/get_node.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=2 format=3 uid="uid://c8wekfd5ql7bc"] + +[ext_resource type="Script" path="res://completion/class_a.notest.gd" id="1_ldc4g"] + +[node name="GetNode" type="Node"] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] + +[node name="UniqueNames" type="Node" parent="."] + +[node name="UniqueAnimationPlayer" type="AnimationPlayer" parent="UniqueNames"] +unique_name_in_owner = true + +[node name="UniqueA" type="Node" parent="UniqueNames"] +unique_name_in_owner = true +script = ExtResource("1_ldc4g") + +[node name="A" type="Node" parent="."] +script = ExtResource("1_ldc4g") diff --git a/modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.cfg b/modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.cfg deleted file mode 100644 index 27e695d245..0000000000 --- a/modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.cfg +++ /dev/null @@ -1,4 +0,0 @@ -[output] -include=[ - {"display": "autoplay"}, -] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal/dollar.cfg b/modules/gdscript/tests/scripts/completion/get_node/literal/dollar.cfg new file mode 100644 index 0000000000..ae7d34d87d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal/dollar.cfg @@ -0,0 +1,7 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal/dollar.gd b/modules/gdscript/tests/scripts/completion/get_node/literal/dollar.gd new file mode 100644 index 0000000000..df458a9435 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal/dollar.gd @@ -0,0 +1,4 @@ +extends Node + +func a(): + %AnimationPlayer.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal/percent.cfg b/modules/gdscript/tests/scripts/completion/get_node/literal/percent.cfg new file mode 100644 index 0000000000..ae7d34d87d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal/percent.cfg @@ -0,0 +1,7 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal/percent.gd b/modules/gdscript/tests/scripts/completion/get_node/literal/percent.gd new file mode 100644 index 0000000000..7050761b86 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal/percent.gd @@ -0,0 +1,4 @@ +extends Node + +func a(): + $UniqueAnimationPlayer.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.cfg new file mode 100644 index 0000000000..009ab9f9ce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.gd new file mode 100644 index 0000000000..a84283a1de --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.gd @@ -0,0 +1,4 @@ +extends Node + +func a(): + $A.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.cfg new file mode 100644 index 0000000000..0fb46a4704 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.gd new file mode 100644 index 0000000000..6e3fee1696 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.gd @@ -0,0 +1,4 @@ +extends Node + +func a(): + $AnimationPlayer.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.cfg new file mode 100644 index 0000000000..009ab9f9ce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.gd new file mode 100644 index 0000000000..27f059c944 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.gd @@ -0,0 +1,4 @@ +extends Node + +func a(): + %UniqueA.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.cfg new file mode 100644 index 0000000000..0fb46a4704 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.gd new file mode 100644 index 0000000000..07068fc5a4 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.gd @@ -0,0 +1,4 @@ +extends Node + +func a(): + %UniqueAnimationPlayer.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local/local.cfg b/modules/gdscript/tests/scripts/completion/get_node/local/local.cfg new file mode 100644 index 0000000000..ae7d34d87d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local/local.cfg @@ -0,0 +1,7 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local/local.gd b/modules/gdscript/tests/scripts/completion/get_node/local/local.gd new file mode 100644 index 0000000000..596ad80ef2 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local/local.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test = $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.cfg new file mode 100644 index 0000000000..ae7d34d87d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.cfg @@ -0,0 +1,7 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.gd b/modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.gd new file mode 100644 index 0000000000..6f87af3c85 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test := $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.cfg new file mode 100644 index 0000000000..009ab9f9ce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.gd new file mode 100644 index 0000000000..a710c8bbd7 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test := $A + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.cfg new file mode 100644 index 0000000000..0fb46a4704 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.gd new file mode 100644 index 0000000000..6f87af3c85 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test := $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.cfg new file mode 100644 index 0000000000..009ab9f9ce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.gd new file mode 100644 index 0000000000..2fc88f93dd --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test = $A + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.cfg new file mode 100644 index 0000000000..0fb46a4704 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.gd new file mode 100644 index 0000000000..596ad80ef2 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test = $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.cfg new file mode 100644 index 0000000000..a72b489be6 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.cfg @@ -0,0 +1,12 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.gd new file mode 100644 index 0000000000..b6d2074939 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.gd @@ -0,0 +1,7 @@ +extends Node + +const A := preload("res://completion/class_a.notest.gd") + +func a(): + var test: A = $A + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.cfg new file mode 100644 index 0000000000..adf06c8707 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.cfg @@ -0,0 +1,12 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.gd new file mode 100644 index 0000000000..13b541a35d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test: AnimationPlayer = $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.cfg new file mode 100644 index 0000000000..9c580b711d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.gd new file mode 100644 index 0000000000..b6d2074939 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.gd @@ -0,0 +1,7 @@ +extends Node + +const A := preload("res://completion/class_a.notest.gd") + +func a(): + var test: A = $A + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.cfg new file mode 100644 index 0000000000..446198dd35 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.gd new file mode 100644 index 0000000000..13b541a35d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test: AnimationPlayer = $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.cfg new file mode 100644 index 0000000000..9c580b711d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.notest.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.notest.gd new file mode 100644 index 0000000000..5c785b3ddc --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.notest.gd @@ -0,0 +1,6 @@ +# TODO +extends Node + +func a(): + var test: Node = $A + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.cfg new file mode 100644 index 0000000000..446198dd35 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.notest.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.notest.gd new file mode 100644 index 0000000000..57f4e16e3c --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.notest.gd @@ -0,0 +1,6 @@ +# TODO +extends Node + +func a(): + var test: Node = $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.cfg new file mode 100644 index 0000000000..1894e72c65 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.cfg @@ -0,0 +1,20 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; Area2D + {"display": "get_overlapping_areas"}, + {"display": "linear_damp"}, + {"display": "area_entered"}, +] +exclude=[ + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.gd new file mode 100644 index 0000000000..c6adfe0dd3 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test: Area2D = $A + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.cfg b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.cfg new file mode 100644 index 0000000000..c8ab63f6d6 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.cfg @@ -0,0 +1,20 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; Area2D + {"display": "get_overlapping_areas"}, + {"display": "linear_damp"}, + {"display": "area_entered"}, +] +exclude=[ + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.gd b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.gd new file mode 100644 index 0000000000..f53fce9bfe --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.gd @@ -0,0 +1,5 @@ +extends Node + +func a(): + var test: Area2D = $AnimationPlayer + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member/member.cfg b/modules/gdscript/tests/scripts/completion/get_node/member/member.cfg new file mode 100644 index 0000000000..ae7d34d87d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member/member.cfg @@ -0,0 +1,7 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member/member.gd b/modules/gdscript/tests/scripts/completion/get_node/member/member.gd new file mode 100644 index 0000000000..6bcc0a0298 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member/member.gd @@ -0,0 +1,6 @@ +extends Node + +var test = $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.cfg new file mode 100644 index 0000000000..ae7d34d87d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.cfg @@ -0,0 +1,7 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.gd b/modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.gd new file mode 100644 index 0000000000..542197e643 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.gd @@ -0,0 +1,6 @@ +extends Node + +var test := $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.cfg new file mode 100644 index 0000000000..009ab9f9ce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.gd new file mode 100644 index 0000000000..da0b1b11d4 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.gd @@ -0,0 +1,6 @@ +extends Node + +var test := $A + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.cfg new file mode 100644 index 0000000000..0fb46a4704 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.gd new file mode 100644 index 0000000000..542197e643 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.gd @@ -0,0 +1,6 @@ +extends Node + +var test := $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.cfg new file mode 100644 index 0000000000..009ab9f9ce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.gd new file mode 100644 index 0000000000..4a35661e94 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.gd @@ -0,0 +1,6 @@ +extends Node + +var test = $A + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.cfg new file mode 100644 index 0000000000..0fb46a4704 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.gd new file mode 100644 index 0000000000..6bcc0a0298 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.gd @@ -0,0 +1,6 @@ +extends Node + +var test = $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.cfg new file mode 100644 index 0000000000..a72b489be6 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.cfg @@ -0,0 +1,12 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.gd new file mode 100644 index 0000000000..e4edc3a4e4 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.gd @@ -0,0 +1,8 @@ +extends Node + +const A := preload("res://completion/class_a.notest.gd") + +var test: A = $A + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.cfg new file mode 100644 index 0000000000..adf06c8707 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.cfg @@ -0,0 +1,12 @@ +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.gd index d41bbb970c..eda94ae34d 100644 --- a/modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.gd +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.gd @@ -2,5 +2,5 @@ extends Node var test: AnimationPlayer = $AnimationPlayer -func _ready(): +func a(): test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.cfg new file mode 100644 index 0000000000..9c580b711d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.gd new file mode 100644 index 0000000000..8f68f54072 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.gd @@ -0,0 +1,8 @@ +extends Node + +const A := preload("res://completion/class_a.notest.gd") + +@onready var test: A = $A + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.cfg new file mode 100644 index 0000000000..446198dd35 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.cfg @@ -0,0 +1,14 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.gd new file mode 100644 index 0000000000..eda94ae34d --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.gd @@ -0,0 +1,6 @@ +extends Node + +var test: AnimationPlayer = $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.cfg new file mode 100644 index 0000000000..502038bef7 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.cfg @@ -0,0 +1,16 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + +] +exclude=[ + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.gd new file mode 100644 index 0000000000..7b0ed4ecd8 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.gd @@ -0,0 +1,6 @@ +extends Node + +var test: Node = $A + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.cfg new file mode 100644 index 0000000000..1810e9fe5f --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.cfg @@ -0,0 +1,16 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + +] +exclude=[ + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.gd new file mode 100644 index 0000000000..87342f9a21 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.gd @@ -0,0 +1,6 @@ +extends Node + +var test: Node = $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.cfg new file mode 100644 index 0000000000..1894e72c65 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.cfg @@ -0,0 +1,20 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; Area2D + {"display": "get_overlapping_areas"}, + {"display": "linear_damp"}, + {"display": "area_entered"}, +] +exclude=[ + ; GDScript: class_a.notest.gd + {"display": "property_of_a"}, + {"display": "func_of_a"}, + {"display": "signal_of_a"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.gd new file mode 100644 index 0000000000..5f78bcdf04 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.gd @@ -0,0 +1,6 @@ +extends Node + +var test: Area2D = $A + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.cfg b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.cfg new file mode 100644 index 0000000000..c8ab63f6d6 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.cfg @@ -0,0 +1,20 @@ +[input] +scene="res://completion/get_node/get_node.tscn" +[output] +include=[ + ; Node + {"display": "add_child"}, + {"display": "owner"}, + {"display": "child_entered_tree"}, + + ; Area2D + {"display": "get_overlapping_areas"}, + {"display": "linear_damp"}, + {"display": "area_entered"}, +] +exclude=[ + ; AnimationPlayer + {"display": "autoplay"}, + {"display": "play"}, + {"display": "animation_changed"}, +] diff --git a/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.gd b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.gd new file mode 100644 index 0000000000..c14df5cd1b --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.gd @@ -0,0 +1,6 @@ +extends Node + +var test: Area2D = $AnimationPlayer + +func a(): + test.➡ diff --git a/modules/gdscript/tests/scripts/parser/errors/dollar-assignment-bug-53696.gd b/modules/gdscript/tests/scripts/parser/errors/dollar_assignment_bug_53696.gd index e9690ee93d..e9690ee93d 100644 --- a/modules/gdscript/tests/scripts/parser/errors/dollar-assignment-bug-53696.gd +++ b/modules/gdscript/tests/scripts/parser/errors/dollar_assignment_bug_53696.gd diff --git a/modules/gdscript/tests/scripts/parser/errors/dollar-assignment-bug-53696.out b/modules/gdscript/tests/scripts/parser/errors/dollar_assignment_bug_53696.out index 9fafcb5a64..9fafcb5a64 100644 --- a/modules/gdscript/tests/scripts/parser/errors/dollar-assignment-bug-53696.out +++ b/modules/gdscript/tests/scripts/parser/errors/dollar_assignment_bug_53696.out diff --git a/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_array_type.gd b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_array_type.gd new file mode 100644 index 0000000000..9f1a52856d --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_array_type.gd @@ -0,0 +1,4 @@ +@export_enum("A", "B", "C") var x: Array[Color] + +func test(): + pass diff --git a/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_array_type.out b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_array_type.out new file mode 100644 index 0000000000..1e0455b96d --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_array_type.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +"@export_enum" annotation requires a variable of type "int", "Array[int]", "PackedByteArray", "PackedInt32Array", "PackedInt64Array", "String", "Array[String]", or "PackedStringArray", but type "Array[Color]" was given instead. diff --git a/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_type.gd b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_type.gd new file mode 100644 index 0000000000..5fe66e7cce --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_type.gd @@ -0,0 +1,4 @@ +@export_enum("A", "B", "C") var x: Color + +func test(): + pass diff --git a/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_type.out b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_type.out new file mode 100644 index 0000000000..43a08acc0a --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/errors/export_enum_wrong_type.out @@ -0,0 +1,2 @@ +GDTEST_ANALYZER_ERROR +"@export_enum" annotation requires a variable of type "int", "Array[int]", "PackedByteArray", "PackedInt32Array", "PackedInt64Array", "String", "Array[String]", or "PackedStringArray", but type "Color" was given instead. diff --git a/modules/gdscript/tests/scripts/parser/features/export_arrays.gd b/modules/gdscript/tests/scripts/parser/features/export_arrays.gd new file mode 100644 index 0000000000..ddfb186aa4 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/export_arrays.gd @@ -0,0 +1,86 @@ +const Utils = preload("../../utils.notest.gd") + +@export_dir var test_dir: Array[String] +@export_dir var test_dir_packed: PackedStringArray +@export_file var test_file: Array[String] +@export_file var test_file_packed: PackedStringArray +@export_global_dir var test_global_dir: Array[String] +@export_global_dir var test_global_dir_packed: PackedStringArray +@export_global_file var test_global_file: Array[String] +@export_global_file var test_global_file_packed: PackedStringArray +@export_flags("A", "B", "C") var test_bit_flag: Array[int] +@export_flags("A", "B", "C") var test_bit_flag_packed_byte: PackedByteArray +@export_flags("A", "B", "C") var test_bit_flag_packed32: PackedInt32Array +@export_flags("A", "B", "C") var test_bit_flag_packed64: PackedInt64Array +@export_flags_2d_navigation var test_bit_flag_2d_nav: Array[int] +@export_flags_2d_navigation var test_bit_flag_2d_nav_packed_byte: PackedByteArray +@export_flags_2d_navigation var test_bit_flag_2d_nav_packed32: PackedInt32Array +@export_flags_2d_navigation var test_bit_flag_2d_nav_packed64: PackedInt64Array +@export_flags_2d_physics var test_bit_flag_2d_phys: Array[int] +@export_flags_2d_physics var test_bit_flag_2d_phys_packed_byte: PackedByteArray +@export_flags_2d_physics var test_bit_flag_2d_phys_packed32: PackedInt32Array +@export_flags_2d_physics var test_bit_flag_2d_phys_packed64: PackedInt64Array +@export_flags_2d_render var test_bit_flag_2d_render: Array[int] +@export_flags_2d_render var test_bit_flag_2d_render_packed_byte: PackedByteArray +@export_flags_2d_render var test_bit_flag_2d_render_packed32: PackedInt32Array +@export_flags_2d_render var test_bit_flag_2d_render_packed64: PackedInt64Array +@export_flags_3d_navigation var test_bit_flag_3d_nav: Array[int] +@export_flags_3d_navigation var test_bit_flag_3d_nav_packed_byte: PackedByteArray +@export_flags_3d_navigation var test_bit_flag_3d_nav_packed32: PackedInt32Array +@export_flags_3d_navigation var test_bit_flag_3d_nav_packed64: PackedInt64Array +@export_flags_3d_physics var test_bit_flag_3d_phys: Array[int] +@export_flags_3d_physics var test_bit_flag_3d_phys_packed_byte: PackedByteArray +@export_flags_3d_physics var test_bit_flag_3d_phys_packed32: PackedInt32Array +@export_flags_3d_physics var test_bit_flag_3d_phys_packed64: PackedInt64Array +@export_flags_3d_render var test_bit_flag_3d_render: Array[int] +@export_flags_3d_render var test_bit_flag_3d_render_packed_byte: PackedByteArray +@export_flags_3d_render var test_bit_flag_3d_render_packed32: PackedInt32Array +@export_flags_3d_render var test_bit_flag_3d_render_packed64: PackedInt64Array +@export_multiline var test_multiline: Array[String] +@export_multiline var test_multiline_packed: PackedStringArray +@export_placeholder("Placeholder") var test_placeholder: Array[String] +@export_placeholder("Placeholder") var test_placeholder_packed: PackedStringArray +@export_range(1, 10) var test_range_int: Array[int] +@export_range(1, 10) var test_range_int_packed_byte: PackedByteArray +@export_range(1, 10) var test_range_int_packed32: PackedInt32Array +@export_range(1, 10) var test_range_int_packed64: PackedInt64Array +@export_range(1, 10, 0.01) var test_range_int_float_step: Array[int] +@export_range(1.0, 10.0) var test_range_float: Array[float] +@export_range(1.0, 10.0) var test_range_float_packed32: PackedFloat32Array +@export_range(1.0, 10.0) var test_range_float_packed64: PackedFloat64Array +@export_exp_easing var test_exp_easing: Array[float] +@export_exp_easing var test_exp_easing_packed32: PackedFloat32Array +@export_exp_easing var test_exp_easing_packed64: PackedFloat64Array +@export_node_path var test_node_path: Array[NodePath] +@export_color_no_alpha var test_color: Array[Color] +@export_color_no_alpha var test_color_packed: PackedColorArray + +var temp_packed_byte_array: PackedByteArray +var temp_packed_int32_array: PackedInt32Array +var temp_packed_int64_array: PackedInt64Array +var temp_packed_float32_array: PackedFloat32Array +var temp_packed_float64_array: PackedFloat64Array +var temp_packed_color_array: PackedColorArray +var temp_packed_vector2_array: PackedVector2Array +var temp_packed_vector3_array: PackedVector3Array + +@export var test_weak_packed_byte_array = temp_packed_byte_array +@export var test_weak_packed_int32_array = temp_packed_int32_array +@export var test_weak_packed_int64_array = temp_packed_int64_array +@export var test_weak_packed_float32_array = temp_packed_float32_array +@export var test_weak_packed_float64_array = temp_packed_float64_array +@export var test_weak_packed_color_array = temp_packed_color_array +@export var test_weak_packed_vector2_array = temp_packed_vector2_array +@export var test_weak_packed_vector3_array = temp_packed_vector3_array + +@export_range(1, 10) var test_range_weak_packed_byte_array = temp_packed_byte_array +@export_range(1, 10) var test_range_weak_packed_int32_array = temp_packed_int32_array +@export_range(1, 10) var test_range_weak_packed_int64_array = temp_packed_int64_array +@export_range(1, 10) var test_range_weak_packed_float32_array = temp_packed_float32_array +@export_range(1, 10) var test_range_weak_packed_float64_array = temp_packed_float64_array +@export_color_no_alpha var test_noalpha_weak_packed_color_array = temp_packed_color_array + +func test(): + for property in get_property_list(): + if str(property.name).begins_with("test_"): + Utils.print_property_extended_info(property) diff --git a/modules/gdscript/tests/scripts/parser/features/export_arrays.out b/modules/gdscript/tests/scripts/parser/features/export_arrays.out new file mode 100644 index 0000000000..00e75fcc43 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/export_arrays.out @@ -0,0 +1,137 @@ +GDTEST_OK +var test_dir: Array + hint=TYPE_STRING hint_string="String/DIR:" usage=DEFAULT|SCRIPT_VARIABLE +var test_dir_packed: PackedStringArray + hint=TYPE_STRING hint_string="String/DIR:" usage=DEFAULT|SCRIPT_VARIABLE +var test_file: Array + hint=TYPE_STRING hint_string="String/FILE:" usage=DEFAULT|SCRIPT_VARIABLE +var test_file_packed: PackedStringArray + hint=TYPE_STRING hint_string="String/FILE:" usage=DEFAULT|SCRIPT_VARIABLE +var test_global_dir: Array + hint=TYPE_STRING hint_string="String/GLOBAL_DIR:" usage=DEFAULT|SCRIPT_VARIABLE +var test_global_dir_packed: PackedStringArray + hint=TYPE_STRING hint_string="String/GLOBAL_DIR:" usage=DEFAULT|SCRIPT_VARIABLE +var test_global_file: Array + hint=TYPE_STRING hint_string="String/GLOBAL_FILE:" usage=DEFAULT|SCRIPT_VARIABLE +var test_global_file_packed: PackedStringArray + hint=TYPE_STRING hint_string="String/GLOBAL_FILE:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag: Array + hint=TYPE_STRING hint_string="int/FLAGS:A,B,C" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/FLAGS:A,B,C" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/FLAGS:A,B,C" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/FLAGS:A,B,C" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_nav: Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_nav_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/LAYERS_2D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_nav_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_nav_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_phys: Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_phys_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/LAYERS_2D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_phys_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_phys_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_render: Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_render_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/LAYERS_2D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_render_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_2d_render_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/LAYERS_2D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_nav: Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_nav_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/LAYERS_3D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_nav_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_nav_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_NAVIGATION:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_phys: Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_phys_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/LAYERS_3D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_phys_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_phys_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_PHYSICS:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_render: Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_render_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/LAYERS_3D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_render_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_bit_flag_3d_render_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/LAYERS_3D_RENDER:" usage=DEFAULT|SCRIPT_VARIABLE +var test_multiline: Array + hint=TYPE_STRING hint_string="String/MULTILINE_TEXT:" usage=DEFAULT|SCRIPT_VARIABLE +var test_multiline_packed: PackedStringArray + hint=TYPE_STRING hint_string="String/MULTILINE_TEXT:" usage=DEFAULT|SCRIPT_VARIABLE +var test_placeholder: Array + hint=TYPE_STRING hint_string="String/PLACEHOLDER_TEXT:Placeholder" usage=DEFAULT|SCRIPT_VARIABLE +var test_placeholder_packed: PackedStringArray + hint=TYPE_STRING hint_string="String/PLACEHOLDER_TEXT:Placeholder" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_int: Array + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_int_packed_byte: PackedByteArray + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_int_packed32: PackedInt32Array + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_int_packed64: PackedInt64Array + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_int_float_step: Array + hint=TYPE_STRING hint_string="int/RANGE:1,10,0.01" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_float: Array + hint=TYPE_STRING hint_string="float/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_float_packed32: PackedFloat32Array + hint=TYPE_STRING hint_string="float/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_float_packed64: PackedFloat64Array + hint=TYPE_STRING hint_string="float/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_exp_easing: Array + hint=TYPE_STRING hint_string="float/EXP_EASING:" usage=DEFAULT|SCRIPT_VARIABLE +var test_exp_easing_packed32: PackedFloat32Array + hint=TYPE_STRING hint_string="float/EXP_EASING:" usage=DEFAULT|SCRIPT_VARIABLE +var test_exp_easing_packed64: PackedFloat64Array + hint=TYPE_STRING hint_string="float/EXP_EASING:" usage=DEFAULT|SCRIPT_VARIABLE +var test_node_path: Array + hint=TYPE_STRING hint_string="NodePath/NODE_PATH_VALID_TYPES:" usage=DEFAULT|SCRIPT_VARIABLE +var test_color: Array + hint=TYPE_STRING hint_string="Color/COLOR_NO_ALPHA:" usage=DEFAULT|SCRIPT_VARIABLE +var test_color_packed: PackedColorArray + hint=TYPE_STRING hint_string="Color/COLOR_NO_ALPHA:" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_byte_array: PackedByteArray + hint=TYPE_STRING hint_string="int:int" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_int32_array: PackedInt32Array + hint=TYPE_STRING hint_string="int:int" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_int64_array: PackedInt64Array + hint=TYPE_STRING hint_string="int:int" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_float32_array: PackedFloat32Array + hint=TYPE_STRING hint_string="float:float" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_float64_array: PackedFloat64Array + hint=TYPE_STRING hint_string="float:float" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_color_array: PackedColorArray + hint=TYPE_STRING hint_string="Color:Color" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_vector2_array: PackedVector2Array + hint=TYPE_STRING hint_string="Vector2:Vector2" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_vector3_array: PackedVector3Array + hint=TYPE_STRING hint_string="Vector3:Vector3" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_weak_packed_byte_array: PackedByteArray + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_weak_packed_int32_array: PackedInt32Array + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_weak_packed_int64_array: PackedInt64Array + hint=TYPE_STRING hint_string="int/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_weak_packed_float32_array: PackedFloat32Array + hint=TYPE_STRING hint_string="float/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_range_weak_packed_float64_array: PackedFloat64Array + hint=TYPE_STRING hint_string="float/RANGE:1,10" usage=DEFAULT|SCRIPT_VARIABLE +var test_noalpha_weak_packed_color_array: PackedColorArray + hint=TYPE_STRING hint_string="Color/COLOR_NO_ALPHA:" usage=DEFAULT|SCRIPT_VARIABLE diff --git a/modules/gdscript/tests/scripts/parser/features/export_enum.gd b/modules/gdscript/tests/scripts/parser/features/export_enum.gd index 4f2a43f4fe..7f0737f4db 100644 --- a/modules/gdscript/tests/scripts/parser/features/export_enum.gd +++ b/modules/gdscript/tests/scripts/parser/features/export_enum.gd @@ -1,14 +1,35 @@ const Utils = preload("../../utils.notest.gd") @export_enum("Red", "Green", "Blue") var test_untyped +@export_enum("Red:10", "Green:20", "Blue:30") var test_with_values + +var temp_array_int: Array[int] +var temp_array_string: Array[String] +var temp_packed_byte_array: PackedByteArray +var temp_packed_int32_array: PackedInt32Array +var temp_packed_int64_array: PackedInt64Array +var temp_packed_string_array: PackedStringArray +@export_enum("Red", "Green", "Blue") var test_weak_variant @export_enum("Red", "Green", "Blue") var test_weak_int = 0 @export_enum("Red", "Green", "Blue") var test_weak_string = "" +@export_enum("Red", "Green", "Blue") var test_weak_array_int = temp_array_int +@export_enum("Red", "Green", "Blue") var test_weak_array_string = temp_array_string +@export_enum("Red", "Green", "Blue") var test_weak_packed_byte_array = temp_packed_byte_array +@export_enum("Red", "Green", "Blue") var test_weak_packed_int32_array = temp_packed_int32_array +@export_enum("Red", "Green", "Blue") var test_weak_packed_int64_array = temp_packed_int64_array +@export_enum("Red", "Green", "Blue") var test_weak_packed_string_array = temp_packed_string_array +@export_enum("Red", "Green", "Blue") var test_hard_variant: Variant @export_enum("Red", "Green", "Blue") var test_hard_int: int @export_enum("Red", "Green", "Blue") var test_hard_string: String +@export_enum("Red", "Green", "Blue") var test_hard_array_int: Array[int] +@export_enum("Red", "Green", "Blue") var test_hard_array_string: Array[String] -@export_enum("Red:10", "Green:20", "Blue:30") var test_with_values +@export_enum("Red", "Green", "Blue") var test_variant_array_int: Variant = temp_array_int +@export_enum("Red", "Green", "Blue") var test_variant_packed_int32_array: Variant = temp_packed_int32_array +@export_enum("Red", "Green", "Blue") var test_variant_array_string: Variant = temp_array_string +@export_enum("Red", "Green", "Blue") var test_variant_packed_string_array: Variant = temp_packed_string_array func test(): for property in get_property_list(): diff --git a/modules/gdscript/tests/scripts/parser/features/export_enum.out b/modules/gdscript/tests/scripts/parser/features/export_enum.out index 43f5e197ad..c87f9b17f0 100644 --- a/modules/gdscript/tests/scripts/parser/features/export_enum.out +++ b/modules/gdscript/tests/scripts/parser/features/export_enum.out @@ -1,13 +1,41 @@ GDTEST_OK var test_untyped: int = null hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_with_values: int = null + hint=ENUM hint_string="Red:10,Green:20,Blue:30" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_variant: int = null + hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE var test_weak_int: int = 0 hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE var test_weak_string: String = "" hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_array_int: Array = Array[int]([]) + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_array_string: Array = Array[String]([]) + hint=TYPE_STRING hint_string="String/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_byte_array: PackedByteArray = PackedByteArray() + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_int32_array: PackedInt32Array = PackedInt32Array() + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_int64_array: PackedInt64Array = PackedInt64Array() + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_weak_packed_string_array: PackedStringArray = PackedStringArray() + hint=TYPE_STRING hint_string="String/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_hard_variant: int = null + hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE var test_hard_int: int = 0 hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE var test_hard_string: String = "" hint=ENUM hint_string="Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE -var test_with_values: int = null - hint=ENUM hint_string="Red:10,Green:20,Blue:30" usage=DEFAULT|SCRIPT_VARIABLE +var test_hard_array_int: Array = Array[int]([]) + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_hard_array_string: Array = Array[String]([]) + hint=TYPE_STRING hint_string="String/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_variant_array_int: Array = Array[int]([]) + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_variant_packed_int32_array: PackedInt32Array = PackedInt32Array() + hint=TYPE_STRING hint_string="int/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_variant_array_string: Array = Array[String]([]) + hint=TYPE_STRING hint_string="String/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE +var test_variant_packed_string_array: PackedStringArray = PackedStringArray() + hint=TYPE_STRING hint_string="String/ENUM:Red,Green,Blue" usage=DEFAULT|SCRIPT_VARIABLE diff --git a/modules/gdscript/tests/scripts/parser/features/export_variable.out b/modules/gdscript/tests/scripts/parser/features/export_variable.out index baadcd4ee8..b3f9d0ca9c 100644 --- a/modules/gdscript/tests/scripts/parser/features/export_variable.out +++ b/modules/gdscript/tests/scripts/parser/features/export_variable.out @@ -24,4 +24,4 @@ var test_node_path: NodePath = NodePath("hello") var test_node: Node = null hint=NODE_TYPE hint_string="Node" usage=DEFAULT|SCRIPT_VARIABLE var test_node_array: Array = Array[Node]([]) - hint=TYPE_STRING hint_string="24/34:Node" usage=DEFAULT|SCRIPT_VARIABLE + hint=TYPE_STRING hint_string="Object/NODE_TYPE:Node" usage=DEFAULT|SCRIPT_VARIABLE diff --git a/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.gd b/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.gd index 29d8501b78..193faab5d0 100644 --- a/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.gd +++ b/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.gd @@ -1,11 +1,23 @@ -class Player: - var x = 3 +class_name TestStaticCalledOnInstance + +class Inner: + static func static_func(): + pass + +static func static_func(): + pass func test(): - # These should not emit a warning. - var _player = Player.new() - print(String.num_uint64(8589934592)) # 2 ^ 33 + print(String.num_uint64(8589934592)) + var some_string := String() + print(some_string.num_uint64(8589934592)) # Warning. + + TestStaticCalledOnInstance.static_func() + static_func() + self.static_func() + var other := TestStaticCalledOnInstance.new() + other.static_func() # Warning. - # This should emit a warning. - var some_string = String() - print(some_string.num_uint64(8589934592)) # 2 ^ 33 + Inner.static_func() + var inner := Inner.new() + inner.static_func() # Warning. diff --git a/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.out b/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.out index 77994ce9ba..c00f3d093a 100644 --- a/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.out +++ b/modules/gdscript/tests/scripts/parser/warnings/static_called_on_instance.out @@ -1,7 +1,15 @@ GDTEST_OK >> WARNING ->> Line: 11 +>> Line: 13 >> STATIC_CALLED_ON_INSTANCE >> The function "num_uint64()" is a static function but was called from an instance. Instead, it should be directly called from the type: "String.num_uint64()". +>> WARNING +>> Line: 19 +>> STATIC_CALLED_ON_INSTANCE +>> The function "static_func()" is a static function but was called from an instance. Instead, it should be directly called from the type: "TestStaticCalledOnInstance.static_func()". +>> WARNING +>> Line: 23 +>> STATIC_CALLED_ON_INSTANCE +>> The function "static_func()" is a static function but was called from an instance. Instead, it should be directly called from the type: "Inner.static_func()". 8589934592 8589934592 diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-equals-null.gd b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_equals_null.gd index 809d0d28a9..809d0d28a9 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-equals-null.gd +++ b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_equals_null.gd diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-equals-null.out b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_equals_null.out index 27423ab8e7..27423ab8e7 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-equals-null.out +++ b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_equals_null.out diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-not-equals-null.gd b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_not_equals_null.gd index f46afb0f18..f46afb0f18 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-not-equals-null.gd +++ b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_not_equals_null.gd diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-not-equals-null.out b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_not_equals_null.out index a11c47854a..a11c47854a 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-builtin-not-equals-null.out +++ b/modules/gdscript/tests/scripts/runtime/features/compare_builtin_not_equals_null.out diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-null-equals-builtin.gd b/modules/gdscript/tests/scripts/runtime/features/compare_null_equals_builtin.gd index 7649062fda..7649062fda 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-null-equals-builtin.gd +++ b/modules/gdscript/tests/scripts/runtime/features/compare_null_equals_builtin.gd diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-null-equals-builtin.out b/modules/gdscript/tests/scripts/runtime/features/compare_null_equals_builtin.out index 639f6027b9..639f6027b9 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-null-equals-builtin.out +++ b/modules/gdscript/tests/scripts/runtime/features/compare_null_equals_builtin.out diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-null-not-equals-builtin.gd b/modules/gdscript/tests/scripts/runtime/features/compare_null_not_equals_builtin.gd index 8d5f9df1b8..8d5f9df1b8 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-null-not-equals-builtin.gd +++ b/modules/gdscript/tests/scripts/runtime/features/compare_null_not_equals_builtin.gd diff --git a/modules/gdscript/tests/scripts/runtime/features/compare-null-not-equals-builtin.out b/modules/gdscript/tests/scripts/runtime/features/compare_null_not_equals_builtin.out index d1e332afba..d1e332afba 100644 --- a/modules/gdscript/tests/scripts/runtime/features/compare-null-not-equals-builtin.out +++ b/modules/gdscript/tests/scripts/runtime/features/compare_null_not_equals_builtin.out 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 index c774ebf83c..c774ebf83c 100644 --- 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 diff --git a/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.out b/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on_exit_block.out index 04b4638adf..04b4638adf 100644 --- a/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on exit_block.out +++ b/modules/gdscript/tests/scripts/runtime/features/reset_local_var_on_exit_block.out diff --git a/modules/gdscript/tests/scripts/runtime/features/standalone-calls-do-not-write-to-nil.gd b/modules/gdscript/tests/scripts/runtime/features/standalone_calls_do_not_write_to_nil.gd index 691b611574..691b611574 100644 --- a/modules/gdscript/tests/scripts/runtime/features/standalone-calls-do-not-write-to-nil.gd +++ b/modules/gdscript/tests/scripts/runtime/features/standalone_calls_do_not_write_to_nil.gd diff --git a/modules/gdscript/tests/scripts/runtime/features/standalone-calls-do-not-write-to-nil.out b/modules/gdscript/tests/scripts/runtime/features/standalone_calls_do_not_write_to_nil.out index 5bc3dcf2db..5bc3dcf2db 100644 --- a/modules/gdscript/tests/scripts/runtime/features/standalone-calls-do-not-write-to-nil.out +++ b/modules/gdscript/tests/scripts/runtime/features/standalone_calls_do_not_write_to_nil.out diff --git a/modules/gdscript/tests/scripts/utils.notest.gd b/modules/gdscript/tests/scripts/utils.notest.gd index 31818c9d01..1cf46c179e 100644 --- a/modules/gdscript/tests/scripts/utils.notest.gd +++ b/modules/gdscript/tests/scripts/utils.notest.gd @@ -39,11 +39,46 @@ static func get_property_signature(property: Dictionary, base: Object = null, is return result +static func get_human_readable_hint_string(property: Dictionary) -> String: + if property.type >= TYPE_ARRAY and property.hint == PROPERTY_HINT_TYPE_STRING: + var type_hint_prefixes: String = "" + var hint_string: String = property.hint_string + + while true: + if not hint_string.contains(":"): + push_error("Invalid PROPERTY_HINT_TYPE_STRING format.") + var elem_type_hint: String = hint_string.get_slice(":", 0) + hint_string = hint_string.substr(elem_type_hint.length() + 1) + + var elem_type: int + var elem_hint: int + + if elem_type_hint.is_valid_int(): + elem_type = elem_type_hint.to_int() + type_hint_prefixes += type_string(elem_type) + ":" + else: + if elem_type_hint.count("/") != 1: + push_error("Invalid PROPERTY_HINT_TYPE_STRING format.") + elem_type = elem_type_hint.get_slice("/", 0).to_int() + elem_hint = elem_type_hint.get_slice("/", 1).to_int() + type_hint_prefixes += "%s/%s:" % [ + type_string(elem_type), + get_property_hint_name(elem_hint).trim_prefix("PROPERTY_HINT_"), + ] + + if elem_type < TYPE_ARRAY: + break + + return type_hint_prefixes + hint_string + + return property.hint_string + + static func print_property_extended_info(property: Dictionary, base: Object = null, is_static: bool = false) -> void: print(get_property_signature(property, base, is_static)) print(' hint=%s hint_string="%s" usage=%s' % [ get_property_hint_name(property.hint).trim_prefix("PROPERTY_HINT_"), - str(property.hint_string).c_escape(), + get_human_readable_hint_string(property), get_property_usage_string(property.usage).replace("PROPERTY_USAGE_", ""), ]) diff --git a/modules/gdscript/tests/test_completion.h b/modules/gdscript/tests/test_completion.h index fd6b5321e6..ac9ffcd915 100644 --- a/modules/gdscript/tests/test_completion.h +++ b/modules/gdscript/tests/test_completion.h @@ -139,7 +139,7 @@ static void test_directory(const String &p_dir) { Node *owner = nullptr; if (conf.has_section_key("input", "scene")) { - Ref<PackedScene> scene = ResourceLoader::load(conf.get_value("input", "scene"), "PackedScene"); + Ref<PackedScene> scene = ResourceLoader::load(conf.get_value("input", "scene"), "PackedScene", ResourceFormatLoader::CACHE_MODE_IGNORE_DEEP); if (scene.is_valid()) { owner = scene->instantiate(); } |