[Reflection] Clean up getAncestors() call, use merge parents and interfaces (#1536)

Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
Abdul Malik Ikhsan 2021-12-21 01:00:18 +07:00 committed by GitHub
parent 45e7eea690
commit a16f614af3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 22 deletions

View File

@ -82,18 +82,13 @@ final class FamilyRelationsAnalyzer
throw new ShouldNotHappenException();
}
$ancestorClassReflections = $classReflection->getAncestors();
$ancestorClassReflections = array_merge($classReflection->getParents(), $classReflection->getInterfaces());
$propertyName = $this->nodeNameResolver->getName($property);
$kindPropertyFetch = $this->getKindPropertyFetch($property);
$className = $classReflection->getName();
foreach ($ancestorClassReflections as $ancestorClassReflection) {
$ancestorClassName = $ancestorClassReflection->getName();
if ($ancestorClassName === $className) {
continue;
}
if ($ancestorClassReflection->isSubclassOf('PHPUnit\Framework\TestCase')) {
continue;

View File

@ -115,12 +115,8 @@ final class ClassMethodParamVendorLockResolver
string $methodName,
string $filePathPartName
): bool {
foreach ($classReflection->getAncestors() as $ancestorClassReflection) {
// skip self
if ($ancestorClassReflection === $classReflection) {
continue;
}
$ancestorClassReflections = array_merge($classReflection->getParents(), $classReflection->getInterfaces());
foreach ($ancestorClassReflections as $ancestorClassReflection) {
// parent type
if (! $ancestorClassReflection->hasNativeMethod($methodName)) {
continue;

View File

@ -45,14 +45,12 @@ final class PhpAttributeAnalyzer
}
$classReflection = $this->reflectionProvider->getClass($className);
$ancestorClassReflections = $classReflection->getAncestors();
$ancestorClassReflections = array_merge($classReflection->getParents(), $classReflection->getInterfaces());
foreach ($ancestorClassReflections as $ancestorClassReflection) {
$ancestorClassName = $ancestorClassReflection->getName();
if ($ancestorClassName === $className) {
continue;
}
$class = $this->astResolver->resolveClassFromName($ancestorClassName);
if (! $class instanceof Class_) {
continue;
}

View File

@ -31,11 +31,8 @@ final class ClassManipulator
}
$classReflection = $this->reflectionProvider->getClass($objectType->getClassName());
foreach ($classReflection->getAncestors() as $ancestorClassReflection) {
if ($classReflection === $ancestorClassReflection) {
continue;
}
$ancestorClassReflections = array_merge($classReflection->getParents(), $classReflection->getInterfaces());
foreach ($ancestorClassReflections as $ancestorClassReflection) {
if (! $ancestorClassReflection->hasMethod($oldMethod)) {
continue;
}