@@ -4920,7 +4920,7 @@ public function processClosureScope(
4920
4920
$ prevVariableType = $ prevScope ->getVariableType ($ variableName );
4921
4921
if (!$ variableType ->equals ($ prevVariableType )) {
4922
4922
$ variableType = TypeCombinator::union ($ variableType , $ prevVariableType );
4923
- $ variableType = self :: generalizeType ($ variableType , $ prevVariableType , 0 );
4923
+ $ variableType = $ this -> generalizeType ($ variableType , $ prevVariableType , 0 );
4924
4924
}
4925
4925
}
4926
4926
@@ -5045,15 +5045,15 @@ private function generalizeVariableTypeHolders(
5045
5045
5046
5046
$ variableTypeHolders [$ variableExprString ] = new ExpressionTypeHolder (
5047
5047
$ variableTypeHolder ->getExpr (),
5048
- self :: generalizeType ($ variableTypeHolder ->getType (), $ otherVariableTypeHolders [$ variableExprString ]->getType (), 0 ),
5048
+ $ this -> generalizeType ($ variableTypeHolder ->getType (), $ otherVariableTypeHolders [$ variableExprString ]->getType (), 0 ),
5049
5049
$ variableTypeHolder ->getCertainty (),
5050
5050
);
5051
5051
}
5052
5052
5053
5053
return $ variableTypeHolders ;
5054
5054
}
5055
5055
5056
- private static function generalizeType (Type $ a , Type $ b , int $ depth ): Type
5056
+ private function generalizeType (Type $ a , Type $ b , int $ depth ): Type
5057
5057
{
5058
5058
if ($ a ->equals ($ b )) {
5059
5059
return $ a ;
@@ -5146,7 +5146,7 @@ private static function generalizeType(Type $a, Type $b, int $depth): Type
5146
5146
foreach (TypeUtils::flattenTypes ($ constantArraysA ->getIterableKeyType ()) as $ keyType ) {
5147
5147
$ resultArrayBuilder ->setOffsetValueType (
5148
5148
$ keyType ,
5149
- self :: generalizeType (
5149
+ $ this -> generalizeType (
5150
5150
$ constantArraysA ->getOffsetValueType ($ keyType ),
5151
5151
$ constantArraysB ->getOffsetValueType ($ keyType ),
5152
5152
$ depth + 1 ,
@@ -5158,13 +5158,13 @@ private static function generalizeType(Type $a, Type $b, int $depth): Type
5158
5158
$ resultTypes [] = $ resultArrayBuilder ->getArray ();
5159
5159
} else {
5160
5160
$ resultType = new ArrayType (
5161
- TypeCombinator::union (self :: generalizeType ($ constantArraysA ->getIterableKeyType (), $ constantArraysB ->getIterableKeyType (), $ depth + 1 )),
5162
- TypeCombinator::union (self :: generalizeType ($ constantArraysA ->getIterableValueType (), $ constantArraysB ->getIterableValueType (), $ depth + 1 )),
5161
+ TypeCombinator::union ($ this -> generalizeType ($ constantArraysA ->getIterableKeyType (), $ constantArraysB ->getIterableKeyType (), $ depth + 1 )),
5162
+ TypeCombinator::union ($ this -> generalizeType ($ constantArraysA ->getIterableValueType (), $ constantArraysB ->getIterableValueType (), $ depth + 1 )),
5163
5163
);
5164
5164
if (
5165
5165
$ constantArraysA ->isIterableAtLeastOnce ()->yes ()
5166
5166
&& $ constantArraysB ->isIterableAtLeastOnce ()->yes ()
5167
- && $ constantArraysA ->getArraySize ()->getGreaterOrEqualType ()->isSuperTypeOf ($ constantArraysB ->getArraySize ())->yes ()
5167
+ && $ constantArraysA ->getArraySize ()->getGreaterOrEqualType ($ this -> phpVersion )->isSuperTypeOf ($ constantArraysB ->getArraySize ())->yes ()
5168
5168
) {
5169
5169
$ resultType = TypeCombinator::intersect ($ resultType , new NonEmptyArrayType ());
5170
5170
}
@@ -5205,8 +5205,8 @@ private static function generalizeType(Type $a, Type $b, int $depth): Type
5205
5205
}
5206
5206
5207
5207
$ resultType = new ArrayType (
5208
- TypeCombinator::union (self :: generalizeType ($ generalArraysA ->getIterableKeyType (), $ generalArraysB ->getIterableKeyType (), $ depth + 1 )),
5209
- TypeCombinator::union (self :: generalizeType ($ aValueType , $ bValueType , $ depth + 1 )),
5208
+ TypeCombinator::union ($ this -> generalizeType ($ generalArraysA ->getIterableKeyType (), $ generalArraysB ->getIterableKeyType (), $ depth + 1 )),
5209
+ TypeCombinator::union ($ this -> generalizeType ($ aValueType , $ bValueType , $ depth + 1 )),
5210
5210
);
5211
5211
if ($ generalArraysA ->isIterableAtLeastOnce ()->yes () && $ generalArraysB ->isIterableAtLeastOnce ()->yes ()) {
5212
5212
$ resultType = TypeCombinator::intersect ($ resultType , new NonEmptyArrayType ());
0 commit comments