about summary refs log tree commit diff
path: root/src/librustc_parse/parser/stmt.rs
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-01-31 13:37:23 +0100
committerMazdak Farrokhzad <twingoow@gmail.com>2020-02-13 15:16:36 +0100
commit15e07a6a11bc5ed86e33403eb4b7d718d1636855 (patch)
tree36c36cef6be5290b58d19b7173a83b5982e2732f /src/librustc_parse/parser/stmt.rs
parentfd64b3bcdfcc844b9b25318106917937f7b17b94 (diff)
parser: fuse `trait` parsing & layer with `is_path_start_item`
Diffstat (limited to 'src/librustc_parse/parser/stmt.rs')
-rw-r--r--src/librustc_parse/parser/stmt.rs16
1 files changed, 1 insertions, 15 deletions
diff --git a/src/librustc_parse/parser/stmt.rs b/src/librustc_parse/parser/stmt.rs
index b111b45e709..439d0368d09 100644
--- a/src/librustc_parse/parser/stmt.rs
+++ b/src/librustc_parse/parser/stmt.rs
@@ -61,11 +61,7 @@ impl<'a> Parser<'a> {
         // like a path (1 token), but it fact not a path.
         if self.token.is_path_start()
             && !self.token.is_qpath_start()
-            && !self.is_union_item() // `union::b::c` - path, `union U { ... }` - not a path.
-            && !self.is_crate_vis() // `crate::b::c` - path, `crate struct S;` - not a path.
-            && !self.is_auto_trait_item()
-            && !self.is_async_fn()
-            && !self.is_macro_rules_item()
+            && !self.is_path_start_item() // Confirm we don't steal syntax from `parse_item_`.
         {
             let path = self.parse_path(PathStyle::Expr)?;
 
@@ -295,16 +291,6 @@ impl<'a> Parser<'a> {
         }
     }
 
-    fn is_auto_trait_item(&self) -> bool {
-        // auto trait
-        (self.token.is_keyword(kw::Auto) &&
-            self.is_keyword_ahead(1, &[kw::Trait]))
-        || // unsafe auto trait
-        (self.token.is_keyword(kw::Unsafe) &&
-         self.is_keyword_ahead(1, &[kw::Auto]) &&
-         self.is_keyword_ahead(2, &[kw::Trait]))
-    }
-
     /// Parses a block. No inner attributes are allowed.
     pub fn parse_block(&mut self) -> PResult<'a, P<Block>> {
         maybe_whole!(self, NtBlock, |x| x);