diff options
Diffstat (limited to 'src/parser/grammar')
-rw-r--r-- | src/parser/grammar/items/mod.rs | 12 | ||||
-rw-r--r-- | src/parser/grammar/items/traits.rs | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/parser/grammar/items/mod.rs b/src/parser/grammar/items/mod.rs index c88e39596..73fd5235a 100644 --- a/src/parser/grammar/items/mod.rs +++ b/src/parser/grammar/items/mod.rs | |||
@@ -149,6 +149,18 @@ fn item(p: &mut Parser) { | |||
149 | } | 149 | } |
150 | } | 150 | } |
151 | } | 151 | } |
152 | IMPL_KW => { | ||
153 | traits::impl_item(p); | ||
154 | IMPL_ITEM | ||
155 | } | ||
156 | // test default_impl | ||
157 | // default impl Foo {} | ||
158 | IDENT if p.at_contextual_kw("default") && la == IMPL_KW => { | ||
159 | p.bump_remap(DEFAULT_KW); | ||
160 | traits::impl_item(p); | ||
161 | IMPL_ITEM | ||
162 | } | ||
163 | |||
152 | FN_KW => { | 164 | FN_KW => { |
153 | fn_item(p); | 165 | fn_item(p); |
154 | FN_ITEM | 166 | FN_ITEM |
diff --git a/src/parser/grammar/items/traits.rs b/src/parser/grammar/items/traits.rs index 9961a88fe..7fd011ffd 100644 --- a/src/parser/grammar/items/traits.rs +++ b/src/parser/grammar/items/traits.rs | |||
@@ -8,6 +8,9 @@ pub(super) fn trait_item(p: &mut Parser) { | |||
8 | p.expect(R_CURLY); | 8 | p.expect(R_CURLY); |
9 | } | 9 | } |
10 | 10 | ||
11 | |||
12 | // test impl_item | ||
13 | // impl Foo {} | ||
11 | pub(super) fn impl_item(p: &mut Parser) { | 14 | pub(super) fn impl_item(p: &mut Parser) { |
12 | assert!(p.at(IMPL_KW)); | 15 | assert!(p.at(IMPL_KW)); |
13 | p.bump(); | 16 | p.bump(); |