From b48629c573b3838897c20d38ee0e487c753ac276 Mon Sep 17 00:00:00 2001 From: David Frankel <42774874+frankeld@users.noreply.github.com> Date: Wed, 28 Aug 2024 11:53:14 -0400 Subject: [PATCH] Update to avoid cast when possible --- src/Expressions/UnaryExpression.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Expressions/UnaryExpression.php b/src/Expressions/UnaryExpression.php index 9fb57e4..c7b89e0 100644 --- a/src/Expressions/UnaryExpression.php +++ b/src/Expressions/UnaryExpression.php @@ -30,9 +30,18 @@ public function evaluateImpl(row $row, AsyncMysqlConnection $conn): mixed { invariant($op is nonnull, 'This case was not considered. The operator is null.'); switch ($op) { case Operator::UNARY_MINUS: - return -1 * (float)$val; + // Keeping this cast around for backwards compat + if (!($val is num)) { + $val = (float)$val; + } + return -1 * $val; case Operator::UNARY_PLUS: - return (float)$val; + // Keeping this cast around for backwards compat + if (!($val is num)) { + $val = (float)$val; + } + return $val; + case Operator::TILDE: case Operator::TILDE: return ~(int)$val; default: