Retain list type via array_push()
and array_unshift()
#2451
+39
−3
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.
Closes phpstan/phpstan#8449
it has been a while :) I know I have still 2 open PRs, but I didn't feel like finishing them yet. soon™
I was wondering why the array here is even re-created like that. The reason is that this is after the isIterableAtLeastOnce / optional check and the re-creation is just there to remove a NonEmptyArrayType. So if there would be a simpler/better way of removing it (maybe calling
->popArray()
but I'm not sure, that feels like a hack), the list would not be removed and this new code would not be needed 🤔another more explicit way might be to intersect the union of
->getArrays()
with aTypeUtils::getAccessoryTypes()
where NonEmptyArrayType is filtered away. also feels ugly. I'm not a 100% happy with any of the solutions so far.. like e.g.