From a7565cbff3b20eafd95735353a20fb0339ed22ba Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 4 Sep 2024 09:45:48 +0200 Subject: [PATCH] Simplify isFloat checks --- src/Reflection/InitializerExprTypeResolver.php | 5 ++--- src/Type/ExponentiateHelper.php | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Reflection/InitializerExprTypeResolver.php b/src/Reflection/InitializerExprTypeResolver.php index dae4e11140..1eec9736d1 100644 --- a/src/Reflection/InitializerExprTypeResolver.php +++ b/src/Reflection/InitializerExprTypeResolver.php @@ -1192,17 +1192,16 @@ public function getMulType(Expr $left, Expr $right, callable $getTypeCallback): return TypeCombinator::union(...$resultTypes); } - $floatType = new FloatType(); $leftNumberType = $leftType->toNumber(); if ($leftNumberType instanceof ConstantIntegerType && $leftNumberType->getValue() === 0) { - if ($floatType->isSuperTypeOf($rightType)->yes()) { + if ($rightType->isFloat()->yes()) { return new ConstantFloatType(0.0); } return new ConstantIntegerType(0); } $rightNumberType = $rightType->toNumber(); if ($rightNumberType instanceof ConstantIntegerType && $rightNumberType->getValue() === 0) { - if ($floatType->isSuperTypeOf($leftType)->yes()) { + if ($leftType->isFloat()->yes()) { return new ConstantFloatType(0.0); } return new ConstantIntegerType(0); diff --git a/src/Type/ExponentiateHelper.php b/src/Type/ExponentiateHelper.php index 10da4dd484..fd65dc9e51 100644 --- a/src/Type/ExponentiateHelper.php +++ b/src/Type/ExponentiateHelper.php @@ -46,8 +46,7 @@ public static function exponentiate(Type $base, Type $exponent): Type } // exponentiation of a float, stays a float - $float = new FloatType(); - $isFloatBase = $float->isSuperTypeOf($base)->yes(); + $isFloatBase = $base->isFloat()->yes(); $isLooseZero = (new ConstantIntegerType(0))->isSuperTypeOf($exponent->toNumber()); if ($isLooseZero->yes()) {