diff options
author | George Marques <george@gmarqu.es> | 2020-08-12 08:54:48 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-12 08:54:48 -0300 |
commit | 9413446b2d942402491254feae549e85740692a9 (patch) | |
tree | 5aa93e88025928a98379b648e355af663ee1152a /modules/gdscript/gdscript_analyzer.cpp | |
parent | dc90b17691b574967895546568e2966e655f9cd0 (diff) | |
parent | 3aef60591b5e5ddc4d41845a709dc452cd53d5a2 (diff) | |
download | redot-engine-9413446b2d942402491254feae549e85740692a9.tar.gz |
Merge pull request #41104 from vnen/gdscript-assignment-tidy
Tidy up assignment operator check
Diffstat (limited to 'modules/gdscript/gdscript_analyzer.cpp')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 616fb1485e..561cdbbda4 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -1374,48 +1374,11 @@ void GDScriptAnalyzer::reduce_assignment(GDScriptParser::AssignmentNode *p_assig push_error("Cannot assign a new value to a constant.", p_assignment->assignee); } - Variant::Operator vop = Variant::Operator::OP_EQUAL; - switch (p_assignment->operation) { - case GDScriptParser::AssignmentNode::OP_NONE: - vop = Variant::Operator::OP_EQUAL; - break; - case GDScriptParser::AssignmentNode::OP_ADDITION: - vop = Variant::Operator::OP_ADD; - break; - case GDScriptParser::AssignmentNode::OP_SUBTRACTION: - vop = Variant::Operator::OP_SUBTRACT; - break; - case GDScriptParser::AssignmentNode::OP_MULTIPLICATION: - vop = Variant::Operator::OP_MULTIPLY; - break; - case GDScriptParser::AssignmentNode::OP_DIVISION: - vop = Variant::Operator::OP_DIVIDE; - break; - case GDScriptParser::AssignmentNode::OP_MODULO: - vop = Variant::Operator::OP_MODULE; - break; - case GDScriptParser::AssignmentNode::OP_BIT_SHIFT_LEFT: - vop = Variant::Operator::OP_SHIFT_LEFT; - break; - case GDScriptParser::AssignmentNode::OP_BIT_SHIFT_RIGHT: - vop = Variant::Operator::OP_SHIFT_RIGHT; - break; - case GDScriptParser::AssignmentNode::OP_BIT_AND: - vop = Variant::Operator::OP_BIT_AND; - break; - case GDScriptParser::AssignmentNode::OP_BIT_OR: - vop = Variant::Operator::OP_BIT_OR; - break; - case GDScriptParser::AssignmentNode::OP_BIT_XOR: - vop = Variant::Operator::OP_BIT_XOR; - break; - } - if (!p_assignment->assignee->get_datatype().is_variant() && !p_assignment->assigned_value->get_datatype().is_variant()) { bool compatible = true; GDScriptParser::DataType op_type = p_assignment->assigned_value->get_datatype(); - if (vop != Variant::OP_EQUAL) { - op_type = get_operation_type(vop, p_assignment->assignee->get_datatype(), p_assignment->assigned_value->get_datatype(), compatible); + if (p_assignment->operation != GDScriptParser::AssignmentNode::OP_NONE) { + op_type = get_operation_type(p_assignment->variant_op, p_assignment->assignee->get_datatype(), p_assignment->assigned_value->get_datatype(), compatible); } if (compatible) { |