From cadbb8ef85727a20d6b11e9b7bb7a97fd06495db Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Mon, 8 May 2017 14:04:52 +0200 Subject: [PATCH] Updated for PHPStan 0.7 --- build.xml | 2 +- composer.json | 12 +++++++++--- ruleset.xml | 4 +++- .../EntityManagerFindDynamicReturnTypeExtension.php | 10 ++++++++-- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/build.xml b/build.xml index 5abb3d85..86814b7c 100644 --- a/build.xml +++ b/build.xml @@ -92,7 +92,7 @@ > - + diff --git a/composer.json b/composer.json index a16d49b2..17cb7f49 100644 --- a/composer.json +++ b/composer.json @@ -4,17 +4,23 @@ "license": ["MIT"], "minimum-stability": "dev", "prefer-stable": true, + "extra": { + "branch-alias": { + "dev-master": "0.7-dev" + } + }, "require": { "php": "~7.0", - "phpstan/phpstan": "^0.6.3", + "phpstan/phpstan": "^0.7", "doctrine/common": "^2.7", "doctrine/orm": "^2.5" }, "require-dev": { - "consistence/coding-standard": "~0.12.0", + "consistence/coding-standard": "~0.13.0", + "jakub-onderka/php-parallel-lint": "^0.9.2", "phing/phing": "^2.16.0", "phpunit/phpunit": "^5.7", - "slevomat/coding-standard": "dev-php7#d4a1a9c" + "slevomat/coding-standard": "^2.0" }, "autoload": { "psr-4": { diff --git a/ruleset.xml b/ruleset.xml index 664e8dbf..96dd3f9a 100644 --- a/ruleset.xml +++ b/ruleset.xml @@ -7,11 +7,13 @@ - + + + diff --git a/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php b/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php index e62dd7b5..daf90e55 100644 --- a/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php +++ b/src/Type/Doctrine/EntityManagerFindDynamicReturnTypeExtension.php @@ -7,6 +7,7 @@ use PHPStan\Reflection\MethodReflection; use PHPStan\Type\ObjectType; use PHPStan\Type\Type; +use PHPStan\Type\TypeCombinator; class EntityManagerFindDynamicReturnTypeExtension implements \PHPStan\Type\DynamicMethodReturnTypeExtension { @@ -51,10 +52,15 @@ public function getTypeFromMethodCall( } if ($class === 'self') { - $class = $scope->getClass(); + $class = $scope->getClassReflection()->getName(); } - return new ObjectType($class, $methodReflection->getName() === 'find'); + $type = new ObjectType($class); + if ($methodReflection->getName() === 'find') { + $type = TypeCombinator::addNull($type); + } + + return $type; } }