diff --git a/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp b/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp index a1178041a25d96004157c6bb120f1a1bacfd93eb..15f4b31cede0df801ea613935cb7a22e99bbf8c1 100644 --- a/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp +++ b/ets2panda/compiler/lowering/ets/constantExpressionLowering.cpp @@ -649,7 +649,7 @@ static ir::AstNode *HandleMultiplicativeExpression(const ir::BinaryExpression *e { auto left = expr->Left()->AsLiteral(); auto right = expr->Right()->AsLiteral(); - if (!IsConvertibleToNumericType(left) && !IsConvertibleToNumericType(right)) { + if (!IsConvertibleToNumericType(left) || !IsConvertibleToNumericType(right)) { LogError(context, diagnostic::WRONG_OPERAND_TYPE_FOR_BINARY_EXPRESSION, {}, expr->Start()); return CreateErrorIdentifier(expr, context->allocator); } @@ -755,7 +755,7 @@ static ir::AstNode *HandleAdditiveExpression(const ir::BinaryExpression *expr, p return PerformStringAdditiveOperation(expr, context); } - if (!IsConvertibleToNumericType(left) && !IsConvertibleToNumericType(right)) { + if (!IsConvertibleToNumericType(left) || !IsConvertibleToNumericType(right)) { LogError(context, diagnostic::WRONG_OPERAND_TYPE_FOR_BINARY_EXPRESSION, {}, expr->Start()); return CreateErrorIdentifier(expr, context->allocator); } @@ -834,7 +834,7 @@ static ir::AstNode *HandleShiftExpression(const ir::BinaryExpression *expr, publ auto right = expr->Right()->AsLiteral(); auto opType = expr->OperatorType(); - if (!IsConvertibleToNumericType(left) && !IsConvertibleToNumericType(right)) { + if (!IsConvertibleToNumericType(left) || !IsConvertibleToNumericType(right)) { LogError(context, diagnostic::WRONG_OPERAND_TYPE_FOR_BINARY_EXPRESSION, {}, expr->Start()); return CreateErrorIdentifier(expr, context->allocator); }