Show discriminant before overflow in diagnostic for duplicate values.#87166
Conversation
|
r? @jackh726 (rust-highfive has picked a reviewer for you, use r? to override) |
99210f3 to
6cd6fc3
Compare
There was a problem hiding this comment.
Note: I also removed the backticks around the number. They seemed unnecessary to me: the value is always a decimal number, which already stands out from normal text quite well. But I can revert this if desired.
jackh726
left a comment
There was a problem hiding this comment.
So, I'd like to actually see a test where the first discriminant overflows (like in the OP). And I think that the backticks around the value should remain (backticks generally specify a value or code).
And finally (this one is a bit more opinionated): I feel like the exact number here isn't super helpful. It might be better to say some like "overflowed from usize"
6cd6fc3 to
4c0ff4d
Compare
Makes sense. I added another test case in I added the backticks back, and I removed the overflow value from the main error message, leaving it only in the notes. With that, it now looks like this:
Hmm, I actually like to see the value before overflow. It lets me know that neither me nor the compiler have gone mad and we're both really talking about the same number. |
|
Sorry for the wait here. @bors r+ rollup |
|
📌 Commit 4c0ff4d has been approved by |
|
Thanks for the review! :) |
…laumeGomez Rollup of 7 pull requests Successful merges: - rust-lang#86747 (Improve wording of the `drop_bounds` lint) - rust-lang#87166 (Show discriminant before overflow in diagnostic for duplicate values.) - rust-lang#88077 (Generate an iOS LLVM target with a specific version) - rust-lang#88164 (PassWrapper: adapt for LLVM 14 changes) - rust-lang#88211 (cleanup: `Span::new` -> `Span::with_lo`) - rust-lang#88229 (Suggest importing the right kind of macro.) - rust-lang#88238 (Stop tracking namespace in used_imports.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup

This PR adds the value before overflow for explicit discriminant values in the error for duplicate discriminant values.
I found it rather confusing to see only the overflowed value.
It only does this for literals, since overflows in const evaluated arithmetic are already a hard error.
This is my first PR to the compiler, so please let me know if the implementation can be improved :)
Before:

After:
