diff options
Diffstat (limited to 'crates/ra_parser/src')
-rw-r--r-- | crates/ra_parser/src/grammar/items.rs | 2 | ||||
-rw-r--r-- | crates/ra_parser/src/parser.rs | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/crates/ra_parser/src/grammar/items.rs b/crates/ra_parser/src/grammar/items.rs index 54284c933..f8b43866c 100644 --- a/crates/ra_parser/src/grammar/items.rs +++ b/crates/ra_parser/src/grammar/items.rs | |||
@@ -21,7 +21,7 @@ use super::*; | |||
21 | // struct S; | 21 | // struct S; |
22 | pub(super) fn mod_contents(p: &mut Parser, stop_on_r_curly: bool) { | 22 | pub(super) fn mod_contents(p: &mut Parser, stop_on_r_curly: bool) { |
23 | attributes::inner_attributes(p); | 23 | attributes::inner_attributes(p); |
24 | while !p.at(EOF) && !(stop_on_r_curly && p.at(T!['}'])) { | 24 | while !(stop_on_r_curly && p.at(T!['}']) || p.at(EOF)) { |
25 | item_or_macro(p, stop_on_r_curly, ItemFlavor::Mod) | 25 | item_or_macro(p, stop_on_r_curly, ItemFlavor::Mod) |
26 | } | 26 | } |
27 | } | 27 | } |
diff --git a/crates/ra_parser/src/parser.rs b/crates/ra_parser/src/parser.rs index 1071c46dc..76e2d4f7d 100644 --- a/crates/ra_parser/src/parser.rs +++ b/crates/ra_parser/src/parser.rs | |||
@@ -126,13 +126,13 @@ impl<'t> Parser<'t> { | |||
126 | } | 126 | } |
127 | 127 | ||
128 | fn at_composite2(&self, n: usize, k1: SyntaxKind, k2: SyntaxKind) -> bool { | 128 | fn at_composite2(&self, n: usize, k1: SyntaxKind, k2: SyntaxKind) -> bool { |
129 | let t1 = self.token_source.lookahead_nth(n + 0); | 129 | let t1 = self.token_source.lookahead_nth(n); |
130 | let t2 = self.token_source.lookahead_nth(n + 1); | 130 | let t2 = self.token_source.lookahead_nth(n + 1); |
131 | t1.kind == k1 && t1.is_jointed_to_next && t2.kind == k2 | 131 | t1.kind == k1 && t1.is_jointed_to_next && t2.kind == k2 |
132 | } | 132 | } |
133 | 133 | ||
134 | fn at_composite3(&self, n: usize, k1: SyntaxKind, k2: SyntaxKind, k3: SyntaxKind) -> bool { | 134 | fn at_composite3(&self, n: usize, k1: SyntaxKind, k2: SyntaxKind, k3: SyntaxKind) -> bool { |
135 | let t1 = self.token_source.lookahead_nth(n + 0); | 135 | let t1 = self.token_source.lookahead_nth(n); |
136 | let t2 = self.token_source.lookahead_nth(n + 1); | 136 | let t2 = self.token_source.lookahead_nth(n + 1); |
137 | let t3 = self.token_source.lookahead_nth(n + 2); | 137 | let t3 = self.token_source.lookahead_nth(n + 2); |
138 | (t1.kind == k1 && t1.is_jointed_to_next) | 138 | (t1.kind == k1 && t1.is_jointed_to_next) |