mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 06:01:14 +00:00
Fix wrong counting of function argument usage
There's no need to subtract 1 from the assignment usages because it's not incremented anywhere else. Also put back the assignment with operators because they should not count as usage if the argument is on the left side.
This commit is contained in:
parent
119bf23720
commit
bb20e420af
1 changed files with 17 additions and 5 deletions
|
|
@ -858,11 +858,23 @@ GDScriptParser::Node *GDScriptParser::_parse_expression(Node *p_parent, bool p_s
|
|||
if (current_function) {
|
||||
int arg_idx = current_function->arguments.find(identifier);
|
||||
if (arg_idx != -1) {
|
||||
if (tokenizer->get_token() == GDScriptTokenizer::TK_OP_ASSIGN) {
|
||||
// Assignment is not really usage
|
||||
current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] - 1;
|
||||
} else {
|
||||
current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] + 1;
|
||||
switch (tokenizer->get_token()) {
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_ADD:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_BIT_AND:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_BIT_OR:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_BIT_XOR:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_DIV:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_MOD:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_MUL:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_SHIFT_LEFT:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_SHIFT_RIGHT:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN_SUB:
|
||||
case GDScriptTokenizer::TK_OP_ASSIGN: {
|
||||
// Assignment is not really usage
|
||||
} break;
|
||||
default: {
|
||||
current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue