From 85c42fba1291f1cc41fb7bfec63117895b394fc5 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 4 Feb 2018 16:46:26 +0300 Subject: Support contextual tokens --- src/parser/grammar/items/mod.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/parser/grammar') 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) { CONST_ITEM } }, - // TODO: auto trait // test unsafe_trait // unsafe trait T {} UNSAFE_KW if la == TRAIT_KW => { @@ -89,7 +88,16 @@ fn item(p: &mut Parser) { traits::trait_item(p); TRAIT_ITEM } - // TODO: default impl + + // test unsafe_auto_trait + // unsafe auto trait T {} + UNSAFE_KW if p.at_kw(1, "auto") && p.nth(2) == TRAIT_KW => { + p.bump(); + p.bump_remap(AUTO_KW); + traits::trait_item(p); + TRAIT_ITEM + } + // test unsafe_impl // unsafe impl Foo {} UNSAFE_KW if la == IMPL_KW => { @@ -97,6 +105,16 @@ fn item(p: &mut Parser) { traits::impl_item(p); IMPL_ITEM } + + // test unsafe_default_impl + // unsafe default impl Foo {} + UNSAFE_KW if p.at_kw(1, "default") && p.nth(2) == IMPL_KW => { + p.bump(); + p.bump_remap(DEFAULT_KW); + traits::impl_item(p); + IMPL_ITEM + } + MOD_KW => { mod_item(p); MOD_ITEM -- cgit v1.2.3