feat(source): derive common traits for NamedSource, SourceSpan, and SourceOffset #340
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.
One-liner sanding off a small rough edge I came across: using
NamedSource<String>
(instead of simplyString
) severely limits which traits can be derived for the wrapping diagnostic. In my case, I lost the ability to clone my error!I've brought things in line with https://rust-lang.github.io/api-guidelines/interoperability.html#types-eagerly-implement-common-traits-c-common-traits, leaving out
Copy
,Display
, andDefault
, since those derives are either not possible or don't feel useful. The ones I've added here make sure people can.clone()
errors, compare them, sort them, and use them inHashSet
s /HashMap
s.I also added
Ord
derives to theSourceSpan
andSourceOffset
types for the same reason!