Allow strategy-generating functions to not provide strategies #3769
+242
−75
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.
This PR implements the feature discussed in #3767, to allow strategy-generating functions registered with
register_type_strategy()
to choose not to provide a strategy for a type by returningNotImplemented
instead of a strategy.
This doesn't directly fix issue #3767 (PR #3768 is the fix) but this feature would allow a strategy to not trigger the issue, and is also useful in its own right, to limit when a globally-registered type strategy is used. For example, to only provide a custom strategy for certain super-types of a type, or certain generic parameters, while deferring to another strategy for the unhandled cases.