From f7d495894c8d52204ff541522b5b06e90bb97fea Mon Sep 17 00:00:00 2001 From: Jan Nedbal Date: Fri, 6 Sep 2024 17:03:07 +0200 Subject: [PATCH] Failing test: missing class method with trait aliases are used --- test/unit/Fixture/TraitFixture.php | 19 +++++++++++++++++++ test/unit/Reflection/ReflectionClassTest.php | 20 ++++++++++++++++++++ 2 files changed, 39 insertions(+) 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(