From 669bc2cc310bab7446f2392573370322bf974638 Mon Sep 17 00:00:00 2001 From: Victor H Folchini Sebben Date: Wed, 6 Nov 2024 22:20:24 -0300 Subject: [PATCH 1/2] Make return types compatible with interface --- src/Functional/Sequences/ExponentialSequence.php | 10 +++++----- src/Functional/Sequences/LinearSequence.php | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Functional/Sequences/ExponentialSequence.php b/src/Functional/Sequences/ExponentialSequence.php index 0a8b8d47..be414d9e 100644 --- a/src/Functional/Sequences/ExponentialSequence.php +++ b/src/Functional/Sequences/ExponentialSequence.php @@ -38,28 +38,28 @@ public function __construct($start, $percentage) $this->percentage = $percentage; } - public function current() + public function current(): mixed { return $this->value; } - public function next() + public function next(): void { $this->value = (int) \round(\pow($this->start * (1 + $this->percentage / 100), $this->times)); $this->times++; } - public function key() + public function key(): mixed { return null; } - public function valid() + public function valid(): bool { return true; } - public function rewind() + public function rewind(): void { $this->times = 1; $this->value = $this->start; diff --git a/src/Functional/Sequences/LinearSequence.php b/src/Functional/Sequences/LinearSequence.php index ad99dfbb..9947ff02 100644 --- a/src/Functional/Sequences/LinearSequence.php +++ b/src/Functional/Sequences/LinearSequence.php @@ -34,27 +34,27 @@ public function __construct($start, $amount) $this->amount = $amount; } - public function current() + public function current(): mixed { return $this->value; } - public function next() + public function next(): void { $this->value += $this->amount; } - public function key() + public function key(): mixed { return 0; } - public function valid() + public function valid(): bool { return true; } - public function rewind() + public function rewind(): void { $this->value = $this->start; } From 32c78f960f38e6d1975fabf50c822d7bcef4b608 Mon Sep 17 00:00:00 2001 From: Victor H Folchini Sebben Date: Wed, 6 Nov 2024 22:20:38 -0300 Subject: [PATCH 2/2] Avoid implicit conversion to int --- src/Functional/Group.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Functional/Group.php b/src/Functional/Group.php index af2ed3a1..3fe2a210 100644 --- a/src/Functional/Group.php +++ b/src/Functional/Group.php @@ -32,6 +32,12 @@ function group($collection, callable $callback) InvalidArgumentException::assertValidArrayKey($groupKey, __FUNCTION__); + // Avoid implicit conversion, since float numbers cannot be used as + // array keys: + if (is_numeric($groupKey)) { + $groupKey = intval($groupKey); + } + if (!isset($groups[$groupKey])) { $groups[$groupKey] = []; }