about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2023-10-03 19:06:17 +0000
committerMichael Goulet <michael@errs.io>2023-10-03 19:12:00 +0000
commit7815641be0751ea3e2ac034585207632035af2ee (patch)
treec90cb4e1b2e9b6cf2617d7410333c6b4e66f1fe5 /compiler/rustc_parse/src/parser
parent5333b878c8bc1c4267a67ea3682663629e47541a (diff)
downloadrust-7815641be0751ea3e2ac034585207632035af2ee.tar.gz
rust-7815641be0751ea3e2ac034585207632035af2ee.zip
Gate against auto traits pre-expansion
Diffstat (limited to 'compiler/rustc_parse/src/parser')
-rw-r--r--compiler/rustc_parse/src/parser/item.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/item.rs b/compiler/rustc_parse/src/parser/item.rs
index aad4edaba90..cc54cc5bebb 100644
--- a/compiler/rustc_parse/src/parser/item.rs
+++ b/compiler/rustc_parse/src/parser/item.rs
@@ -813,7 +813,12 @@ impl<'a> Parser<'a> {
     fn parse_item_trait(&mut self, attrs: &mut AttrVec, lo: Span) -> PResult<'a, ItemInfo> {
         let unsafety = self.parse_unsafety(Case::Sensitive);
         // Parse optional `auto` prefix.
-        let is_auto = if self.eat_keyword(kw::Auto) { IsAuto::Yes } else { IsAuto::No };
+        let is_auto = if self.eat_keyword(kw::Auto) {
+            self.sess.gated_spans.gate(sym::auto_traits, self.prev_token.span);
+            IsAuto::Yes
+        } else {
+            IsAuto::No
+        };
 
         self.expect_keyword(kw::Trait)?;
         let ident = self.parse_ident()?;