Переглянути джерело

GDScript: Fix missing unsafety mark for binary op with weak variables

Dmitrii Maganov 2 роки тому
батько
коміт
df6aae2eca
1 змінених файлів з 2 додано та 0 видалено
  1. 2 0
      modules/gdscript/gdscript_analyzer.cpp

+ 2 - 0
modules/gdscript/gdscript_analyzer.cpp

@@ -2598,6 +2598,8 @@ void GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode *p_binary_o
 		result = get_operation_type(p_binary_op->variant_op, left_type, right_type, valid, p_binary_op);
 		if (!valid) {
 			push_error(vformat(R"(Invalid operands "%s" and "%s" for "%s" operator.)", left_type.to_string(), right_type.to_string(), Variant::get_operator_name(p_binary_op->variant_op)), p_binary_op);
+		} else if (result.type_source != GDScriptParser::DataType::ANNOTATED_EXPLICIT) {
+			mark_node_unsafe(p_binary_op);
 		}
 	} else {
 		ERR_PRINT("Parser bug: unknown binary operation.");