Remove consecutive discards heuristic #2290
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.
We have a heuristic in
ConjectureData
which turns long sequences of discards into invalid test cases. This PR removes that heuristic.Justification
This heuristic was introduced in #2030 as a workaround to performance problems. Since #2185 we no longer hit those performance problems because we mark parts of the tree with discards in them as not worth exploring, and
generate_novel_prefix
will steer us clear of there. This is a better solution: We don't artificially make some discards invalid, but we don't spend ages trying to draw many equivalent tests.Meanwhile, leaving it in is a bit of a footgun - I lost about 20 minutes earlier to debugging something that turned out to be the result of triggering this (and in that case I was perfectly fine with long series of discards).