@@ -3490,11 +3490,12 @@ private function processSureTypesForConditionalExpressionsAfterAssign(Scope $sco
34903490 $ conditionalExpressions [$ exprString ] = [];
34913491 }
34923492
3493- $ conditionalExpressions [ $ exprString ][] = new ConditionalExpressionHolder ([
3493+ $ holder = new ConditionalExpressionHolder ([
34943494 '$ ' . $ variableName => $ variableType ,
34953495 ], VariableTypeHolder::createYes (
34963496 TypeCombinator::intersect ($ scope ->getType ($ expr ), $ exprType ),
34973497 ));
3498+ $ conditionalExpressions [$ exprString ][$ holder ->getKey ()] = $ holder ;
34983499 }
34993500
35003501 return $ conditionalExpressions ;
@@ -3518,11 +3519,12 @@ private function processSureNotTypesForConditionalExpressionsAfterAssign(Scope $
35183519 $ conditionalExpressions [$ exprString ] = [];
35193520 }
35203521
3521- $ conditionalExpressions [ $ exprString ][] = new ConditionalExpressionHolder ([
3522+ $ holder = new ConditionalExpressionHolder ([
35223523 '$ ' . $ variableName => $ variableType ,
35233524 ], VariableTypeHolder::createYes (
35243525 TypeCombinator::remove ($ scope ->getType ($ expr ), $ exprType ),
35253526 ));
3527+ $ conditionalExpressions [$ exprString ][$ holder ->getKey ()] = $ holder ;
35263528 }
35273529
35283530 return $ conditionalExpressions ;
@@ -3689,9 +3691,10 @@ static function (): void {
36893691 $ conditionalHolders = [];
36903692 foreach ($ iterateeType ->getKeyTypes () as $ i => $ keyType ) {
36913693 $ valueType = $ iterateeType ->getValueTypes ()[$ i ];
3692- $ conditionalHolders [] = new ConditionalExpressionHolder ([
3694+ $ holder = new ConditionalExpressionHolder ([
36933695 '$ ' . $ stmt ->keyVar ->name => $ keyType ,
36943696 ], new VariableTypeHolder ($ valueType , TrinaryLogic::createYes ()));
3697+ $ conditionalHolders [$ holder ->getKey ()] = $ holder ;
36953698 }
36963699
36973700 $ scope = $ scope ->addConditionalExpressions (
0 commit comments