From a7efb273386e15fa93fc5bcd69b52249103e9c53 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Thu, 22 Jul 2021 11:48:30 +0200 Subject: [PATCH] More php8.1 deprecation fixes, refs #10008 --- src/Composer/DependencyResolver/Decisions.php | 6 ++++++ src/Composer/DependencyResolver/RuleSet.php | 2 ++ src/Composer/DependencyResolver/RuleSetIterator.php | 5 +++++ src/Composer/Util/ErrorHandler.php | 4 ++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Composer/DependencyResolver/Decisions.php b/src/Composer/DependencyResolver/Decisions.php index 648b533df..e69d1a00d 100644 --- a/src/Composer/DependencyResolver/Decisions.php +++ b/src/Composer/DependencyResolver/Decisions.php @@ -142,31 +142,37 @@ class Decisions implements \Iterator, \Countable array_pop($this->decisionQueue); } + #[\ReturnTypeWillChange] public function count() { return \count($this->decisionQueue); } + #[\ReturnTypeWillChange] public function rewind() { end($this->decisionQueue); } + #[\ReturnTypeWillChange] public function current() { return current($this->decisionQueue); } + #[\ReturnTypeWillChange] public function key() { return key($this->decisionQueue); } + #[\ReturnTypeWillChange] public function next() { prev($this->decisionQueue); } + #[\ReturnTypeWillChange] public function valid() { return false !== current($this->decisionQueue); diff --git a/src/Composer/DependencyResolver/RuleSet.php b/src/Composer/DependencyResolver/RuleSet.php index aff0d4c65..0ac2bd762 100644 --- a/src/Composer/DependencyResolver/RuleSet.php +++ b/src/Composer/DependencyResolver/RuleSet.php @@ -98,6 +98,7 @@ class RuleSet implements \IteratorAggregate, \Countable } } + #[\ReturnTypeWillChange] public function count() { return $this->nextRuleId; @@ -116,6 +117,7 @@ class RuleSet implements \IteratorAggregate, \Countable /** * @return RuleSetIterator */ + #[\ReturnTypeWillChange] public function getIterator() { return new RuleSetIterator($this->getRules()); diff --git a/src/Composer/DependencyResolver/RuleSetIterator.php b/src/Composer/DependencyResolver/RuleSetIterator.php index 50d72dc93..e755572a0 100644 --- a/src/Composer/DependencyResolver/RuleSetIterator.php +++ b/src/Composer/DependencyResolver/RuleSetIterator.php @@ -33,16 +33,19 @@ class RuleSetIterator implements \Iterator $this->rewind(); } + #[\ReturnTypeWillChange] public function current() { return $this->rules[$this->currentType][$this->currentOffset]; } + #[\ReturnTypeWillChange] public function key() { return $this->currentType; } + #[\ReturnTypeWillChange] public function next() { $this->currentOffset++; @@ -67,6 +70,7 @@ class RuleSetIterator implements \Iterator } } + #[\ReturnTypeWillChange] public function rewind() { $this->currentOffset = 0; @@ -86,6 +90,7 @@ class RuleSetIterator implements \Iterator } while (isset($this->types[$this->currentTypeOffset]) && !\count($this->rules[$this->currentType])); } + #[\ReturnTypeWillChange] public function valid() { return isset($this->rules[$this->currentType], $this->rules[$this->currentType][$this->currentOffset]); diff --git a/src/Composer/Util/ErrorHandler.php b/src/Composer/Util/ErrorHandler.php index 7c25fbae4..915bc3fb5 100644 --- a/src/Composer/Util/ErrorHandler.php +++ b/src/Composer/Util/ErrorHandler.php @@ -52,8 +52,8 @@ class ErrorHandler } if (self::$io) { - // ignore symfony/console deprecation warning - if (0 === strpos($message, 'Return type of Symfony\\Component\\Console\\Helper\\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator')) { + // ignore symfony/* deprecation warnings about return types + if (preg_match('{^Return type of Symfony\\Component\\.*ReturnTypeWillChange}', $message)) { return true; }