diff --git a/src/Illuminate/Collections/Collection.php b/src/Illuminate/Collections/Collection.php index 2ffeefbc53aa..e02103799321 100644 --- a/src/Illuminate/Collections/Collection.php +++ b/src/Illuminate/Collections/Collection.php @@ -1732,7 +1732,9 @@ public function takeWhile($value) * @template TMapValue * * @param callable(TValue, TKey): TMapValue $callback - * @return $this + * @return $this + * + * @phpstan-this-out static */ public function transform(callable $callback) { diff --git a/src/Illuminate/Pagination/AbstractCursorPaginator.php b/src/Illuminate/Pagination/AbstractCursorPaginator.php index b1eabfb81954..fea9fdc22574 100644 --- a/src/Illuminate/Pagination/AbstractCursorPaginator.php +++ b/src/Illuminate/Pagination/AbstractCursorPaginator.php @@ -406,7 +406,7 @@ public function items() * @template TThroughValue * * @param callable(TValue, TKey): TThroughValue $callback - * @return $this + * @return $this * * @phpstan-this-out static */ diff --git a/src/Illuminate/Pagination/AbstractPaginator.php b/src/Illuminate/Pagination/AbstractPaginator.php index 8be1013a8d93..bce700f71975 100644 --- a/src/Illuminate/Pagination/AbstractPaginator.php +++ b/src/Illuminate/Pagination/AbstractPaginator.php @@ -356,7 +356,9 @@ public function lastItem() * @template TMapValue * * @param callable(TValue, TKey): TMapValue $callback - * @return $this + * @return $this + * + * @phpstan-this-out static */ public function through(callable $callback) { diff --git a/types/Support/Collection.php b/types/Support/Collection.php index e64856153e7f..94da523a21b3 100644 --- a/types/Support/Collection.php +++ b/types/Support/Collection.php @@ -1049,18 +1049,18 @@ function ($collection, $count) { assertType('Illuminate\Support\Collection', $collection->splice(1)); assertType('Illuminate\Support\Collection', $collection->splice(1, 1, [new User])); -assertType('mixed', $collection->transform(function ($user, $int) { +assertType('Illuminate\Support\Collection', $collection->transform(function ($user, $int): int { assertType('User', $user); assertType('int', $int); - return new User; + return $int * 2; })); -assertType('mixed', $collection->transform(function ($user, $int): int { - assertType('User', $user); - assertType('int', $int); +assertType('Illuminate\Support\Collection', $collection->transform(function ($value, $key) { + assertType('int', $value); + assertType('int', $key); - return $int * 2; + return new User; })); assertType('Illuminate\Support\Collection', $collection->add(new User));