Allow matching against polymorphic collections #422
Merged
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.
As discussed in #252, there are problems with matching against polymorphic collections.
This fix attempts to apply the PECS rule (producer extends, consumer super) to the Hamcrest IsIterableContaining matcher. In this instance, a collection of items should be treated as a producer according to this rule, while a matcher acts as a consumer. There was some confustion about PECS in the context of collections of matchers, but I'm hoping this change addresses those issues.
I'm keen for others to test this work out