Add support for duck types with multiple methods to TypesExplainer #1631
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.
Description
&, cf. @lsegal's suggestion in this StackOverflow comment from 13+ years ago.Discussion
I agree with the sentiment expressed in that comment that doing this is not a great idea, and in general, it would be better to define an ad-hoc "interface" type. But there are times when you're dealing with an obnoxious third-party library, and you just need to document something in one place, and introducing a whole type for that feels like overkill.
This is a basic implementation that just covers this use case, but I could see an argument for instead supporting
&for intersection types in general (and maybe|as well as,for union types while we're at it), which wouldn't be much more code.Completed Tasks
bundle exec rakelocally (if code is attached to PR).