Merge pull request #92558 from dalexeev/gds-adjust-inferred-declaration
GDScript: Do not produce `INFERRED_DECLARATION` on type import
This commit is contained in:
commit
cd53026b2c
1 changed files with 6 additions and 1 deletions
|
@ -1971,7 +1971,12 @@ void GDScriptAnalyzer::resolve_assignable(GDScriptParser::AssignableNode *p_assi
|
||||||
const bool is_parameter = p_assignable->type == GDScriptParser::Node::PARAMETER;
|
const bool is_parameter = p_assignable->type == GDScriptParser::Node::PARAMETER;
|
||||||
const String declaration_type = is_constant ? "Constant" : (is_parameter ? "Parameter" : "Variable");
|
const String declaration_type = is_constant ? "Constant" : (is_parameter ? "Parameter" : "Variable");
|
||||||
if (p_assignable->infer_datatype || is_constant) {
|
if (p_assignable->infer_datatype || is_constant) {
|
||||||
parser->push_warning(p_assignable, GDScriptWarning::INFERRED_DECLARATION, declaration_type, p_assignable->identifier->name);
|
// Do not produce the `INFERRED_DECLARATION` warning on type import because there is no way to specify the true type.
|
||||||
|
// And removing the metatype makes it impossible to use the constant as a type hint (especially for enums).
|
||||||
|
const bool is_type_import = is_constant && p_assignable->initializer != nullptr && p_assignable->initializer->datatype.is_meta_type;
|
||||||
|
if (!is_type_import) {
|
||||||
|
parser->push_warning(p_assignable, GDScriptWarning::INFERRED_DECLARATION, declaration_type, p_assignable->identifier->name);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
parser->push_warning(p_assignable, GDScriptWarning::UNTYPED_DECLARATION, declaration_type, p_assignable->identifier->name);
|
parser->push_warning(p_assignable, GDScriptWarning::UNTYPED_DECLARATION, declaration_type, p_assignable->identifier->name);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue