Browse Source

Merge pull request #86973 from HolonProduction/tests-batch-1

Add tests for `get_node` autocompletion
Rémi Verschelde 1 year ago
parent
commit
7be96a55c4
72 changed files with 665 additions and 6 deletions
  1. 8 0
      modules/gdscript/tests/scripts/completion/class_a.notest.gd
  2. 19 0
      modules/gdscript/tests/scripts/completion/get_node/get_node.tscn
  3. 0 4
      modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.cfg
  4. 7 0
      modules/gdscript/tests/scripts/completion/get_node/literal/dollar.cfg
  5. 4 0
      modules/gdscript/tests/scripts/completion/get_node/literal/dollar.gd
  6. 7 0
      modules/gdscript/tests/scripts/completion/get_node/literal/percent.cfg
  7. 4 0
      modules/gdscript/tests/scripts/completion/get_node/literal/percent.gd
  8. 14 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.cfg
  9. 4 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.gd
  10. 14 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.cfg
  11. 4 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.gd
  12. 14 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.cfg
  13. 4 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.gd
  14. 14 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.cfg
  15. 4 0
      modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.gd
  16. 7 0
      modules/gdscript/tests/scripts/completion/get_node/local/local.cfg
  17. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local/local.gd
  18. 7 0
      modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.cfg
  19. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.gd
  20. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.cfg
  21. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/class_local_interfered_scene.gd
  22. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.cfg
  23. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_interfered_scene/native_local_interfered_scene.gd
  24. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.cfg
  25. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_scene/class_local_scene.gd
  26. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.cfg
  27. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_scene/native_local_scene.gd
  28. 12 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.cfg
  29. 7 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint/class_local_typehint.gd
  30. 12 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.cfg
  31. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint/native_local_typehint.gd
  32. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.cfg
  33. 7 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/class_local_typehint_scene.gd
  34. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.cfg
  35. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene/native_local_typehint_scene.gd
  36. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.cfg
  37. 6 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/class_local_typehint_scene_broad.notest.gd
  38. 14 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.cfg
  39. 6 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_broad/native_local_typehint_scene_broad.notest.gd
  40. 20 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.cfg
  41. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/class_local_typehint_scene_incompatible.gd
  42. 20 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.cfg
  43. 5 0
      modules/gdscript/tests/scripts/completion/get_node/local_typehint_scene_incompatible/native_local_typehint_scene_incompatible.gd
  44. 7 0
      modules/gdscript/tests/scripts/completion/get_node/member/member.cfg
  45. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member/member.gd
  46. 7 0
      modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.cfg
  47. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.gd
  48. 14 0
      modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.cfg
  49. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/class_member_interfered_scene.gd
  50. 14 0
      modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.cfg
  51. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_interfered_scene/native_member_interfered_scene.gd
  52. 14 0
      modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.cfg
  53. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_scene/class_member_scene.gd
  54. 14 0
      modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.cfg
  55. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_scene/native_member_scene.gd
  56. 12 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.cfg
  57. 8 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint/class_member_typehint.gd
  58. 12 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.cfg
  59. 1 1
      modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.gd
  60. 14 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.cfg
  61. 8 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/class_member_typehint_scene.gd
  62. 14 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.cfg
  63. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene/native_member_typehint_scene.gd
  64. 16 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.cfg
  65. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/class_member_typehint_scene_broad.gd
  66. 16 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.cfg
  67. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_broad/native_member_typehint_scene_broad.gd
  68. 20 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.cfg
  69. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/class_member_typehint_scene_incompatible.gd
  70. 20 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.cfg
  71. 6 0
      modules/gdscript/tests/scripts/completion/get_node/member_typehint_scene_incompatible/native_member_typehint_scene_incompatible.gd
  72. 1 1
      modules/gdscript/tests/test_completion.h

+ 8 - 0
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

+ 19 - 0
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")

+ 0 - 4
modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.cfg

@@ -1,4 +0,0 @@
-[output]
-include=[
-    {"display": "autoplay"},
-]

+ 7 - 0
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"},
+]

+ 4 - 0
modules/gdscript/tests/scripts/completion/get_node/literal/dollar.gd

@@ -0,0 +1,4 @@
+extends Node
+
+func a():
+    %AnimationPlayer.➡

+ 7 - 0
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"},
+]

+ 4 - 0
modules/gdscript/tests/scripts/completion/get_node/literal/percent.gd

