Skip to content

Commit

Permalink
GDScript: Do not produce INFERRED_DECLARATION on type import
Browse files Browse the repository at this point in the history
  • Loading branch information
dalexeev committed May 30, 2024
1 parent 2551986 commit 3fd30ed
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion modules/gdscript/gdscript_analyzer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1971,7 +1971,12 @@ void GDScriptAnalyzer::resolve_assignable(GDScriptParser::AssignableNode *p_assi
const bool is_parameter = p_assignable->type == GDScriptParser::Node::PARAMETER;
const String declaration_type = is_constant ? "Constant" : (is_parameter ? "Parameter" : "Variable");
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 {
parser->push_warning(p_assignable, GDScriptWarning::UNTYPED_DECLARATION, declaration_type, p_assignable->identifier->name);
}
Expand Down

0 comments on commit 3fd30ed

Please sign in to comment.