1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Merge pull request #92584 from HolonProduction/autocompletion-assign-variant

Autocompletion: Fix type resolution when assigning variant
This commit is contained in:
Thaddeus Crews
2025-07-01 17:57:51 -05:00
3 changed files with 13 additions and 1 deletions

View File

@@ -1643,6 +1643,8 @@ static GDScriptCompletionIdentifier _type_from_property(const PropertyInfo &p_pr
if (p_property.type == Variant::NIL) {
// Variant
ci.type.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
ci.type.kind = GDScriptParser::DataType::VARIANT;
return ci;
}
@@ -2341,7 +2343,7 @@ static bool _guess_identifier_type(GDScriptParser::CompletionContext &p_context,
c.current_line = last_assign_line;
GDScriptCompletionIdentifier assigned_type;
if (_guess_expression_type(c, last_assigned_expression, assigned_type)) {
if (id_type.type.is_set() && assigned_type.type.is_set() && !GDScriptAnalyzer::check_type_compatibility(id_type.type, assigned_type.type)) {
if (id_type.type.is_set() && (assigned_type.type.kind == GDScriptParser::DataType::VARIANT || (assigned_type.type.is_set() && !GDScriptAnalyzer::check_type_compatibility(id_type.type, assigned_type.type)))) {
// The assigned type is incompatible. The annotated type takes priority.
r_type = id_type;
r_type.assigned_expression = last_assigned_expression;

View File

@@ -0,0 +1,5 @@
[output]
include=[
; PackedScene
{"display": "instantiate(…)"},
]

View File

@@ -0,0 +1,5 @@
var list: Array
func spawn_npc() -> void:
var scene: PackedScene = list.pick_random()
scene.