@@ -0,0 +1,4 @@
+extends Node
+
+func a():
+    $UniqueAnimationPlayer.➡

+ 14 - 0
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"},
+]

+ 4 - 0
modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_class_scene.gd

@@ -0,0 +1,4 @@
+extends Node
+
+func a():
+    $A.➡

+ 14 - 0
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"},
+]

+ 4 - 0
modules/gdscript/tests/scripts/completion/get_node/literal_scene/dollar_native_scene.gd

@@ -0,0 +1,4 @@
+extends Node
+
+func a():
+    $AnimationPlayer.➡

+ 14 - 0
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"},
+]

+ 4 - 0
modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_class_scene.gd

@@ -0,0 +1,4 @@
+extends Node
+
+func a():
+    %UniqueA.➡

+ 14 - 0
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"},
+]

+ 4 - 0
modules/gdscript/tests/scripts/completion/get_node/literal_scene/percent_native_scene.gd

@@ -0,0 +1,4 @@
+extends Node
+
+func a():
+    %UniqueAnimationPlayer.➡

+ 7 - 0
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"},
+]

+ 5 - 0
modules/gdscript/tests/scripts/completion/get_node/local/local.gd

@@ -0,0 +1,5 @@
+extends Node
+
+func a():
+    var test = $AnimationPlayer
+    test.➡

+ 7 - 0
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"},
+]

+ 5 - 0
modules/gdscript/tests/scripts/completion/get_node/local_interfered/local_interfered.gd

@@ -0,0 +1,5 @@
+extends Node
+
+func a():
+    var test := $AnimationPlayer
+    test.➡

+ 14 - 0
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"},
+]

+ 5 - 0
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.➡

+ 14 - 0
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"},
+]

+ 5 - 0
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.➡

+ 14 - 0
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"},
+]

+ 5 - 0
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.➡

+ 14 - 0
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"},
+]

+ 5 - 0
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.➡

+ 12 - 0
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"},
+]

+ 7 - 0
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.➡

+ 12 - 0
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"},
+]

+ 5 - 0
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.➡

+ 14 - 0
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"},
+]

+ 7 - 0
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.➡

+ 14 - 0
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"},
+]

+ 5 - 0
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.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 20 - 0
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"},
+]

+ 5 - 0
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.➡

+ 20 - 0
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"},
+]

+ 5 - 0
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.➡

+ 7 - 0
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"},
+]

+ 6 - 0
modules/gdscript/tests/scripts/completion/get_node/member/member.gd

@@ -0,0 +1,6 @@
+extends Node
+
+var test = $AnimationPlayer
+
+func a():
+    test.➡

+ 7 - 0
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"},
+]

+ 6 - 0
modules/gdscript/tests/scripts/completion/get_node/member_interfered/member_interfered.gd

@@ -0,0 +1,6 @@
+extends Node
+
+var test := $AnimationPlayer
+
+func a():
+    test.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 12 - 0
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"},
+]

+ 8 - 0
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.➡

+ 12 - 0
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"},
+]

+ 1 - 1
modules/gdscript/tests/scripts/completion/get_node/get_node_member_annotated.gd → modules/gdscript/tests/scripts/completion/get_node/member_typehint/native_member_typehint.gd

@@ -2,5 +2,5 @@ extends Node
 
 
 var test: AnimationPlayer = $AnimationPlayer
 var test: AnimationPlayer = $AnimationPlayer
 
 
-func _ready():
+func a():
     test.➡
     test.➡

+ 14 - 0
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"},
+]

+ 8 - 0
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.➡

+ 14 - 0
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"},
+]

+ 6 - 0
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.➡

+ 16 - 0
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"},
+]

+ 6 - 0
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.➡

+ 16 - 0
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"},
+]

+ 6 - 0
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.➡

+ 20 - 0
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"},
+]

+ 6 - 0
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.➡

+ 20 - 0
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"},
+]

+ 6 - 0
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.➡

+ 1 - 1
modules/gdscript/tests/test_completion.h

@@ -139,7 +139,7 @@ static void test_directory(const String &p_dir) {
 
 
 			Node *owner = nullptr;
 			Node *owner = nullptr;
 			if (conf.has_section_key("input", "scene")) {
 			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()) {
 				if (scene.is_valid()) {
 					owner = scene->instantiate();
 					owner = scene->instantiate();
 				}
 				}