Merge pull request #1515 from yondifon/fix-trait-inheritance-detection

BugFix: Fix toUseTrait to detect inherited and nested traits
This commit is contained in:
nuno maduro
2026-04-10 11:39:56 +01:00
committed by GitHub
6 changed files with 83 additions and 1 deletions

View File

@ -819,7 +819,22 @@ final class Expectation
return false;
}
if (! in_array($trait, $object->reflectionClass->getTraitNames(), true)) {
$currentClass = $object->reflectionClass;
$usedTraits = [];
do {
$classTraits = $currentClass->getTraits();
foreach ($classTraits as $traitReflection) {
$usedTraits[$traitReflection->getName()] = $traitReflection->getName();
$nestedTraits = $traitReflection->getTraits();
foreach ($nestedTraits as $nestedTrait) {
$usedTraits[$nestedTrait->getName()] = $nestedTrait->getName();
}
}
} while ($currentClass = $currentClass->getParentClass());
if (! array_key_exists($trait, $usedTraits)) {
return false;
}
}