Merge pull request #49449 from SpectralDragon/fix-enum-equal-operation
Fix equal operation for typed enums
This commit is contained in:
commit
c4fcc678df
1 changed files with 3 additions and 2 deletions
|
@ -1779,10 +1779,10 @@ void GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode *p_binary_o
|
||||||
} else {
|
} else {
|
||||||
if (p_binary_op->variant_op < Variant::OP_MAX) {
|
if (p_binary_op->variant_op < Variant::OP_MAX) {
|
||||||
bool valid = false;
|
bool valid = false;
|
||||||
result = get_operation_type(p_binary_op->variant_op, p_binary_op->left_operand->get_datatype(), right_type, valid, p_binary_op);
|
result = get_operation_type(p_binary_op->variant_op, left_type, right_type, valid, p_binary_op);
|
||||||
|
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
push_error(vformat(R"(Invalid operands "%s" and "%s" for "%s" operator.)", p_binary_op->left_operand->get_datatype().to_string(), right_type.to_string(), Variant::get_operator_name(p_binary_op->variant_op)), p_binary_op);
|
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 {
|
} else {
|
||||||
if (p_binary_op->operation == GDScriptParser::BinaryOpNode::OP_TYPE_TEST) {
|
if (p_binary_op->operation == GDScriptParser::BinaryOpNode::OP_TYPE_TEST) {
|
||||||
|
@ -2349,6 +2349,7 @@ void GDScriptAnalyzer::reduce_identifier_from_base(GDScriptParser::IdentifierNod
|
||||||
GDScriptParser::DataType result;
|
GDScriptParser::DataType result;
|
||||||
result.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
|
result.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
|
||||||
result.kind = GDScriptParser::DataType::ENUM_VALUE;
|
result.kind = GDScriptParser::DataType::ENUM_VALUE;
|
||||||
|
result.builtin_type = base.builtin_type;
|
||||||
result.native_type = base.native_type;
|
result.native_type = base.native_type;
|
||||||
result.enum_type = name;
|
result.enum_type = name;
|
||||||
p_identifier->set_datatype(result);
|
p_identifier->set_datatype(result);
|
||||||
|
|
Loading…
Reference in a new issue