Skip to content

Commit f756b07

Browse files
committed
Don't feature gate bang macros on 'proc_macro_path_invoc'.
1 parent ede7f94 commit f756b07

25 files changed

+20
-25
lines changed

src/librustc_resolve/macros.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ impl<'a> Resolver<'a> {
397397

398398
fn resolve_macro_to_def(&mut self, scope: Mark, path: &ast::Path, kind: MacroKind, force: bool)
399399
-> Result<Def, Determinacy> {
400-
if path.segments.len() > 1 {
400+
if kind != MacroKind::Bang && path.segments.len() > 1 {
401401
if !self.session.features_untracked().proc_macro_path_invoc {
402402
emit_feature_err(
403403
&self.session.parse_sess,
@@ -409,6 +409,7 @@ impl<'a> Resolver<'a> {
409409
);
410410
}
411411
}
412+
412413
let def = self.resolve_macro_to_def_inner(scope, path, kind, force);
413414
if def != Err(Determinacy::Undetermined) {
414415
// Do not report duplicated errors on every undetermined resolution.

src/test/compile-fail/extern-macro.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// #41719
1212

13-
#![feature(use_extern_macros, proc_macro_path_invoc)]
13+
#![feature(use_extern_macros)]
1414

1515
fn main() {
1616
enum Foo {}

src/test/compile-fail/macros-nonfatal-errors.rs

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
#![feature(asm)]
1515
#![feature(trace_macros, concat_idents)]
16-
#![feature(proc_macro_path_invoc)]
1716

1817
#[derive(Default)] //~ ERROR
1918
enum OrDeriveThis {}

src/test/compile-fail/privacy/associated-item-privacy-inherent.rs

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
#![feature(decl_macro, associated_type_defaults)]
1212
#![allow(unused, private_in_public)]
13-
#![feature(proc_macro_path_invoc)]
1413

1514
mod priv_nominal {
1615
pub struct Pub;

src/test/compile-fail/privacy/associated-item-privacy-trait.rs

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
// ignore-tidy-linelength
1212

13-
#![feature(proc_macro_path_invoc)]
1413
#![feature(decl_macro, associated_type_defaults)]
1514
#![allow(unused, private_in_public)]
1615

src/test/compile-fail/privacy/associated-item-privacy-type-binding.rs

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(proc_macro_path_invoc)]
1211
#![feature(decl_macro, associated_type_defaults)]
1312
#![allow(unused, private_in_public)]
1413

src/test/compile-fail/private-inferred-type-3.rs

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
// error-pattern:type `fn(u8) -> ext::PubTupleStruct {ext::PubTupleStruct::{{constructor}}}` is priv
1919
// error-pattern:type `for<'r> fn(&'r ext::Pub<u8>) {<ext::Pub<u8>>::priv_method}` is private
2020

21-
#![feature(proc_macro_path_invoc)]
2221
#![feature(decl_macro)]
2322

2423
extern crate private_inferred_type as ext;

src/test/compile-fail/private-inferred-type.rs

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#![feature(associated_consts)]
1212
#![feature(decl_macro)]
1313
#![allow(private_in_public)]
14-
#![feature(proc_macro_path_invoc)]
1514

1615
mod m {
1716
fn priv_fn() {}

src/test/run-pass-fulldeps/macro-quote-test.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// aux-build:hello_macro.rs
1414
// ignore-stage1
1515

16-
#![feature(proc_macro, proc_macro_path_invoc, proc_macro_non_items)]
16+
#![feature(proc_macro, proc_macro_non_items)]
1717

1818
extern crate hello_macro;
1919

src/test/run-pass/hygiene/issue-47311.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// ignore-pretty pretty-printing is unhygienic
1212

13-
#![feature(decl_macro, proc_macro_path_invoc)]
13+
#![feature(decl_macro)]
1414
#![allow(unused)]
1515

1616
macro m($S:ident, $x:ident) {

src/test/run-pass/hygiene/issue-47312.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// ignore-pretty pretty-printing is unhygienic
1212

13-
#![feature(decl_macro, proc_macro_path_invoc)]
13+
#![feature(decl_macro)]
1414
#![allow(unused)]
1515

1616
mod foo {

src/test/run-pass/hygiene/legacy_interaction.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
// aux-build:legacy_interaction.rs
1414

15-
#![feature(decl_macro, proc_macro_path_invoc)]
15+
#![feature(decl_macro)]
1616
#[allow(unused)]
1717

1818
extern crate legacy_interaction;

src/test/run-pass/hygiene/lexical.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// ignore-pretty pretty-printing is unhygienic
1212

13-
#![feature(decl_macro, proc_macro_path_invoc)]
13+
#![feature(decl_macro)]
1414

1515
mod bar {
1616
mod baz {

src/test/run-pass/hygiene/wrap_unhygienic_example.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// aux-build:my_crate.rs
1414
// aux-build:unhygienic_example.rs
1515

16-
#![feature(decl_macro, proc_macro_path_invoc)]
16+
#![feature(decl_macro)]
1717

1818
extern crate unhygienic_example;
1919
extern crate my_crate; // (b)

src/test/run-pass/hygiene/xcrate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
// aux-build:xcrate.rs
1414

15-
#![feature(decl_macro, proc_macro_path_invoc)]
15+
#![feature(decl_macro)]
1616

1717
extern crate xcrate;
1818

src/test/run-pass/paths-in-macro-invocations.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// aux-build:two_macros.rs
1212

13-
#![feature(use_extern_macros, proc_macro_path_invoc)]
13+
#![feature(use_extern_macros)]
1414

1515
extern crate two_macros;
1616

src/test/ui/hygiene/fields.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// ignore-pretty pretty-printing is unhygienic
1212

13-
#![feature(decl_macro, proc_macro_path_invoc)]
13+
#![feature(decl_macro)]
1414

1515
mod foo {
1616
struct S { x: u32 }

src/test/ui/hygiene/globs.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(decl_macro, proc_macro_path_invoc)]
11+
#![feature(decl_macro)]
1212

1313
mod foo {
1414
pub fn f() {}

src/test/ui/hygiene/impl_items.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// ignore-pretty pretty-printing is unhygienic
1212

13-
#![feature(decl_macro, proc_macro_path_invoc)]
13+
#![feature(decl_macro)]
1414

1515
mod foo {
1616
struct S;

src/test/ui/hygiene/intercrate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
// error-pattern:type `fn() -> u32 {intercrate::foo::bar::f}` is private
1616

17-
#![feature(decl_macro, proc_macro_path_invoc)]
17+
#![feature(decl_macro)]
1818

1919
extern crate intercrate;
2020

src/test/ui/hygiene/no_implicit_prelude.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(decl_macro, proc_macro_path_invoc)]
11+
#![feature(decl_macro)]
1212

1313
mod foo {
1414
pub macro m() { Vec::new(); ().clone() }

src/test/ui/hygiene/privacy.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(decl_macro, proc_macro_path_invoc)]
11+
#![feature(decl_macro)]
1212

1313
mod foo {
1414
fn f() {}

src/test/ui/hygiene/trait_items.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(decl_macro, proc_macro_path_invoc)]
11+
#![feature(decl_macro)]
1212

1313
mod foo {
1414
pub trait T {

src/test/ui/imports/macro-paths.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// aux-build:two_macros.rs
1212

13-
#![feature(use_extern_macros, proc_macro_path_invoc)]
13+
#![feature(use_extern_macros)]
1414

1515
extern crate two_macros;
1616

src/test/ui/imports/shadow_builtin_macros.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// aux-build:two_macros.rs
1212

13-
#![feature(use_extern_macros, proc_macro_path_invoc)]
13+
#![feature(use_extern_macros)]
1414

1515
mod foo {
1616
extern crate two_macros;

0 commit comments

Comments
 (0)