diff options
author | Aleksey Kladov <[email protected]> | 2018-02-04 13:46:26 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-02-04 13:46:26 +0000 |
commit | 85c42fba1291f1cc41fb7bfec63117895b394fc5 (patch) | |
tree | cda942a62d244f6352dd870cf4c4e68f739909b5 /src/parser/grammar/items | |
parent | 852543212ba5c68b3428a80187087cc641de612c (diff) |
Support contextual tokens
Diffstat (limited to 'src/parser/grammar/items')
-rw-r--r-- | src/parser/grammar/items/mod.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/parser/grammar/items/mod.rs b/src/parser/grammar/items/mod.rs index 3612802e1..4afe2e418 100644 --- a/src/parser/grammar/items/mod.rs +++ b/src/parser/grammar/items/mod.rs | |||
@@ -81,7 +81,6 @@ fn item(p: &mut Parser) { | |||
81 | CONST_ITEM | 81 | CONST_ITEM |
82 | } | 82 | } |
83 | }, | 83 | }, |
84 | // TODO: auto trait | ||
85 | // test unsafe_trait | 84 | // test unsafe_trait |
86 | // unsafe trait T {} | 85 | // unsafe trait T {} |
87 | UNSAFE_KW if la == TRAIT_KW => { | 86 | UNSAFE_KW if la == TRAIT_KW => { |
@@ -89,7 +88,16 @@ fn item(p: &mut Parser) { | |||
89 | traits::trait_item(p); | 88 | traits::trait_item(p); |
90 | TRAIT_ITEM | 89 | TRAIT_ITEM |
91 | } | 90 | } |
92 | // TODO: default impl | 91 | |
92 | // test unsafe_auto_trait | ||
93 | // unsafe auto trait T {} | ||
94 | UNSAFE_KW if p.at_kw(1, "auto") && p.nth(2) == TRAIT_KW => { | ||
95 | p.bump(); | ||
96 | p.bump_remap(AUTO_KW); | ||
97 | traits::trait_item(p); | ||
98 | TRAIT_ITEM | ||
99 | } | ||
100 | |||
93 | // test unsafe_impl | 101 | // test unsafe_impl |
94 | // unsafe impl Foo {} | 102 | // unsafe impl Foo {} |
95 | UNSAFE_KW if la == IMPL_KW => { | 103 | UNSAFE_KW if la == IMPL_KW => { |
@@ -97,6 +105,16 @@ fn item(p: &mut Parser) { | |||
97 | traits::impl_item(p); | 105 | traits::impl_item(p); |
98 | IMPL_ITEM | 106 | IMPL_ITEM |
99 | } | 107 | } |
108 | |||
109 | // test unsafe_default_impl | ||
110 | // unsafe default impl Foo {} | ||
111 | UNSAFE_KW if p.at_kw(1, "default") && p.nth(2) == IMPL_KW => { | ||
112 | p.bump(); | ||
113 | p.bump_remap(DEFAULT_KW); | ||
114 | traits::impl_item(p); | ||
115 | IMPL_ITEM | ||
116 | } | ||
117 | |||
100 | MOD_KW => { | 118 | MOD_KW => { |
101 | mod_item(p); | 119 | mod_item(p); |
102 | MOD_ITEM | 120 | MOD_ITEM |