From 1e953923c1468eaaa4e8b2cf65c2893496a2ec43 Mon Sep 17 00:00:00 2001 From: Yohta Kimura Date: Mon, 2 May 2022 22:18:00 +0900 Subject: [PATCH] make `$conditionalExpressions` key consistent in all usages --- src/Analyser/NodeScopeResolver.php | 9 ++++++--- src/Analyser/TypeSpecifier.php | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 6575f9af57..8e95a448ab 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -3490,11 +3490,12 @@ private function processSureTypesForConditionalExpressionsAfterAssign(Scope $sco $conditionalExpressions[$exprString] = []; } - $conditionalExpressions[$exprString][] = new ConditionalExpressionHolder([ + $holder = new ConditionalExpressionHolder([ '$' . $variableName => $variableType, ], VariableTypeHolder::createYes( TypeCombinator::intersect($scope->getType($expr), $exprType), )); + $conditionalExpressions[$exprString][$holder->getKey()] = $holder; } return $conditionalExpressions; @@ -3518,11 +3519,12 @@ private function processSureNotTypesForConditionalExpressionsAfterAssign(Scope $ $conditionalExpressions[$exprString] = []; } - $conditionalExpressions[$exprString][] = new ConditionalExpressionHolder([ + $holder = new ConditionalExpressionHolder([ '$' . $variableName => $variableType, ], VariableTypeHolder::createYes( TypeCombinator::remove($scope->getType($expr), $exprType), )); + $conditionalExpressions[$exprString][$holder->getKey()] = $holder; } return $conditionalExpressions; @@ -3689,9 +3691,10 @@ static function (): void { $conditionalHolders = []; foreach ($iterateeType->getKeyTypes() as $i => $keyType) { $valueType = $iterateeType->getValueTypes()[$i]; - $conditionalHolders[] = new ConditionalExpressionHolder([ + $holder = new ConditionalExpressionHolder([ '$' . $stmt->keyVar->name => $keyType, ], new VariableTypeHolder($valueType, TrinaryLogic::createYes())); + $conditionalHolders[$holder->getKey()] = $holder; } $scope = $scope->addConditionalExpressions( diff --git a/src/Analyser/TypeSpecifier.php b/src/Analyser/TypeSpecifier.php index f7f707acde..88fbcdba42 100644 --- a/src/Analyser/TypeSpecifier.php +++ b/src/Analyser/TypeSpecifier.php @@ -962,10 +962,11 @@ private function processBooleanConditionalTypes(Scope $scope, SpecifiedTypes $le $holders[$exprString] = []; } - $holders[$exprString][] = new ConditionalExpressionHolder( + $holder = new ConditionalExpressionHolder( $conditionExpressionTypes, new VariableTypeHolder(TypeCombinator::remove($scope->getType($expr), $type), TrinaryLogic::createYes()), ); + $holders[$exprString][$holder->getKey()] = $holder; } return $holders;