@@ -3490,11 +3490,12 @@ private function processSureTypesForConditionalExpressionsAfterAssign(Scope $sco
3490
3490
$ conditionalExpressions [$ exprString ] = [];
3491
3491
}
3492
3492
3493
- $ conditionalExpressions [ $ exprString ][] = new ConditionalExpressionHolder ([
3493
+ $ holder = new ConditionalExpressionHolder ([
3494
3494
'$ ' . $ variableName => $ variableType ,
3495
3495
], VariableTypeHolder::createYes (
3496
3496
TypeCombinator::intersect ($ scope ->getType ($ expr ), $ exprType ),
3497
3497
));
3498
+ $ conditionalExpressions [$ exprString ][$ holder ->getKey ()] = $ holder ;
3498
3499
}
3499
3500
3500
3501
return $ conditionalExpressions ;
@@ -3518,11 +3519,12 @@ private function processSureNotTypesForConditionalExpressionsAfterAssign(Scope $
3518
3519
$ conditionalExpressions [$ exprString ] = [];
3519
3520
}
3520
3521
3521
- $ conditionalExpressions [ $ exprString ][] = new ConditionalExpressionHolder ([
3522
+ $ holder = new ConditionalExpressionHolder ([
3522
3523
'$ ' . $ variableName => $ variableType ,
3523
3524
], VariableTypeHolder::createYes (
3524
3525
TypeCombinator::remove ($ scope ->getType ($ expr ), $ exprType ),
3525
3526
));
3527
+ $ conditionalExpressions [$ exprString ][$ holder ->getKey ()] = $ holder ;
3526
3528
}
3527
3529
3528
3530
return $ conditionalExpressions ;
@@ -3689,9 +3691,10 @@ static function (): void {
3689
3691
$ conditionalHolders = [];
3690
3692
foreach ($ iterateeType ->getKeyTypes () as $ i => $ keyType ) {
3691
3693
$ valueType = $ iterateeType ->getValueTypes ()[$ i ];
3692
- $ conditionalHolders [] = new ConditionalExpressionHolder ([
3694
+ $ holder = new ConditionalExpressionHolder ([
3693
3695
'$ ' . $ stmt ->keyVar ->name => $ keyType ,
3694
3696
], new VariableTypeHolder ($ valueType , TrinaryLogic::createYes ()));
3697
+ $ conditionalHolders [$ holder ->getKey ()] = $ holder ;
3695
3698
}
3696
3699
3697
3700
$ scope = $ scope ->addConditionalExpressions (
0 commit comments