Skip to content

Commit c889baa

Browse files
committed
Run @mixin class reflection extensions after all other class reflection extensions
1 parent 42709fc commit c889baa

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

conf/config.neon

-4
Original file line numberDiff line numberDiff line change
@@ -797,15 +797,11 @@ services:
797797

798798
-
799799
class: PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension
800-
tags:
801-
- phpstan.broker.methodsClassReflectionExtension
802800
arguments:
803801
mixinExcludeClasses: %mixinExcludeClasses%
804802

805803
-
806804
class: PHPStan\Reflection\Mixin\MixinPropertiesClassReflectionExtension
807-
tags:
808-
- phpstan.broker.propertiesClassReflectionExtension
809805
arguments:
810806
mixinExcludeClasses: %mixinExcludeClasses%
811807

src/DependencyInjection/Reflection/LazyClassReflectionExtensionRegistryProvider.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use PHPStan\Reflection\Annotations\AnnotationsMethodsClassReflectionExtension;
99
use PHPStan\Reflection\Annotations\AnnotationsPropertiesClassReflectionExtension;
1010
use PHPStan\Reflection\ClassReflectionExtensionRegistry;
11+
use PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension;
12+
use PHPStan\Reflection\Mixin\MixinPropertiesClassReflectionExtension;
1113
use PHPStan\Reflection\Php\PhpClassReflectionExtension;
1214
use PHPStan\Reflection\RequireExtension\RequireExtendsMethodsClassReflectionExtension;
1315
use PHPStan\Reflection\RequireExtension\RequireExtendsPropertiesClassReflectionExtension;
@@ -29,10 +31,13 @@ public function getRegistry(): ClassReflectionExtensionRegistry
2931
$annotationsMethodsClassReflectionExtension = $this->container->getByType(AnnotationsMethodsClassReflectionExtension::class);
3032
$annotationsPropertiesClassReflectionExtension = $this->container->getByType(AnnotationsPropertiesClassReflectionExtension::class);
3133

34+
$mixinMethodsClassReflectionExtension = $this->container->getByType(MixinMethodsClassReflectionExtension::class);
35+
$mixinPropertiesClassReflectionExtension = $this->container->getByType(MixinPropertiesClassReflectionExtension::class);
36+
3237
$this->registry = new ClassReflectionExtensionRegistry(
3338
$this->container->getByType(Broker::class),
34-
array_merge([$phpClassReflectionExtension], $this->container->getServicesByTag(BrokerFactory::PROPERTIES_CLASS_REFLECTION_EXTENSION_TAG), [$annotationsPropertiesClassReflectionExtension]),
35-
array_merge([$phpClassReflectionExtension], $this->container->getServicesByTag(BrokerFactory::METHODS_CLASS_REFLECTION_EXTENSION_TAG), [$annotationsMethodsClassReflectionExtension]),
39+
array_merge([$phpClassReflectionExtension], $this->container->getServicesByTag(BrokerFactory::PROPERTIES_CLASS_REFLECTION_EXTENSION_TAG), [$annotationsPropertiesClassReflectionExtension, $mixinPropertiesClassReflectionExtension]),
40+
array_merge([$phpClassReflectionExtension], $this->container->getServicesByTag(BrokerFactory::METHODS_CLASS_REFLECTION_EXTENSION_TAG), [$annotationsMethodsClassReflectionExtension, $mixinMethodsClassReflectionExtension]),
3641
$this->container->getServicesByTag(BrokerFactory::ALLOWED_SUB_TYPES_CLASS_REFLECTION_EXTENSION_TAG),
3742
$this->container->getByType(RequireExtendsPropertiesClassReflectionExtension::class),
3843
$this->container->getByType(RequireExtendsMethodsClassReflectionExtension::class),

0 commit comments

Comments
 (0)