Explorar el Código

Fixed regression bug caused in #30095 and actually fix the issue it was supposed to fix(#26850)

unknown hace 6 años
padre
commit
bd25e8d72a
Se han modificado 1 ficheros con 7 adiciones y 19 borrados
  1. 7 19
      modules/gdscript/gdscript_parser.cpp

+ 7 - 19
modules/gdscript/gdscript_parser.cpp

@@ -776,7 +776,8 @@ GDScriptParser::Node *GDScriptParser::_parse_expression(Node *p_parent, bool p_s
 								}
 								_add_warning(GDScriptWarning::UNASSIGNED_VARIABLE_OP_ASSIGN, -1, identifier.operator String());
 							}
-						} break;
+							FALLTHROUGH;
+						}
 						case GDScriptTokenizer::TK_OP_ASSIGN: {
 							lv->assignments += 1;
 							lv->usages--; // Assignment is not really usage
@@ -846,24 +847,11 @@ 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) {
-						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
-								current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] - 1;
-							} break;
-							default: {
-								current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[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;
 						}
 					}
 				}