Add new validation infrastructure #1279
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.
Validation code is currently split into two different types of code:
Both of these are not satisfying. Type 1 doesn't provide enough coverage, especially in test code, letting potential issues slip through. Type 2 panics, which is fine for now, but since validation errors can be the result of user error and shouldn't crash everything, won't be fine for much longer.
This pull request adds new validation infrastructure, in parallel to the existing one, that is designed to be run on object construction, and returns
Result
. It is meant to eventually subsume and unify the two existing types of validation code. No actual validation code is ported to the new infrastructure yet. I have started doing this in a local branch, but (surprise, surprise) the increased coverage has unearthed new issues which I'm currently working on fixing.