diff --git a/src/Analyser/ExprHandler/AssignHandler.php b/src/Analyser/ExprHandler/AssignHandler.php index 1baaa08905..1a1ed14bae 100644 --- a/src/Analyser/ExprHandler/AssignHandler.php +++ b/src/Analyser/ExprHandler/AssignHandler.php @@ -957,11 +957,11 @@ private function produceArrayDimFetchAssignValueToWrite(array $dimFetchStack, ar if ($has->yes()) { $offsetValueType = $offsetValueType->getOffsetValueType($offsetType); } elseif ($has->maybe()) { - if (!$scope->hasExpressionType($dimFetch)->yes()) { - $offsetValueType = TypeCombinator::union($offsetValueType->getOffsetValueType($offsetType), new ConstantArrayType([], [])); - } else { + if ($scope->hasExpressionType($dimFetch)->yes()) { $generalizeOnWrite = false; $offsetValueType = $offsetValueType->getOffsetValueType($offsetType); + } else { + $offsetValueType = TypeCombinator::union($offsetValueType->getOffsetValueType($offsetType), new ConstantArrayType([], [])); } } else { $generalizeOnWrite = false;