Skip to content

Commit

Permalink
Rollup merge of rust-lang#109403 - chenyukang:yukang/fix-109396, r=es…
Browse files Browse the repository at this point in the history
…tebank

Avoid ICE of attempt to add with overflow in emitter

Fixes rust-lang#109396
r? `@estebank`
  • Loading branch information
matthiaskrgr authored Mar 21, 2023
2 parents 06a0aff + cbb8066 commit c3f18ef
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/rustc_errors/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ impl CodeSuggestion {
});
buf.push_str(&part.snippet);
let cur_hi = sm.lookup_char_pos(part.span.hi());
if cur_hi.line == cur_lo.line {
if cur_hi.line == cur_lo.line && !part.snippet.is_empty() {
// Account for the difference between the width of the current code and the
// snippet being suggested, so that the *later* suggestions are correctly
// aligned on the screen.
Expand Down
12 changes: 12 additions & 0 deletions tests/ui/suggestions/issue-109396.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
fn main() {
{
let mut mutex = std::mem::zeroed(
//~^ ERROR this function takes 0 arguments but 4 arguments were supplied
file.as_raw_fd(),
//~^ ERROR expected value, found macro `file`
0,
0,
0,
);
}
}
34 changes: 34 additions & 0 deletions tests/ui/suggestions/issue-109396.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
error[E0423]: expected value, found macro `file`
--> $DIR/issue-109396.rs:5:13
|
LL | file.as_raw_fd(),
| ^^^^ not a value

error[E0061]: this function takes 0 arguments but 4 arguments were supplied
--> $DIR/issue-109396.rs:3:25
|
LL | let mut mutex = std::mem::zeroed(
| ^^^^^^^^^^^^^^^^
LL |
LL | file.as_raw_fd(),
| ---------------- unexpected argument
LL |
LL | 0,
| - unexpected argument of type `{integer}`
LL | 0,
| - unexpected argument of type `{integer}`
LL | 0,
| - unexpected argument of type `{integer}`
|
note: function defined here
--> $SRC_DIR/core/src/mem/mod.rs:LL:COL
help: remove the extra arguments
|
LL - file.as_raw_fd(),
LL + ,
|

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0061, E0423.
For more information about an error, try `rustc --explain E0061`.

0 comments on commit c3f18ef

Please sign in to comment.