You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
GDScript: Properly detect native class on static call optimization
This commit is contained in:
@@ -4437,6 +4437,7 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident
|
||||
case GDScriptParser::IdentifierNode::UNDEFINED_SOURCE:
|
||||
case GDScriptParser::IdentifierNode::MEMBER_FUNCTION:
|
||||
case GDScriptParser::IdentifierNode::MEMBER_CLASS:
|
||||
case GDScriptParser::IdentifierNode::NATIVE_CLASS:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4507,6 +4508,7 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident
|
||||
case GDScriptParser::IdentifierNode::MEMBER_CLASS:
|
||||
case GDScriptParser::IdentifierNode::INHERITED_VARIABLE:
|
||||
case GDScriptParser::IdentifierNode::STATIC_VARIABLE:
|
||||
case GDScriptParser::IdentifierNode::NATIVE_CLASS:
|
||||
return; // No need to capture.
|
||||
}
|
||||
|
||||
@@ -4539,6 +4541,7 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident
|
||||
}
|
||||
|
||||
if (class_exists(name)) {
|
||||
p_identifier->source = GDScriptParser::IdentifierNode::NATIVE_CLASS;
|
||||
p_identifier->set_datatype(make_native_meta_type(name));
|
||||
return;
|
||||
}
|
||||
@@ -5990,7 +5993,7 @@ void GDScriptAnalyzer::is_shadowing(GDScriptParser::IdentifierNode *p_identifier
|
||||
if (Variant::has_utility_function(name)) {
|
||||
parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, "built-in function");
|
||||
return;
|
||||
} else if (ClassDB::class_exists(name)) {
|
||||
} else if (class_exists(name)) {
|
||||
parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, "native class");
|
||||
return;
|
||||
} else if (ScriptServer::is_global_class(name)) {
|
||||
|
||||
Reference in New Issue
Block a user