27
27
use function array_fill ;
28
28
use function array_key_exists ;
29
29
use function count ;
30
+ use function implode ;
30
31
use function is_string ;
31
32
use function max ;
32
33
use function sprintf ;
@@ -278,7 +279,6 @@ public function check(
278
279
279
280
if ($ this ->checkArgumentTypes ) {
280
281
$ parameterType = TypeUtils::resolveLateResolvableTypes ($ parameter ->getType ());
281
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
282
282
283
283
if (
284
284
!$ parameter ->passedByReference ()->createsNewVariable ()
@@ -290,11 +290,7 @@ public function check(
290
290
$ verbosityLevel = VerbosityLevel::getRecommendedLevelByType ($ parameterType , $ argumentValueType );
291
291
$ errors [] = RuleErrorBuilder::message (sprintf (
292
292
$ messages [6 ],
293
- $ argumentName === null ? sprintf (
294
- '#%d %s ' ,
295
- $ i + 1 ,
296
- $ parameterDescription ,
297
- ) : $ parameterDescription ,
293
+ $ this ->describeParameter ($ parameter , $ argumentName === null ? $ i + 1 : null ),
298
294
$ parameterType ->describe ($ verbosityLevel ),
299
295
$ argumentValueType ->describe ($ verbosityLevel ),
300
296
))
@@ -313,11 +309,7 @@ public function check(
313
309
) {
314
310
$ errors [] = RuleErrorBuilder::message (sprintf (
315
311
$ messages [13 ],
316
- $ argumentName === null ? sprintf (
317
- '#%d %s ' ,
318
- $ i + 1 ,
319
- $ parameterDescription ,
320
- ) : $ parameterDescription ,
312
+ $ this ->describeParameter ($ parameter , $ argumentName === null ? $ i + 1 : null ),
321
313
))->identifier ('argument.unresolvableType ' )->line ($ argumentLine )->build ();
322
314
}
323
315
@@ -329,11 +321,7 @@ public function check(
329
321
) {
330
322
$ errors [] = RuleErrorBuilder::message (sprintf (
331
323
$ messages [6 ],
332
- $ argumentName === null ? sprintf (
333
- '#%d %s ' ,
334
- $ i + 1 ,
335
- $ parameterDescription ,
336
- ) : $ parameterDescription ,
324
+ $ this ->describeParameter ($ parameter , $ argumentName === null ? $ i + 1 : null ),
337
325
'bindable closure ' ,
338
326
'static closure ' ,
339
327
))
@@ -351,10 +339,9 @@ public function check(
351
339
}
352
340
353
341
if ($ this ->nullsafeCheck ->containsNullSafe ($ argumentValue )) {
354
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
355
342
$ errors [] = RuleErrorBuilder::message (sprintf (
356
343
$ messages [8 ],
357
- $ argumentName === null ? sprintf ( ' #%d %s ' , $ i + 1 , $ parameterDescription ) : $ parameterDescription ,
344
+ $ this -> describeParameter ( $ parameter , $ argumentName === null ? $ i + 1 : null ) ,
358
345
))
359
346
->identifier ('argument.byRef ' )
360
347
->line ($ argumentLine )
@@ -381,10 +368,9 @@ public function check(
381
368
$ propertyDescription = sprintf ('readonly property %s::$%s ' , $ propertyReflection ->getDeclaringClass ()->getDisplayName (), $ propertyReflection ->getName ());
382
369
}
383
370
384
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
385
371
$ errors [] = RuleErrorBuilder::message (sprintf (
386
372
'Parameter %s is passed by reference so it does not accept %s. ' ,
387
- $ argumentName === null ? sprintf ( ' #%d %s ' , $ i + 1 , $ parameterDescription ) : $ parameterDescription ,
373
+ $ this -> describeParameter ( $ parameter , $ argumentName === null ? $ i + 1 : null ) ,
388
374
$ propertyDescription ,
389
375
))->identifier ('argument.byRef ' )->line ($ argumentLine )->build ();
390
376
}
@@ -397,10 +383,9 @@ public function check(
397
383
continue ;
398
384
}
399
385
400
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
401
386
$ errors [] = RuleErrorBuilder::message (sprintf (
402
387
$ messages [8 ],
403
- $ argumentName === null ? sprintf ( ' #%d %s ' , $ i + 1 , $ parameterDescription ) : $ parameterDescription ,
388
+ $ this -> describeParameter ( $ parameter , $ argumentName === null ? $ i + 1 : null ) ,
404
389
))->identifier ('argument.byRef ' )->line ($ argumentLine )->build ();
405
390
}
406
391
@@ -600,4 +585,19 @@ private function processArguments(
600
585
return [$ errors , $ newArguments ];
601
586
}
602
587
588
+ private function describeParameter (ParameterReflection $ parameter , ?int $ position ): string
589
+ {
590
+ $ parts = [];
591
+ if ($ position !== null ) {
592
+ $ parts [] = '# ' . $ position ;
593
+ }
594
+
595
+ $ name = $ parameter ->getName ();
596
+ if ($ name !== '' ) {
597
+ $ parts [] = ($ parameter ->isVariadic () ? '...$ ' : '$ ' ) . $ name ;
598
+ }
599
+
600
+ return implode (' ' , $ parts );
601
+ }
602
+
603
603
}
0 commit comments