diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-08-27 02:07:26 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-09-30 21:59:35 +0300 |
| commit | 349259d55f9b006fe871a26eaa2481b4103dc9d7 (patch) | |
| tree | d8983834200de0cae04652c508dd1af72d1783c9 /src/libsyntax/ext | |
| parent | 22bc9e1d9ca49ee4f5cd953088ab09c238a6dd26 (diff) | |
Stabilize macros in `extern` blocks
Add some tests for macros in extern blocks, remove duplicate tests
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 02e7c6775a4..cf8edf54673 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -555,15 +555,6 @@ impl<'a, 'b> MacroExpander<'a, 'b> { } fn expand_invoc(&mut self, invoc: Invocation, ext: &SyntaxExtensionKind) -> AstFragment { - let (fragment_kind, span) = (invoc.fragment_kind, invoc.span()); - if fragment_kind == AstFragmentKind::ForeignItems && !self.cx.ecfg.macros_in_extern() { - if let SyntaxExtensionKind::NonMacroAttr { .. } = ext {} else { - emit_feature_err(&self.cx.parse_sess, sym::macros_in_extern, - span, GateIssue::Language, - "macro invocations in `extern {}` blocks are experimental"); - } - } - if self.cx.current_expansion.depth > self.cx.ecfg.recursion_limit { let expn_data = self.cx.current_expansion.id.expn_data(); let suggested_limit = self.cx.ecfg.recursion_limit * 2; @@ -578,6 +569,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { FatalError.raise(); } + let (fragment_kind, span) = (invoc.fragment_kind, invoc.span()); match invoc.kind { InvocationKind::Bang { mac, .. } => match ext { SyntaxExtensionKind::Bang(expander) => { @@ -1578,9 +1570,6 @@ impl<'feat> ExpansionConfig<'feat> { } } - fn macros_in_extern(&self) -> bool { - self.features.map_or(false, |features| features.macros_in_extern) - } fn proc_macro_hygiene(&self) -> bool { self.features.map_or(false, |features| features.proc_macro_hygiene) } |
