]> git.lizzy.rs Git - rust.git/commitdiff
Better fix for stuck parser?
authorFlorian Diebold <flodiebold@gmail.com>
Sun, 15 Mar 2020 13:03:30 +0000 (14:03 +0100)
committerFlorian Diebold <flodiebold@gmail.com>
Mon, 16 Mar 2020 17:38:19 +0000 (18:38 +0100)
crates/ra_parser/src/grammar/expressions/atom.rs

index 2fc6ce1e1a64b8e6e342d00055a81fe9cbd8fecc..2335d99b3ae2a88e61e6cf6b9620d6b3f9a4e9c8 100644 (file)
@@ -61,7 +61,7 @@ pub(crate) fn literal(p: &mut Parser) -> Option<CompletedMarker> {
         LIFETIME,
     ]);
 
-const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW];
+const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW, R_DOLLAR];
 
 pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> {
     if let Some(m) = literal(p) {
@@ -565,10 +565,10 @@ fn meta_var_expr(p: &mut Parser) -> CompletedMarker {
             it
         }
         _ => {
-            while !p.at(EOF) && !p.at(R_DOLLAR) {
+            while !p.at(R_DOLLAR) {
                 p.bump_any()
             }
-            p.eat(R_DOLLAR);
+            p.bump(R_DOLLAR);
             m.complete(p, ERROR)
         }
     }