I'm using collections instead of regular arrays of lot, and I've found that when iterating over them the extension does not deduce properly the items' types.
Consider this example :

Obviously, there are workarounds, either changing the return to /** @return Collection|MuchWow[] */ or manually adding /** @var MuchWow $item */
I think what it boils down to is honoring the \ArrayAccess<TKey, TValue> annotation (or \Iterator or \IteratorAggregate or \Traversable, I admit I'm not knowledgeable enough here).
Or maybe I did miss something?
Thank you.
EDIT: It would seem writing /** @return Collection<int, MuchWow> */ DOES work when iterating like in my example, however it "seems" a bit wrong for a documentation standpoint.
EDIT2: I'm still stuck on illuminate/collections ^8.0 because of a hard php7.4 requirement, maybe this behaviour was also fixed on the package side with "better" annotations?