diff --git a/rules-tests/Renaming/Rector/MethodCall/RenameMethodRector/Fixture/rename_trait_method_which_is_overwritten.php.inc b/rules-tests/Renaming/Rector/MethodCall/RenameMethodRector/Fixture/rename_trait_method_which_is_overwritten.php.inc new file mode 100644 index 00000000000..c75b59dbb16 --- /dev/null +++ b/rules-tests/Renaming/Rector/MethodCall/RenameMethodRector/Fixture/rename_trait_method_which_is_overwritten.php.inc @@ -0,0 +1,33 @@ + +----- + diff --git a/rules-tests/Renaming/Rector/MethodCall/RenameMethodRector/Fixture/skip_rename_method_which_is_not_in_trait.php.inc b/rules-tests/Renaming/Rector/MethodCall/RenameMethodRector/Fixture/skip_rename_method_which_is_not_in_trait.php.inc new file mode 100644 index 00000000000..3747d9ef8dc --- /dev/null +++ b/rules-tests/Renaming/Rector/MethodCall/RenameMethodRector/Fixture/skip_rename_method_which_is_not_in_trait.php.inc @@ -0,0 +1,14 @@ +ruleWithConfiguration(RenameMethodRector::class, [ @@ -39,5 +40,8 @@ // enum method new MethodCallRename(SomeEnumWithMethod::class, 'oldEnumMethod', 'newEnumMethod'), + + // trait method + new MethodCallRename(SomeTrait::class, '_test', 'test'), ]); }; diff --git a/src/NodeTypeResolver/NodeTypeResolver.php b/src/NodeTypeResolver/NodeTypeResolver.php index bad85418a8b..e1782713cb7 100644 --- a/src/NodeTypeResolver/NodeTypeResolver.php +++ b/src/NodeTypeResolver/NodeTypeResolver.php @@ -337,7 +337,11 @@ public function isMethodStaticCallOrClassMethodObjectType(Node $node, ObjectType return true; } - return $classReflection->is($objectType->getClassName()); + if ($classReflection->is($objectType->getClassName())) { + return true; + } + + return $classReflection->hasTraitUse($objectType->getClassName()); } /**