Fix: Correct typehint on repository retrieval methods#53025
Merged
taylorotwell merged 3 commits intolaravel:11.xfrom Oct 7, 2024
liamduckett:fix/repository-get-typehint
Merged
Fix: Correct typehint on repository retrieval methods#53025taylorotwell merged 3 commits intolaravel:11.xfrom liamduckett:fix/repository-get-typehint
taylorotwell merged 3 commits intolaravel:11.xfrom
liamduckett:fix/repository-get-typehint
Conversation
crynobone
requested changes
Oct 4, 2024
| return 26; | ||
| })); | ||
|
|
||
| assertType('mixed', $cache->pull('key')); |
Member
There was a problem hiding this comment.
@liamduckett wouldn't this assertion assert that the existing behavior is correct?
Contributor
Author
There was a problem hiding this comment.
Hey @crynobone. I don't think the current assertion exhibits the correct behaviour.
How can we be sure that $cache->get('cache', 27) is an int? What if the default isn't used (because the cache has a value under the requested key)?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Hey. I believe the Typehints on these methods are incorrect.
The return type currently reads as
If a non null default is specified, then the return type will be the default. Otherwise, the return type will be null
This doesn't take into account whether a value for this key is present. See a (very) minimal reproduction in PHPStan.
My understanding is that the dumped type here should not be
5, as this expression would return'bar'. As such, a typehint more than mixed cannot be offered here.It may be worth noting that this was not an issue interrupting any actual code - I noticed it whilst investigating an issue I was having with Laravel Idea.
For reference - the Cache facade only offers a return type of mixed