AbstractClassLikeTypeResolver: improve complexity

This commit is contained in:
Tomas Votruba 2018-06-02 16:47:04 +02:00
parent 3c0beaab69
commit 4335efae33

View File

@ -78,21 +78,15 @@ abstract class AbstractClassLikeTypeResolver
*/
protected function resolveUsedTraitTypes(ClassLike $classOrTraitNode): array
{
$usedTraits = [];
foreach ($classOrTraitNode->stmts as $stmt) {
if (! $stmt instanceof TraitUse) {
continue;
}
foreach ($stmt->traits as $trait) {
if ($trait->hasAttribute(Attribute::RESOLVED_NAME)) {
$usedTraits[] = (string) $trait->getAttribute(Attribute::RESOLVED_NAME);
}
}
return $this->resolveTraitNamesFromTraitUse($stmt);
}
return $usedTraits;
return [];
}
/**
@ -108,4 +102,20 @@ abstract class AbstractClassLikeTypeResolver
return $interface->toString();
}, $classNode->implements);
}
/**
* @return string[]
*/
private function resolveTraitNamesFromTraitUse(TraitUse $traitUse): array
{
$usedTraits = [];
foreach ($traitUse->traits as $trait) {
if ($trait->hasAttribute(Attribute::RESOLVED_NAME)) {
$usedTraits[] = (string)$trait->getAttribute(Attribute::RESOLVED_NAME);
}
}
return $usedTraits;
}
}