Skip to content

Commit d636aec

Browse files
committed
[CodeQuality] Skip @Final doc with public property on ConvertStaticToSelfRector
1 parent dc0735c commit d636aec

File tree

3 files changed

+29
-11
lines changed

3 files changed

+29
-11
lines changed

rules-tests/CodeQuality/Rector/Class_/ConvertStaticToSelfRector/Fixture/non_final_class_final_members.php.inc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ class NonFinalClassFinalMembers
66
{
77
final public const BAR = 1;
88

9-
final public static string $privateProperty = 'test';
9+
final public static string $publicProperty = 'test';
1010

11-
final public static function privateMethod(): void
11+
final public static function publicMethod(): void
1212
{
1313
}
1414

1515
public function run()
1616
{
17-
static::$privateProperty;
18-
static::privateMethod();
17+
static::$publicProperty;
18+
static::publicMethod();
1919
static::BAR;
2020
}
2121
}
@@ -30,16 +30,16 @@ class NonFinalClassFinalMembers
3030
{
3131
final public const BAR = 1;
3232

33-
final public static string $privateProperty = 'test';
33+
final public static string $publicProperty = 'test';
3434

35-
final public static function privateMethod(): void
35+
final public static function publicMethod(): void
3636
{
3737
}
3838

3939
public function run()
4040
{
41-
self::$privateProperty;
42-
self::privateMethod();
41+
self::$publicProperty;
42+
self::publicMethod();
4343
self::BAR;
4444
}
4545
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Rector\Tests\CodeQuality\Rector\Class_\ConvertStaticToSelfRector\Fixture;
4+
5+
class SkipFinalDocProperty
6+
{
7+
/**
8+
* @final
9+
*/
10+
public static string $publicProperty = 'test';
11+
12+
public function run()
13+
{
14+
static::$publicProperty;
15+
}
16+
}
17+
18+
?>

rules/CodeQuality/Rector/Class_/ConvertStaticToSelfRector.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
namespace Rector\CodeQuality\Rector\Class_;
66

7+
use PHPStan\Reflection\RealClassClassConstantReflection;
78
use PHPStan\Analyser\Scope;
8-
use PHPStan\Reflection\ClassConstantReflection;
99
use PhpParser\Node;
1010
use PhpParser\Node\Expr\ClassConstFetch;
1111
use PhpParser\Node\Expr\StaticCall;
@@ -163,9 +163,9 @@ private function shouldSkip(
163163
}
164164

165165
if (! $isFinal) {
166-
$memberIsFinal = $reflection instanceof ClassConstantReflection
166+
$memberIsFinal = $reflection instanceof RealClassClassConstantReflection
167167
? $reflection->isFinal()
168-
: $reflection->isFinal()->yes();
168+
: $reflection->isFinalByKeyword()->yes();
169169

170170
// Final native members can be safely converted
171171
if ($memberIsFinal) {

0 commit comments

Comments
 (0)