Skip to content

Conversation

@VincentLanglet
Copy link
Contributor

@VincentLanglet VincentLanglet commented Jul 17, 2025

Closes phpstan/phpstan#13248

I feel like non-iterable should be excluded since as soon as one subtype is iterable the whole intersection is iterable.

Copy link
Member

@ondrejmirtes ondrejmirtes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, thank you.

@ondrejmirtes
Copy link
Member

Also, there might be more candidates to also use a filter in IntersectionType: hasOffsetValueType/getOffsetValueTypesetOffsetValueType (should use isOffsetAccessible)

Feel free to explore that with a failing test in a separate PR. Thank you!

@ondrejmirtes
Copy link
Member

But maybe not because ObjectType::isOffsetAccessible() says "maybe" for non-final classes which is correct.

@ondrejmirtes ondrejmirtes merged commit 2b9e658 into phpstan:2.1.x Jul 21, 2025
241 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants