From a0958048b6b31c3a2ac9242aac699791431955de Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Mon, 14 May 2018 03:22:52 +0300 Subject: [PATCH] Stabilize `use_extern_macros` --- src/librustc_resolve/build_reduced_graph.rs | 9 +-- src/librustc_resolve/check_unused.rs | 2 +- src/librustc_resolve/lib.rs | 58 +------------------ src/librustc_resolve/macros.rs | 48 +++------------ src/librustc_resolve/resolve_imports.rs | 30 +--------- src/libstd/lib.rs | 2 +- src/libsyntax/ext/expand.rs | 12 +--- src/libsyntax/feature_gate.rs | 18 ++---- .../proc-macro/attribute-with-error.rs | 2 - .../proc-macro/attributes-included.rs | 1 - .../proc-macro/issue-41211.rs | 1 - .../proc-macro/macro-use-attr.rs | 1 - .../proc-macro/macros-in-extern.rs | 2 - .../proc-macro/more-gates.rs | 2 - .../proc-macro/no-macro-use-attr.rs | 3 +- .../run-pass-fulldeps/proc-macro/attr-args.rs | 1 - .../run-pass-fulldeps/proc-macro/attr-cfg.rs | 2 - .../proc-macro/attr-on-trait.rs | 2 - .../proc-macro/auxiliary/hygiene_example.rs | 2 - .../proc-macro/derive-attr-cfg.rs | 2 - .../proc-macro/derive-two-attrs.rs | 2 - .../proc-macro/gen-lifetime-token.rs | 2 - .../proc-macro/issue-39889.rs | 3 - .../run-pass-fulldeps/proc-macro/lifetimes.rs | 2 - .../proc-macro/modify-ast.rs | 2 - .../run-pass-fulldeps/proc-macro/not-joint.rs | 2 - .../proc-macro/span-api-tests.rs | 2 - .../run-pass/auxiliary/issue_38715-modern.rs | 1 - .../run-pass/paths-in-macro-invocations.rs | 2 - src/test/run-pass/use-macro-self.rs | 2 - src/test/rustdoc/cross-crate-links.rs | 2 - src/test/rustdoc/inline_cross/macro-vis.rs | 2 - src/test/rustdoc/inline_cross/macros.rs | 1 - src/test/rustdoc/pub-use-extern-macros.rs | 2 - .../proc-macro/attribute-spans-preserved.rs | 2 - .../attribute-spans-preserved.stderr | 4 +- .../ui-fulldeps/proc-macro/macro-brackets.rs | 2 - .../proc-macro/macro-brackets.stderr | 2 +- .../proc-macro/macro-namespace-reserved-2.rs | 1 - .../macro-namespace-reserved-2.stderr | 18 +++--- .../proc-macro/nested-item-spans.rs | 2 - .../proc-macro/nested-item-spans.stderr | 4 +- .../duplicate-check-macro-exports.rs | 2 - .../duplicate-check-macro-exports.stderr | 2 +- src/test/ui/extern/extern-macro.rs | 2 - src/test/ui/extern/extern-macro.stderr | 2 +- .../feature-gate-tool_attributes.rs | 2 - .../feature-gate-tool_attributes.stderr | 2 +- src/test/ui/hygiene/local_inner_macros.rs | 2 - .../ui/hygiene/local_inner_macros_disabled.rs | 20 ------- .../local_inner_macros_disabled.stderr | 10 ---- .../local-modularized-tricky-fail-3.rs | 2 - .../local-modularized-tricky-fail-3.stderr | 8 +-- .../imports/local-modularized-tricky-pass.rs | 2 - src/test/ui/imports/local-modularized.rs | 2 - src/test/ui/imports/macro-paths.rs | 2 - src/test/ui/imports/macro-paths.stderr | 12 ++-- src/test/ui/imports/macros.rs | 2 - src/test/ui/imports/macros.stderr | 18 +++--- src/test/ui/imports/shadow_builtin_macros.rs | 2 - .../ui/imports/shadow_builtin_macros.stderr | 16 ++--- .../ui/macros/macro-path-prelude-fail-1.rs | 2 +- .../ui/macros/macro-path-prelude-fail-2.rs | 2 - .../macros/macro-path-prelude-fail-2.stderr | 2 +- .../ui/macros/macro-path-prelude-fail-3.rs | 2 - .../macros/macro-path-prelude-fail-3.stderr | 4 +- src/test/ui/macros/macro-path-prelude-pass.rs | 2 +- .../ui/macros/macro-reexport-removed.stderr | 2 +- src/test/ui/macros/macro-with-seps-err-msg.rs | 15 ----- .../ui/macros/macro-with-seps-err-msg.stderr | 11 ---- src/test/ui/macros/macro_undefined.rs | 2 +- src/test/ui/macros/macro_undefined.stderr | 10 +--- src/test/ui/macros/macros-nonfatal-errors.rs | 2 - .../ui/macros/macros-nonfatal-errors.stderr | 27 +++------ src/test/ui/no-link.rs | 1 - src/test/ui/no-link.stderr | 8 +-- .../ui/rust-2018/macro-use-warned-against.rs | 1 - .../rust-2018/macro-use-warned-against.stderr | 4 +- .../tool-attributes-disabled-1.rs | 15 ----- .../tool-attributes-disabled-1.stderr | 11 ---- .../tool-attributes-disabled-2.rs | 15 ----- .../tool-attributes-disabled-2.stderr | 11 ---- 82 files changed, 85 insertions(+), 436 deletions(-) delete mode 100644 src/test/ui/hygiene/local_inner_macros_disabled.rs delete mode 100644 src/test/ui/hygiene/local_inner_macros_disabled.stderr delete mode 100644 src/test/ui/macros/macro-with-seps-err-msg.rs delete mode 100644 src/test/ui/macros/macro-with-seps-err-msg.stderr delete mode 100644 src/test/ui/tool-attributes/tool-attributes-disabled-1.rs delete mode 100644 src/test/ui/tool-attributes/tool-attributes-disabled-1.stderr delete mode 100644 src/test/ui/tool-attributes/tool-attributes-disabled-2.rs delete mode 100644 src/test/ui/tool-attributes/tool-attributes-disabled-2.stderr diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index fa2af891f10..19dc35f854e 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -833,19 +833,12 @@ fn process_legacy_macro_imports(&mut self, item: &Item, module: Module<'a>, expa -> bool { let allow_shadowing = expansion == Mark::root(); let legacy_imports = self.legacy_macro_imports(&item.attrs); - let mut used = legacy_imports != LegacyMacroImports::default(); + let used = legacy_imports != LegacyMacroImports::default(); // `#[macro_use]` is only allowed at the crate root. if self.current_module.parent.is_some() && used { span_err!(self.session, item.span, E0468, "an `extern crate` loading macros must be at the crate root"); - } else if !self.use_extern_macros && !used && - self.cstore.dep_kind_untracked(module.def_id().unwrap().krate) - .macros_only() { - let msg = "proc macro crates and `#[no_link]` crates have no effect without \ - `#[macro_use]`"; - self.session.span_warn(item.span, msg); - used = true; // Avoid the normal unused extern crate warning } let (graph_root, arenas) = (self.graph_root, self.arenas); diff --git a/src/librustc_resolve/check_unused.rs b/src/librustc_resolve/check_unused.rs index e1b059d2b73..77005a83e42 100644 --- a/src/librustc_resolve/check_unused.rs +++ b/src/librustc_resolve/check_unused.rs @@ -131,7 +131,7 @@ pub fn check_crate(resolver: &mut Resolver, krate: &ast::Crate) { directive.vis.get() == ty::Visibility::Public || directive.span.is_dummy() => { if let ImportDirectiveSubclass::MacroUse = directive.subclass { - if resolver.use_extern_macros && !directive.span.is_dummy() { + if !directive.span.is_dummy() { resolver.session.buffer_lint( lint::builtin::MACRO_USE_EXTERN_CRATE, directive.id, diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 992ea12ffa2..ba9e8d685d1 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -80,7 +80,7 @@ use rustc_data_structures::sync::Lrc; use resolve_imports::{ImportDirective, ImportDirectiveSubclass, NameResolution, ImportResolver}; -use macros::{InvocationData, LegacyBinding, LegacyScope, MacroBinding}; +use macros::{InvocationData, LegacyBinding, MacroBinding}; // NB: This module needs to be declared first so diagnostics are // registered before they are used. @@ -1399,23 +1399,18 @@ pub struct Resolver<'a, 'b: 'a> { /// crate-local macro expanded `macro_export` referred to by a module-relative path macro_expanded_macro_export_errors: BTreeSet<(Span, Span)>, - gated_errors: FxHashSet, disallowed_shadowing: Vec<&'a LegacyBinding<'a>>, arenas: &'a ResolverArenas<'a>, dummy_binding: &'a NameBinding<'a>, - /// true if `#![feature(use_extern_macros)]` - use_extern_macros: bool, crate_loader: &'a mut CrateLoader<'b>, macro_names: FxHashSet, macro_prelude: FxHashMap>, pub all_macros: FxHashMap, - lexical_macro_resolutions: Vec<(Ident, &'a Cell>)>, macro_map: FxHashMap>, macro_defs: FxHashMap, local_macro_def_scopes: FxHashMap>, - macro_exports: Vec, // FIXME: Remove when `use_extern_macros` is stabilized pub whitelisted_legacy_custom_derives: Vec, pub found_unresolved_macro: bool, @@ -1657,8 +1652,6 @@ pub fn new(session: &'a Session, invocations.insert(Mark::root(), arenas.alloc_invocation_data(InvocationData::root(graph_root))); - let features = session.features_untracked(); - let mut macro_defs = FxHashMap(); macro_defs.insert(Mark::root(), root_def_id); @@ -1717,7 +1710,6 @@ pub fn new(session: &'a Session, ambiguity_errors: Vec::new(), use_injections: Vec::new(), proc_mac_errors: Vec::new(), - gated_errors: FxHashSet(), disallowed_shadowing: Vec::new(), macro_expanded_macro_export_errors: BTreeSet::new(), @@ -1729,15 +1721,11 @@ pub fn new(session: &'a Session, vis: ty::Visibility::Public, }), - use_extern_macros: features.use_extern_macros(), - crate_loader, macro_names: FxHashSet(), macro_prelude: FxHashMap(), all_macros: FxHashMap(), - lexical_macro_resolutions: Vec::new(), macro_map: FxHashMap(), - macro_exports: Vec::new(), invocations, macro_defs, local_macro_def_scopes: FxHashMap(), @@ -1770,9 +1758,7 @@ pub fn arenas() -> ResolverArenas<'a> { fn per_ns(&mut self, mut f: F) { f(self, TypeNS); f(self, ValueNS); - if self.use_extern_macros { - f(self, MacroNS); - } + f(self, MacroNS); } fn macro_def(&self, mut ctxt: SyntaxContext) -> DefId { @@ -2186,11 +2172,8 @@ fn search_label(&self, mut ident: Ident, pred: P) -> Option fn resolve_item(&mut self, item: &Item) { let name = item.ident.name; - debug!("(resolving item) resolving {}", name); - self.check_proc_macro_attrs(&item.attrs); - match item.node { ItemKind::Enum(_, ref generics) | ItemKind::Ty(_, ref generics) | @@ -2218,8 +2201,6 @@ fn resolve_item(&mut self, item: &Item) { walk_list!(this, visit_param_bound, bounds); for trait_item in trait_items { - this.check_proc_macro_attrs(&trait_item.attrs); - let type_parameters = HasTypeParameters(&trait_item.generics, TraitOrImplItemRibKind); this.with_type_parameter_rib(type_parameters, |this| { @@ -2498,7 +2479,6 @@ fn resolve_implementation(&mut self, this.visit_generics(generics); this.with_current_self_type(self_type, |this| { for impl_item in impl_items { - this.check_proc_macro_attrs(&impl_item.attrs); this.resolve_visibility(&impl_item.vis); // We also need a new scope for the impl item type parameters. @@ -4495,10 +4475,6 @@ fn report_with_use_injections(&mut self, krate: &Crate) { } fn report_shadowing_errors(&mut self) { - for (ident, scope) in replace(&mut self.lexical_macro_resolutions, Vec::new()) { - self.resolve_legacy_scope(scope, ident, true); - } - let mut reported_errors = FxHashSet(); for binding in replace(&mut self.disallowed_shadowing, Vec::new()) { if self.resolve_legacy_scope(&binding.parent, binding.ident, false).is_some() && @@ -4619,36 +4595,6 @@ fn report_conflict<'b>(&mut self, err.emit(); self.name_already_seen.insert(name, span); } - - fn check_proc_macro_attrs(&mut self, attrs: &[ast::Attribute]) { - if self.use_extern_macros { return; } - - for attr in attrs { - if attr.path.segments.len() > 1 { - continue - } - let ident = attr.path.segments[0].ident; - let result = self.resolve_lexical_macro_path_segment(ident, - MacroNS, - false, - false, - true, - attr.path.span); - if let Ok(binding) = result { - if let SyntaxExtension::AttrProcMacro(..) = *binding.binding().get_macro(self) { - attr::mark_known(attr); - - let msg = "attribute procedural macros are experimental"; - let feature = "use_extern_macros"; - - feature_err(&self.session.parse_sess, feature, - attr.span, GateIssue::Language, msg) - .span_label(binding.span(), "procedural macro imported here") - .emit(); - } - } - } - } } fn is_self_type(path: &[Ident], namespace: Namespace) -> bool { diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs index 44d0c888c5d..8f2e76d8866 100644 --- a/src/librustc_resolve/macros.rs +++ b/src/librustc_resolve/macros.rs @@ -16,7 +16,7 @@ use resolve_imports::ImportResolver; use rustc::hir::def_id::{DefId, BUILTIN_MACROS_CRATE, CRATE_DEF_INDEX, DefIndex, DefIndexAddressSpace}; -use rustc::hir::def::{Def, Export, NonMacroAttrKind}; +use rustc::hir::def::{Def, NonMacroAttrKind}; use rustc::hir::map::{self, DefCollector}; use rustc::{ty, lint}; use rustc::middle::cstore::CrateStore; @@ -524,21 +524,13 @@ pub fn resolve_macro_to_def_inner(&mut self, scope: Mark, path: &ast::Path, self.current_module = if module.is_trait() { module.parent.unwrap() } else { module }; // Possibly apply the macro helper hack - if self.use_extern_macros && kind == MacroKind::Bang && path.len() == 1 && + if kind == MacroKind::Bang && path.len() == 1 && path[0].span.ctxt().outer().expn_info().map_or(false, |info| info.local_inner_macros) { let root = Ident::new(keywords::DollarCrate.name(), path[0].span); path.insert(0, root); } if path.len() > 1 { - if !self.use_extern_macros && self.gated_errors.insert(span) { - let msg = "non-ident macro paths are experimental"; - let feature = "use_extern_macros"; - emit_feature_err(&self.session.parse_sess, feature, span, GateIssue::Language, msg); - self.found_unresolved_macro = true; - return Err(Determinacy::Determined); - } - let res = self.resolve_path(None, &path, Some(MacroNS), false, span, CrateLint::No); let def = match res { PathResult::NonModule(path_res) => match path_res.base_def() { @@ -843,7 +835,6 @@ pub fn resolve_legacy_scope(&mut self, record_used: bool) -> Option> { let ident = ident.modern(); - let mut possible_time_travel = None; let mut relative_depth: u32 = 0; let mut binding = None; loop { @@ -853,9 +844,6 @@ pub fn resolve_legacy_scope(&mut self, match invocation.expansion.get() { LegacyScope::Invocation(_) => scope.set(invocation.legacy_scope.get()), LegacyScope::Empty => { - if possible_time_travel.is_none() { - possible_time_travel = Some(scope); - } scope = &invocation.legacy_scope; } _ => { @@ -870,7 +858,7 @@ pub fn resolve_legacy_scope(&mut self, } LegacyScope::Binding(potential_binding) => { if potential_binding.ident == ident { - if (!self.use_extern_macros || record_used) && relative_depth > 0 { + if record_used && relative_depth > 0 { self.disallowed_shadowing.push(potential_binding); } binding = Some(potential_binding); @@ -884,21 +872,11 @@ pub fn resolve_legacy_scope(&mut self, let binding = if let Some(binding) = binding { MacroBinding::Legacy(binding) } else if let Some(binding) = self.macro_prelude.get(&ident.name).cloned() { - if !self.use_extern_macros { - self.record_use(ident, MacroNS, binding, DUMMY_SP); - } MacroBinding::Global(binding) } else { return None; }; - if !self.use_extern_macros { - if let Some(scope) = possible_time_travel { - // Check for disallowed shadowing later - self.lexical_macro_resolutions.push((ident, scope)); - } - } - Some(binding) } @@ -1008,9 +986,6 @@ fn suggest_macro_name(&mut self, name: &str, kind: MacroKind, find_best_match_for_name(names, name, None) // Then check modules. }).or_else(|| { - if !self.use_extern_macros { - return None; - } let is_macro = |def| { if let Def::Macro(_, def_kind) = def { def_kind == kind @@ -1086,19 +1061,10 @@ pub fn define_macro(&mut self, let def = Def::Macro(def_id, MacroKind::Bang); self.all_macros.insert(ident.name, def); if attr::contains_name(&item.attrs, "macro_export") { - if self.use_extern_macros { - let module = self.graph_root; - let vis = ty::Visibility::Public; - self.define(module, ident, MacroNS, - (def, vis, item.span, expansion, IsMacroExport)); - } else { - self.macro_exports.push(Export { - ident: ident.modern(), - def: def, - vis: ty::Visibility::Public, - span: item.span, - }); - } + let module = self.graph_root; + let vis = ty::Visibility::Public; + self.define(module, ident, MacroNS, + (def, vis, item.span, expansion, IsMacroExport)); } else { self.unused_macros.insert(def_id); } diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index c70f52e91db..e16039bc239 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -24,7 +24,7 @@ use rustc::hir::def_id::{CRATE_DEF_INDEX, DefId}; use rustc::hir::def::*; use rustc::session::DiagnosticMessageId; -use rustc::util::nodemap::{FxHashMap, FxHashSet}; +use rustc::util::nodemap::FxHashSet; use syntax::ast::{Ident, Name, NodeId, CRATE_NODE_ID}; use syntax::ext::base::Determinacy::{self, Determined, Undetermined}; @@ -1142,24 +1142,6 @@ fn finalize_resolutions_in(&mut self, module: Module<'b>) { *module.globs.borrow_mut() = Vec::new(); let mut reexports = Vec::new(); - let mut exported_macro_names = FxHashMap(); - if ptr::eq(module, self.graph_root) { - let macro_exports = mem::replace(&mut self.macro_exports, Vec::new()); - for export in macro_exports.into_iter().rev() { - if let Some(later_span) = exported_macro_names.insert(export.ident.modern(), - export.span) { - self.session.buffer_lint_with_diagnostic( - DUPLICATE_MACRO_EXPORTS, - CRATE_NODE_ID, - later_span, - &format!("a macro named `{}` has already been exported", export.ident), - BuiltinLintDiagnostics::DuplicatedMacroExports( - export.ident, export.span, later_span)); - } else { - reexports.push(export); - } - } - } for (&(ident, ns), resolution) in module.resolutions.borrow().iter() { let resolution = &mut *resolution.borrow_mut(); @@ -1174,16 +1156,6 @@ fn finalize_resolutions_in(&mut self, module: Module<'b>) { if !def.def_id().is_local() { self.cstore.export_macros_untracked(def.def_id().krate); } - if let Def::Macro(..) = def { - if let Some(&span) = exported_macro_names.get(&ident.modern()) { - let msg = - format!("a macro named `{}` has already been exported", ident); - self.session.struct_span_err(span, &msg) - .span_label(span, format!("`{}` already exported", ident)) - .span_note(binding.span, "previous macro export here") - .emit(); - } - } reexports.push(Export { ident: ident.modern(), def: def, diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 60ad330bb9b..b0069f826ee 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -302,7 +302,7 @@ #![feature(unboxed_closures)] #![feature(untagged_unions)] #![feature(unwind_attributes)] -#![feature(use_extern_macros)] +#![cfg_attr(stage0, feature(use_extern_macros))] #![feature(doc_cfg)] #![feature(doc_masked)] #![feature(doc_spotlight)] diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index f7ea781e021..90b46268045 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1124,9 +1124,7 @@ fn classify_item(&mut self, mut item: T) -> (Option, Vec(&mut self, mut item: T) -> (Option bool { - self.features.map_or(false, |features| features.use_extern_macros()) - } } // A Marker adds the given mark to the syntax context. diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 395e5c98652..6fec1f3b1d5 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -81,17 +81,6 @@ pub fn walk_feature_fields(&self, mut f: F) { $(f(stringify!($feature), self.$feature);)+ } - - pub fn use_extern_macros(&self) -> bool { - // A number of "advanced" macro features enable - // macro modularization (`use_extern_macros`) implicitly. - self.use_extern_macros || self.decl_macro || - self.tool_attributes || self.custom_attribute || - self.macros_in_extern || self.proc_macro_path_invoc || - self.proc_macro_mod || self.proc_macro_expr || - self.proc_macro_non_items || self.proc_macro_gen || - self.stmt_expr_attributes || self.unrestricted_attribute_tokens - } } }; @@ -308,8 +297,6 @@ pub fn use_extern_macros(&self) -> bool { // Allows #[link(..., cfg(..))] (active, link_cfg, "1.14.0", Some(37406), None), - (active, use_extern_macros, "1.15.0", Some(35896), Some(Edition::Edition2018)), - // `extern "ptx-*" fn()` (active, abi_ptx, "1.15.0", Some(38788), None), @@ -535,7 +522,7 @@ pub fn use_extern_macros(&self) -> bool { (removed, advanced_slice_patterns, "1.0.0", Some(23121), None, Some("merged into `#![feature(slice_patterns)]`")), (removed, macro_reexport, "1.0.0", Some(29638), None, - Some("subsumed by `#![feature(use_extern_macros)]` and `pub use`")), + Some("subsumed by `pub use`")), ); declare_features! ( @@ -652,6 +639,9 @@ pub fn use_extern_macros(&self) -> bool { (accepted, repr_transparent, "1.28.0", Some(43036), None), // Defining procedural macros in `proc-macro` crates (accepted, proc_macro, "1.29.0", Some(38356), None), + // Allows importing and reexporting macros with `use`, + // enables macro modularization in general. + (accepted, use_extern_macros, "1.30.0", Some(35896), None), ); // If you change this, please modify src/doc/unstable-book as well. You must diff --git a/src/test/compile-fail-fulldeps/proc-macro/attribute-with-error.rs b/src/test/compile-fail-fulldeps/proc-macro/attribute-with-error.rs index 9e7bbb2b8f7..3cb565c1ede 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/attribute-with-error.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/attribute-with-error.rs @@ -11,8 +11,6 @@ // aux-build:attribute-with-error.rs // ignore-stage1 -#![feature(use_extern_macros)] - extern crate attribute_with_error; use attribute_with_error::foo; diff --git a/src/test/compile-fail-fulldeps/proc-macro/attributes-included.rs b/src/test/compile-fail-fulldeps/proc-macro/attributes-included.rs index ea66d3c0ef6..e941367b08d 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/attributes-included.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/attributes-included.rs @@ -12,7 +12,6 @@ // ignore-stage1 // compile-pass -#![feature(use_extern_macros)] #![warn(unused)] extern crate attributes_included; diff --git a/src/test/compile-fail-fulldeps/proc-macro/issue-41211.rs b/src/test/compile-fail-fulldeps/proc-macro/issue-41211.rs index f71d4b86f1e..52d7afb26ad 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/issue-41211.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/issue-41211.rs @@ -13,7 +13,6 @@ // FIXME: https://github.com/rust-lang/rust/issues/41430 // This is a temporary regression test for the ICE reported in #41211 -#![feature(use_extern_macros)] #![emit_unchanged] //~^ ERROR attribute `emit_unchanged` is currently unknown to the compiler extern crate issue_41211; diff --git a/src/test/compile-fail-fulldeps/proc-macro/macro-use-attr.rs b/src/test/compile-fail-fulldeps/proc-macro/macro-use-attr.rs index bb7f341f967..0fcb9efc1c9 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/macro-use-attr.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/macro-use-attr.rs @@ -9,7 +9,6 @@ // except according to those terms. // aux-build:attr_proc_macro.rs -#![feature(use_extern_macros)] #[macro_use] extern crate attr_proc_macro; diff --git a/src/test/compile-fail-fulldeps/proc-macro/macros-in-extern.rs b/src/test/compile-fail-fulldeps/proc-macro/macros-in-extern.rs index e418ecc114c..f280e74fc90 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/macros-in-extern.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/macros-in-extern.rs @@ -12,8 +12,6 @@ // ignore-stage1 // ignore-wasm32 -#![feature(use_extern_macros)] - extern crate test_macros; use test_macros::{nop_attr, no_output, emit_input}; diff --git a/src/test/compile-fail-fulldeps/proc-macro/more-gates.rs b/src/test/compile-fail-fulldeps/proc-macro/more-gates.rs index ff9f1705c5b..b7ab978b8ed 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/more-gates.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/more-gates.rs @@ -10,8 +10,6 @@ // aux-build:more-gates.rs -#![feature(use_extern_macros)] - extern crate more_gates as foo; use foo::*; diff --git a/src/test/compile-fail-fulldeps/proc-macro/no-macro-use-attr.rs b/src/test/compile-fail-fulldeps/proc-macro/no-macro-use-attr.rs index e47a4aefb5e..ab05ca28386 100644 --- a/src/test/compile-fail-fulldeps/proc-macro/no-macro-use-attr.rs +++ b/src/test/compile-fail-fulldeps/proc-macro/no-macro-use-attr.rs @@ -11,9 +11,10 @@ // aux-build:derive-a.rs #![feature(rustc_attrs)] +#![warn(unused_extern_crates)] extern crate derive_a; -//~^ WARN proc macro crates and `#[no_link]` crates have no effect without `#[macro_use]` +//~^ WARN unused extern crate #[rustc_error] fn main() {} //~ ERROR compilation successful diff --git a/src/test/run-pass-fulldeps/proc-macro/attr-args.rs b/src/test/run-pass-fulldeps/proc-macro/attr-args.rs index 26522396d6b..effb3ad5189 100644 --- a/src/test/run-pass-fulldeps/proc-macro/attr-args.rs +++ b/src/test/run-pass-fulldeps/proc-macro/attr-args.rs @@ -12,7 +12,6 @@ // ignore-stage1 #![allow(warnings)] -#![feature(use_extern_macros)] extern crate attr_args; use attr_args::{attr_with_args, identity}; diff --git a/src/test/run-pass-fulldeps/proc-macro/attr-cfg.rs b/src/test/run-pass-fulldeps/proc-macro/attr-cfg.rs index 4ee30b8252b..1a9d9b9ee62 100644 --- a/src/test/run-pass-fulldeps/proc-macro/attr-cfg.rs +++ b/src/test/run-pass-fulldeps/proc-macro/attr-cfg.rs @@ -12,8 +12,6 @@ // ignore-stage1 // revisions: foo bar -#![feature(use_extern_macros)] - extern crate attr_cfg; use attr_cfg::attr_cfg; diff --git a/src/test/run-pass-fulldeps/proc-macro/attr-on-trait.rs b/src/test/run-pass-fulldeps/proc-macro/attr-on-trait.rs index 256096f118a..698a0eca173 100644 --- a/src/test/run-pass-fulldeps/proc-macro/attr-on-trait.rs +++ b/src/test/run-pass-fulldeps/proc-macro/attr-on-trait.rs @@ -11,8 +11,6 @@ // aux-build:attr-on-trait.rs // ignore-stage1 -#![feature(use_extern_macros)] - extern crate attr_on_trait; use attr_on_trait::foo; diff --git a/src/test/run-pass-fulldeps/proc-macro/auxiliary/hygiene_example.rs b/src/test/run-pass-fulldeps/proc-macro/auxiliary/hygiene_example.rs index bac6524847a..ca88482064b 100644 --- a/src/test/run-pass-fulldeps/proc-macro/auxiliary/hygiene_example.rs +++ b/src/test/run-pass-fulldeps/proc-macro/auxiliary/hygiene_example.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros)] - extern crate hygiene_example_codegen; pub use hygiene_example_codegen::hello; diff --git a/src/test/run-pass-fulldeps/proc-macro/derive-attr-cfg.rs b/src/test/run-pass-fulldeps/proc-macro/derive-attr-cfg.rs index 6ef23bc772b..93023f8f8ed 100644 --- a/src/test/run-pass-fulldeps/proc-macro/derive-attr-cfg.rs +++ b/src/test/run-pass-fulldeps/proc-macro/derive-attr-cfg.rs @@ -11,8 +11,6 @@ // aux-build:derive-attr-cfg.rs // ignore-stage1 -#![feature(use_extern_macros)] - extern crate derive_attr_cfg; use derive_attr_cfg::Foo; diff --git a/src/test/run-pass-fulldeps/proc-macro/derive-two-attrs.rs b/src/test/run-pass-fulldeps/proc-macro/derive-two-attrs.rs index 6a0a3b3a941..0df0288216e 100644 --- a/src/test/run-pass-fulldeps/proc-macro/derive-two-attrs.rs +++ b/src/test/run-pass-fulldeps/proc-macro/derive-two-attrs.rs @@ -10,8 +10,6 @@ // aux-build:derive-two-attrs.rs -#![feature(use_extern_macros)] - extern crate derive_two_attrs as foo; use foo::A; diff --git a/src/test/run-pass-fulldeps/proc-macro/gen-lifetime-token.rs b/src/test/run-pass-fulldeps/proc-macro/gen-lifetime-token.rs index c8a9bea3631..ce2fed86e46 100644 --- a/src/test/run-pass-fulldeps/proc-macro/gen-lifetime-token.rs +++ b/src/test/run-pass-fulldeps/proc-macro/gen-lifetime-token.rs @@ -10,8 +10,6 @@ // aux-build:gen-lifetime-token.rs -#![feature(use_extern_macros)] - extern crate gen_lifetime_token as bar; bar::bar!(); diff --git a/src/test/run-pass-fulldeps/proc-macro/issue-39889.rs b/src/test/run-pass-fulldeps/proc-macro/issue-39889.rs index 5b7d8c2b05b..3fc7446815e 100644 --- a/src/test/run-pass-fulldeps/proc-macro/issue-39889.rs +++ b/src/test/run-pass-fulldeps/proc-macro/issue-39889.rs @@ -11,9 +11,6 @@ // aux-build:issue-39889.rs // ignore-stage1 -#![feature(use_extern_macros)] -#![allow(unused)] - extern crate issue_39889; use issue_39889::Issue39889; diff --git a/src/test/run-pass-fulldeps/proc-macro/lifetimes.rs b/src/test/run-pass-fulldeps/proc-macro/lifetimes.rs index cfe0ce19a46..c73441e30e6 100644 --- a/src/test/run-pass-fulldeps/proc-macro/lifetimes.rs +++ b/src/test/run-pass-fulldeps/proc-macro/lifetimes.rs @@ -11,8 +11,6 @@ // aux-build:lifetimes.rs // ignore-stage1 -#![feature(use_extern_macros)] - extern crate lifetimes; use lifetimes::*; diff --git a/src/test/run-pass-fulldeps/proc-macro/modify-ast.rs b/src/test/run-pass-fulldeps/proc-macro/modify-ast.rs index 0b584fdd44d..d6f7cc4699a 100644 --- a/src/test/run-pass-fulldeps/proc-macro/modify-ast.rs +++ b/src/test/run-pass-fulldeps/proc-macro/modify-ast.rs @@ -10,8 +10,6 @@ // aux-build:modify-ast.rs -#![feature(use_extern_macros)] - extern crate modify_ast; use modify_ast::*; diff --git a/src/test/run-pass-fulldeps/proc-macro/not-joint.rs b/src/test/run-pass-fulldeps/proc-macro/not-joint.rs index 8a59d57a938..7a53348f963 100644 --- a/src/test/run-pass-fulldeps/proc-macro/not-joint.rs +++ b/src/test/run-pass-fulldeps/proc-macro/not-joint.rs @@ -10,8 +10,6 @@ // aux-build:not-joint.rs -#![feature(use_extern_macros)] - extern crate not_joint as bar; use bar::{tokens, nothing}; diff --git a/src/test/run-pass-fulldeps/proc-macro/span-api-tests.rs b/src/test/run-pass-fulldeps/proc-macro/span-api-tests.rs index 735e088b82a..415cada265e 100644 --- a/src/test/run-pass-fulldeps/proc-macro/span-api-tests.rs +++ b/src/test/run-pass-fulldeps/proc-macro/span-api-tests.rs @@ -13,8 +13,6 @@ // ignore-pretty -#![feature(use_extern_macros)] - #[macro_use] extern crate span_test_macros; diff --git a/src/test/run-pass/auxiliary/issue_38715-modern.rs b/src/test/run-pass/auxiliary/issue_38715-modern.rs index 68aced7f979..7f14b2c4659 100644 --- a/src/test/run-pass/auxiliary/issue_38715-modern.rs +++ b/src/test/run-pass/auxiliary/issue_38715-modern.rs @@ -8,7 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros)] #![allow(duplicate_macro_exports)] #[macro_export] diff --git a/src/test/run-pass/paths-in-macro-invocations.rs b/src/test/run-pass/paths-in-macro-invocations.rs index 69f8906778a..e860f7021e5 100644 --- a/src/test/run-pass/paths-in-macro-invocations.rs +++ b/src/test/run-pass/paths-in-macro-invocations.rs @@ -10,8 +10,6 @@ // aux-build:two_macros.rs -#![feature(use_extern_macros)] - extern crate two_macros; ::two_macros::macro_one!(); diff --git a/src/test/run-pass/use-macro-self.rs b/src/test/run-pass/use-macro-self.rs index 9162ad32681..66ab00da7f4 100644 --- a/src/test/run-pass/use-macro-self.rs +++ b/src/test/run-pass/use-macro-self.rs @@ -10,8 +10,6 @@ // aux-build:use-macro-self.rs -#![feature(use_extern_macros)] - #[macro_use] extern crate use_macro_self; diff --git a/src/test/rustdoc/cross-crate-links.rs b/src/test/rustdoc/cross-crate-links.rs index 15a774dc935..7ccfb3d9da6 100644 --- a/src/test/rustdoc/cross-crate-links.rs +++ b/src/test/rustdoc/cross-crate-links.rs @@ -11,8 +11,6 @@ // aux-build:all-item-types.rs // build-aux-docs -#![feature(use_extern_macros)] - #![crate_name = "foo"] #[macro_use] diff --git a/src/test/rustdoc/inline_cross/macro-vis.rs b/src/test/rustdoc/inline_cross/macro-vis.rs index 6de13338dd3..5467a210bfd 100644 --- a/src/test/rustdoc/inline_cross/macro-vis.rs +++ b/src/test/rustdoc/inline_cross/macro-vis.rs @@ -12,8 +12,6 @@ // build-aux-docs // ignore-cross-compile -#![feature(use_extern_macros)] - #[macro_use] extern crate qwop; // @has macro_vis/macro.some_macro.html diff --git a/src/test/rustdoc/inline_cross/macros.rs b/src/test/rustdoc/inline_cross/macros.rs index 8d2f7d15d7d..474a1da1875 100644 --- a/src/test/rustdoc/inline_cross/macros.rs +++ b/src/test/rustdoc/inline_cross/macros.rs @@ -12,7 +12,6 @@ // build-aux-docs #![feature(macro_test)] -#![feature(use_extern_macros)] #![crate_name = "foo"] diff --git a/src/test/rustdoc/pub-use-extern-macros.rs b/src/test/rustdoc/pub-use-extern-macros.rs index 13957fd6a70..48fb9bfd207 100644 --- a/src/test/rustdoc/pub-use-extern-macros.rs +++ b/src/test/rustdoc/pub-use-extern-macros.rs @@ -10,8 +10,6 @@ // aux-build:pub-use-extern-macros.rs -#![feature(use_extern_macros)] - extern crate macros; // @has pub_use_extern_macros/macro.bar.html diff --git a/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.rs b/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.rs index 18ca34b117d..af47dad9e0b 100644 --- a/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.rs +++ b/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.rs @@ -10,8 +10,6 @@ // aux-build:attribute-spans-preserved.rs -#![feature(use_extern_macros)] - extern crate attribute_spans_preserved as foo; use foo::foo; diff --git a/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.stderr b/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.stderr index a6cbf79209e..329e5bea61c 100644 --- a/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.stderr +++ b/src/test/ui-fulldeps/proc-macro/attribute-spans-preserved.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/attribute-spans-preserved.rs:19:23 + --> $DIR/attribute-spans-preserved.rs:17:23 | LL | #[ foo ( let y: u32 = "z"; ) ] //~ ERROR: mismatched types | ^^^ expected u32, found reference @@ -8,7 +8,7 @@ LL | #[ foo ( let y: u32 = "z"; ) ] //~ ERROR: mismatched types found type `&'static str` error[E0308]: mismatched types - --> $DIR/attribute-spans-preserved.rs:20:23 + --> $DIR/attribute-spans-preserved.rs:18:23 | LL | #[ bar { let x: u32 = "y"; } ] //~ ERROR: mismatched types | ^^^ expected u32, found reference diff --git a/src/test/ui-fulldeps/proc-macro/macro-brackets.rs b/src/test/ui-fulldeps/proc-macro/macro-brackets.rs index 1c16faa9986..b29f2775201 100644 --- a/src/test/ui-fulldeps/proc-macro/macro-brackets.rs +++ b/src/test/ui-fulldeps/proc-macro/macro-brackets.rs @@ -10,8 +10,6 @@ // aux-build:macro-brackets.rs -#![feature(use_extern_macros)] - extern crate macro_brackets as bar; use bar::doit; diff --git a/src/test/ui-fulldeps/proc-macro/macro-brackets.stderr b/src/test/ui-fulldeps/proc-macro/macro-brackets.stderr index 1f31a034913..7c263d38df9 100644 --- a/src/test/ui-fulldeps/proc-macro/macro-brackets.stderr +++ b/src/test/ui-fulldeps/proc-macro/macro-brackets.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/macro-brackets.rs:23:21 + --> $DIR/macro-brackets.rs:21:21 | LL | id![static X: u32 = 'a';]; //~ ERROR: mismatched types | ^^^ expected u32, found char diff --git a/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.rs b/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.rs index 9cfd486606a..fa05ad2fc60 100644 --- a/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.rs +++ b/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.rs @@ -10,7 +10,6 @@ // no-prefer-dynamic -#![feature(use_extern_macros)] #![crate_type = "proc-macro"] extern crate proc_macro; diff --git a/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.stderr b/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.stderr index 58a7f974905..342d7ddb36c 100644 --- a/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.stderr +++ b/src/test/ui-fulldeps/proc-macro/macro-namespace-reserved-2.stderr @@ -1,53 +1,53 @@ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:35:5 + --> $DIR/macro-namespace-reserved-2.rs:34:5 | LL | my_macro!(); //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:38:5 + --> $DIR/macro-namespace-reserved-2.rs:37:5 | LL | my_macro_attr!(); //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:41:5 + --> $DIR/macro-namespace-reserved-2.rs:40:5 | LL | MyTrait!(); //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:44:1 + --> $DIR/macro-namespace-reserved-2.rs:43:1 | LL | #[my_macro] //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:46:1 + --> $DIR/macro-namespace-reserved-2.rs:45:1 | LL | #[my_macro_attr] //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:48:1 + --> $DIR/macro-namespace-reserved-2.rs:47:1 | LL | #[MyTrait] //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:51:10 + --> $DIR/macro-namespace-reserved-2.rs:50:10 | LL | #[derive(my_macro)] //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:53:10 + --> $DIR/macro-namespace-reserved-2.rs:52:10 | LL | #[derive(my_macro_attr)] //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^^^^^^^ error: can't use a procedural macro from the same crate that defines it - --> $DIR/macro-namespace-reserved-2.rs:55:10 + --> $DIR/macro-namespace-reserved-2.rs:54:10 | LL | #[derive(MyTrait)] //~ ERROR can't use a procedural macro from the same crate that defines it | ^^^^^^^ diff --git a/src/test/ui-fulldeps/proc-macro/nested-item-spans.rs b/src/test/ui-fulldeps/proc-macro/nested-item-spans.rs index bacab345351..8f059d6344d 100644 --- a/src/test/ui-fulldeps/proc-macro/nested-item-spans.rs +++ b/src/test/ui-fulldeps/proc-macro/nested-item-spans.rs @@ -10,8 +10,6 @@ // aux-build:nested-item-spans.rs -#![feature(use_extern_macros)] - extern crate nested_item_spans; use nested_item_spans::foo; diff --git a/src/test/ui-fulldeps/proc-macro/nested-item-spans.stderr b/src/test/ui-fulldeps/proc-macro/nested-item-spans.stderr index c02cc2520f8..75140747e8c 100644 --- a/src/test/ui-fulldeps/proc-macro/nested-item-spans.stderr +++ b/src/test/ui-fulldeps/proc-macro/nested-item-spans.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/nested-item-spans.rs:22:22 + --> $DIR/nested-item-spans.rs:20:22 | LL | let x: u32 = "x"; //~ ERROR: mismatched types | ^^^ expected u32, found reference @@ -8,7 +8,7 @@ LL | let x: u32 = "x"; //~ ERROR: mismatched types found type `&'static str` error[E0308]: mismatched types - --> $DIR/nested-item-spans.rs:31:22 + --> $DIR/nested-item-spans.rs:29:22 | LL | let x: u32 = "x"; //~ ERROR: mismatched types | ^^^ expected u32, found reference diff --git a/src/test/ui/duplicate/duplicate-check-macro-exports.rs b/src/test/ui/duplicate/duplicate-check-macro-exports.rs index d8159bff567..42b2b1d650f 100644 --- a/src/test/ui/duplicate/duplicate-check-macro-exports.rs +++ b/src/test/ui/duplicate/duplicate-check-macro-exports.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros)] - pub use std::panic; #[macro_export] diff --git a/src/test/ui/duplicate/duplicate-check-macro-exports.stderr b/src/test/ui/duplicate/duplicate-check-macro-exports.stderr index 651e984b274..e2119efbd3d 100644 --- a/src/test/ui/duplicate/duplicate-check-macro-exports.stderr +++ b/src/test/ui/duplicate/duplicate-check-macro-exports.stderr @@ -1,5 +1,5 @@ error[E0255]: the name `panic` is defined multiple times - --> $DIR/duplicate-check-macro-exports.rs:16:1 + --> $DIR/duplicate-check-macro-exports.rs:14:1 | LL | pub use std::panic; | ---------- previous import of the macro `panic` here diff --git a/src/test/ui/extern/extern-macro.rs b/src/test/ui/extern/extern-macro.rs index 4267103ab9a..4b1bf7d8f79 100644 --- a/src/test/ui/extern/extern-macro.rs +++ b/src/test/ui/extern/extern-macro.rs @@ -10,8 +10,6 @@ // #41719 -#![feature(use_extern_macros)] - fn main() { enum Foo {} let _ = Foo::bar!(); //~ ERROR fail to resolve non-ident macro path diff --git a/src/test/ui/extern/extern-macro.stderr b/src/test/ui/extern/extern-macro.stderr index 8918ac3143b..b5515bfcc64 100644 --- a/src/test/ui/extern/extern-macro.stderr +++ b/src/test/ui/extern/extern-macro.stderr @@ -1,5 +1,5 @@ error: fail to resolve non-ident macro path - --> $DIR/extern-macro.rs:17:13 + --> $DIR/extern-macro.rs:15:13 | LL | let _ = Foo::bar!(); //~ ERROR fail to resolve non-ident macro path | ^^^^^^^^ diff --git a/src/test/ui/feature-gates/feature-gate-tool_attributes.rs b/src/test/ui/feature-gates/feature-gate-tool_attributes.rs index 47c623574ec..5aa1670b828 100644 --- a/src/test/ui/feature-gates/feature-gate-tool_attributes.rs +++ b/src/test/ui/feature-gates/feature-gate-tool_attributes.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros)] - fn main() { #[rustfmt::skip] //~ ERROR tool attributes are unstable let x = 3 diff --git a/src/test/ui/feature-gates/feature-gate-tool_attributes.stderr b/src/test/ui/feature-gates/feature-gate-tool_attributes.stderr index ebc266e004e..ca9542dcc95 100644 --- a/src/test/ui/feature-gates/feature-gate-tool_attributes.stderr +++ b/src/test/ui/feature-gates/feature-gate-tool_attributes.stderr @@ -1,5 +1,5 @@ error[E0658]: tool attributes are unstable (see issue #44690) - --> $DIR/feature-gate-tool_attributes.rs:14:5 + --> $DIR/feature-gate-tool_attributes.rs:12:5 | LL | #[rustfmt::skip] //~ ERROR tool attributes are unstable | ^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/hygiene/local_inner_macros.rs b/src/test/ui/hygiene/local_inner_macros.rs index 787e2df3ec2..92e10c190aa 100644 --- a/src/test/ui/hygiene/local_inner_macros.rs +++ b/src/test/ui/hygiene/local_inner_macros.rs @@ -11,8 +11,6 @@ // compile-pass // aux-build:local_inner_macros.rs -#![feature(use_extern_macros)] - extern crate local_inner_macros; use local_inner_macros::{public_macro, public_macro_dynamic}; diff --git a/src/test/ui/hygiene/local_inner_macros_disabled.rs b/src/test/ui/hygiene/local_inner_macros_disabled.rs deleted file mode 100644 index 0a4bdb74807..00000000000 --- a/src/test/ui/hygiene/local_inner_macros_disabled.rs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2018 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// `local_inner_macros` has no effect if `feature(use_extern_macros)` is not enabled - -// aux-build:local_inner_macros.rs - -#[macro_use(public_macro)] -extern crate local_inner_macros; - -public_macro!(); //~ ERROR cannot find macro `helper2!` in this scope - -fn main() {} diff --git a/src/test/ui/hygiene/local_inner_macros_disabled.stderr b/src/test/ui/hygiene/local_inner_macros_disabled.stderr deleted file mode 100644 index 3dcd03b6f42..00000000000 --- a/src/test/ui/hygiene/local_inner_macros_disabled.stderr +++ /dev/null @@ -1,10 +0,0 @@ -error: cannot find macro `helper2!` in this scope - --> $DIR/local_inner_macros_disabled.rs:18:1 - | -LL | public_macro!(); //~ ERROR cannot find macro `helper2!` in this scope - | ^^^^^^^^^^^^^^^^ - | - = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) - -error: aborting due to previous error - diff --git a/src/test/ui/imports/local-modularized-tricky-fail-3.rs b/src/test/ui/imports/local-modularized-tricky-fail-3.rs index ab1f312e161..6691d98c2b7 100644 --- a/src/test/ui/imports/local-modularized-tricky-fail-3.rs +++ b/src/test/ui/imports/local-modularized-tricky-fail-3.rs @@ -10,8 +10,6 @@ // Crate-local macro expanded `macro_export` macros cannot be accessed with module-relative paths. -#![feature(use_extern_macros)] - macro_rules! define_exported { () => { #[macro_export] macro_rules! exported { diff --git a/src/test/ui/imports/local-modularized-tricky-fail-3.stderr b/src/test/ui/imports/local-modularized-tricky-fail-3.stderr index 6da52842d83..34c50e04288 100644 --- a/src/test/ui/imports/local-modularized-tricky-fail-3.stderr +++ b/src/test/ui/imports/local-modularized-tricky-fail-3.stderr @@ -1,11 +1,11 @@ error: macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths - --> $DIR/local-modularized-tricky-fail-3.rs:25:9 + --> $DIR/local-modularized-tricky-fail-3.rs:23:9 | LL | use exported; | ^^^^^^^^ | note: the macro is defined here - --> $DIR/local-modularized-tricky-fail-3.rs:17:5 + --> $DIR/local-modularized-tricky-fail-3.rs:15:5 | LL | / macro_rules! exported { LL | | () => () @@ -16,13 +16,13 @@ LL | define_exported!(); | ------------------- in this macro invocation error: macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths - --> $DIR/local-modularized-tricky-fail-3.rs:30:5 + --> $DIR/local-modularized-tricky-fail-3.rs:28:5 | LL | ::exported!(); | ^^^^^^^^^^ | note: the macro is defined here - --> $DIR/local-modularized-tricky-fail-3.rs:17:5 + --> $DIR/local-modularized-tricky-fail-3.rs:15:5 | LL | / macro_rules! exported { LL | | () => () diff --git a/src/test/ui/imports/local-modularized-tricky-pass.rs b/src/test/ui/imports/local-modularized-tricky-pass.rs index 04df357e106..9392473eace 100644 --- a/src/test/ui/imports/local-modularized-tricky-pass.rs +++ b/src/test/ui/imports/local-modularized-tricky-pass.rs @@ -10,8 +10,6 @@ // compile-pass -#![feature(use_extern_macros)] - macro_rules! define_exported { () => { #[macro_export] macro_rules! exported { diff --git a/src/test/ui/imports/local-modularized.rs b/src/test/ui/imports/local-modularized.rs index a5297c54c9e..260a406ef75 100644 --- a/src/test/ui/imports/local-modularized.rs +++ b/src/test/ui/imports/local-modularized.rs @@ -10,8 +10,6 @@ // compile-pass -#![feature(use_extern_macros)] - #[macro_export(local_inner_macros)] macro_rules! dollar_crate_exported { (1) => { $crate::exported!(); }; diff --git a/src/test/ui/imports/macro-paths.rs b/src/test/ui/imports/macro-paths.rs index e709eeee14a..50cfd2d2170 100644 --- a/src/test/ui/imports/macro-paths.rs +++ b/src/test/ui/imports/macro-paths.rs @@ -10,8 +10,6 @@ // aux-build:two_macros.rs -#![feature(use_extern_macros)] - extern crate two_macros; mod foo { diff --git a/src/test/ui/imports/macro-paths.stderr b/src/test/ui/imports/macro-paths.stderr index 799e7f97246..08f45e1a575 100644 --- a/src/test/ui/imports/macro-paths.stderr +++ b/src/test/ui/imports/macro-paths.stderr @@ -1,34 +1,34 @@ error[E0659]: `bar` is ambiguous - --> $DIR/macro-paths.rs:25:5 + --> $DIR/macro-paths.rs:23:5 | LL | bar::m! { //~ ERROR ambiguous | ^^^^^^ | note: `bar` could refer to the name defined here - --> $DIR/macro-paths.rs:26:9 + --> $DIR/macro-paths.rs:24:9 | LL | mod bar { pub use two_macros::m; } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `bar` could also refer to the name imported here - --> $DIR/macro-paths.rs:24:9 + --> $DIR/macro-paths.rs:22:9 | LL | use foo::*; | ^^^^^^ = note: macro-expanded items do not shadow when used in a macro invocation path error[E0659]: `baz` is ambiguous - --> $DIR/macro-paths.rs:35:5 + --> $DIR/macro-paths.rs:33:5 | LL | baz::m! { //~ ERROR ambiguous | ^^^^^^ | note: `baz` could refer to the name defined here - --> $DIR/macro-paths.rs:36:9 + --> $DIR/macro-paths.rs:34:9 | LL | mod baz { pub use two_macros::m; } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `baz` could also refer to the name defined here - --> $DIR/macro-paths.rs:30:1 + --> $DIR/macro-paths.rs:28:1 | LL | / pub mod baz { LL | | pub use two_macros::m; diff --git a/src/test/ui/imports/macros.rs b/src/test/ui/imports/macros.rs index ed5907800e9..47ab8fc6c2f 100644 --- a/src/test/ui/imports/macros.rs +++ b/src/test/ui/imports/macros.rs @@ -10,8 +10,6 @@ // aux-build:two_macros.rs -#![feature(use_extern_macros)] - extern crate two_macros; // two identity macros `m` and `n` mod foo { diff --git a/src/test/ui/imports/macros.stderr b/src/test/ui/imports/macros.stderr index f91987cd9f3..01d1f4fdfad 100644 --- a/src/test/ui/imports/macros.stderr +++ b/src/test/ui/imports/macros.stderr @@ -1,51 +1,51 @@ error: `m` is ambiguous - --> $DIR/macros.rs:50:5 + --> $DIR/macros.rs:48:5 | LL | m!(); //~ ERROR ambiguous | ^ | note: `m` could refer to the macro defined here - --> $DIR/macros.rs:48:5 + --> $DIR/macros.rs:46:5 | LL | macro_rules! m { () => {} } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `m` could also refer to the macro imported here - --> $DIR/macros.rs:49:9 + --> $DIR/macros.rs:47:9 | LL | use two_macros::m; | ^^^^^^^^^^^^^ error[E0659]: `m` is ambiguous - --> $DIR/macros.rs:28:5 + --> $DIR/macros.rs:26:5 | LL | m! { //~ ERROR ambiguous | ^ | note: `m` could refer to the name imported here - --> $DIR/macros.rs:29:13 + --> $DIR/macros.rs:27:13 | LL | use foo::m; | ^^^^^^ note: `m` could also refer to the name imported here - --> $DIR/macros.rs:27:9 + --> $DIR/macros.rs:25:9 | LL | use two_macros::*; | ^^^^^^^^^^^^^ = note: macro-expanded macro imports do not shadow error[E0659]: `m` is ambiguous - --> $DIR/macros.rs:41:9 + --> $DIR/macros.rs:39:9 | LL | m! { //~ ERROR ambiguous | ^ | note: `m` could refer to the name imported here - --> $DIR/macros.rs:42:17 + --> $DIR/macros.rs:40:17 | LL | use two_macros::n as m; | ^^^^^^^^^^^^^^^^^^ note: `m` could also refer to the name imported here - --> $DIR/macros.rs:34:9 + --> $DIR/macros.rs:32:9 | LL | use two_macros::m; | ^^^^^^^^^^^^^ diff --git a/src/test/ui/imports/shadow_builtin_macros.rs b/src/test/ui/imports/shadow_builtin_macros.rs index 93de136c405..90718abc37b 100644 --- a/src/test/ui/imports/shadow_builtin_macros.rs +++ b/src/test/ui/imports/shadow_builtin_macros.rs @@ -10,8 +10,6 @@ // aux-build:two_macros.rs -#![feature(use_extern_macros)] - mod foo { extern crate two_macros; pub use self::two_macros::m as panic; diff --git a/src/test/ui/imports/shadow_builtin_macros.stderr b/src/test/ui/imports/shadow_builtin_macros.stderr index c9d80ada472..693b7aadeca 100644 --- a/src/test/ui/imports/shadow_builtin_macros.stderr +++ b/src/test/ui/imports/shadow_builtin_macros.stderr @@ -1,5 +1,5 @@ error: `panic` is already in scope - --> $DIR/shadow_builtin_macros.rs:42:9 + --> $DIR/shadow_builtin_macros.rs:40:9 | LL | macro_rules! panic { () => {} } //~ ERROR `panic` is already in scope | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -10,13 +10,13 @@ LL | m!(); = note: macro-expanded `macro_rules!`s may not shadow existing macros (see RFC 1560) error[E0659]: `panic` is ambiguous - --> $DIR/shadow_builtin_macros.rs:27:14 + --> $DIR/shadow_builtin_macros.rs:25:14 | LL | fn f() { panic!(); } //~ ERROR ambiguous | ^^^^^ | note: `panic` could refer to the name imported here - --> $DIR/shadow_builtin_macros.rs:26:9 + --> $DIR/shadow_builtin_macros.rs:24:9 | LL | use foo::*; | ^^^^^^ @@ -24,13 +24,13 @@ LL | use foo::*; = note: consider adding an explicit import of `panic` to disambiguate error[E0659]: `panic` is ambiguous - --> $DIR/shadow_builtin_macros.rs:32:14 + --> $DIR/shadow_builtin_macros.rs:30:14 | LL | fn f() { panic!(); } //~ ERROR ambiguous | ^^^^^ | note: `panic` could refer to the name imported here - --> $DIR/shadow_builtin_macros.rs:31:26 + --> $DIR/shadow_builtin_macros.rs:29:26 | LL | ::two_macros::m!(use foo::panic;); | ^^^^^^^^^^ @@ -38,18 +38,18 @@ LL | ::two_macros::m!(use foo::panic;); = note: macro-expanded macro imports do not shadow error[E0659]: `n` is ambiguous - --> $DIR/shadow_builtin_macros.rs:61:5 + --> $DIR/shadow_builtin_macros.rs:59:5 | LL | n!(); //~ ERROR ambiguous | ^ | note: `n` could refer to the name imported here - --> $DIR/shadow_builtin_macros.rs:60:9 + --> $DIR/shadow_builtin_macros.rs:58:9 | LL | use bar::*; | ^^^^^^ note: `n` could also refer to the name imported here - --> $DIR/shadow_builtin_macros.rs:48:13 + --> $DIR/shadow_builtin_macros.rs:46:13 | LL | #[macro_use(n)] | ^ diff --git a/src/test/ui/macros/macro-path-prelude-fail-1.rs b/src/test/ui/macros/macro-path-prelude-fail-1.rs index b953805a7eb..e1181eb741b 100644 --- a/src/test/ui/macros/macro-path-prelude-fail-1.rs +++ b/src/test/ui/macros/macro-path-prelude-fail-1.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros, extern_prelude)] +#![feature(extern_prelude)] mod m { fn check() { diff --git a/src/test/ui/macros/macro-path-prelude-fail-2.rs b/src/test/ui/macros/macro-path-prelude-fail-2.rs index ec77e276bd4..82258dac37b 100644 --- a/src/test/ui/macros/macro-path-prelude-fail-2.rs +++ b/src/test/ui/macros/macro-path-prelude-fail-2.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros)] - mod m { fn check() { Result::Ok!(); //~ ERROR fail to resolve non-ident macro path diff --git a/src/test/ui/macros/macro-path-prelude-fail-2.stderr b/src/test/ui/macros/macro-path-prelude-fail-2.stderr index d23aed847a3..876ee2584e9 100644 --- a/src/test/ui/macros/macro-path-prelude-fail-2.stderr +++ b/src/test/ui/macros/macro-path-prelude-fail-2.stderr @@ -1,5 +1,5 @@ error: fail to resolve non-ident macro path - --> $DIR/macro-path-prelude-fail-2.rs:15:9 + --> $DIR/macro-path-prelude-fail-2.rs:13:9 | LL | Result::Ok!(); //~ ERROR fail to resolve non-ident macro path | ^^^^^^^^^^ diff --git a/src/test/ui/macros/macro-path-prelude-fail-3.rs b/src/test/ui/macros/macro-path-prelude-fail-3.rs index d325b046001..c706b8f613d 100644 --- a/src/test/ui/macros/macro-path-prelude-fail-3.rs +++ b/src/test/ui/macros/macro-path-prelude-fail-3.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(use_extern_macros)] - #[derive(inline)] //~ ERROR cannot find derive macro `inline` in this scope struct S; diff --git a/src/test/ui/macros/macro-path-prelude-fail-3.stderr b/src/test/ui/macros/macro-path-prelude-fail-3.stderr index c9af4b66427..a8edf54d220 100644 --- a/src/test/ui/macros/macro-path-prelude-fail-3.stderr +++ b/src/test/ui/macros/macro-path-prelude-fail-3.stderr @@ -1,11 +1,11 @@ error: cannot find derive macro `inline` in this scope - --> $DIR/macro-path-prelude-fail-3.rs:13:10 + --> $DIR/macro-path-prelude-fail-3.rs:11:10 | LL | #[derive(inline)] //~ ERROR cannot find derive macro `inline` in this scope | ^^^^^^ error: cannot find macro `inline!` in this scope - --> $DIR/macro-path-prelude-fail-3.rs:17:5 + --> $DIR/macro-path-prelude-fail-3.rs:15:5 | LL | inline!(); //~ ERROR cannot find macro `inline!` in this scope | ^^^^^^ help: you could try the macro: `line` diff --git a/src/test/ui/macros/macro-path-prelude-pass.rs b/src/test/ui/macros/macro-path-prelude-pass.rs index bc58754513b..1f281d4a686 100644 --- a/src/test/ui/macros/macro-path-prelude-pass.rs +++ b/src/test/ui/macros/macro-path-prelude-pass.rs @@ -10,7 +10,7 @@ // compile-pass -#![feature(use_extern_macros, extern_prelude)] +#![feature(extern_prelude)] mod m { fn check() { diff --git a/src/test/ui/macros/macro-reexport-removed.stderr b/src/test/ui/macros/macro-reexport-removed.stderr index ba0ab232e86..c93c7144f9e 100644 --- a/src/test/ui/macros/macro-reexport-removed.stderr +++ b/src/test/ui/macros/macro-reexport-removed.stderr @@ -4,7 +4,7 @@ error[E0557]: feature has been removed LL | #![feature(macro_reexport)] //~ ERROR feature has been removed | ^^^^^^^^^^^^^^ | -note: subsumed by `#![feature(use_extern_macros)]` and `pub use` +note: subsumed by `pub use` --> $DIR/macro-reexport-removed.rs:13:12 | LL | #![feature(macro_reexport)] //~ ERROR feature has been removed diff --git a/src/test/ui/macros/macro-with-seps-err-msg.rs b/src/test/ui/macros/macro-with-seps-err-msg.rs deleted file mode 100644 index 1281adce5c5..00000000000 --- a/src/test/ui/macros/macro-with-seps-err-msg.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2012 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// gate-test-use_extern_macros - -fn main() { - globnar::brotz!(); //~ ERROR non-ident macro paths are experimental -} diff --git a/src/test/ui/macros/macro-with-seps-err-msg.stderr b/src/test/ui/macros/macro-with-seps-err-msg.stderr deleted file mode 100644 index 0b6d186b236..00000000000 --- a/src/test/ui/macros/macro-with-seps-err-msg.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0658]: non-ident macro paths are experimental (see issue #35896) - --> $DIR/macro-with-seps-err-msg.rs:14:5 - | -LL | globnar::brotz!(); //~ ERROR non-ident macro paths are experimental - | ^^^^^^^^^^^^^^ - | - = help: add #![feature(use_extern_macros)] to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/macros/macro_undefined.rs b/src/test/ui/macros/macro_undefined.rs index c0acbc979ad..4a812739a6b 100644 --- a/src/test/ui/macros/macro_undefined.rs +++ b/src/test/ui/macros/macro_undefined.rs @@ -19,5 +19,5 @@ macro_rules! kl { fn main() { k!(); //~ ERROR cannot find - kl!(); //~ ERROR cannot find + kl!(); } diff --git a/src/test/ui/macros/macro_undefined.stderr b/src/test/ui/macros/macro_undefined.stderr index 8d44df8af0c..87b039f4834 100644 --- a/src/test/ui/macros/macro_undefined.stderr +++ b/src/test/ui/macros/macro_undefined.stderr @@ -1,16 +1,8 @@ -error: cannot find macro `kl!` in this scope - --> $DIR/macro_undefined.rs:22:5 - | -LL | kl!(); //~ ERROR cannot find - | ^^ - | - = help: have you added the `#[macro_use]` on the module/import? - error: cannot find macro `k!` in this scope --> $DIR/macro_undefined.rs:21:5 | LL | k!(); //~ ERROR cannot find | ^ help: you could try the macro: `kl` -error: aborting due to 2 previous errors +error: aborting due to previous error diff --git a/src/test/ui/macros/macros-nonfatal-errors.rs b/src/test/ui/macros/macros-nonfatal-errors.rs index 2815e1be709..ce2dfb906c5 100644 --- a/src/test/ui/macros/macros-nonfatal-errors.rs +++ b/src/test/ui/macros/macros-nonfatal-errors.rs @@ -30,8 +30,6 @@ fn main() { env!(foo, abr, baz); //~ ERROR env!("RUST_HOPEFULLY_THIS_DOESNT_EXIST"); //~ ERROR - foo::blah!(); //~ ERROR - format!(invalid); //~ ERROR include!(invalid); //~ ERROR diff --git a/src/test/ui/macros/macros-nonfatal-errors.stderr b/src/test/ui/macros/macros-nonfatal-errors.stderr index 084042acc97..81e250d5ea0 100644 --- a/src/test/ui/macros/macros-nonfatal-errors.stderr +++ b/src/test/ui/macros/macros-nonfatal-errors.stderr @@ -40,16 +40,8 @@ error: environment variable `RUST_HOPEFULLY_THIS_DOESNT_EXIST` not defined LL | env!("RUST_HOPEFULLY_THIS_DOESNT_EXIST"); //~ ERROR | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error[E0658]: non-ident macro paths are experimental (see issue #35896) - --> $DIR/macros-nonfatal-errors.rs:33:5 - | -LL | foo::blah!(); //~ ERROR - | ^^^^^^^^^ - | - = help: add #![feature(use_extern_macros)] to the crate attributes to enable - error: format argument must be a string literal - --> $DIR/macros-nonfatal-errors.rs:35:13 + --> $DIR/macros-nonfatal-errors.rs:33:13 | LL | format!(invalid); //~ ERROR | ^^^^^^^ @@ -59,42 +51,41 @@ LL | format!("{}", invalid); //~ ERROR | ^^^^^ error: argument must be a string literal - --> $DIR/macros-nonfatal-errors.rs:37:14 + --> $DIR/macros-nonfatal-errors.rs:35:14 | LL | include!(invalid); //~ ERROR | ^^^^^^^ error: argument must be a string literal - --> $DIR/macros-nonfatal-errors.rs:39:18 + --> $DIR/macros-nonfatal-errors.rs:37:18 | LL | include_str!(invalid); //~ ERROR | ^^^^^^^ error: couldn't read $DIR/i'd be quite surprised if a file with this name existed: No such file or directory (os error 2) - --> $DIR/macros-nonfatal-errors.rs:40:5 + --> $DIR/macros-nonfatal-errors.rs:38:5 | LL | include_str!("i'd be quite surprised if a file with this name existed"); //~ ERROR | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: argument must be a string literal - --> $DIR/macros-nonfatal-errors.rs:41:20 + --> $DIR/macros-nonfatal-errors.rs:39:20 | LL | include_bytes!(invalid); //~ ERROR | ^^^^^^^ error: couldn't read $DIR/i'd be quite surprised if a file with this name existed: No such file or directory (os error 2) - --> $DIR/macros-nonfatal-errors.rs:42:5 + --> $DIR/macros-nonfatal-errors.rs:40:5 | LL | include_bytes!("i'd be quite surprised if a file with this name existed"); //~ ERROR | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: trace_macros! accepts only `true` or `false` - --> $DIR/macros-nonfatal-errors.rs:44:5 + --> $DIR/macros-nonfatal-errors.rs:42:5 | LL | trace_macros!(invalid); //~ ERROR | ^^^^^^^^^^^^^^^^^^^^^^^ -error: aborting due to 15 previous errors +error: aborting due to 14 previous errors -Some errors occurred: E0658, E0665. -For more information about an error, try `rustc --explain E0658`. +For more information about this error, try `rustc --explain E0665`. diff --git a/src/test/ui/no-link.rs b/src/test/ui/no-link.rs index f74ff55e2c0..36efb67cf80 100644 --- a/src/test/ui/no-link.rs +++ b/src/test/ui/no-link.rs @@ -12,7 +12,6 @@ #[no_link] extern crate empty_struct; -//~^ WARN proc macro crates and `#[no_link]` crates have no effect without `#[macro_use]` fn main() { empty_struct::XEmpty1; //~ ERROR cannot find value `XEmpty1` in module `empty_struct` diff --git a/src/test/ui/no-link.stderr b/src/test/ui/no-link.stderr index 3af7968f640..3f159ddfbd1 100644 --- a/src/test/ui/no-link.stderr +++ b/src/test/ui/no-link.stderr @@ -1,11 +1,5 @@ -warning: proc macro crates and `#[no_link]` crates have no effect without `#[macro_use]` - --> $DIR/no-link.rs:14:1 - | -LL | extern crate empty_struct; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^ - error[E0425]: cannot find value `XEmpty1` in module `empty_struct` - --> $DIR/no-link.rs:18:19 + --> $DIR/no-link.rs:17:19 | LL | empty_struct::XEmpty1; //~ ERROR cannot find value `XEmpty1` in module `empty_struct` | ^^^^^^^ not found in `empty_struct` diff --git a/src/test/ui/rust-2018/macro-use-warned-against.rs b/src/test/ui/rust-2018/macro-use-warned-against.rs index f50419434ae..ce4c6960281 100644 --- a/src/test/ui/rust-2018/macro-use-warned-against.rs +++ b/src/test/ui/rust-2018/macro-use-warned-against.rs @@ -13,7 +13,6 @@ // compile-pass #![warn(macro_use_extern_crate, unused)] -#![feature(use_extern_macros)] #[macro_use] //~ WARN should be replaced at use sites with a `use` statement extern crate macro_use_warned_against; diff --git a/src/test/ui/rust-2018/macro-use-warned-against.stderr b/src/test/ui/rust-2018/macro-use-warned-against.stderr index 7af404fab79..da69daf6ba8 100644 --- a/src/test/ui/rust-2018/macro-use-warned-against.stderr +++ b/src/test/ui/rust-2018/macro-use-warned-against.stderr @@ -1,5 +1,5 @@ warning: deprecated `#[macro_use]` directive used to import macros should be replaced at use sites with a `use` statement to import the macro instead - --> $DIR/macro-use-warned-against.rs:18:1 + --> $DIR/macro-use-warned-against.rs:17:1 | LL | #[macro_use] //~ WARN should be replaced at use sites with a `use` statement | ^^^^^^^^^^^^ @@ -11,7 +11,7 @@ LL | #![warn(macro_use_extern_crate, unused)] | ^^^^^^^^^^^^^^^^^^^^^^ warning: unused `#[macro_use]` import - --> $DIR/macro-use-warned-against.rs:20:1 + --> $DIR/macro-use-warned-against.rs:19:1 | LL | #[macro_use] //~ WARN unused `#[macro_use]` | ^^^^^^^^^^^^ diff --git a/src/test/ui/tool-attributes/tool-attributes-disabled-1.rs b/src/test/ui/tool-attributes/tool-attributes-disabled-1.rs deleted file mode 100644 index 87d47b75607..00000000000 --- a/src/test/ui/tool-attributes/tool-attributes-disabled-1.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// If macro modularization (`use_extern_macros`) is not enabled, -// then tool attributes are treated as custom attributes. - -#[rustfmt::bar] //~ ERROR The attribute `rustfmt::bar` is currently unknown to the compiler -fn main() {} diff --git a/src/test/ui/tool-attributes/tool-attributes-disabled-1.stderr b/src/test/ui/tool-attributes/tool-attributes-disabled-1.stderr deleted file mode 100644 index 6302c06057a..00000000000 --- a/src/test/ui/tool-attributes/tool-attributes-disabled-1.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0658]: The attribute `rustfmt::bar` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642) - --> $DIR/tool-attributes-disabled-1.rs:14:1 - | -LL | #[rustfmt::bar] //~ ERROR The attribute `rustfmt::bar` is currently unknown to the compiler - | ^^^^^^^^^^^^^^^ - | - = help: add #![feature(custom_attribute)] to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/tool-attributes/tool-attributes-disabled-2.rs b/src/test/ui/tool-attributes/tool-attributes-disabled-2.rs deleted file mode 100644 index 2d97e160f49..00000000000 --- a/src/test/ui/tool-attributes/tool-attributes-disabled-2.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// If macro modularization (`use_extern_macros`) is not enabled, -// then tool attributes are treated as custom attributes. - -#[rustfmt::bar] //~ ERROR attribute `rustfmt::bar` is currently unknown to the compiler -fn main() {} diff --git a/src/test/ui/tool-attributes/tool-attributes-disabled-2.stderr b/src/test/ui/tool-attributes/tool-attributes-disabled-2.stderr deleted file mode 100644 index b327773dd6a..00000000000 --- a/src/test/ui/tool-attributes/tool-attributes-disabled-2.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0658]: The attribute `rustfmt::bar` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642) - --> $DIR/tool-attributes-disabled-2.rs:14:1 - | -LL | #[rustfmt::bar] //~ ERROR attribute `rustfmt::bar` is currently unknown to the compiler - | ^^^^^^^^^^^^^^^ - | - = help: add #![feature(custom_attribute)] to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. -- 2.44.0