diff --git a/test/unit/Fixture/TraitFixture.php b/test/unit/Fixture/TraitFixture.php index 9f1daafe1..0e732a4f2 100644 --- a/test/unit/Fixture/TraitFixture.php +++ b/test/unit/Fixture/TraitFixture.php @@ -133,3 +133,22 @@ class TraitFixtureF } } + + + +trait Trait1FixtureG { + public function method1() {} + public function method2() {} +} + +trait Trait2FixtureG { + public function method3() {} + public function method4() {} +} + +class ClassFixtureG { + use Trait1FixtureG, Trait2FixtureG { + method1 as alias1; + method3 as alias3; + } +} diff --git a/test/unit/Reflection/ReflectionClassTest.php b/test/unit/Reflection/ReflectionClassTest.php index 692adb649..553ac6ba7 100644 --- a/test/unit/Reflection/ReflectionClassTest.php +++ b/test/unit/Reflection/ReflectionClassTest.php @@ -1504,6 +1504,26 @@ public function testGetTraitAliases(): void ], $classInfo->getTraitAliases()); } + + public function testGetMethodsWithTraitAliases(): void + { + $reflector = new DefaultReflector(new SingleFileSourceLocator( + __DIR__ . '/../Fixture/TraitFixture.php', + $this->astLocator, + )); + + $classInfo = $reflector->reflectClass('ClassFixtureG'); + + self::assertSame([ + 'method1', + 'method2', + 'method3', + 'alias3', + 'method4', + 'alias1', + ], array_keys($classInfo->getMethods())); + } + public function testGetTraitNamesWithMissingTraitDefinitions(): void { $reflector = new DefaultReflector(new SingleFileSourceLocator(