26
26
use function array_fill ;
27
27
use function array_key_exists ;
28
28
use function count ;
29
+ use function implode ;
29
30
use function is_string ;
30
31
use function max ;
31
32
use function sprintf ;
@@ -260,14 +261,9 @@ public function check(
260
261
261
262
if (!$ accepts ->result ) {
262
263
$ verbosityLevel = VerbosityLevel::getRecommendedLevelByType ($ parameterType , $ argumentValueType );
263
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
264
264
$ errors [] = RuleErrorBuilder::message (sprintf (
265
265
$ messages [6 ],
266
- $ argumentName === null ? sprintf (
267
- '#%d %s ' ,
268
- $ i + 1 ,
269
- $ parameterDescription ,
270
- ) : $ parameterDescription ,
266
+ $ this ->describeParameter ($ parameter , $ argumentName === null ? $ i + 1 : null ),
271
267
$ parameterType ->describe ($ verbosityLevel ),
272
268
$ argumentValueType ->describe ($ verbosityLevel ),
273
269
))->line ($ argumentLine )->acceptsReasonsTip ($ accepts ->reasons )->build ();
@@ -280,14 +276,9 @@ public function check(
280
276
&& !$ this ->unresolvableTypeHelper ->containsUnresolvableType ($ originalParameter ->getType ())
281
277
&& $ this ->unresolvableTypeHelper ->containsUnresolvableType ($ parameterType )
282
278
) {
283
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
284
279
$ errors [] = RuleErrorBuilder::message (sprintf (
285
280
$ messages [13 ],
286
- $ argumentName === null ? sprintf (
287
- '#%d %s ' ,
288
- $ i + 1 ,
289
- $ parameterDescription ,
290
- ) : $ parameterDescription ,
281
+ $ this ->describeParameter ($ parameter , $ argumentName === null ? $ i + 1 : null ),
291
282
))->line ($ argumentLine )->build ();
292
283
}
293
284
}
@@ -300,10 +291,9 @@ public function check(
300
291
}
301
292
302
293
if ($ this ->nullsafeCheck ->containsNullSafe ($ argumentValue )) {
303
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
304
294
$ errors [] = RuleErrorBuilder::message (sprintf (
305
295
$ messages [8 ],
306
- $ argumentName === null ? sprintf ( ' #%d %s ' , $ i + 1 , $ parameterDescription ) : $ parameterDescription ,
296
+ $ this -> describeParameter ( $ parameter , $ argumentName === null ? $ i + 1 : null ) ,
307
297
))->line ($ argumentLine )->build ();
308
298
continue ;
309
299
}
@@ -327,10 +317,9 @@ public function check(
327
317
$ propertyDescription = sprintf ('readonly property %s::$%s ' , $ propertyReflection ->getDeclaringClass ()->getDisplayName (), $ propertyReflection ->getName ());
328
318
}
329
319
330
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
331
320
$ errors [] = RuleErrorBuilder::message (sprintf (
332
321
'Parameter %s is passed by reference so it does not accept %s. ' ,
333
- $ argumentName === null ? sprintf ( ' #%d %s ' , $ i + 1 , $ parameterDescription ) : $ parameterDescription ,
322
+ $ this -> describeParameter ( $ parameter , $ argumentName === null ? $ i + 1 : null ) ,
334
323
$ propertyDescription ,
335
324
))->line ($ argumentLine )->build ();
336
325
}
@@ -343,10 +332,9 @@ public function check(
343
332
continue ;
344
333
}
345
334
346
- $ parameterDescription = sprintf ('%s$%s ' , $ parameter ->isVariadic () ? '... ' : '' , $ parameter ->getName ());
347
335
$ errors [] = RuleErrorBuilder::message (sprintf (
348
336
$ messages [8 ],
349
- $ argumentName === null ? sprintf ( ' #%d %s ' , $ i + 1 , $ parameterDescription ) : $ parameterDescription ,
337
+ $ this -> describeParameter ( $ parameter , $ argumentName === null ? $ i + 1 : null ) ,
350
338
))->line ($ argumentLine )->build ();
351
339
}
352
340
@@ -526,4 +514,19 @@ private function processArguments(
526
514
return [$ errors , $ newArguments ];
527
515
}
528
516
517
+ private function describeParameter (ParameterReflection $ parameter , ?int $ position ): string
518
+ {
519
+ $ parts = [];
520
+ if ($ position !== null ) {
521
+ $ parts [] = '# ' . $ position ;
522
+ }
523
+
524
+ $ name = $ parameter ->getName ();
525
+ if ($ name !== '' ) {
526
+ $ parts [] = ($ parameter ->isVariadic () ? '...$ ' : '$ ' ) . $ name ;
527
+ }
528
+
529
+ return implode (' ' , $ parts );
530
+ }
531
+
529
532
}
0 commit comments