@@ -3783,26 +3783,8 @@ private function processArgs(
3783
3783
?MutatingScope $ closureBindScope = null ,
3784
3784
): ExpressionResult
3785
3785
{
3786
- $ paramOutTypes = [];
3787
3786
if ($ parametersAcceptor !== null ) {
3788
3787
$ parameters = $ parametersAcceptor ->getParameters ();
3789
-
3790
- foreach ($ parameters as $ parameter ) {
3791
- if (!$ parameter instanceof ParameterReflectionWithPhpDocs) {
3792
- continue ;
3793
- }
3794
-
3795
- if ($ parameter ->getOutType () === null ) {
3796
- continue ;
3797
- }
3798
-
3799
- $ paramOutTypes [$ parameter ->getName ()] = TemplateTypeHelper::resolveTemplateTypes (
3800
- $ parameter ->getOutType (),
3801
- $ parametersAcceptor ->getResolvedTemplateTypeMap (),
3802
- $ parametersAcceptor instanceof ParametersAcceptorWithPhpDocs ? $ parametersAcceptor ->getCallSiteVarianceMap () : TemplateTypeVarianceMap::createEmpty (),
3803
- TemplateTypeVariance::createCovariant (),
3804
- );
3805
- }
3806
3788
}
3807
3789
3808
3790
$ hasYield = false ;
@@ -3879,14 +3861,14 @@ private function processArgs(
3879
3861
$ assignByReference = false ;
3880
3862
if (isset ($ parameters [$ i ])) {
3881
3863
$ assignByReference = $ parameters [$ i ]->passedByReference ()->createsNewVariable ();
3882
- if (isset ( $ paramOutTypes [ $ parameters [$ i ]->getName ()]) ) {
3883
- $ byRefType = $ paramOutTypes [ $ parameters [$ i ]->getName ()] ;
3864
+ if ($ parameters [ $ i ] instanceof ParameterReflectionWithPhpDocs && $ parameters [$ i ]->getOutType () !== null ) {
3865
+ $ byRefType = $ parameters [$ i ]->getOutType () ;
3884
3866
}
3885
3867
} elseif (count ($ parameters ) > 0 && $ parametersAcceptor ->isVariadic ()) {
3886
3868
$ lastParameter = $ parameters [count ($ parameters ) - 1 ];
3887
3869
$ assignByReference = $ lastParameter ->passedByReference ()->createsNewVariable ();
3888
- if (isset ( $ paramOutTypes [ $ lastParameter ->getName ()]) ) {
3889
- $ byRefType = $ paramOutTypes [ $ lastParameter ->getName ()] ;
3870
+ if ($ lastParameter instanceof ParameterReflectionWithPhpDocs && $ lastParameter ->getOutType () !== null ) {
3871
+ $ byRefType = $ lastParameter ->getOutType () ;
3890
3872
}
3891
3873
}
3892
3874
0 commit comments