diff --git a/src/Type/PHPUnit/CreateMockDynamicReturnTypeExtension.php b/src/Type/PHPUnit/CreateMockDynamicReturnTypeExtension.php index 295915e..3a03fea 100644 --- a/src/Type/PHPUnit/CreateMockDynamicReturnTypeExtension.php +++ b/src/Type/PHPUnit/CreateMockDynamicReturnTypeExtension.php @@ -8,11 +8,12 @@ use PHPStan\Reflection\ParametersAcceptorSelector; use PHPStan\Type\Constant\ConstantArrayType; use PHPStan\Type\Constant\ConstantStringType; +use PHPStan\Type\DynamicMethodReturnTypeExtension; use PHPStan\Type\ObjectType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; -class CreateMockDynamicReturnTypeExtension implements \PHPStan\Type\DynamicMethodReturnTypeExtension +class CreateMockDynamicReturnTypeExtension implements DynamicMethodReturnTypeExtension { /** @var int[] */ @@ -51,7 +52,7 @@ public function getTypeFromMethodCall(MethodReflection $methodReflection, Method } if ($argType instanceof ConstantArrayType) { - $types = array_map(function (Type $argType): ObjectType { + $types = array_map(function (ConstantStringType $argType): ObjectType { return new ObjectType($argType->getValue()); }, $argType->getValueTypes()); } diff --git a/src/Type/PHPUnit/GetMockBuilderDynamicReturnTypeExtension.php b/src/Type/PHPUnit/GetMockBuilderDynamicReturnTypeExtension.php index cd5e42f..5149767 100644 --- a/src/Type/PHPUnit/GetMockBuilderDynamicReturnTypeExtension.php +++ b/src/Type/PHPUnit/GetMockBuilderDynamicReturnTypeExtension.php @@ -8,10 +8,11 @@ use PHPStan\Reflection\ParametersAcceptorSelector; use PHPStan\Type\Constant\ConstantArrayType; use PHPStan\Type\Constant\ConstantStringType; +use PHPStan\Type\DynamicMethodReturnTypeExtension; use PHPStan\Type\Type; use PHPStan\Type\TypeWithClassName; -class GetMockBuilderDynamicReturnTypeExtension implements \PHPStan\Type\DynamicMethodReturnTypeExtension +class GetMockBuilderDynamicReturnTypeExtension implements DynamicMethodReturnTypeExtension { public function getClass(): string @@ -43,7 +44,7 @@ public function getTypeFromMethodCall(MethodReflection $methodReflection, Method } if ($argType instanceof ConstantArrayType) { - $classes = array_map(function (Type $argType): string { + $classes = array_map(function (ConstantStringType $argType): string { return $argType->getValue(); }, $argType->getValueTypes()); diff --git a/src/Type/PHPUnit/MockBuilderDynamicReturnTypeExtension.php b/src/Type/PHPUnit/MockBuilderDynamicReturnTypeExtension.php index 584ff4a..37a1919 100644 --- a/src/Type/PHPUnit/MockBuilderDynamicReturnTypeExtension.php +++ b/src/Type/PHPUnit/MockBuilderDynamicReturnTypeExtension.php @@ -5,14 +5,16 @@ use PhpParser\Node\Expr\MethodCall; use PHPStan\Analyser\Scope; use PHPStan\Broker\Broker; +use PHPStan\Reflection\BrokerAwareExtension; use PHPStan\Reflection\MethodReflection; use PHPStan\Reflection\ParametersAcceptorSelector; +use PHPStan\Type\DynamicMethodReturnTypeExtension; use PHPStan\Type\ObjectType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use PHPStan\Type\TypeWithClassName; -class MockBuilderDynamicReturnTypeExtension implements \PHPStan\Type\DynamicMethodReturnTypeExtension, \PHPStan\Reflection\BrokerAwareExtension +class MockBuilderDynamicReturnTypeExtension implements DynamicMethodReturnTypeExtension, BrokerAwareExtension { /** @var \PHPStan\Broker\Broker */ diff --git a/src/Type/PHPUnit/MockBuilderType.php b/src/Type/PHPUnit/MockBuilderType.php index f8c39ad..d77c3b6 100644 --- a/src/Type/PHPUnit/MockBuilderType.php +++ b/src/Type/PHPUnit/MockBuilderType.php @@ -2,10 +2,11 @@ namespace PHPStan\Type\PHPUnit; +use PHPStan\Type\ObjectType; use PHPStan\Type\TypeWithClassName; use PHPStan\Type\VerbosityLevel; -class MockBuilderType extends \PHPStan\Type\ObjectType +class MockBuilderType extends ObjectType { /** @var array */ diff --git a/tests/Type/PHPUnit/CreateMockExtensionTest.php b/tests/Type/PHPUnit/CreateMockExtensionTest.php index e000361..3994d15 100644 --- a/tests/Type/PHPUnit/CreateMockExtensionTest.php +++ b/tests/Type/PHPUnit/CreateMockExtensionTest.php @@ -21,7 +21,7 @@ public function testCreateMock(string $expression, string $type): void __DIR__ . '/data/create-mock.php', $expression, $type, - [new CreateMockDynamicReturnTypeExtension(), new GetMockBuilderDynamicReturnTypeExtension()] + [new CreateMockDynamicReturnTypeExtension()] ); } diff --git a/tests/Type/PHPUnit/ExtensionTestCase.php b/tests/Type/PHPUnit/ExtensionTestCase.php index e0f392f..81eaf6a 100644 --- a/tests/Type/PHPUnit/ExtensionTestCase.php +++ b/tests/Type/PHPUnit/ExtensionTestCase.php @@ -20,6 +20,12 @@ abstract class ExtensionTestCase extends TestCase { + /** + * @param string $file + * @param string $expression + * @param string $type + * @param array $extensions + */ protected function processFile( string $file, string $expression,