@@ -374,6 +374,8 @@ private function createMethodsFromTrait(ReflectionMethod $method): array
374
374
$ methodHash = $ this ->methodHash ($ method ->getImplementingClass ()->getName (), $ method ->getName ());
375
375
376
376
if (array_key_exists ($ methodHash , $ this ->traitsData ['modifiers ' ])) {
377
+ $ newModifierAst = $ this ->traitsData ['modifiers ' ][$ methodHash ];
378
+ if ($ this ->traitsData ['modifiers ' ][$ methodHash ] & ClassNode::VISIBILITY_MODIFIER_MASK ) {
377
379
$ methodModifiersWithoutVisibility = $ methodModifiers ;
378
380
if (($ methodModifiers & CoreReflectionMethod::IS_PUBLIC ) === CoreReflectionMethod::IS_PUBLIC ) {
379
381
$ methodModifiersWithoutVisibility -= CoreReflectionMethod::IS_PUBLIC ;
@@ -384,7 +386,6 @@ private function createMethodsFromTrait(ReflectionMethod $method): array
384
386
if (($ methodModifiers & CoreReflectionMethod::IS_PRIVATE ) === CoreReflectionMethod::IS_PRIVATE ) {
385
387
$ methodModifiersWithoutVisibility -= CoreReflectionMethod::IS_PRIVATE ;
386
388
}
387
- $ newModifierAst = $ this ->traitsData ['modifiers ' ][$ methodHash ];
388
389
$ newModifier = 0 ;
389
390
if (($ newModifierAst & ClassNode::MODIFIER_PUBLIC ) === ClassNode::MODIFIER_PUBLIC ) {
390
391
$ newModifier = CoreReflectionMethod::IS_PUBLIC ;
@@ -395,10 +396,11 @@ private function createMethodsFromTrait(ReflectionMethod $method): array
395
396
if (($ newModifierAst & ClassNode::MODIFIER_PRIVATE ) === ClassNode::MODIFIER_PRIVATE ) {
396
397
$ newModifier = CoreReflectionMethod::IS_PRIVATE ;
397
398
}
399
+ $ methodModifiers = $ methodModifiersWithoutVisibility | $ newModifier ;
400
+ }
398
401
if (($ newModifierAst & ClassNode::MODIFIER_FINAL ) === ClassNode::MODIFIER_FINAL ) {
399
- $ newModifier = CoreReflectionMethod::IS_FINAL ;
402
+ $ methodModifiers | = CoreReflectionMethod::IS_FINAL ;
400
403
}
401
- $ methodModifiers = $ methodModifiersWithoutVisibility | $ newModifier ;
402
404
}
403
405
404
406
$ createMethod = function (string |null $ aliasMethodName ) use ($ method , $ methodModifiers ): ReflectionMethod {
0 commit comments