From 8aee57406914f4b8c883f448b1090bf0b8ca6c1b Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 24 Sep 2021 13:18:26 +0300 Subject: [PATCH] Phpstan fixes --- system/src/Grav/Common/Media/Traits/MediaUploadTrait.php | 2 +- .../Grav/Framework/Collection/AbstractFileCollection.php | 2 +- .../Framework/Collection/AbstractIndexCollection.php | 9 ++++++++- .../Grav/Framework/Collection/AbstractLazyCollection.php | 2 +- system/src/Grav/Framework/Collection/ArrayCollection.php | 2 +- .../Grav/Framework/Collection/CollectionInterface.php | 2 +- system/src/Grav/Framework/Collection/FileCollection.php | 2 +- .../Framework/Collection/FileCollectionInterface.php | 2 +- system/src/Grav/Framework/Flex/FlexIndex.php | 6 +++++- .../Framework/Flex/Interfaces/FlexIndexInterface.php | 1 + .../Grav/Framework/Object/Base/ObjectCollectionTrait.php | 2 -- .../Interfaces/NestedObjectCollectionInterface.php | 2 +- .../Object/Interfaces/ObjectCollectionInterface.php | 3 ++- system/src/Grav/Framework/Object/ObjectCollection.php | 2 +- system/src/Grav/Framework/Object/ObjectIndex.php | 3 ++- 15 files changed, 27 insertions(+), 15 deletions(-) diff --git a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php index 71431ed57..7a1f55d6e 100644 --- a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php @@ -108,7 +108,7 @@ trait MediaUploadTrait * * @param array $metadata * @param array|null $settings - * @return string|null + * @return string * @throws RuntimeException */ public function checkFileMetadata(array $metadata, string $filename = null, array $settings = null): string diff --git a/system/src/Grav/Framework/Collection/AbstractFileCollection.php b/system/src/Grav/Framework/Collection/AbstractFileCollection.php index 50e90515d..f89226747 100644 --- a/system/src/Grav/Framework/Collection/AbstractFileCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractFileCollection.php @@ -24,7 +24,7 @@ use function array_slice; * Collection of objects stored into a filesystem. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends AbstractLazyCollection * @mplements FileCollectionInterface diff --git a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php index 190f42279..6a8861e9b 100644 --- a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php @@ -20,7 +20,7 @@ use function count; /** * Abstract Index Collection. - * @template TKey + * @template TKey of array-key * @template T * @implements CollectionInterface */ @@ -361,6 +361,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * @param int $start * @param int|null $limit * @return static + * @phpstan-return static */ public function limit($start, $limit = null) { @@ -371,6 +372,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * Reverse the order of the items. * * @return static + * @phpstan-return static */ public function reverse() { @@ -381,6 +383,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * Shuffle items. * * @return static + * @phpstan-return static */ public function shuffle() { @@ -397,6 +400,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @param array $keys * @return static + * @phpstan-return static */ public function select(array $keys) { @@ -415,6 +419,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @param array $keys * @return static + * @phpstan-return static */ public function unselect(array $keys) { @@ -469,6 +474,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @param array $entries Elements. * @return static + * @phpstan-return static */ protected function createFrom(array $entries) { @@ -521,6 +527,7 @@ abstract class AbstractIndexCollection implements CollectionInterface /** * @param array|null $entries * @return CollectionInterface + * @phpstan-return T */ abstract protected function loadCollection(array $entries = null): CollectionInterface; diff --git a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php index af7ffe182..9afaab131 100644 --- a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php @@ -15,7 +15,7 @@ use Doctrine\Common\Collections\AbstractLazyCollection as BaseAbstractLazyCollec * General JSON serializable collection. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends BaseAbstractLazyCollection * @implements CollectionInterface diff --git a/system/src/Grav/Framework/Collection/ArrayCollection.php b/system/src/Grav/Framework/Collection/ArrayCollection.php index 474a3fba5..d76aa05dc 100644 --- a/system/src/Grav/Framework/Collection/ArrayCollection.php +++ b/system/src/Grav/Framework/Collection/ArrayCollection.php @@ -15,7 +15,7 @@ use Doctrine\Common\Collections\ArrayCollection as BaseArrayCollection; * General JSON serializable collection. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends BaseArrayCollection * @implements CollectionInterface diff --git a/system/src/Grav/Framework/Collection/CollectionInterface.php b/system/src/Grav/Framework/Collection/CollectionInterface.php index e024366a4..42414cecd 100644 --- a/system/src/Grav/Framework/Collection/CollectionInterface.php +++ b/system/src/Grav/Framework/Collection/CollectionInterface.php @@ -16,7 +16,7 @@ use JsonSerializable; * Collection Interface. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends Collection */ diff --git a/system/src/Grav/Framework/Collection/FileCollection.php b/system/src/Grav/Framework/Collection/FileCollection.php index 5dd8d55b0..59df2210e 100644 --- a/system/src/Grav/Framework/Collection/FileCollection.php +++ b/system/src/Grav/Framework/Collection/FileCollection.php @@ -13,7 +13,7 @@ namespace Grav\Framework\Collection; * Collection of objects stored into a filesystem. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends AbstractFileCollection */ diff --git a/system/src/Grav/Framework/Collection/FileCollectionInterface.php b/system/src/Grav/Framework/Collection/FileCollectionInterface.php index ce6e18f25..45c446c63 100644 --- a/system/src/Grav/Framework/Collection/FileCollectionInterface.php +++ b/system/src/Grav/Framework/Collection/FileCollectionInterface.php @@ -15,7 +15,7 @@ use Doctrine\Common\Collections\Selectable; * Collection of objects stored into a filesystem. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends CollectionInterface * @extends Selectable diff --git a/system/src/Grav/Framework/Flex/FlexIndex.php b/system/src/Grav/Framework/Flex/FlexIndex.php index 08785c28e..1df5c4d0d 100644 --- a/system/src/Grav/Framework/Flex/FlexIndex.php +++ b/system/src/Grav/Framework/Flex/FlexIndex.php @@ -540,6 +540,7 @@ class FlexIndex extends ObjectIndex implements FlexCollectionInterface, FlexInde */ protected function createFrom(array $entries, string $keyField = null) { + /** @phpstan-var static $index */ $index = new static($entries, $this->getFlexDirectory()); $index->setKeyField($keyField ?? $this->_keyField); @@ -630,7 +631,10 @@ class FlexIndex extends ObjectIndex implements FlexCollectionInterface, FlexInde */ protected function loadCollection(array $entries = null): CollectionInterface { - return $this->getFlexDirectory()->loadCollection($entries ?? $this->getEntries(), $this->_keyField); + /** @var C $collection */ + $collection = $this->getFlexDirectory()->loadCollection($entries ?? $this->getEntries(), $this->_keyField); + + return $collection; } /** diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php index d751e4b40..71dd72770 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php @@ -51,6 +51,7 @@ interface FlexIndexInterface extends FlexCollectionInterface * * @param string|null $keyField Switch key field of the collection. * @return static Returns a new Flex Collection with new key field. + * @phpstan-return static * @api */ public function withKeyField(string $keyField = null); diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php index fa0920b88..3c172fecd 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -207,8 +207,6 @@ trait ObjectCollectionTrait /** * Create a copy from this collection by cloning all objects in the collection. - * - * @return static */ public function copy() { diff --git a/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php b/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php index 0e2373eb6..a2431be31 100644 --- a/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php @@ -15,7 +15,7 @@ use RuntimeException; * Common Interface for both Objects and Collections * @package Grav\Framework\Object * - * @template TKey + * @template TKey of array-key * @template T * @extends ObjectCollectionInterface */ diff --git a/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php b/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php index 3a43981b1..8169c246e 100644 --- a/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php @@ -16,7 +16,7 @@ use Serializable; /** * ObjectCollection Interface * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends CollectionInterface * @extends Selectable @@ -76,6 +76,7 @@ interface ObjectCollectionInterface extends CollectionInterface, Selectable, Ser * Create a copy from this collection by cloning all objects in the collection. * * @return static + * @phpstan-return static */ public function copy(); diff --git a/system/src/Grav/Framework/Object/ObjectCollection.php b/system/src/Grav/Framework/Object/ObjectCollection.php index 3a51ec80c..3fdebce91 100644 --- a/system/src/Grav/Framework/Object/ObjectCollection.php +++ b/system/src/Grav/Framework/Object/ObjectCollection.php @@ -21,7 +21,7 @@ use function array_slice; /** * Class contains a collection of objects. * - * @template TKey + * @template TKey of array-key * @template T * @extends ArrayCollection * @implements NestedObjectCollectionInterface diff --git a/system/src/Grav/Framework/Object/ObjectIndex.php b/system/src/Grav/Framework/Object/ObjectIndex.php index 2c13765bc..b7b416d0a 100644 --- a/system/src/Grav/Framework/Object/ObjectIndex.php +++ b/system/src/Grav/Framework/Object/ObjectIndex.php @@ -23,7 +23,7 @@ use function is_object; * This is an abstract class and has some protected abstract methods to load objects which you need to implement in * order to use the class. * - * @template TKey + * @template TKey of array-key * @template T * @extends AbstractIndexCollection * @implements NestedObjectCollectionInterface @@ -176,6 +176,7 @@ abstract class ObjectIndex extends AbstractIndexCollection implements NestedObje * Create a copy from this collection by cloning all objects in the collection. * * @return static + * @return static */ public function copy() {