File tree Expand file tree Collapse file tree 2 files changed +5
-5
lines changed
rules/CodingStyle/Rector/Closure Expand file tree Collapse file tree 2 files changed +5
-5
lines changed Original file line number Diff line number Diff line change 44
55namespace Rector \CodingStyle \Rector \Closure ;
66
7- use Override ;
87use PhpParser \Node ;
98use PhpParser \Node \Expr \CallLike ;
109use PhpParser \Node \Expr \Closure ;
@@ -68,7 +67,6 @@ public function getNodeTypes(): array
6867 return [Closure::class];
6968 }
7069
71- #[Override]
7270 public function beforeTraverse (array $ nodes ): array
7371 {
7472 parent ::beforeTraverse ($ nodes );
Original file line number Diff line number Diff line change 1212use Rector \PHPStan \ScopeFetcher ;
1313use Rector \Reflection \ReflectionResolver ;
1414
15- class CallLikeExpectsThisBindedClosureArgsAnalyzer
15+ final class CallLikeExpectsThisBindedClosureArgsAnalyzer
1616{
1717 public function __construct (
1818 private readonly ReflectionResolver $ reflectionResolver
@@ -43,13 +43,13 @@ public function getArgsUsingThisBindedClosure(CallLike $callLike): array
4343 $ parameters = $ parametersAcceptor ->getParameters ();
4444
4545 foreach ($ callLike ->getArgs () as $ index => $ arg ) {
46-
4746 if (! $ arg ->value instanceof Closure) {
4847 continue ;
4948 }
5049
5150 if ($ arg ->name ?->name !== null ) {
5251 foreach ($ parameters as $ parameter ) {
52+ /** @phpstan-ignore method.notFound */
5353 $ hasObjectBinding = (bool ) $ parameter ->getClosureThisType ();
5454 if ($ hasObjectBinding && $ arg ->name ->name === $ parameter ->getName ()) {
5555 $ args [] = $ arg ;
@@ -66,7 +66,9 @@ public function getArgsUsingThisBindedClosure(CallLike $callLike): array
6666 continue ;
6767 }
6868
69- if ($ parameter ->getClosureThisType () !== null ) {
69+ /** @phpstan-ignore method.notFound */
70+ $ hasObjectBinding = (bool ) $ parameter ->getClosureThisType ();
71+ if ($ hasObjectBinding ) {
7072 $ args [] = $ arg ;
7173 }
7274 }
You can’t perform that action at this time.
0 commit comments