From 2ede10d762cb2092ecc72ea5dab829088d403d9f Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Thu, 15 Jul 2021 01:28:32 +0200 Subject: [PATCH] [Finder] Fix iterator return types Signed-off-by: Alexander M. Turek --- .../Finder/Iterator/RecursiveDirectoryIterator.php | 5 +++++ .../Tests/Iterator/FileTypeFilterIteratorTest.php | 6 +++--- .../Tests/Iterator/FilenameFilterIteratorTest.php | 2 +- .../Finder/Tests/Iterator/MockSplFileInfo.php | 12 ++++-------- .../Tests/Iterator/SizeRangeFilterIteratorTest.php | 8 ++++---- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php b/src/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php index 7616b14a24..a18e6185be 100644 --- a/src/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php +++ b/src/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php @@ -58,6 +58,7 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator * * @return SplFileInfo File information */ + #[\ReturnTypeWillChange] public function current() { // the logic here avoids redoing the same work in all iterations @@ -82,6 +83,7 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator * * @throws AccessDeniedException */ + #[\ReturnTypeWillChange] public function getChildren() { try { @@ -109,7 +111,10 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator /** * Do nothing for non rewindable stream. + * + * @return void */ + #[\ReturnTypeWillChange] public function rewind() { if (false === $this->isRewindable()) { diff --git a/src/Symfony/Component/Finder/Tests/Iterator/FileTypeFilterIteratorTest.php b/src/Symfony/Component/Finder/Tests/Iterator/FileTypeFilterIteratorTest.php index 49616ce07c..e15c03521a 100644 --- a/src/Symfony/Component/Finder/Tests/Iterator/FileTypeFilterIteratorTest.php +++ b/src/Symfony/Component/Finder/Tests/Iterator/FileTypeFilterIteratorTest.php @@ -65,17 +65,17 @@ class FileTypeFilterIteratorTest extends RealIteratorTestCase class InnerTypeIterator extends \ArrayIterator { - public function current() + public function current(): \SplFileInfo { return new \SplFileInfo(parent::current()); } - public function isFile() + public function isFile(): bool { return $this->current()->isFile(); } - public function isDir() + public function isDir(): bool { return $this->current()->isDir(); } diff --git a/src/Symfony/Component/Finder/Tests/Iterator/FilenameFilterIteratorTest.php b/src/Symfony/Component/Finder/Tests/Iterator/FilenameFilterIteratorTest.php index 9270dd1cd3..0f77ac7b76 100644 --- a/src/Symfony/Component/Finder/Tests/Iterator/FilenameFilterIteratorTest.php +++ b/src/Symfony/Component/Finder/Tests/Iterator/FilenameFilterIteratorTest.php @@ -42,7 +42,7 @@ class FilenameFilterIteratorTest extends IteratorTestCase class InnerNameIterator extends \ArrayIterator { - public function current() + public function current(): \SplFileInfo { return new \SplFileInfo(parent::current()); } diff --git a/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php b/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php index 08fb318fc3..bc80ed2e1e 100644 --- a/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php +++ b/src/Symfony/Component/Finder/Tests/Iterator/MockSplFileInfo.php @@ -48,7 +48,7 @@ class MockSplFileInfo extends \SplFileInfo } } - public function isFile() + public function isFile(): bool { if (null === $this->type) { return false !== strpos($this->getFilename(), 'file'); @@ -57,7 +57,7 @@ class MockSplFileInfo extends \SplFileInfo return self::TYPE_FILE === $this->type; } - public function isDir() + public function isDir(): bool { if (null === $this->type) { return false !== strpos($this->getFilename(), 'directory'); @@ -66,13 +66,9 @@ class MockSplFileInfo extends \SplFileInfo return self::TYPE_DIRECTORY === $this->type; } - public function isReadable() + public function isReadable(): bool { - if (null === $this->mode) { - return preg_match('/r\+/', $this->getFilename()); - } - - return preg_match('/r\+/', $this->mode); + return (bool) preg_match('/r\+/', $this->mode ?? $this->getFilename()); } public function getContents() diff --git a/src/Symfony/Component/Finder/Tests/Iterator/SizeRangeFilterIteratorTest.php b/src/Symfony/Component/Finder/Tests/Iterator/SizeRangeFilterIteratorTest.php index 1c0381fef8..129d565d55 100644 --- a/src/Symfony/Component/Finder/Tests/Iterator/SizeRangeFilterIteratorTest.php +++ b/src/Symfony/Component/Finder/Tests/Iterator/SizeRangeFilterIteratorTest.php @@ -48,22 +48,22 @@ class SizeRangeFilterIteratorTest extends RealIteratorTestCase class InnerSizeIterator extends \ArrayIterator { - public function current() + public function current(): \SplFileInfo { return new \SplFileInfo(parent::current()); } - public function getFilename() + public function getFilename(): string { return parent::current(); } - public function isFile() + public function isFile(): bool { return $this->current()->isFile(); } - public function getSize() + public function getSize(): int { return $this->current()->getSize(); }