mirror of
https://github.com/godotengine/godot.git
synced 2025-10-28 20:24:41 +00:00
parent
5287124b72
commit
04dfb78d23
1 changed files with 13 additions and 1 deletions
|
|
@ -1472,7 +1472,19 @@ void GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode *p_binary_o
|
|||
if (p_binary_op->left_operand->is_constant && p_binary_op->right_operand->is_constant) {
|
||||
p_binary_op->is_constant = true;
|
||||
if (p_binary_op->variant_op < Variant::OP_MAX) {
|
||||
p_binary_op->reduced_value = Variant::evaluate(p_binary_op->variant_op, p_binary_op->left_operand->reduced_value, p_binary_op->right_operand->reduced_value);
|
||||
bool valid = false;
|
||||
Variant::evaluate(p_binary_op->variant_op, p_binary_op->left_operand->reduced_value, p_binary_op->right_operand->reduced_value, p_binary_op->reduced_value, valid);
|
||||
if (!valid) {
|
||||
if (p_binary_op->reduced_value.get_type() == Variant::STRING) {
|
||||
push_error(vformat(R"(%s in operator %s.)", p_binary_op->reduced_value, Variant::get_operator_name(p_binary_op->variant_op)), p_binary_op);
|
||||
} else {
|
||||
push_error(vformat(R"(Invalid operands to operator %s, %s and %s.".)",
|
||||
Variant::get_operator_name(p_binary_op->variant_op),
|
||||
Variant::get_type_name(p_binary_op->left_operand->reduced_value.get_type()),
|
||||
Variant::get_type_name(p_binary_op->right_operand->reduced_value.get_type())),
|
||||
p_binary_op);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (p_binary_op->operation == GDScriptParser::BinaryOpNode::OP_TYPE_TEST) {
|
||||
GDScriptParser::DataType test_type = right_type;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue