mirror of
https://github.com/godotengine/godot.git
synced 2025-11-02 06:31:13 +00:00
GDScript: Fix native_type is empty for autoload without script
This commit is contained in:
parent
f5696c311c
commit
6767de9b69
2 changed files with 13 additions and 3 deletions
|
|
@ -386,6 +386,7 @@ Error GDScriptAnalyzer::resolve_class_inheritance(GDScriptParser::ClassNode *p_c
|
|||
if (!p_class->extends_used) {
|
||||
result.type_source = GDScriptParser::DataType::ANNOTATED_INFERRED;
|
||||
result.kind = GDScriptParser::DataType::NATIVE;
|
||||
result.builtin_type = Variant::OBJECT;
|
||||
result.native_type = SNAME("RefCounted");
|
||||
} else {
|
||||
result.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
|
||||
|
|
@ -464,6 +465,7 @@ Error GDScriptAnalyzer::resolve_class_inheritance(GDScriptParser::ClassNode *p_c
|
|||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
base.kind = GDScriptParser::DataType::NATIVE;
|
||||
base.builtin_type = Variant::OBJECT;
|
||||
base.native_type = name;
|
||||
} else {
|
||||
// Look for other classes in script.
|
||||
|
|
@ -3965,8 +3967,10 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident
|
|||
if (autoload.is_singleton) {
|
||||
// Singleton exists, so it's at least a Node.
|
||||
GDScriptParser::DataType result;
|
||||
result.kind = GDScriptParser::DataType::NATIVE;
|
||||
result.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
|
||||
result.kind = GDScriptParser::DataType::NATIVE;
|
||||
result.builtin_type = Variant::OBJECT;
|
||||
result.native_type = SNAME("Node");
|
||||
if (ResourceLoader::get_resource_type(autoload.path) == "GDScript") {
|
||||
Ref<GDScriptParserRef> singl_parser = get_parser_for(autoload.path);
|
||||
if (singl_parser.is_valid()) {
|
||||
|
|
@ -4839,7 +4843,7 @@ GDScriptParser::DataType GDScriptAnalyzer::type_from_property(const PropertyInfo
|
|||
} else if (class_exists(elem_type_name)) {
|
||||
elem_type.kind = GDScriptParser::DataType::NATIVE;
|
||||
elem_type.builtin_type = Variant::OBJECT;
|
||||
elem_type.native_type = p_property.hint_string;
|
||||
elem_type.native_type = elem_type_name;
|
||||
} else if (ScriptServer::is_global_class(elem_type_name)) {
|
||||
// Just load this as it shouldn't be a GDScript.
|
||||
Ref<Script> script = ResourceLoader::load(ScriptServer::get_global_class_path(elem_type_name));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue