From 229be21d0d5297a66e7fe6b56606d0549bfccd5f Mon Sep 17 00:00:00 2001 From: xizheyin Date: Tue, 24 Jun 2025 16:09:42 +0800 Subject: [PATCH 1/2] Add ui test unnessary-error-issue-138401.rs Signed-off-by: xizheyin --- .../issues/unnessary-error-issue-138401.rs | 7 +++++++ .../unnessary-error-issue-138401.stderr | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 tests/ui/parser/issues/unnessary-error-issue-138401.rs create mode 100644 tests/ui/parser/issues/unnessary-error-issue-138401.stderr diff --git a/tests/ui/parser/issues/unnessary-error-issue-138401.rs b/tests/ui/parser/issues/unnessary-error-issue-138401.rs new file mode 100644 index 0000000000000..e5e5f1ee4e9ce --- /dev/null +++ b/tests/ui/parser/issues/unnessary-error-issue-138401.rs @@ -0,0 +1,7 @@ +pub fn foo(x: i64) -> i64 { + x.abs) + //~^ ERROR mismatched closing delimiter +} +//~^ ERROR unexpected closing delimiter: `}` + +fn main() {} diff --git a/tests/ui/parser/issues/unnessary-error-issue-138401.stderr b/tests/ui/parser/issues/unnessary-error-issue-138401.stderr new file mode 100644 index 0000000000000..b50f77f1247cd --- /dev/null +++ b/tests/ui/parser/issues/unnessary-error-issue-138401.stderr @@ -0,0 +1,19 @@ +error: mismatched closing delimiter: `)` + --> $DIR/unnessary-error-issue-138401.rs:1:27 + | +LL | pub fn foo(x: i64) -> i64 { + | ^ unclosed delimiter +LL | x.abs) + | ^ mismatched closing delimiter + +error: unexpected closing delimiter: `}` + --> $DIR/unnessary-error-issue-138401.rs:4:1 + | +LL | x.abs) + | - missing open `(` for this delimiter +LL | +LL | } + | ^ unexpected closing delimiter + +error: aborting due to 2 previous errors + From c1fb965cacc53f7d61eb31f32ce3625404d7ae4d Mon Sep 17 00:00:00 2001 From: xizheyin Date: Thu, 10 Jul 2025 16:27:40 +0800 Subject: [PATCH 2/2] Deduplicate `unmatched_delims` in `rustc_parse` to reduce confusion Signed-off-by: xizheyin --- compiler/rustc_parse/src/lexer/diagnostics.rs | 20 ++++++--- compiler/rustc_parse/src/lexer/tokentrees.rs | 15 ++++--- tests/ui/parser/deli-ident-issue-2.rs | 2 +- tests/ui/parser/deli-ident-issue-2.stderr | 12 ++---- tests/ui/parser/issues/issue-104367.rs | 2 +- tests/ui/parser/issues/issue-104367.stderr | 14 ++---- tests/ui/parser/issues/issue-105209.rs | 4 +- tests/ui/parser/issues/issue-105209.stderr | 20 +++------ tests/ui/parser/issues/issue-62973.rs | 2 - tests/ui/parser/issues/issue-62973.stderr | 28 +++--------- tests/ui/parser/issues/issue-63116.rs | 1 - tests/ui/parser/issues/issue-63116.stderr | 19 +++----- ...377-invalid-syntax-in-enum-discriminant.rs | 3 -- ...invalid-syntax-in-enum-discriminant.stderr | 43 +++++-------------- .../issues/issue-68987-unmatch-issue-2.rs | 2 +- .../issues/issue-68987-unmatch-issue-2.stderr | 12 ++---- .../issues/issue-68987-unmatch-issue-3.rs | 2 +- .../issues/issue-68987-unmatch-issue-3.stderr | 12 ++---- tests/ui/parser/issues/issue-81827.rs | 1 - tests/ui/parser/issues/issue-81827.stderr | 20 +++------ .../issues/unnessary-error-issue-138401.rs | 3 +- .../unnessary-error-issue-138401.stderr | 17 +++----- tests/ui/suggestions/issue-94171.rs | 3 +- tests/ui/suggestions/issue-94171.stderr | 21 +++------ tests/ui/typeck/issue-91334.rs | 1 - tests/ui/typeck/issue-91334.stderr | 20 +++------ 26 files changed, 100 insertions(+), 199 deletions(-) diff --git a/compiler/rustc_parse/src/lexer/diagnostics.rs b/compiler/rustc_parse/src/lexer/diagnostics.rs index 0b97d4e6993bb..589058c177c0a 100644 --- a/compiler/rustc_parse/src/lexer/diagnostics.rs +++ b/compiler/rustc_parse/src/lexer/diagnostics.rs @@ -34,9 +34,12 @@ pub(super) fn same_indentation_level(sm: &SourceMap, open_sp: Span, close_sp: Sp // When we get a `)` or `]` for `{`, we should emit help message here // it's more friendly compared to report `unmatched error` in later phase -fn report_missing_open_delim(err: &mut Diag<'_>, unmatched_delims: &[UnmatchedDelim]) -> bool { +fn report_missing_open_delim( + err: &mut Diag<'_>, + unmatched_delims: &mut Vec, +) -> bool { let mut reported_missing_open = false; - for unmatch_brace in unmatched_delims.iter() { + unmatched_delims.retain(|unmatch_brace| { if let Some(delim) = unmatch_brace.found_delim && matches!(delim, Delimiter::Parenthesis | Delimiter::Bracket) { @@ -45,23 +48,30 @@ fn report_missing_open_delim(err: &mut Diag<'_>, unmatched_delims: &[UnmatchedDe Delimiter::Bracket => "[", _ => unreachable!(), }; + + if let Some(unclosed_span) = unmatch_brace.unclosed_span { + err.span_label(unclosed_span, "unclosed delimiter before unmatched delimiter"); + } err.span_label( unmatch_brace.found_span.shrink_to_lo(), format!("missing open `{missed_open}` for this delimiter"), ); reported_missing_open = true; + false + } else { + true } - } + }); reported_missing_open } pub(super) fn report_suspicious_mismatch_block( err: &mut Diag<'_>, - diag_info: &TokenTreeDiagInfo, + diag_info: &mut TokenTreeDiagInfo, sm: &SourceMap, delim: Delimiter, ) { - if report_missing_open_delim(err, &diag_info.unmatched_delims) { + if report_missing_open_delim(err, &mut diag_info.unmatched_delims) { return; } diff --git a/compiler/rustc_parse/src/lexer/tokentrees.rs b/compiler/rustc_parse/src/lexer/tokentrees.rs index fbea958dcc598..998711f37a684 100644 --- a/compiler/rustc_parse/src/lexer/tokentrees.rs +++ b/compiler/rustc_parse/src/lexer/tokentrees.rs @@ -77,12 +77,12 @@ impl<'psess, 'src> Lexer<'psess, 'src> { ); } - if let Some((delim, _)) = self.diag_info.open_delimiters.last() { + if let Some((delim, _)) = self.diag_info.open_delimiters.last().cloned() { report_suspicious_mismatch_block( &mut err, - &self.diag_info, + &mut self.diag_info, self.psess.source_map(), - *delim, + delim, ) } err @@ -238,13 +238,18 @@ impl<'psess, 'src> Lexer<'psess, 'src> { this_spacing } - fn close_delim_err(&mut self, delim: Delimiter) -> Diag<'psess> { + fn close_delim_err(&mut self, close_delim: Delimiter) -> Diag<'psess> { // An unexpected closing delimiter (i.e., there is no matching opening delimiter). let token_str = token_to_string(&self.token); let msg = format!("unexpected closing delimiter: `{token_str}`"); let mut err = self.dcx().struct_span_err(self.token.span, msg); - report_suspicious_mismatch_block(&mut err, &self.diag_info, self.psess.source_map(), delim); + report_suspicious_mismatch_block( + &mut err, + &mut self.diag_info, + self.psess.source_map(), + close_delim, + ); err.span_label(self.token.span, "unexpected closing delimiter"); err } diff --git a/tests/ui/parser/deli-ident-issue-2.rs b/tests/ui/parser/deli-ident-issue-2.rs index 5394760df7026..419933c68ad69 100644 --- a/tests/ui/parser/deli-ident-issue-2.rs +++ b/tests/ui/parser/deli-ident-issue-2.rs @@ -1,6 +1,6 @@ fn main() { if 1 < 2 { - let _a = vec!]; //~ ERROR mismatched closing delimiter + let _a = vec!]; } } //~ ERROR unexpected closing delimiter diff --git a/tests/ui/parser/deli-ident-issue-2.stderr b/tests/ui/parser/deli-ident-issue-2.stderr index e0188cdfb4af8..f59058861200f 100644 --- a/tests/ui/parser/deli-ident-issue-2.stderr +++ b/tests/ui/parser/deli-ident-issue-2.stderr @@ -1,19 +1,13 @@ -error: mismatched closing delimiter: `]` - --> $DIR/deli-ident-issue-2.rs:2:14 - | -LL | if 1 < 2 { - | ^ unclosed delimiter -LL | let _a = vec!]; - | ^ mismatched closing delimiter - error: unexpected closing delimiter: `}` --> $DIR/deli-ident-issue-2.rs:5:1 | +LL | if 1 < 2 { + | - the last unclosed delimiter before unmatched delimiter LL | let _a = vec!]; | - missing open `[` for this delimiter LL | } LL | } | ^ unexpected closing delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-104367.rs b/tests/ui/parser/issues/issue-104367.rs index 861761b64f4f4..dc37c0b6e3e16 100644 --- a/tests/ui/parser/issues/issue-104367.rs +++ b/tests/ui/parser/issues/issue-104367.rs @@ -2,5 +2,5 @@ struct S { d: [u32; { #![cfg] { - #![w,) //~ ERROR mismatched closing delimiter + #![w,) //~ ERROR this file contains an unclosed delimiter diff --git a/tests/ui/parser/issues/issue-104367.stderr b/tests/ui/parser/issues/issue-104367.stderr index c067d12e2d96c..47779b7cbbad0 100644 --- a/tests/ui/parser/issues/issue-104367.stderr +++ b/tests/ui/parser/issues/issue-104367.stderr @@ -1,11 +1,3 @@ -error: mismatched closing delimiter: `)` - --> $DIR/issue-104367.rs:5:15 - | -LL | #![w,) - | ^ ^ mismatched closing delimiter - | | - | unclosed delimiter - error: this file contains an unclosed delimiter --> $DIR/issue-104367.rs:6:71 | @@ -18,9 +10,11 @@ LL | d: [u32; { LL | #![cfg] { | - unclosed delimiter LL | #![w,) - | - missing open `(` for this delimiter + | - - missing open `(` for this delimiter + | | + | the last unclosed delimiter before unmatched delimiter LL | | ^ -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-105209.rs b/tests/ui/parser/issues/issue-105209.rs index f4e331523bf42..480246bbdce8d 100644 --- a/tests/ui/parser/issues/issue-105209.rs +++ b/tests/ui/parser/issues/issue-105209.rs @@ -1,3 +1,3 @@ //@ compile-flags: -Zunpretty=ast-tree -#![c={#![c[)x //~ ERROR mismatched closing delimiter - //~ ERROR this file contains an unclosed delimiter +//~v ERROR this file contains an unclosed delimiter +#![c={#![c[)x diff --git a/tests/ui/parser/issues/issue-105209.stderr b/tests/ui/parser/issues/issue-105209.stderr index 72017e4327de4..b2dce02c706c3 100644 --- a/tests/ui/parser/issues/issue-105209.stderr +++ b/tests/ui/parser/issues/issue-105209.stderr @@ -1,22 +1,14 @@ -error: mismatched closing delimiter: `)` - --> $DIR/issue-105209.rs:2:11 - | -LL | #![c={#![c[)x - | ^^ mismatched closing delimiter - | | - | unclosed delimiter - error: this file contains an unclosed delimiter - --> $DIR/issue-105209.rs:3:68 + --> $DIR/issue-105209.rs:3:15 | LL | #![c={#![c[)x - | - - - - missing open `(` for this delimiter - | | | | + | - - - -- ^ + | | | | || + | | | | |missing open `(` for this delimiter + | | | | the last unclosed delimiter before unmatched delimiter | | | unclosed delimiter | | unclosed delimiter | unclosed delimiter -LL | - | ^ -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-62973.rs b/tests/ui/parser/issues/issue-62973.rs index a091e4eec1d92..68a6f9a6cff4a 100644 --- a/tests/ui/parser/issues/issue-62973.rs +++ b/tests/ui/parser/issues/issue-62973.rs @@ -2,8 +2,6 @@ fn main() {} -//~vvv ERROR mismatched closing delimiter: `)` -//~vv ERROR mismatched closing delimiter: `)` //~vvv ERROR this file contains an unclosed delimiter fn p() { match s { v, E { [) {) } diff --git a/tests/ui/parser/issues/issue-62973.stderr b/tests/ui/parser/issues/issue-62973.stderr index ea3e2bebee404..65bee027bcb77 100644 --- a/tests/ui/parser/issues/issue-62973.stderr +++ b/tests/ui/parser/issues/issue-62973.stderr @@ -1,31 +1,17 @@ -error: mismatched closing delimiter: `)` - --> $DIR/issue-62973.rs:8:27 - | -LL | fn p() { match s { v, E { [) {) } - | ^^ mismatched closing delimiter - | | - | unclosed delimiter - -error: mismatched closing delimiter: `)` - --> $DIR/issue-62973.rs:8:30 - | -LL | fn p() { match s { v, E { [) {) } - | ^^ mismatched closing delimiter - | | - | unclosed delimiter - error: this file contains an unclosed delimiter - --> $DIR/issue-62973.rs:10:2 + --> $DIR/issue-62973.rs:8:2 | LL | fn p() { match s { v, E { [) {) } - | - - - - missing open `(` for this delimiter - | | | | - | | | missing open `(` for this delimiter + | - - -- -- missing open `(` for this delimiter + | | | || | + | | | || the last unclosed delimiter before unmatched delimiter + | | | |missing open `(` for this delimiter + | | | the last unclosed delimiter before unmatched delimiter | | unclosed delimiter | unclosed delimiter LL | LL | | ^ -error: aborting due to 3 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-63116.rs b/tests/ui/parser/issues/issue-63116.rs index 48abe639e8d97..0a3cd5b9e567a 100644 --- a/tests/ui/parser/issues/issue-63116.rs +++ b/tests/ui/parser/issues/issue-63116.rs @@ -1,4 +1,3 @@ // fixed by #66361 -//~vv ERROR mismatched closing delimiter: `]` //~v ERROR this file contains an unclosed delimiter impl W $DIR/issue-63116.rs:4:14 - | -LL | impl W $DIR/issue-63116.rs:4:18 + --> $DIR/issue-63116.rs:3:18 | LL | impl W $DIR/issue-67377-invalid-syntax-in-enum-discriminant.rs:5:27 - | -LL | V = [PhantomData; { [ () ].len() ].len() as isize, - | - ^ ^ mismatched closing delimiter - | | | - | | unclosed delimiter - | closing delimiter possibly meant for this - -error: mismatched closing delimiter: `]` - --> $DIR/issue-67377-invalid-syntax-in-enum-discriminant.rs:12:24 - | -LL | V = [Vec::new; { [].len() ].len() as isize, - | - ^ ^ mismatched closing delimiter - | | | - | | unclosed delimiter - | closing delimiter possibly meant for this - -error: mismatched closing delimiter: `]` - --> $DIR/issue-67377-invalid-syntax-in-enum-discriminant.rs:19:24 - | -LL | V = [Vec::new; { [0].len() ].len() as isize, - | - ^ ^ mismatched closing delimiter - | | | - | | unclosed delimiter - | closing delimiter possibly meant for this - error: this file contains an unclosed delimiter - --> $DIR/issue-67377-invalid-syntax-in-enum-discriminant.rs:23:65 + --> $DIR/issue-67377-invalid-syntax-in-enum-discriminant.rs:20:65 | LL | V = [PhantomData; { [ () ].len() ].len() as isize, - | - missing open `[` for this delimiter + | - - missing open `[` for this delimiter + | | + | the last unclosed delimiter before unmatched delimiter ... LL | V = [Vec::new; { [].len() ].len() as isize, - | - missing open `[` for this delimiter + | - - missing open `[` for this delimiter + | | + | the last unclosed delimiter before unmatched delimiter ... LL | mod c { | - unclosed delimiter LL | enum Bug { LL | V = [Vec::new; { [0].len() ].len() as isize, - | - missing open `[` for this delimiter + | - - missing open `[` for this delimiter + | | + | the last unclosed delimiter before unmatched delimiter ... LL | fn main() {} | ^ -error: aborting due to 4 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-68987-unmatch-issue-2.rs b/tests/ui/parser/issues/issue-68987-unmatch-issue-2.rs index 89aaa68ba4095..9b4452ed2a1ac 100644 --- a/tests/ui/parser/issues/issue-68987-unmatch-issue-2.rs +++ b/tests/ui/parser/issues/issue-68987-unmatch-issue-2.rs @@ -1,7 +1,7 @@ // FIXME: this case need more work to fix // currently the TokenTree matching ')' with '{', which is not user friendly for diagnostics async fn obstest() -> Result<> { - let obs_connect = || -> Result<(), MyError) { //~ ERROR mismatched closing delimiter + let obs_connect = || -> Result<(), MyError) { async { } } diff --git a/tests/ui/parser/issues/issue-68987-unmatch-issue-2.stderr b/tests/ui/parser/issues/issue-68987-unmatch-issue-2.stderr index 0ecb748a0a4ce..b7b2ce8dadedd 100644 --- a/tests/ui/parser/issues/issue-68987-unmatch-issue-2.stderr +++ b/tests/ui/parser/issues/issue-68987-unmatch-issue-2.stderr @@ -1,19 +1,13 @@ -error: mismatched closing delimiter: `)` - --> $DIR/issue-68987-unmatch-issue-2.rs:3:32 - | -LL | async fn obstest() -> Result<> { - | ^ unclosed delimiter -LL | let obs_connect = || -> Result<(), MyError) { - | ^ mismatched closing delimiter - error: unexpected closing delimiter: `}` --> $DIR/issue-68987-unmatch-issue-2.rs:14:1 | +LL | async fn obstest() -> Result<> { + | - the last unclosed delimiter before unmatched delimiter LL | let obs_connect = || -> Result<(), MyError) { | - missing open `(` for this delimiter ... LL | } | ^ unexpected closing delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-68987-unmatch-issue-3.rs b/tests/ui/parser/issues/issue-68987-unmatch-issue-3.rs index e98df8d7c3c4e..e71e2730980e4 100644 --- a/tests/ui/parser/issues/issue-68987-unmatch-issue-3.rs +++ b/tests/ui/parser/issues/issue-68987-unmatch-issue-3.rs @@ -3,6 +3,6 @@ fn f(i: u32, j: u32) { let res = String::new(); let mut cnt = i; while cnt < j { - write!&mut res, " "); //~ ERROR mismatched closing delimiter + write!&mut res, " "); } } //~ ERROR unexpected closing delimiter diff --git a/tests/ui/parser/issues/issue-68987-unmatch-issue-3.stderr b/tests/ui/parser/issues/issue-68987-unmatch-issue-3.stderr index dfc4407ed6565..bbfea30e0aabc 100644 --- a/tests/ui/parser/issues/issue-68987-unmatch-issue-3.stderr +++ b/tests/ui/parser/issues/issue-68987-unmatch-issue-3.stderr @@ -1,19 +1,13 @@ -error: mismatched closing delimiter: `)` - --> $DIR/issue-68987-unmatch-issue-3.rs:5:19 - | -LL | while cnt < j { - | ^ unclosed delimiter -LL | write!&mut res, " "); - | ^ mismatched closing delimiter - error: unexpected closing delimiter: `}` --> $DIR/issue-68987-unmatch-issue-3.rs:8:1 | +LL | while cnt < j { + | - the last unclosed delimiter before unmatched delimiter LL | write!&mut res, " "); | - missing open `(` for this delimiter LL | } LL | } | ^ unexpected closing delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-81827.rs b/tests/ui/parser/issues/issue-81827.rs index 7dfeec13022a0..0022d3a0ee361 100644 --- a/tests/ui/parser/issues/issue-81827.rs +++ b/tests/ui/parser/issues/issue-81827.rs @@ -2,6 +2,5 @@ fn main() {} -//~vv ERROR mismatched closing delimiter: `]` //~v ERROR this file contains an unclosed delimiter fn r()->i{0|{#[cfg(r(0{]0 diff --git a/tests/ui/parser/issues/issue-81827.stderr b/tests/ui/parser/issues/issue-81827.stderr index 986ed6b7e70f9..ac44c5ae8faaa 100644 --- a/tests/ui/parser/issues/issue-81827.stderr +++ b/tests/ui/parser/issues/issue-81827.stderr @@ -1,21 +1,13 @@ -error: mismatched closing delimiter: `]` - --> $DIR/issue-81827.rs:7:23 - | -LL | fn r()->i{0|{#[cfg(r(0{]0 - | - ^^ mismatched closing delimiter - | | | - | | unclosed delimiter - | closing delimiter possibly meant for this - error: this file contains an unclosed delimiter - --> $DIR/issue-81827.rs:7:27 + --> $DIR/issue-81827.rs:6:27 | LL | fn r()->i{0|{#[cfg(r(0{]0 - | - - - ^ - | | | | - | | | missing open `[` for this delimiter + | - - -- ^ + | | | || + | | | |missing open `[` for this delimiter + | | | the last unclosed delimiter before unmatched delimiter | | unclosed delimiter | unclosed delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/unnessary-error-issue-138401.rs b/tests/ui/parser/issues/unnessary-error-issue-138401.rs index e5e5f1ee4e9ce..208c516365a82 100644 --- a/tests/ui/parser/issues/unnessary-error-issue-138401.rs +++ b/tests/ui/parser/issues/unnessary-error-issue-138401.rs @@ -1,6 +1,5 @@ pub fn foo(x: i64) -> i64 { - x.abs) - //~^ ERROR mismatched closing delimiter + x.abs) } //~^ ERROR unexpected closing delimiter: `}` diff --git a/tests/ui/parser/issues/unnessary-error-issue-138401.stderr b/tests/ui/parser/issues/unnessary-error-issue-138401.stderr index b50f77f1247cd..f457c4ed10b54 100644 --- a/tests/ui/parser/issues/unnessary-error-issue-138401.stderr +++ b/tests/ui/parser/issues/unnessary-error-issue-138401.stderr @@ -1,19 +1,12 @@ -error: mismatched closing delimiter: `)` - --> $DIR/unnessary-error-issue-138401.rs:1:27 - | -LL | pub fn foo(x: i64) -> i64 { - | ^ unclosed delimiter -LL | x.abs) - | ^ mismatched closing delimiter - error: unexpected closing delimiter: `}` - --> $DIR/unnessary-error-issue-138401.rs:4:1 + --> $DIR/unnessary-error-issue-138401.rs:3:1 | -LL | x.abs) +LL | pub fn foo(x: i64) -> i64 { + | - the last unclosed delimiter before unmatched delimiter +LL | x.abs) | - missing open `(` for this delimiter -LL | LL | } | ^ unexpected closing delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error diff --git a/tests/ui/suggestions/issue-94171.rs b/tests/ui/suggestions/issue-94171.rs index cbb9f9cec7211..de0e10d134b2b 100644 --- a/tests/ui/suggestions/issue-94171.rs +++ b/tests/ui/suggestions/issue-94171.rs @@ -1,5 +1,4 @@ fn L(]{match (; {` -//~^^ ERROR mismatched closing delimiter -//~^^ ERROR unknown start of token +//~^ ERROR unknown start of token: ` //~ ERROR this file contains an unclosed delimiter diff --git a/tests/ui/suggestions/issue-94171.stderr b/tests/ui/suggestions/issue-94171.stderr index bcbd46cd8ecd5..ff366ff34acf4 100644 --- a/tests/ui/suggestions/issue-94171.stderr +++ b/tests/ui/suggestions/issue-94171.stderr @@ -10,28 +10,21 @@ LL - (; {` LL + (; {' | -error: mismatched closing delimiter: `]` - --> $DIR/issue-94171.rs:1:5 - | -LL | fn L(]{match - | ^^ mismatched closing delimiter - | | - | unclosed delimiter - error: this file contains an unclosed delimiter - --> $DIR/issue-94171.rs:5:52 + --> $DIR/issue-94171.rs:4:52 | LL | fn L(]{match - | -- unclosed delimiter - | | - | missing open `[` for this delimiter + | --- unclosed delimiter + | || + | |missing open `[` for this delimiter + | the last unclosed delimiter before unmatched delimiter LL | (; {` | - - unclosed delimiter | | | unclosed delimiter -... +LL | LL | | ^ -error: aborting due to 3 previous errors +error: aborting due to 2 previous errors diff --git a/tests/ui/typeck/issue-91334.rs b/tests/ui/typeck/issue-91334.rs index c820014ff937b..189a7e709d568 100644 --- a/tests/ui/typeck/issue-91334.rs +++ b/tests/ui/typeck/issue-91334.rs @@ -2,6 +2,5 @@ #![feature(coroutines)] -//~vv ERROR mismatched closing delimiter: `)` //~v ERROR this file contains an unclosed delimiter fn f(){||yield(((){), diff --git a/tests/ui/typeck/issue-91334.stderr b/tests/ui/typeck/issue-91334.stderr index 01e34919ce67d..ee5fec5a01e56 100644 --- a/tests/ui/typeck/issue-91334.stderr +++ b/tests/ui/typeck/issue-91334.stderr @@ -1,21 +1,13 @@ -error: mismatched closing delimiter: `)` - --> $DIR/issue-91334.rs:7:19 - | -LL | fn f(){||yield(((){), - | - ^^ mismatched closing delimiter - | | | - | | unclosed delimiter - | closing delimiter possibly meant for this - error: this file contains an unclosed delimiter - --> $DIR/issue-91334.rs:7:23 + --> $DIR/issue-91334.rs:6:23 | LL | fn f(){||yield(((){), - | - - - ^ - | | | | - | | | missing open `(` for this delimiter + | - - -- ^ + | | | || + | | | |missing open `(` for this delimiter + | | | the last unclosed delimiter before unmatched delimiter | | unclosed delimiter | unclosed delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error