Correctly handle while-let-chains
This commit is contained in:
parent
9455259450
commit
a49368f00b
4 changed files with 51 additions and 4 deletions
|
@ -129,7 +129,7 @@ impl<'a> TokenTreesReader<'a> {
|
|||
while parser.token != token::Eof {
|
||||
if let Err(diff_err) = parser.err_diff_marker() {
|
||||
diff_errs.push(diff_err);
|
||||
} else if parser.token.is_keyword(kw::If) {
|
||||
} else if parser.is_keyword_ahead(0, &[kw::If, kw::While]) {
|
||||
in_cond = true;
|
||||
} else if matches!(
|
||||
parser.token.kind,
|
||||
|
|
|
@ -1115,7 +1115,7 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
|
||||
/// Returns whether any of the given keywords are `dist` tokens ahead of the current one.
|
||||
fn is_keyword_ahead(&self, dist: usize, kws: &[Symbol]) -> bool {
|
||||
pub fn is_keyword_ahead(&self, dist: usize, kws: &[Symbol]) -> bool {
|
||||
self.look_ahead(dist, |t| kws.iter().any(|&kw| t.is_keyword(kw)))
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue