diff options
| author | Tatsuyuki Ishi <ishitatsuyuki@gmail.com> | 2017-06-24 17:48:27 +0900 |
|---|---|---|
| committer | Tatsuyuki Ishi <ishitatsuyuki@gmail.com> | 2017-08-27 19:02:24 +0900 |
| commit | 611b1111394a065783091b17b025c34427af3d68 (patch) | |
| tree | 32fc252396dcc3d67cfab262a48febf5c03e1d8c | |
| parent | bc5bd51c4563cd76fd3d73eb3eeff7cf6e9905b1 (diff) | |
| download | rust-611b1111394a065783091b17b025c34427af3d68.tar.gz rust-611b1111394a065783091b17b025c34427af3d68.zip | |
Move unused-extern-crate to late pass
43 files changed, 76 insertions, 39 deletions
diff --git a/src/Cargo.lock b/src/Cargo.lock index ad96ff40cd6..123c884585c 100644 --- a/src/Cargo.lock +++ b/src/Cargo.lock @@ -1327,7 +1327,6 @@ dependencies = [ "graphviz 0.0.0", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "rustc 0.0.0", - "rustc_data_structures 0.0.0", "rustc_errors 0.0.0", "rustc_mir 0.0.0", "syntax 0.0.0", @@ -1464,7 +1463,6 @@ dependencies = [ "proc_macro 0.0.0", "rustc 0.0.0", "rustc_back 0.0.0", - "rustc_const_math 0.0.0", "rustc_data_structures 0.0.0", "rustc_errors 0.0.0", "serialize 0.0.0", @@ -1605,6 +1603,7 @@ dependencies = [ name = "rustc_tsan" version = "0.0.0" dependencies = [ + "alloc 0.0.0", "alloc_system 0.0.0", "build_helper 0.1.0", "cmake 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1859,7 +1858,6 @@ name = "syntax_ext" version = "0.0.0" dependencies = [ "fmt_macros 0.0.0", - "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "proc_macro 0.0.0", "rustc_errors 0.0.0", "syntax 0.0.0", diff --git a/src/liballoc/tests/lib.rs b/src/liballoc/tests/lib.rs index 86309dd87de..8f3e71ef794 100644 --- a/src/liballoc/tests/lib.rs +++ b/src/liballoc/tests/lib.rs @@ -10,7 +10,6 @@ #![deny(warnings)] -#![feature(alloc)] #![feature(attr_literals)] #![feature(box_syntax)] #![feature(inclusive_range_syntax)] @@ -27,14 +26,10 @@ #![feature(splice)] #![feature(str_escape)] #![feature(string_retain)] -#![feature(test)] #![feature(unboxed_closures)] #![feature(unicode)] -extern crate alloc; -extern crate test; extern crate std_unicode; -extern crate core; use std::hash::{Hash, Hasher}; use std::collections::hash_map::DefaultHasher; diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs index 84a3be99c27..ab2022b1824 100644 --- a/src/libcore/tests/lib.rs +++ b/src/libcore/tests/lib.rs @@ -26,7 +26,6 @@ #![feature(inclusive_range)] #![feature(inclusive_range_syntax)] #![feature(iter_rfind)] -#![feature(libc)] #![feature(nonzero)] #![feature(ord_max_min)] #![feature(rand)] @@ -41,13 +40,10 @@ #![feature(test)] #![feature(trusted_len)] #![feature(try_from)] -#![feature(unicode)] #![feature(unique)] extern crate core; extern crate test; -extern crate libc; -extern crate std_unicode; extern crate rand; mod any; diff --git a/src/librustc/dep_graph/dep_node.rs b/src/librustc/dep_graph/dep_node.rs index 9e5d4081231..01fff605283 100644 --- a/src/librustc/dep_graph/dep_node.rs +++ b/src/librustc/dep_graph/dep_node.rs @@ -522,6 +522,8 @@ define_dep_nodes!( <'tcx> [] DylibDepFormats(DefId), [] IsAllocator(DefId), [] IsPanicRuntime(DefId), + [] IsCompilerBuiltins(DefId), + [] HasGlobalAllocator(DefId), [] ExternCrate(DefId), [] LintLevels, ); diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index 03dc2f3c1ac..900f4031d2f 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -26,7 +26,6 @@ #![feature(core_intrinsics)] #![feature(discriminant_value)] #![feature(i128_type)] -#![feature(libc)] #![feature(never_type)] #![feature(nonzero)] #![feature(quote)] @@ -45,7 +44,6 @@ extern crate core; extern crate fmt_macros; extern crate getopts; extern crate graphviz; -extern crate libc; extern crate owning_ref; extern crate rustc_back; extern crate rustc_data_structures; @@ -62,7 +60,9 @@ extern crate serialize as rustc_serialize; // used by deriving // Note that librustc doesn't actually depend on these crates, see the note in // `Cargo.toml` for this crate about why these are here. +#[allow(unused_extern_crates)] extern crate flate2; +#[allow(unused_extern_crates)] extern crate test; #[macro_use] diff --git a/src/librustc/ty/context.rs b/src/librustc/ty/context.rs index da1039c5de1..0f815584378 100644 --- a/src/librustc/ty/context.rs +++ b/src/librustc/ty/context.rs @@ -797,6 +797,8 @@ pub struct GlobalCtxt<'tcx> { pub maybe_unused_trait_imports: NodeSet, + pub maybe_unused_extern_crates: Vec<(NodeId, Span, CrateNum)>, + // Internal cache for metadata decoding. No need to track deps on this. pub rcache: RefCell<FxHashMap<ty::CReaderCacheKey, Ty<'tcx>>>, @@ -1038,6 +1040,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { mir_passes, freevars: RefCell::new(resolutions.freevars), maybe_unused_trait_imports: resolutions.maybe_unused_trait_imports, + maybe_unused_extern_crates: resolutions.maybe_unused_extern_crates, rcache: RefCell::new(FxHashMap()), normalized_cache: RefCell::new(FxHashMap()), inhabitedness_cache: RefCell::new(FxHashMap()), diff --git a/src/librustc/ty/maps.rs b/src/librustc/ty/maps.rs index 042ec49b0bd..a73202ced61 100644 --- a/src/librustc/ty/maps.rs +++ b/src/librustc/ty/maps.rs @@ -516,6 +516,18 @@ impl<'tcx> QueryDescription for queries::is_panic_runtime<'tcx> { } } +impl<'tcx> QueryDescription for queries::is_compiler_builtins<'tcx> { + fn describe(_: TyCtxt, _: DefId) -> String { + "checking if the crate is_compiler_builtins".to_string() + } +} + +impl<'tcx> QueryDescription for queries::has_global_allocator<'tcx> { + fn describe(_: TyCtxt, _: DefId) -> String { + "checking if the crate has_global_allocator".to_string() + } +} + impl<'tcx> QueryDescription for queries::extern_crate<'tcx> { fn describe(_: TyCtxt, _: DefId) -> String { "getting crate's ExternCrateData".to_string() @@ -1079,6 +1091,8 @@ define_maps! { <'tcx> [] is_allocator: IsAllocator(DefId) -> bool, [] is_panic_runtime: IsPanicRuntime(DefId) -> bool, + [] is_compiler_builtins: IsCompilerBuiltins(DefId) -> bool, + [] has_global_allocator: HasGlobalAllocator(DefId) -> bool, [] extern_crate: ExternCrate(DefId) -> Rc<Option<ExternCrate>>, diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 852bd48a5ee..efd735b3f28 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -131,6 +131,7 @@ pub struct Resolutions { pub freevars: FreevarMap, pub trait_map: TraitMap, pub maybe_unused_trait_imports: NodeSet, + pub maybe_unused_extern_crates: Vec<(NodeId, Span, CrateNum)>, pub export_map: ExportMap, } diff --git a/src/librustc_borrowck/Cargo.toml b/src/librustc_borrowck/Cargo.toml index af99c0e9387..25f02537490 100644 --- a/src/librustc_borrowck/Cargo.toml +++ b/src/librustc_borrowck/Cargo.toml @@ -15,6 +15,5 @@ syntax = { path = "../libsyntax" } syntax_pos = { path = "../libsyntax_pos" } graphviz = { path = "../libgraphviz" } rustc = { path = "../librustc" } -rustc_data_structures = { path = "../librustc_data_structures" } rustc_mir = { path = "../librustc_mir" } rustc_errors = { path = "../librustc_errors" } diff --git a/src/librustc_borrowck/lib.rs b/src/librustc_borrowck/lib.rs index e7f4f9caee3..9bedbfed5db 100644 --- a/src/librustc_borrowck/lib.rs +++ b/src/librustc_borrowck/lib.rs @@ -28,9 +28,7 @@ extern crate rustc_errors as errors; extern crate graphviz as dot; #[macro_use] extern crate rustc; -extern crate rustc_data_structures; extern crate rustc_mir; -extern crate core; // for NonZero pub use borrowck::check_crate; pub use borrowck::build_borrowck_dataflow_data_for_fn; diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 163c698e3ff..96688c6ac9c 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -877,6 +877,7 @@ pub fn phase_2_configure_and_expand<F>(sess: &Session, export_map: resolver.export_map, trait_map: resolver.trait_map, maybe_unused_trait_imports: resolver.maybe_unused_trait_imports, + maybe_unused_extern_crates: resolver.maybe_unused_extern_crates, }, hir_forest, }) diff --git a/src/librustc_metadata/Cargo.toml b/src/librustc_metadata/Cargo.toml index 67b459ea18f..40b75be36fe 100644 --- a/src/librustc_metadata/Cargo.toml +++ b/src/librustc_metadata/Cargo.toml @@ -15,7 +15,6 @@ owning_ref = "0.3.3" proc_macro = { path = "../libproc_macro" } rustc = { path = "../librustc" } rustc_back = { path = "../librustc_back" } -rustc_const_math = { path = "../librustc_const_math" } rustc_data_structures = { path = "../librustc_data_structures" } rustc_errors = { path = "../librustc_errors" } serialize = { path = "../libserialize" } diff --git a/src/librustc_metadata/cstore_impl.rs b/src/librustc_metadata/cstore_impl.rs index cfba11b5151..ad320a7ff3d 100644 --- a/src/librustc_metadata/cstore_impl.rs +++ b/src/librustc_metadata/cstore_impl.rs @@ -137,6 +137,8 @@ provide! { <'tcx> tcx, def_id, cdata, dylib_dependency_formats => { Rc::new(cdata.get_dylib_dependency_formats(&tcx.dep_graph)) } is_panic_runtime => { cdata.is_panic_runtime(&tcx.dep_graph) } + is_compiler_builtins => { cdata.is_compiler_builtins(&tcx.dep_graph) } + has_global_allocator => { cdata.has_global_allocator(&tcx.dep_graph) } extern_crate => { Rc::new(cdata.extern_crate.get()) } } diff --git a/src/librustc_metadata/lib.rs b/src/librustc_metadata/lib.rs index 7d796dbd00f..f79abecf9da 100644 --- a/src/librustc_metadata/lib.rs +++ b/src/librustc_metadata/lib.rs @@ -39,7 +39,6 @@ extern crate proc_macro; #[macro_use] extern crate rustc; extern crate rustc_back; -extern crate rustc_const_math; extern crate rustc_data_structures; mod diagnostics; diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index 47fa5357abf..a07de6e6914 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -264,7 +264,7 @@ impl<'a> Resolver<'a> { id: item.id, parent, imported_module: Cell::new(Some(module)), - subclass: ImportDirectiveSubclass::ExternCrate, + subclass: ImportDirectiveSubclass::ExternCrate { cnum: crate_id }, span: item.span, module_path: Vec::new(), vis: Cell::new(vis), diff --git a/src/librustc_resolve/check_unused.rs b/src/librustc_resolve/check_unused.rs index 05c227340d8..6e7f212bd4d 100644 --- a/src/librustc_resolve/check_unused.rs +++ b/src/librustc_resolve/check_unused.rs @@ -120,10 +120,8 @@ pub fn check_crate(resolver: &mut Resolver, krate: &ast::Crate) { _ if directive.used.get() || directive.vis.get() == ty::Visibility::Public || directive.span.source_equal(&DUMMY_SP) => {} - ImportDirectiveSubclass::ExternCrate => { - let lint = lint::builtin::UNUSED_EXTERN_CRATES; - let msg = "unused extern crate"; - ; resolver.session.buffer_lint(lint, directive.id, directive.span, msg) + ImportDirectiveSubclass::ExternCrate { cnum } => { + resolver.maybe_unused_extern_crates.push((directive.id, directive.span, cnum)); } ImportDirectiveSubclass::MacroUse => { let lint = lint::builtin::UNUSED_IMPORTS; diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index ee349e31128..324d6081635 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -35,7 +35,7 @@ use rustc::middle::cstore::CrateLoader; use rustc::session::Session; use rustc::lint; use rustc::hir::def::*; -use rustc::hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE, DefId}; +use rustc::hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE, CrateNum, DefId}; use rustc::ty; use rustc::hir::{Freevar, FreevarMap, TraitCandidate, TraitMap, GlobMap}; use rustc::util::nodemap::{NodeMap, NodeSet, FxHashMap, FxHashSet, DefIdMap}; @@ -1102,7 +1102,7 @@ impl<'a> NameBinding<'a> { match self.kind { NameBindingKind::Import { directive: &ImportDirective { - subclass: ImportDirectiveSubclass::ExternCrate, .. + subclass: ImportDirectiveSubclass::ExternCrate { .. }, .. }, .. } => true, _ => false, @@ -1250,6 +1250,7 @@ pub struct Resolver<'a> { used_imports: FxHashSet<(NodeId, Namespace)>, pub maybe_unused_trait_imports: NodeSet, + pub maybe_unused_extern_crates: Vec<(NodeId, Span, CrateNum)>, /// privacy errors are delayed until the end in order to deduplicate them privacy_errors: Vec<PrivacyError<'a>>, @@ -1457,6 +1458,7 @@ impl<'a> Resolver<'a> { used_imports: FxHashSet(), maybe_unused_trait_imports: NodeSet(), + maybe_unused_extern_crates: Vec::new(), privacy_errors: Vec::new(), ambiguity_errors: Vec::new(), diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index 5616971e9d1..d4846fb1bd5 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -19,7 +19,7 @@ use {resolve_error, ResolutionError}; use rustc::ty; use rustc::lint::builtin::PUB_USE_OF_PRIVATE_EXTERN_CRATE; -use rustc::hir::def_id::DefId; +use rustc::hir::def_id::{CrateNum, DefId}; use rustc::hir::def::*; use rustc::util::nodemap::{FxHashMap, FxHashSet}; @@ -48,7 +48,9 @@ pub enum ImportDirectiveSubclass<'a> { max_vis: Cell<ty::Visibility>, // The visibility of the greatest reexport. // n.b. `max_vis` is only used in `finalize_import` to check for reexport errors. }, - ExternCrate, + ExternCrate { + cnum: CrateNum, + }, MacroUse, } @@ -924,7 +926,7 @@ fn import_directive_subclass_to_string(subclass: &ImportDirectiveSubclass) -> St match *subclass { SingleImport { source, .. } => source.to_string(), GlobImport { .. } => "*".to_string(), - ExternCrate => "<extern crate>".to_string(), + ExternCrate { .. } => "<extern crate>".to_string(), MacroUse => "#[macro_use]".to_string(), } } diff --git a/src/librustc_tsan/Cargo.toml b/src/librustc_tsan/Cargo.toml index 97c1181e3a2..7b83985ba67 100644 --- a/src/librustc_tsan/Cargo.toml +++ b/src/librustc_tsan/Cargo.toml @@ -14,5 +14,6 @@ build_helper = { path = "../build_helper" } cmake = "0.1.18" [dependencies] +alloc = { path = "../liballoc" } alloc_system = { path = "../liballoc_system" } core = { path = "../libcore" } diff --git a/src/librustc_tsan/lib.rs b/src/librustc_tsan/lib.rs index 54941362e84..3429e3bda0f 100644 --- a/src/librustc_tsan/lib.rs +++ b/src/librustc_tsan/lib.rs @@ -9,8 +9,10 @@ // except according to those terms. #![sanitizer_runtime] -#![feature(sanitizer_runtime)] #![feature(alloc_system)] +#![feature(allocator_api)] +#![feature(global_allocator)] +#![feature(sanitizer_runtime)] #![feature(staged_api)] #![no_std] #![unstable(feature = "sanitizer_runtime_lib", @@ -18,3 +20,8 @@ issue = "0")] extern crate alloc_system; + +use alloc_system::System; + +#[global_allocator] +static ALLOC: System = System; diff --git a/src/librustc_typeck/check_unused.rs b/src/librustc_typeck/check_unused.rs index e95d49f00bf..bfa9371d138 100644 --- a/src/librustc_typeck/check_unused.rs +++ b/src/librustc_typeck/check_unused.rs @@ -72,4 +72,14 @@ pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) { let mut visitor = CheckVisitor { tcx, used_trait_imports }; tcx.hir.krate().visit_all_item_likes(&mut visitor); + + for &(id, span, cnum) in &tcx.maybe_unused_extern_crates { + if !tcx.is_compiler_builtins(cnum.as_def_id()) + && !tcx.is_panic_runtime(cnum.as_def_id()) + && !tcx.has_global_allocator(cnum.as_def_id()) { + let lint = lint::builtin::UNUSED_EXTERN_CRATES; + let msg = "unused extern crate"; + tcx.lint_node(lint, id, span, msg); + } + } } diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index cf1eb5cd52e..9b80a5c462f 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -283,7 +283,7 @@ #![feature(on_unimplemented)] #![feature(oom)] #![feature(optin_builtin_traits)] -#![feature(panic_unwind)] +#![cfg_attr(any(unix, target_os = "redox"), feature(panic_unwind))] #![feature(peek)] #![feature(placement_in_syntax)] #![feature(placement_new_protocol)] @@ -358,6 +358,7 @@ extern crate std_unicode; extern crate libc; // We always need an unwinder currently for backtraces +#[cfg(any(unix, target_os = "redox"))] extern crate unwind; // compiler-rt intrinsics diff --git a/src/libstd/prelude/mod.rs b/src/libstd/prelude/mod.rs index 49cdba21a1d..538753d8692 100644 --- a/src/libstd/prelude/mod.rs +++ b/src/libstd/prelude/mod.rs @@ -23,6 +23,7 @@ //! On a technical level, Rust inserts //! //! ``` +//! # #[allow(unused_extern_crates)] //! extern crate std; //! ``` //! diff --git a/src/libstd/sys/unix/ext/fs.rs b/src/libstd/sys/unix/ext/fs.rs index a94585723a1..f44b9aa9615 100644 --- a/src/libstd/sys/unix/ext/fs.rs +++ b/src/libstd/sys/unix/ext/fs.rs @@ -154,8 +154,6 @@ pub trait OpenOptionsExt { /// # Examples /// /// ```no_run - /// # #![feature(libc)] - /// extern crate libc; /// use std::fs::OpenOptions; /// use std::os::unix::fs::OpenOptionsExt; /// diff --git a/src/libsyntax_ext/Cargo.toml b/src/libsyntax_ext/Cargo.toml index bdcec26cb83..1c470240288 100644 --- a/src/libsyntax_ext/Cargo.toml +++ b/src/libsyntax_ext/Cargo.toml @@ -10,7 +10,6 @@ crate-type = ["dylib"] [dependencies] fmt_macros = { path = "../libfmt_macros" } -log = "0.3" proc_macro = { path = "../libproc_macro" } rustc_errors = { path = "../librustc_errors" } syntax = { path = "../libsyntax" } diff --git a/src/libsyntax_ext/lib.rs b/src/libsyntax_ext/lib.rs index fa39095d329..42bbb4ae0cb 100644 --- a/src/libsyntax_ext/lib.rs +++ b/src/libsyntax_ext/lib.rs @@ -18,7 +18,6 @@ #![feature(proc_macro_internals)] extern crate fmt_macros; -extern crate log; #[macro_use] extern crate syntax; extern crate syntax_pos; diff --git a/src/test/compile-fail-fulldeps/plugin-as-extern-crate.rs b/src/test/compile-fail-fulldeps/plugin-as-extern-crate.rs index edbb77fe390..bb292e2e52a 100644 --- a/src/test/compile-fail-fulldeps/plugin-as-extern-crate.rs +++ b/src/test/compile-fail-fulldeps/plugin-as-extern-crate.rs @@ -15,6 +15,7 @@ // libsyntax is not compiled for it. #![deny(plugin_as_library)] +#![allow(unused_extern_crates)] extern crate macro_crate_test; //~ ERROR compiler plugin used as an ordinary library diff --git a/src/test/compile-fail/E0254.rs b/src/test/compile-fail/E0254.rs index 89227f6b010..996a6b97cd9 100644 --- a/src/test/compile-fail/E0254.rs +++ b/src/test/compile-fail/E0254.rs @@ -9,6 +9,7 @@ // except according to those terms. #![feature(alloc)] +#![allow(unused_extern_crates)] extern crate alloc; //~^ NOTE previous import of the extern crate `alloc` here diff --git a/src/test/compile-fail/E0259.rs b/src/test/compile-fail/E0259.rs index 60bcd2ae076..c285c4d9e00 100644 --- a/src/test/compile-fail/E0259.rs +++ b/src/test/compile-fail/E0259.rs @@ -9,6 +9,7 @@ // except according to those terms. #![feature(alloc, libc)] +#![allow(unused_extern_crates)] extern crate alloc; //~^ NOTE previous import of the extern crate `alloc` here diff --git a/src/test/compile-fail/E0260.rs b/src/test/compile-fail/E0260.rs index 5e802bbbe3d..ad8888e58f7 100644 --- a/src/test/compile-fail/E0260.rs +++ b/src/test/compile-fail/E0260.rs @@ -9,6 +9,7 @@ // except according to those terms. #![feature(alloc)] +#![allow(unused_extern_crates)] extern crate alloc; //~^ NOTE previous import of the extern crate `alloc` here diff --git a/src/test/compile-fail/enable-unstable-lib-feature.rs b/src/test/compile-fail/enable-unstable-lib-feature.rs index c65b2366bf1..bc9e2345f0e 100644 --- a/src/test/compile-fail/enable-unstable-lib-feature.rs +++ b/src/test/compile-fail/enable-unstable-lib-feature.rs @@ -16,6 +16,7 @@ #![deny(non_snake_case)] // To trigger a hard error // Shouldn't generate a warning about unstable features +#[allow(unused_extern_crates)] extern crate stability_cfg2; pub fn BOGUS() { } //~ ERROR diff --git a/src/test/compile-fail/issue-36881.rs b/src/test/compile-fail/issue-36881.rs index e05dc066199..0f5aa24926b 100644 --- a/src/test/compile-fail/issue-36881.rs +++ b/src/test/compile-fail/issue-36881.rs @@ -11,6 +11,7 @@ // aux-build:issue-36881-aux.rs fn main() { + #[allow(unused_extern_crates)] extern crate issue_36881_aux; use issue_36881_aux::Foo; //~ ERROR unresolved import } diff --git a/src/test/compile-fail/lint-stability-deprecated.rs b/src/test/compile-fail/lint-stability-deprecated.rs index 8443518b3f5..9bc2c021904 100644 --- a/src/test/compile-fail/lint-stability-deprecated.rs +++ b/src/test/compile-fail/lint-stability-deprecated.rs @@ -14,7 +14,7 @@ // aux-build:stability_cfg2.rs #![warn(deprecated)] -#![allow(dead_code)] +#![allow(dead_code, unused_extern_crates)] #![feature(staged_api, test_feature, rustc_attrs)] #![stable(feature = "rust1", since = "1.0.0")] diff --git a/src/test/compile-fail/macro-reexport-malformed-1.rs b/src/test/compile-fail/macro-reexport-malformed-1.rs index ea2dfca0714..a2778a83130 100644 --- a/src/test/compile-fail/macro-reexport-malformed-1.rs +++ b/src/test/compile-fail/macro-reexport-malformed-1.rs @@ -11,5 +11,6 @@ #![no_std] #![feature(macro_reexport)] +#[allow(unused_extern_crates)] #[macro_reexport] //~ ERROR bad macro reexport extern crate std; diff --git a/src/test/compile-fail/macro-reexport-malformed-2.rs b/src/test/compile-fail/macro-reexport-malformed-2.rs index 844955fb7e6..c5af9e3799d 100644 --- a/src/test/compile-fail/macro-reexport-malformed-2.rs +++ b/src/test/compile-fail/macro-reexport-malformed-2.rs @@ -11,5 +11,6 @@ #![no_std] #![feature(macro_reexport)] +#[allow(unused_extern_crates)] #[macro_reexport="foo"] //~ ERROR bad macro reexport extern crate std; diff --git a/src/test/compile-fail/macro-reexport-malformed-3.rs b/src/test/compile-fail/macro-reexport-malformed-3.rs index 381c22854e6..d72d1ee004e 100644 --- a/src/test/compile-fail/macro-reexport-malformed-3.rs +++ b/src/test/compile-fail/macro-reexport-malformed-3.rs @@ -11,5 +11,6 @@ #![no_std] #![feature(macro_reexport)] +#[allow(unused_extern_crates)] #[macro_reexport(foo="bar")] //~ ERROR bad macro reexport extern crate std; diff --git a/src/test/compile-fail/macro-use-bad-args-1.rs b/src/test/compile-fail/macro-use-bad-args-1.rs index 39c09c69779..a07cc834411 100644 --- a/src/test/compile-fail/macro-use-bad-args-1.rs +++ b/src/test/compile-fail/macro-use-bad-args-1.rs @@ -10,5 +10,6 @@ #![no_std] +#[allow(unused_extern_crates)] #[macro_use(foo(bar))] //~ ERROR bad macro import extern crate std; diff --git a/src/test/compile-fail/macro-use-bad-args-2.rs b/src/test/compile-fail/macro-use-bad-args-2.rs index 11a0108b99b..89004f16897 100644 --- a/src/test/compile-fail/macro-use-bad-args-2.rs +++ b/src/test/compile-fail/macro-use-bad-args-2.rs @@ -10,5 +10,6 @@ #![no_std] +#[allow(unused_extern_crates)] #[macro_use(foo="bar")] //~ ERROR bad macro import extern crate std; diff --git a/src/test/compile-fail/no-std-inject.rs b/src/test/compile-fail/no-std-inject.rs index f384eafa34b..49064853d21 100644 --- a/src/test/compile-fail/no-std-inject.rs +++ b/src/test/compile-fail/no-std-inject.rs @@ -9,6 +9,7 @@ // except according to those terms. #![no_std] +#![allow(unused_extern_crates)] extern crate core; //~ ERROR: the name `core` is defined multiple times extern crate std; diff --git a/src/test/compile-fail/placement-expr-unstable.rs b/src/test/compile-fail/placement-expr-unstable.rs index cc73cbe15fe..35695efe1a9 100644 --- a/src/test/compile-fail/placement-expr-unstable.rs +++ b/src/test/compile-fail/placement-expr-unstable.rs @@ -12,8 +12,6 @@ #![feature(placement_in_syntax)] -extern crate core; - fn main() { use std::boxed::HEAP; //~ ERROR use of unstable library feature diff --git a/src/test/compile-fail/resolve-conflict-extern-crate-vs-extern-crate.rs b/src/test/compile-fail/resolve-conflict-extern-crate-vs-extern-crate.rs index 87a17c0f19a..6a04a2c3704 100644 --- a/src/test/compile-fail/resolve-conflict-extern-crate-vs-extern-crate.rs +++ b/src/test/compile-fail/resolve-conflict-extern-crate-vs-extern-crate.rs @@ -8,6 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +#[allow(unused_extern_crates)] extern crate std; //~^ ERROR the name `std` is defined multiple times diff --git a/src/test/compile-fail/resolve_self_super_hint.rs b/src/test/compile-fail/resolve_self_super_hint.rs index 09951348448..a89fd802baf 100644 --- a/src/test/compile-fail/resolve_self_super_hint.rs +++ b/src/test/compile-fail/resolve_self_super_hint.rs @@ -9,6 +9,7 @@ // except according to those terms. #![feature(alloc)] +#![allow(unused_extern_crates)] mod a { extern crate alloc; diff --git a/src/test/compile-fail/unused-attr.rs b/src/test/compile-fail/unused-attr.rs index 6416e1cacdc..e20d03478ec 100644 --- a/src/test/compile-fail/unused-attr.rs +++ b/src/test/compile-fail/unused-attr.rs @@ -9,7 +9,7 @@ // except according to those terms. #![deny(unused_attributes)] -#![allow(dead_code, unused_imports)] +#![allow(dead_code, unused_imports, unused_extern_crates)] #![feature(custom_attribute)] #![foo] //~ ERROR unused attribute |
