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.
Why this should be merged
Testing errors by matching their strings results in change-detector tests that can result in false positives due to nothing more than changing the message intended for humans. Changing an implementation and a test at the same time adds uncertainty to the correctness of the change, but change-detector tests force this to be done.
See also: Test error semantics
How this works
The
errs
package is introduced to allow tagging of errors with distinct identifiers that are intended to be immutable (i.e. no change-detector tests) even when messages change. The IDs can only be extracted via theerrs
package, which is ininternal
to stop leakage of the errors via the API such that users can depend on them as per Hyrum's Law:How this was tested
Unit test for ID extraction + usage in
params
tests.