File tree Expand file tree Collapse file tree 1 file changed +14
-20
lines changed
compiler/rustc_parse/src/lexer Expand file tree Collapse file tree 1 file changed +14
-20
lines changed Original file line number Diff line number Diff line change @@ -72,27 +72,21 @@ pub(crate) fn lex_token_trees<'psess, 'src>(
7272 let ( _open_spacing, stream, res) = lexer. lex_token_trees ( /* is_delimited */ false ) ;
7373 let unmatched_delims = lexer. diag_info . unmatched_delims ;
7474
75- match res {
76- Ok ( ( ) ) if unmatched_delims. is_empty ( ) => Ok ( stream) ,
77- _ => {
78- // Return error if there are unmatched delimiters or unclosed delimiters.
79- // We emit delimiter mismatch errors first, then emit the unclosing delimiter mismatch
80- // because the delimiter mismatch is more likely to be the root cause of error
81-
82- let mut buffer = Vec :: with_capacity ( 1 ) ;
83- for unmatched in unmatched_delims {
84- if let Some ( err) = make_unclosed_delims_error ( unmatched, psess) {
85- buffer. push ( err) ;
86- }
87- }
88- if let Err ( errs) = res {
89- // Add unclosing delimiter or diff marker errors
90- for err in errs {
91- buffer. push ( err) ;
92- }
93- }
94- Err ( buffer)
75+ if res. is_ok ( ) && unmatched_delims. is_empty ( ) {
76+ Ok ( stream)
77+ } else {
78+ // Return error if there are unmatched delimiters or unclosed delimiters.
79+ // We emit delimiter mismatch errors first, then emit the unclosing delimiter mismatch
80+ // because the delimiter mismatch is more likely to be the root cause of error
81+ let mut buffer: Vec < _ > = unmatched_delims
82+ . into_iter ( )
83+ . filter_map ( |unmatched_delim| make_unclosed_delims_error ( unmatched_delim, psess) )
84+ . collect ( ) ;
85+ if let Err ( errs) = res {
86+ // Add unclosing delimiter or diff marker errors
87+ buffer. extend ( errs) ;
9588 }
89+ Err ( buffer)
9690 }
9791}
9892
You can’t perform that action at this time.
0 commit comments