GDScript: Exclude globals internal classes in the analyzer

This commit is contained in:
HolonProduction
2026-06-05 10:26:56 +02:00
parent 3badc0ee23
commit 5a017a1f5e
3 changed files with 15 additions and 5 deletions
+9 -5
View File
@@ -4632,11 +4632,15 @@ void GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode *p_ident
}
if (GDScriptLanguage::get_singleton()->has_any_global_constant(name)) {
Variant constant = GDScriptLanguage::get_singleton()->get_any_global_constant(name);
p_identifier->set_datatype(type_from_variant(constant, p_identifier));
p_identifier->is_constant = true;
p_identifier->reduced_value = constant;
return;
// We checked for `ClassDB` classes above. Any `ClassDB` class that reaches this point is not exposed and should not be accessible.
// TODO: Remove this check once `globals` does only contain publicly available things.
if (!ClassDB::class_exists(name)) {
Variant constant = GDScriptLanguage::get_singleton()->get_any_global_constant(name);
p_identifier->set_datatype(type_from_variant(constant, p_identifier));
p_identifier->is_constant = true;
p_identifier->reduced_value = constant;
return;
}
}
if (CoreConstants::is_global_enum(name)) {