Skip to content

Commit 7d487e1

Browse files
devnixsamsonasik
andauthored
[CodingStyle] Do not use FullyQualified on "self" on ClosureFromCallableToFirstClassCallableRector (#7632)
* fix #9493 * early check FullyQualified --------- Co-authored-by: Abdul Malik Ikhsan <samsonasik@gmail.com>
1 parent 8e15aad commit 7d487e1

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
class Foo
4+
{
5+
public static function bar(): void
6+
{
7+
set_exception_handler(Closure::fromCallable([self::class, 'baz']));
8+
}
9+
10+
public static function baz(): void
11+
{
12+
}
13+
}
14+
15+
?>
16+
-----
17+
<?php
18+
19+
class Foo
20+
{
21+
public static function bar(): void
22+
{
23+
set_exception_handler(self::baz(...));
24+
}
25+
26+
public static function baz(): void
27+
{
28+
}
29+
}
30+
31+
?>

rules/CodingStyle/Rector/FuncCall/ClosureFromCallableToFirstClassCallableRector.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,12 @@ public function refactor(Node $node): ?Node
9797
return null;
9898
}
9999

100-
$classNode = new FullyQualified($array->items[0]->value->class->name);
100+
if ($array->items[0]->value->class instanceof FullyQualified) {
101+
$classNode = new FullyQualified($array->items[0]->value->class->name);
102+
} else {
103+
$classNode = new Name($array->items[0]->value->class->name);
104+
}
105+
101106
} elseif ($array->items[0]->value instanceof FullyQualified) {
102107
$classNode = new FullyQualified($array->items[0]->value->name);
103108
} else {

0 commit comments

Comments
 (0)