@@ -5710,8 +5710,8 @@ private function processAssignVar(
57105710 $ valueToWrite = $ this ->produceArrayDimFetchAssignValueToWrite ($ dimFetchStack , $ offsetTypes , $ offsetValueType , $ valueToWrite , $ scope , $ additionalExpressions );
57115711
57125712 if (!$ offsetValueType ->equals ($ offsetNativeValueType ) || !$ valueToWrite ->equals ($ nativeValueToWrite )) {
5713- $ additionalExpressions = [];
5714- $ nativeValueToWrite = $ this ->produceArrayDimFetchAssignValueToWrite ($ dimFetchStack , $ offsetNativeTypes , $ offsetNativeValueType , $ nativeValueToWrite , $ scope , $ additionalExpressions );
5713+ $ additionalNativeExpressions = [];
5714+ $ nativeValueToWrite = $ this ->produceArrayDimFetchAssignValueToWrite ($ dimFetchStack , $ offsetNativeTypes , $ offsetNativeValueType , $ nativeValueToWrite , $ scope , $ additionalNativeExpressions );
57155715 } else {
57165716 $ rewritten = false ;
57175717 foreach ($ offsetTypes as $ i => $ offsetType ) {
@@ -5783,10 +5783,14 @@ private function processAssignVar(
57835783 }
57845784 }
57855785
5786- foreach ($ additionalExpressions as $ additionalExpression ) {
5786+ foreach ($ additionalExpressions as $ k => $ additionalExpression ) {
57875787 [$ expr , $ type ] = $ additionalExpression ;
5788+ $ nativeType = $ type ;
5789+ if (isset ($ additionalNativeExpressions [$ k ])) {
5790+ [, $ nativeType ] = $ additionalNativeExpressions [$ k ];
5791+ }
57885792
5789- $ scope = $ scope ->assignExpression ($ expr , $ type , $ type );
5793+ $ scope = $ scope ->assignExpression ($ expr , $ type , $ nativeType );
57905794 }
57915795
57925796 if (!$ varType ->isArray ()->yes () && !(new ObjectType (ArrayAccess::class))->isSuperTypeOf ($ varType )->no ()) {
0 commit comments