Skip to content

Commit 8563582

Browse files
committed
Fix passed location data to PARAMETER_TYPE
1 parent b7bef97 commit 8563582

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/Rules/FunctionDefinitionCheck.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -427,14 +427,24 @@ private function checkParametersAcceptor(
427427
->build();
428428
}
429429

430+
$locationData = [
431+
'parameterName' => $parameter->getName(),
432+
];
433+
if ($parametersAcceptor instanceof PhpMethodFromParserNodeReflection) {
434+
$locationData['method'] = $parametersAcceptor;
435+
if (!$parametersAcceptor->getDeclaringClass()->isAnonymous()) {
436+
$locationData['currentClassName'] = $parametersAcceptor->getDeclaringClass()->getName();
437+
}
438+
} else {
439+
$locationData['function'] = $parametersAcceptor;
440+
}
441+
430442
$errors = array_merge(
431443
$errors,
432444
$this->classCheck->checkClassNames(
433445
$scope,
434446
array_map(static fn (string $class): ClassNameNodePair => new ClassNameNodePair($class, $parameterNodeCallback()), $referencedClasses),
435-
ClassNameUsageLocation::from(ClassNameUsageLocation::PARAMETER_TYPE, [
436-
'parameterName' => $parameter->getName(),
437-
]),
447+
ClassNameUsageLocation::from(ClassNameUsageLocation::PARAMETER_TYPE, $locationData),
438448
$this->checkClassCaseSensitivity,
439449
),
440450
);

0 commit comments

Comments
 (0)