]> git.lizzy.rs Git - rust.git/commit
Auto merge of #107663 - matthiaskrgr:107423-point-at-EOF-code, r=compiler-errors
authorbors <bors@rust-lang.org>
Sun, 5 Feb 2023 17:32:26 +0000 (17:32 +0000)
committerbors <bors@rust-lang.org>
Sun, 5 Feb 2023 17:32:26 +0000 (17:32 +0000)
commita67649675014546ce454d65bc8fe3ebd18e6a319
tree0cdc1ec062b132a4e718de8b3fe12e55a46cff76
parent319b88c463fe6f51bb6badbbd3bb97252a60f3a5
parented58c01959bc69b42943292d7d5a8e86a821747e
Auto merge of #107663 - matthiaskrgr:107423-point-at-EOF-code, r=compiler-errors

don't point at nonexisting code beyond EOF when warning about delims

Previously we would show this:
```
warning: unnecessary braces around block return value
 --> /tmp/bad.rs:1:8
  |
1 | fn a(){{{
  |        ^  ^
  |
  = note: `#[warn(unused_braces)]` on by default
help: remove these braces
  |
1 - fn a(){{{
1 + fn a(){{
  |
```

which is now hidden in this case.
We would create a span spanning between the pair of redundant {}s but there is only EOF instead of the `}` so we would previously point at nothing. This would cause the debug assertion ice to trigger. I would have loved to just only point at the second delim and say "you can remove that" but I'm not sure how to do that without refactoring the entire diagnostic which seems tricky. :( But given that this does not seem to regress any other tests we have, I think this edge-casey enough be acceptable.

Fixes https://github.com/rust-lang/rust/issues/107423

r? `@compiler-errors`
compiler/rustc_lint/src/unused.rs