use correct error for unused bind match, suppress with underscore
This commit is contained in:
parent
c0bf18e923
commit
3d61246bc4
3 changed files with 21 additions and 2 deletions
|
@ -1657,8 +1657,8 @@ void GDScriptAnalyzer::resolve_match_pattern(GDScriptParser::PatternNode *p_matc
|
||||||
p_match_pattern->bind->set_datatype(result);
|
p_match_pattern->bind->set_datatype(result);
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
is_shadowing(p_match_pattern->bind, "pattern bind");
|
is_shadowing(p_match_pattern->bind, "pattern bind");
|
||||||
if (p_match_pattern->bind->usages == 0) {
|
if (p_match_pattern->bind->usages == 0 && !String(p_match_pattern->bind->name).begins_with("_")) {
|
||||||
parser->push_warning(p_match_pattern->bind, GDScriptWarning::UNASSIGNED_VARIABLE, p_match_pattern->bind->name);
|
parser->push_warning(p_match_pattern->bind, GDScriptWarning::UNUSED_VARIABLE, p_match_pattern->bind->name);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# https://github.com/godotengine/godot/pull/61666
|
||||||
|
|
||||||
|
func test():
|
||||||
|
var dict := {"key": "value"}
|
||||||
|
match dict:
|
||||||
|
{"key": var value}:
|
||||||
|
print(value) # used, no warning
|
||||||
|
match dict:
|
||||||
|
{"key": var value}:
|
||||||
|
pass # unused, warning
|
||||||
|
match dict:
|
||||||
|
{"key": var _value}:
|
||||||
|
pass # unused, suppressed warning from underscore
|
|
@ -0,0 +1,6 @@
|
||||||
|
GDTEST_OK
|
||||||
|
>> WARNING
|
||||||
|
>> Line: 9
|
||||||
|
>> UNUSED_VARIABLE
|
||||||
|
>> The local variable 'value' is declared but never used in the block. If this is intended, prefix it with an underscore: '_value'
|
||||||
|
value
|
Loading…
Reference in a new issue