Avoid ICE of attempt to add with overflow in emitter

This commit is contained in:
yukang 2023-03-21 01:22:43 +08:00
parent c90eb4825a
commit cbb8066321
3 changed files with 47 additions and 1 deletions

View File

@ -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.

View File

@ -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,
);
}
}

View File

@ -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`.