Skip to content

Commit 57a2367

Browse files
Fix
1 parent bcd4f93 commit 57a2367

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/Reflection/ParametersAcceptorSelector.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,15 +204,17 @@ public static function selectFromArgs(
204204
];
205205
}
206206

207-
if (isset($args[0]) && (bool) $args[0]->getAttribute(ImplodeArgVisitor::ATTRIBUTE_NAME)) {
208-
if (isset($args[1]) || $args[0]->name?->name === 'array') {
207+
if (count($args) <= 2 && (bool) $args[0]->getAttribute(ImplodeArgVisitor::ATTRIBUTE_NAME)) {
208+
$acceptor = $parametersAcceptors[0];
209+
$parameters = $acceptor->getParameters();
210+
if (isset($args[1]) || ($args[0]->name !== null && $args[0]->name->name === 'array')) {
209211
$parameters = [
210212
new NativeParameterReflection('separator', false, new StringType(), PassedByReference::createNo(), false, null),
211213
new NativeParameterReflection('array', false, new ArrayType(new MixedType(), new MixedType()), PassedByReference::createNo(), false, null),
212214
];
213215
} else {
214216
$parameters = [
215-
new NativeParameterReflection('array', false, new ArrayType(new MixedType(), new MixedType()), PassedByReference::createNo(), false, null),
217+
new NativeParameterReflection('separator', false, new ArrayType(new MixedType(), new MixedType()), PassedByReference::createNo(), false, null),
216218
];
217219
}
218220

tests/PHPStan/Rules/Functions/CallToFunctionParametersRuleTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,7 @@ public function testImplodeOnLessThanPhp74(): void
364364
$this->analyse([__DIR__ . '/data/implode-74.php'], $errors);
365365
}
366366

367+
#[RequiresPhp('>= 8.0')]
367368
public function testImplodeNamedParameters(): void
368369
{
369370
$this->analyse([__DIR__ . '/data/implode-named-parameters.php'], [

0 commit comments

Comments
 (0)