diff --git a/compiler/rustc_parse/src/lexer/diagnostics.rs b/compiler/rustc_parse/src/lexer/diagnostics.rs index 0b97d4e6993bb..bc8923becf98f 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) { @@ -50,18 +53,21 @@ fn report_missing_open_delim(err: &mut Diag<'_>, unmatched_delims: &[UnmatchedDe 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..9bd036bb29654 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 @@ -154,15 +154,12 @@ impl<'psess, 'src> Lexer<'psess, 'src> { candidate = Some(*delimiter_span); } } - let (_, _) = self.diag_info.open_delimiters.pop().unwrap(); self.diag_info.unmatched_delims.push(UnmatchedDelim { found_delim: Some(close_delim), found_span: self.token.span, unclosed_span: unclosed_delimiter, candidate_span: candidate, }); - } else { - self.diag_info.open_delimiters.pop(); } // If the incorrect delimiter matches an earlier opening @@ -238,13 +235,29 @@ 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); + if let Some((open_delim, open_delim_span)) = self.diag_info.open_delimiters.last().cloned() + { + if open_delim == close_delim { + err.span_label( + open_delim_span, + format!("this closing `{}` may be intended to match here", token_str), + ); + self.diag_info.open_delimiters.pop(); + } + } + + 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..82c569208b88c 100644 --- a/tests/ui/parser/deli-ident-issue-2.stderr +++ b/tests/ui/parser/deli-ident-issue-2.stderr @@ -1,19 +1,14 @@ -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 | fn main() { + | - this closing `}` may be intended to match here +LL | if 1 < 2 { 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..1ac1a92f86b4e 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 + | | + | 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-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..23b06f31e2a55 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 + | | | | unclosed 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-62895.stderr b/tests/ui/parser/issues/issue-62895.stderr index 0ad9ac63ebd45..502b77c06bf72 100644 --- a/tests/ui/parser/issues/issue-62895.stderr +++ b/tests/ui/parser/issues/issue-62895.stderr @@ -8,10 +8,10 @@ LL | (), w20); | ^ mismatched closing delimiter error: mismatched closing delimiter: `)` - --> $DIR/issue-62895.rs:4:7 + --> $DIR/issue-62895.rs:5:22 | -LL | mod _ { - | ^ unclosed delimiter +LL | pub fn g() -> isizee { + | ^ unclosed delimiter ... LL | (), w20); | ^ mismatched closing delimiter 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..af76438675366 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 + | | | | || + | | | | |missing open `(` for this delimiter + | | | | unclosed delimiter + | | | unclosed 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 | mod a { + | - unclosed delimiter +... LL | V = [PhantomData; { [ () ].len() ].len() as isize, | - missing open `[` for this delimiter ... +LL | mod b { + | - unclosed delimiter +LL | enum Bug { LL | V = [Vec::new; { [].len() ].len() as isize, | - missing open `[` for this delimiter ... LL | mod c { | - unclosed delimiter LL | enum Bug { + | - unclosed delimiter LL | V = [Vec::new; { [0].len() ].len() as isize, | - missing open `[` for this 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..6bb11bb0c0007 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<> { + | - this closing `}` may be intended to match here 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..b17ec2e30efb1 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,14 @@ -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 | fn f(i: u32, j: u32) { + | - this closing `}` may be intended to match here +... 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-81804.stderr b/tests/ui/parser/issues/issue-81804.stderr index f12c6a61ce5ec..300259b78cc2f 100644 --- a/tests/ui/parser/issues/issue-81804.stderr +++ b/tests/ui/parser/issues/issue-81804.stderr @@ -10,8 +10,9 @@ error: this file contains an unclosed delimiter --> $DIR/issue-81804.rs:5:11 | LL | fn p([=(} - | -- ^ - | || + | -- - ^ + | || | + | || unclosed delimiter | |unclosed delimiter | unclosed delimiter 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..9fdeea59b0e3a 100644 --- a/tests/ui/parser/issues/issue-81827.stderr +++ b/tests/ui/parser/issues/issue-81827.stderr @@ -1,21 +1,15 @@ -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 + | | | | | unclosed delimiter + | | | | unclosed delimiter + | | | unclosed 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 new file mode 100644 index 0000000000000..208c516365a82 --- /dev/null +++ b/tests/ui/parser/issues/unnessary-error-issue-138401.rs @@ -0,0 +1,6 @@ +pub fn foo(x: i64) -> i64 { + x.abs) +} +//~^ 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..e4e454884af4e --- /dev/null +++ b/tests/ui/parser/issues/unnessary-error-issue-138401.stderr @@ -0,0 +1,12 @@ +error: unexpected closing delimiter: `}` + --> $DIR/unnessary-error-issue-138401.rs:3:1 + | +LL | pub fn foo(x: i64) -> i64 { + | - this closing `}` may be intended to match here +LL | x.abs) + | - missing open `(` for this delimiter +LL | } + | ^ unexpected closing delimiter + +error: aborting due to 1 previous error + diff --git a/tests/ui/parser/macro/macro-mismatched-delim-paren-brace.stderr b/tests/ui/parser/macro/macro-mismatched-delim-paren-brace.stderr index 34217e21ae95e..08724ebc33d5b 100644 --- a/tests/ui/parser/macro/macro-mismatched-delim-paren-brace.stderr +++ b/tests/ui/parser/macro/macro-mismatched-delim-paren-brace.stderr @@ -11,10 +11,8 @@ error: unexpected closing delimiter: `}` --> $DIR/macro-mismatched-delim-paren-brace.rs:5:1 | LL | fn main() { - | - this delimiter might not be properly closed... + | - this closing `}` may be intended to match here ... -LL | } - | - ...as it matches this but it has different indentation LL | } | ^ unexpected closing delimiter diff --git a/tests/ui/parser/mismatched-delimiter-corner-case-issue-127868.stderr b/tests/ui/parser/mismatched-delimiter-corner-case-issue-127868.stderr index 94e25c18e4010..3dbe51028fc94 100644 --- a/tests/ui/parser/mismatched-delimiter-corner-case-issue-127868.stderr +++ b/tests/ui/parser/mismatched-delimiter-corner-case-issue-127868.stderr @@ -14,15 +14,13 @@ error: this file contains an unclosed delimiter LL | fn main() { | - unclosed delimiter LL | let a = [[[[[[[[[[[[[[[[[[[[1, {, (, [,; - | ----- - this delimiter might not be properly closed... - | ||||| - | ||||another 16 unclosed delimiters begin from here + | ----- another 18 unclosed delimiters begin from here + | |||| | |||unclosed delimiter | ||unclosed delimiter | |unclosed delimiter | unclosed delimiter LL | } - | - ...as it matches this but it has different indentation LL | | ^ diff --git a/tests/ui/parser/parser-ice-ed2021-await-105210.stderr b/tests/ui/parser/parser-ice-ed2021-await-105210.stderr index 29abab2608e94..7239c57cd7cc6 100644 --- a/tests/ui/parser/parser-ice-ed2021-await-105210.stderr +++ b/tests/ui/parser/parser-ice-ed2021-await-105210.stderr @@ -8,13 +8,13 @@ LL | (( h (const {( default ( await ( await ( (move {await((((}} | closing delimiter possibly meant for this error: mismatched closing delimiter: `}` - --> $DIR/parser-ice-ed2021-await-105210.rs:7:43 + --> $DIR/parser-ice-ed2021-await-105210.rs:7:57 | LL | (( h (const {( default ( await ( await ( (move {await((((}} - | - ^ ^ mismatched closing delimiter - | | | - | | unclosed delimiter - | closing delimiter possibly meant for this + | - ^ ^ mismatched closing delimiter + | | | + | | unclosed delimiter + | closing delimiter possibly meant for this error: this file contains an unclosed delimiter --> $DIR/parser-ice-ed2021-await-105210.rs:10:52 @@ -22,8 +22,10 @@ error: this file contains an unclosed delimiter LL | fn box () { | - unclosed delimiter LL | (( h (const {( default ( await ( await ( (move {await((((}} - | -- - unclosed delimiter - | || + | -- - -- another 8 unclosed delimiters begin from here + | || | | + | || | unclosed delimiter + | || unclosed delimiter | |unclosed delimiter | unclosed delimiter ... 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..095a14e6b4983 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 + | unclosed 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..d1c4ea5ed36a5 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 + | | |unclosed delimiter | | unclosed delimiter | unclosed delimiter -error: aborting due to 2 previous errors +error: aborting due to 1 previous error