From 3c9b8a081c947c136204a18685f27cf58e6d9fe7 Mon Sep 17 00:00:00 2001 From: Muqsit Date: Thu, 3 Nov 2022 14:23:08 +0000 Subject: [PATCH] Resolve addition with NAN to NAN during operator strength reduction (address #16) --- .../optimizer/OperatorStrengthReductionExpressionOptimizer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/muqsit/arithmexp/expression/optimizer/OperatorStrengthReductionExpressionOptimizer.php b/src/muqsit/arithmexp/expression/optimizer/OperatorStrengthReductionExpressionOptimizer.php index a366bfa..bd3bc83 100644 --- a/src/muqsit/arithmexp/expression/optimizer/OperatorStrengthReductionExpressionOptimizer.php +++ b/src/muqsit/arithmexp/expression/optimizer/OperatorStrengthReductionExpressionOptimizer.php @@ -230,6 +230,7 @@ private function processBinaryExpression(Parser $parser, Expression $expression, "+" => match(true){ $this->valueEquals($left, 0) => $right, $this->valueEquals($right, 0) => $left, + $this->valueIsNan($left), $this->valueIsNan($right) => [new NumericLiteralExpressionToken(Util::positionContainingExpressionTokens([...$left, ...$right]), NAN)], default => $this->processAddition($parser, $operator_token, $left, $right) }, "-" => match(true){