浏览代码

Revert "GdScript: Use reduced constant expression result when doing binary operations. Fixes #50293"

This reverts commit 62077086076fb99fb7fe014522c44ae83f87dc4d.

It broke a GDScript test (which didn't exist back when the PR was made,
so was missed prior to the merge).

It choked on:
```
prints("a", test_instance.a, test_instance.a == Named.VALUE_A)
```
With:
```
Invalid operands "VALUE_A (enum value)" and "int" for "==" operator.
```
Rémi Verschelde 4 年之前
父节点
当前提交
d2b8560d7a
共有 1 个文件被更改,包括 2 次插入10 次删除
  1. 2 10
      modules/gdscript/gdscript_analyzer.cpp

+ 2 - 10
modules/gdscript/gdscript_analyzer.cpp

@@ -1867,19 +1867,11 @@ void GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode *p_binary_o
 
 
 	GDScriptParser::DataType left_type;
 	GDScriptParser::DataType left_type;
 	if (p_binary_op->left_operand) {
 	if (p_binary_op->left_operand) {
-		if (p_binary_op->left_operand->is_constant) {
-			left_type = type_from_variant(p_binary_op->left_operand->reduced_value, p_binary_op->left_operand);
-		} else {
-			left_type = p_binary_op->left_operand->get_datatype();
-		}
+		left_type = p_binary_op->left_operand->get_datatype();
 	}
 	}
 	GDScriptParser::DataType right_type;
 	GDScriptParser::DataType right_type;
 	if (p_binary_op->right_operand) {
 	if (p_binary_op->right_operand) {
-		if (p_binary_op->right_operand->is_constant) {
-			right_type = type_from_variant(p_binary_op->right_operand->reduced_value, p_binary_op->right_operand);
-		} else {
-			right_type = p_binary_op->right_operand->get_datatype();
-		}
+		right_type = p_binary_op->right_operand->get_datatype();
 	}
 	}
 
 
 	if (!left_type.is_set() || !right_type.is_set()) {
 	if (!left_type.is_set() || !right_type.is_set()) {