Patch/inconsistent return type #56349
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Laravel Version
12.20.0
PHP Version
8.4.10
Database Driver & Version
No response
Description
In the current implementation of the
shift
method in Laravel'sIlluminate/Collection
, the return type indicated in the PHPDoc is inconsistent with the actual return type in a specific case:In the above code, when
$count === 1
, the method returns a single item (TValue
), not wrapped in a Collection instance, which causes inconsistency relative to the return type mentioned in the PHPDoc (static<int, TValue>|TValue|null
).Proposed Code Change:
Modify the
$count === 1
condition to consistently return a Collection instance:Benefits of Change:
Additional Note:
Laravel Version Affected: Latest (as of July 2025)
Suggested Labels:
bug
,consistency
,collections
,type-safety
Steps To Reproduce
PR raised to resolve this issue: #56348