about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_parse/src/parser/mod.rs6
-rw-r--r--src/test/ui/issue-76597.fixed11
-rw-r--r--src/test/ui/issue-76597.rs4
-rw-r--r--src/test/ui/issue-76597.stderr17
4 files changed, 28 insertions, 10 deletions
diff --git a/compiler/rustc_parse/src/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
index 5eefae3af60..7340c574480 100644
--- a/compiler/rustc_parse/src/parser/mod.rs
+++ b/compiler/rustc_parse/src/parser/mod.rs
@@ -694,9 +694,13 @@ impl<'a> Parser<'a> {
                                 Ok(t) => {
                                     // Parsed successfully, therefore most probably the code only
                                     // misses a separator.
+                                    let mut exp_span = self.sess.source_map().next_point(sp);
+                                    if self.sess.source_map().is_multiline(exp_span) {
+                                        exp_span = sp;
+                                    }
                                     expect_err
                                         .span_suggestion_short(
-                                            self.sess.source_map().next_point(sp),
+                                            exp_span,
                                             &format!("missing `{}`", token_str),
                                             token_str,
                                             Applicability::MaybeIncorrect,
diff --git a/src/test/ui/issue-76597.fixed b/src/test/ui/issue-76597.fixed
new file mode 100644
index 00000000000..2d7a30b8361
--- /dev/null
+++ b/src/test/ui/issue-76597.fixed
@@ -0,0 +1,11 @@
+// run-rustfix
+
+#![allow(dead_code)]
+#![allow(unused_variables)]
+fn f(
+                                     x: u8,
+                                     y: u8,
+) {}
+//~^^ ERROR: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `y`
+
+fn main() {}
diff --git a/src/test/ui/issue-76597.rs b/src/test/ui/issue-76597.rs
index 879e6b49e9b..521b9c64b1c 100644
--- a/src/test/ui/issue-76597.rs
+++ b/src/test/ui/issue-76597.rs
@@ -1,3 +1,7 @@
+// run-rustfix
+
+#![allow(dead_code)]
+#![allow(unused_variables)]
 fn f(
                                      x: u8
                                      y: u8,
diff --git a/src/test/ui/issue-76597.stderr b/src/test/ui/issue-76597.stderr
index 163ce61cb18..50b23329f0c 100644
--- a/src/test/ui/issue-76597.stderr
+++ b/src/test/ui/issue-76597.stderr
@@ -1,14 +1,13 @@
 error: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `y`
-  --> $DIR/issue-76597.rs:3:38
+  --> $DIR/issue-76597.rs:7:38
    |
-LL |   ...                   x: u8
-   |                              - expected one of 7 possible tokens
-   |  ____________________________|
-   | |
-LL | | ...                   y: u8,
-|  | |                       ^ unexpected token
-|  | |
-   |   help: missing `,`
+LL | ...                   x: u8
+   |                            -
+   |                            |
+   |                            expected one of 7 possible tokens
+   |                            help: missing `,`
+LL | ...                   y: u8,
+   |                       ^ unexpected token
 
 error: aborting due to previous error