Avoid ICE in macro's diagnostics#68633
Conversation
| "change the delimiters to curly braces", | ||
| vec![ | ||
| (self.prev_span.with_hi(self.prev_span.lo() + BytePos(1)), '{'.to_string()), | ||
| (self.prev_span.with_lo(self.prev_span.hi() - BytePos(1)), '}'.to_string()), |
There was a problem hiding this comment.
Feels like there's a missing Span method here (self.prev_span.shift_left(...))
There was a problem hiding this comment.
I couldn't find the shift_left method: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_span/struct.Span.html
Am I still missing something?
There was a problem hiding this comment.
I'm saying that we could add a higher level operation to avoid dealing with primitives like this. :)
There was a problem hiding this comment.
Ah, so we can add this tweak as a pub method of Span, right?
There was a problem hiding this comment.
Yeah that would be the idea, if we think it's a good one. cc also @petrochenkov
There was a problem hiding this comment.
I feel it'd be nice that we'll do it as follow-up work, how about?
There was a problem hiding this comment.
SourceMap::next_point let's you advance 1 char at a time (and is now unicode aware). We don't have a method to move left. It is in SourceMap instead of Span because you need to look at the underlying code for the span to be validated as not falling in the middle of a character.
There was a problem hiding this comment.
Also, this might work better with shrink_to_hi and shrink_to_lo instead of with_*.
|
I think it's ready to review, could you confirm the diagnostics are valid? @estebank |
|
@JohnTitor The output is fine 👍 |
|
@bors r+ |
|
📌 Commit b1c91ee has been approved by |
|
☀️ Test successful - checks-azure |
|
📣 Toolstate changed by #68633! Tested on commit cdd41ea. 💔 rustc-guide on linux: test-pass → test-fail (cc @JohnTitor @amanjeev @spastorino @mark-i-m, @rust-lang/infra). |
Tested on commit rust-lang/rust@cdd41ea. Direct link to PR: <rust-lang/rust#68633> 💔 rustc-guide on linux: test-pass → test-fail (cc @JohnTitor @amanjeev @spastorino @mark-i-m, @rust-lang/infra).
Fixes #68629
r? @estebank