mirror of
https://github.com/godotengine/godot.git
synced 2024-11-25 13:43:15 +00:00
Merge pull request #81440 from ryanabx/features/warn-strict-supertype-only
Remove `REDUNDANT_FOR_VARIABLE_TYPE` warning
This commit is contained in:
commit
223fc3cdd3
@ -492,9 +492,6 @@
|
||||
<member name="debug/gdscript/warnings/redundant_await" type="int" setter="" getter="" default="1">
|
||||
When set to [code]warn[/code] or [code]error[/code], produces a warning or an error respectively when a function that is not a coroutine is called with await.
|
||||
</member>
|
||||
<member name="debug/gdscript/warnings/redundant_for_variable_type" type="int" setter="" getter="" default="1">
|
||||
When set to [code]warn[/code] or [code]error[/code], produces a warning or an error respectively when a [code]for[/code] variable type specifier is a supertype of the inferred type.
|
||||
</member>
|
||||
<member name="debug/gdscript/warnings/redundant_static_unload" type="int" setter="" getter="" default="1">
|
||||
When set to [code]warn[/code] or [code]error[/code], produces a warning or an error respectively when the [code]@static_unload[/code] annotation is used in a script without any static variables.
|
||||
</member>
|
||||
|
@ -2142,15 +2142,7 @@ void GDScriptAnalyzer::resolve_for(GDScriptParser::ForNode *p_for) {
|
||||
}
|
||||
} else if (!is_type_compatible(specified_type, variable_type)) {
|
||||
p_for->use_conversion_assign = true;
|
||||
#ifdef DEBUG_ENABLED
|
||||
} else {
|
||||
parser->push_warning(p_for->datatype_specifier, GDScriptWarning::REDUNDANT_FOR_VARIABLE_TYPE, p_for->variable->name, variable_type.to_string(), specified_type.to_string());
|
||||
#endif
|
||||
}
|
||||
#ifdef DEBUG_ENABLED
|
||||
} else if (variable_type.is_hard_type()) {
|
||||
parser->push_warning(p_for->datatype_specifier, GDScriptWarning::REDUNDANT_FOR_VARIABLE_TYPE, p_for->variable->name, variable_type.to_string(), specified_type.to_string());
|
||||
#endif
|
||||
}
|
||||
p_for->variable->set_datatype(specified_type);
|
||||
} else {
|
||||
|
@ -119,14 +119,6 @@ String GDScriptWarning::get_message() const {
|
||||
return R"(The "@static_unload" annotation is redundant because the file does not have a class with static variables.)";
|
||||
case REDUNDANT_AWAIT:
|
||||
return R"("await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.)";
|
||||
case REDUNDANT_FOR_VARIABLE_TYPE:
|
||||
CHECK_SYMBOLS(3);
|
||||
if (symbols[1] == symbols[2]) {
|
||||
return vformat(R"(The for loop iterator "%s" already has inferred type "%s", the specified type is redundant.)", symbols[0], symbols[1]);
|
||||
} else {
|
||||
return vformat(R"(The for loop iterator "%s" has inferred type "%s" but its supertype "%s" is specified.)", symbols[0], symbols[1], symbols[2]);
|
||||
}
|
||||
break;
|
||||
case ASSERT_ALWAYS_TRUE:
|
||||
return "Assert statement is redundant because the expression is always true.";
|
||||
case ASSERT_ALWAYS_FALSE:
|
||||
@ -224,7 +216,6 @@ String GDScriptWarning::get_name_from_code(Code p_code) {
|
||||
"STATIC_CALLED_ON_INSTANCE",
|
||||
"REDUNDANT_STATIC_UNLOAD",
|
||||
"REDUNDANT_AWAIT",
|
||||
"REDUNDANT_FOR_VARIABLE_TYPE",
|
||||
"ASSERT_ALWAYS_TRUE",
|
||||
"ASSERT_ALWAYS_FALSE",
|
||||
"INTEGER_DIVISION",
|
||||
|
@ -74,7 +74,6 @@ public:
|
||||
STATIC_CALLED_ON_INSTANCE, // A static method was called on an instance of a class instead of on the class itself.
|
||||
REDUNDANT_STATIC_UNLOAD, // The `@static_unload` annotation is used but the class does not have static data.
|
||||
REDUNDANT_AWAIT, // await is used but expression is synchronous (not a signal nor a coroutine).
|
||||
REDUNDANT_FOR_VARIABLE_TYPE, // The for variable type specifier is a supertype of the inferred type.
|
||||
ASSERT_ALWAYS_TRUE, // Expression for assert argument is always true.
|
||||
ASSERT_ALWAYS_FALSE, // Expression for assert argument is always false.
|
||||
INTEGER_DIVISION, // Integer divide by integer, decimal part is discarded.
|
||||
@ -123,7 +122,6 @@ public:
|
||||
WARN, // STATIC_CALLED_ON_INSTANCE
|
||||
WARN, // REDUNDANT_STATIC_UNLOAD
|
||||
WARN, // REDUNDANT_AWAIT
|
||||
WARN, // REDUNDANT_FOR_VARIABLE_TYPE
|
||||
WARN, // ASSERT_ALWAYS_TRUE
|
||||
WARN, // ASSERT_ALWAYS_FALSE
|
||||
WARN, // INTEGER_DIVISION
|
||||
|
@ -1,4 +0,0 @@
|
||||
func test():
|
||||
var a: Array[Node] = []
|
||||
for node: Node in a:
|
||||
print(node)
|
@ -1,5 +0,0 @@
|
||||
GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 3
|
||||
>> REDUNDANT_FOR_VARIABLE_TYPE
|
||||
>> The for loop iterator "node" already has inferred type "Node", the specified type is redundant.
|
@ -1,4 +0,0 @@
|
||||
func test():
|
||||
var a: Array[Node2D] = []
|
||||
for node: Node in a:
|
||||
print(node)
|
@ -1,5 +0,0 @@
|
||||
GDTEST_OK
|
||||
>> WARNING
|
||||
>> Line: 3
|
||||
>> REDUNDANT_FOR_VARIABLE_TYPE
|
||||
>> The for loop iterator "node" has inferred type "Node2D" but its supertype "Node" is specified.
|
Loading…
Reference in New Issue
Block a user