From d3c902f3113575b134641c14a9734b5075d06b09 Mon Sep 17 00:00:00 2001 From: jeb Date: Thu, 5 Jul 2018 19:09:35 -0600 Subject: Merge the `proc_macro_` expansion feature gates into a single `proc_macro_hygiene` gate. --- src/libsyntax/ext/expand.rs | 23 ++++++++++------------- src/libsyntax/feature_gate.rs | 13 +++++++++---- 2 files changed, 19 insertions(+), 17 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 52322e98d46..aef1113eef9 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -645,8 +645,8 @@ impl<'a, 'b> MacroExpander<'a, 'b> { let (kind, gate) = match *item { Annotatable::Item(ref item) => { match item.node { - ItemKind::Mod(_) if self.cx.ecfg.proc_macro_mod() => return, - ItemKind::Mod(_) => ("modules", "proc_macro_mod"), + ItemKind::Mod(_) if self.cx.ecfg.proc_macro_hygiene() => return, + ItemKind::Mod(_) => ("modules", "proc_macro_hygiene"), _ => return, } } @@ -654,9 +654,9 @@ impl<'a, 'b> MacroExpander<'a, 'b> { Annotatable::ImplItem(_) => return, Annotatable::ForeignItem(_) => return, Annotatable::Stmt(_) | - Annotatable::Expr(_) if self.cx.ecfg.proc_macro_expr() => return, - Annotatable::Stmt(_) => ("statements", "proc_macro_expr"), - Annotatable::Expr(_) => ("expressions", "proc_macro_expr"), + Annotatable::Expr(_) if self.cx.ecfg.proc_macro_hygiene() => return, + Annotatable::Stmt(_) => ("statements", "proc_macro_hygiene"), + Annotatable::Expr(_) => ("expressions", "proc_macro_hygiene"), }; emit_feature_err( self.cx.parse_sess, @@ -668,7 +668,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { } fn gate_proc_macro_expansion(&self, span: Span, fragment: &Option) { - if self.cx.ecfg.proc_macro_gen() { + if self.cx.ecfg.proc_macro_hygiene() { return } let fragment = match fragment { @@ -691,7 +691,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { if let ast::ItemKind::MacroDef(_) = i.node { emit_feature_err( self.parse_sess, - "proc_macro_gen", + "proc_macro_hygiene", self.span, GateIssue::Language, &format!("procedural macros cannot expand to macro definitions"), @@ -885,12 +885,12 @@ impl<'a, 'b> MacroExpander<'a, 'b> { AstFragmentKind::ImplItems => return, AstFragmentKind::ForeignItems => return, }; - if self.cx.ecfg.proc_macro_non_items() { + if self.cx.ecfg.proc_macro_hygiene() { return } emit_feature_err( self.cx.parse_sess, - "proc_macro_non_items", + "proc_macro_hygiene", span, GateIssue::Language, &format!("procedural macros cannot be expanded to {}", kind), @@ -1612,10 +1612,7 @@ impl<'feat> ExpansionConfig<'feat> { fn enable_custom_derive = custom_derive, fn enable_format_args_nl = format_args_nl, fn macros_in_extern_enabled = macros_in_extern, - fn proc_macro_mod = proc_macro_mod, - fn proc_macro_gen = proc_macro_gen, - fn proc_macro_expr = proc_macro_expr, - fn proc_macro_non_items = proc_macro_non_items, + fn proc_macro_hygiene = proc_macro_hygiene, } fn enable_custom_inner_attributes(&self) -> bool { diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index adbe2f9d439..674740a52e6 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -441,10 +441,7 @@ declare_features! ( // Allows macro invocations on modules expressions and statements and // procedural macros to expand to non-items. - (active, proc_macro_mod, "1.27.0", Some(54727), None), - (active, proc_macro_expr, "1.27.0", Some(54727), None), - (active, proc_macro_non_items, "1.27.0", Some(54727), None), - (active, proc_macro_gen, "1.27.0", Some(54727), None), + (active, proc_macro_hygiene, "1.30.0", Some(54727), None), // #[doc(alias = "...")] (active, doc_alias, "1.27.0", Some(50146), None), @@ -541,6 +538,14 @@ declare_features! ( Some("merged into `#![feature(slice_patterns)]`")), (removed, macro_reexport, "1.0.0", Some(29638), None, Some("subsumed by `pub use`")), + (removed, proc_macro_mod, "1.27.0", Some(54727), None, + Some("subsumed by `#![feature(proc_macro_hygiene)]`")), + (removed, proc_macro_expr, "1.27.0", Some(54727), None, + Some("subsumed by `#![feature(proc_macro_hygiene)]`")), + (removed, proc_macro_non_items, "1.27.0", Some(54727), None, + Some("subsumed by `#![feature(proc_macro_hygiene)]`")), + (removed, proc_macro_gen, "1.27.0", Some(54727), None, + Some("subsumed by `#![feature(proc_macro_hygiene)]`")), ); declare_features! ( -- cgit 1.4.1-3-g733a5