summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_editor.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-10-05 10:10:09 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-10-05 10:10:09 +0200
commita05c800a563511af5347d5e7e425c0372e1fe577 (patch)
tree7c5d59860678edbcccd0ef6c18ec15d656172471 /modules/gdscript/gdscript_editor.cpp
parent5cee7b02640f1223f478504ca136d1cc0806e5b9 (diff)
parent6767de9b6903384baa00b715af8bbe4e69afed81 (diff)
downloadredot-engine-a05c800a563511af5347d5e7e425c0372e1fe577.tar.gz
Merge pull request #82784 from dalexeev/gds-fix-empty-native-class
GDScript: Fix `native_type` is empty for autoload without script
Diffstat (limited to 'modules/gdscript/gdscript_editor.cpp')
-rw-r--r--modules/gdscript/gdscript_editor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp
index 2f26069281..9cd3560063 100644
--- a/modules/gdscript/gdscript_editor.cpp
+++ b/modules/gdscript/gdscript_editor.cpp
@@ -1122,6 +1122,7 @@ static void _find_identifiers_in_base(const GDScriptCompletionIdentifier &p_base
base_type.script_type = base_script;
} else {
base_type.kind = GDScriptParser::DataType::NATIVE;
+ base_type.builtin_type = Variant::OBJECT;
base_type.native_type = scr->get_instance_base_type();
}
} else {
@@ -1626,6 +1627,7 @@ static bool _guess_expression_type(GDScriptParser::CompletionContext &p_context,
native_type.script_type = parent;
} else {
native_type.kind = GDScriptParser::DataType::NATIVE;
+ native_type.builtin_type = Variant::OBJECT;
native_type.native_type = native_type.script_type->get_instance_base_type();
if (!ClassDB::class_exists(native_type.native_type)) {
native_type.kind = GDScriptParser::DataType::UNRESOLVED;
@@ -2155,6 +2157,7 @@ static bool _guess_identifier_type(GDScriptParser::CompletionContext &p_context,
if (ClassDB::class_exists(p_identifier->name) && ClassDB::is_class_exposed(p_identifier->name)) {
r_type.type.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
r_type.type.kind = GDScriptParser::DataType::NATIVE;
+ r_type.type.builtin_type = Variant::OBJECT;
r_type.type.native_type = p_identifier->name;
r_type.type.is_constant = true;
if (Engine::get_singleton()->has_singleton(p_identifier->name)) {
@@ -2281,6 +2284,7 @@ static bool _guess_identifier_type_from_base(GDScriptParser::CompletionContext &
base_type.script_type = parent;
} else {
base_type.kind = GDScriptParser::DataType::NATIVE;
+ base_type.builtin_type = Variant::OBJECT;
base_type.native_type = scr->get_instance_base_type();
}
} else {
@@ -2450,6 +2454,7 @@ static bool _guess_method_return_type_from_base(GDScriptParser::CompletionContex
base_type.script_type = base_script;
} else {
base_type.kind = GDScriptParser::DataType::NATIVE;
+ base_type.builtin_type = Variant::OBJECT;
base_type.native_type = scr->get_instance_base_type();
}
} else {
@@ -2705,8 +2710,8 @@ static bool _get_subscript_type(GDScriptParser::CompletionContext &p_context, co
}
r_base_type.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
r_base_type.kind = GDScriptParser::DataType::NATIVE;
- r_base_type.native_type = node->get_class_name();
r_base_type.builtin_type = Variant::OBJECT;
+ r_base_type.native_type = node->get_class_name();
return true;
}
}
@@ -3260,6 +3265,7 @@ static Error _lookup_symbol_from_base(const GDScriptParser::DataType &p_base, co
base_type.script_type = base_script;
} else {
base_type.kind = GDScriptParser::DataType::NATIVE;
+ base_type.builtin_type = Variant::OBJECT;
base_type.native_type = scr->get_instance_base_type();
}
} else {