Detect parent constant visibility when it is declared in a super-superclass

This commit is contained in:
Christian Scheb 2019-08-21 21:26:05 +02:00
parent b82d6dc8af
commit e42527ddc8
2 changed files with 13 additions and 2 deletions

View File

@ -137,6 +137,9 @@ CODE_SAMPLE
$this->refactor($parentClassConstant);
return $parentClassConstant;
} else {
// If the constant isn't declared in the parent, it might be declared in the parent's parent
return $this->findParentClassConstant($parentClassName, $constant);
}
}
}

View File

@ -2,7 +2,11 @@
namespace Rector\SOLID\Tests\Rector\ClassConst\PrivatizeLocalClassConstantRector\Fixture;
class OverridingPublicConstantClass extends DeclaringPublicConstantClass
class MiddleExtendingClass extends DeclaringPublicConstantClass
{
}
class OverridingPublicConstantClass extends MiddleExtendingClass
{
const PUBLIC_CONSTANT = false;
}
@ -26,7 +30,11 @@ class PublicConstantUser
namespace Rector\SOLID\Tests\Rector\ClassConst\PrivatizeLocalClassConstantRector\Fixture;
class OverridingPublicConstantClass extends DeclaringPublicConstantClass
class MiddleExtendingClass extends DeclaringPublicConstantClass
{
}
class OverridingPublicConstantClass extends MiddleExtendingClass
{
public const PUBLIC_CONSTANT = false;
}