use correct error for unused bind match, suppress with underscore

This commit is contained in:
Nathan Franke 2022-06-03 12:42:03 -05:00
parent c0bf18e923
commit 3d61246bc4
No known key found for this signature in database
GPG key ID: 082B90CF10A5B648
3 changed files with 21 additions and 2 deletions

View file

@ -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;

View file

@ -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

View file

@ -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