Skip to content

Commit 7e9e361

Browse files
authored
Rollup merge of rust-lang#156031 - nnethercote:lex_token_trees, r=chenyukang
Return a single diagnostic from `lex_token_trees`. It currently returns a `Vec` but in practice it always has one diagnostic in it. LLM disclosure: Claude Code identified this when I asked it to review `tokentrees.rs`. I made the change by hand and tested it myself. r? @chenyukang
2 parents 7a09b4b + c9d0bdc commit 7e9e361

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

compiler/rustc_parse/src/lexer/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ pub(crate) fn lex_token_trees<'psess, 'src>(
115115
Err(errs) => {
116116
// We emit delimiter mismatch errors first, then emit the unclosing delimiter mismatch
117117
// because the delimiter mismatch is more likely to be the root cause of error
118-
unmatched_closing_delims.extend(errs);
118+
unmatched_closing_delims.push(errs);
119119
Err(unmatched_closing_delims)
120120
}
121121
}

compiler/rustc_parse/src/lexer/tokentrees.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ impl<'psess, 'src> Lexer<'psess, 'src> {
1414
pub(super) fn lex_token_trees(
1515
&mut self,
1616
is_delimited: bool,
17-
) -> Result<(Spacing, TokenStream), Vec<Diag<'psess>>> {
17+
) -> Result<(Spacing, TokenStream), Diag<'psess>> {
1818
// Move past the opening delimiter.
1919
let open_spacing = self.bump_minimal();
2020

@@ -35,11 +35,11 @@ impl<'psess, 'src> Lexer<'psess, 'src> {
3535
return if is_delimited {
3636
Ok((open_spacing, TokenStream::new(buf)))
3737
} else {
38-
Err(vec![self.close_delim_err(delim)])
38+
Err(self.close_delim_err(delim))
3939
};
4040
} else if self.token.kind == token::Eof {
4141
return if is_delimited {
42-
Err(vec![self.eof_err()])
42+
Err(self.eof_err())
4343
} else {
4444
Ok((open_spacing, TokenStream::new(buf)))
4545
};
@@ -54,7 +54,7 @@ impl<'psess, 'src> Lexer<'psess, 'src> {
5454
fn lex_token_tree_open_delim(
5555
&mut self,
5656
open_delim: Delimiter,
57-
) -> Result<TokenTree, Vec<Diag<'psess>>> {
57+
) -> Result<TokenTree, Diag<'psess>> {
5858
// The span for beginning of the delimited section.
5959
let pre_span = self.token.span;
6060

0 commit comments

Comments
 (0)