This repository was archived by the owner on Sep 30, 2024. It is now read-only.
chore: Change errors.HasType to respect multi-errors#63024
Merged
Conversation
|
(Notifying @sourcegraph/source of a change that affects gitserver) |
7e34bd7 to
a3fe290
Compare
camdencheek
reviewed
Jun 4, 2024
camdencheek
approved these changes
Jun 4, 2024
6361ff4 to
83912ff
Compare
Contributor
Author
|
Sorry had to force-push to resolve merge conflicts |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
With this patch, the
errors.HasTypeAPI behaves similar toIsandAs,where it checks the full error tree instead of just checking a linearized version
of it, as cockroachdb/errors's
HasTypeimplementation does not respectmulti-errors (cockroachdb/errors#145).
As a consequence, a bunch of relationships between HasType and Is/As that
you'd intuitively expect to hold are now true; see changes to
invariants_test.go.Q: Why not make the change upstream and submit a version bump PR here?
A: This PR also tweaks the API to use a type argument rather than a value
argument, since the call-site is less clearer when you pass a value to check
the type. However, that would be a breaking change to make upstream,
so we just make that here.
Test plan
If we have tests for the existing error paths, then this should be good enough.
Changelog