diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 8f0a245a565..0735ba8869a 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -23,7 +23,7 @@ use crate::native; use crate::run; use crate::test; -use crate::tool; +use crate::tool::{self, SourceType}; use crate::util::{self, add_dylib_path, add_link_lib_path, exe, libdir}; use crate::{Build, DocTests, GitRepo, Mode}; @@ -759,6 +759,7 @@ pub fn cargo( &self, compiler: Compiler, mode: Mode, + source_type: SourceType, target: Interned, cmd: &str, ) -> Cargo { @@ -1125,7 +1126,7 @@ pub fn cargo( cargo.env("RUSTC_VERBOSE", self.verbosity.to_string()); - if !mode.is_tool() { + if source_type == SourceType::InTree { // When extending this list, add the new lints to the RUSTFLAGS of the // build_bootstrap function of src/bootstrap/bootstrap.py as well as // some code doesn't go through this `rustc` wrapper. diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs index 7a8bfb2d5d8..0d38d2eebe7 100644 --- a/src/bootstrap/check.rs +++ b/src/bootstrap/check.rs @@ -44,7 +44,13 @@ fn run(self, builder: &Builder<'_>) { let target = self.target; let compiler = builder.compiler(0, builder.config.build); - let mut cargo = builder.cargo(compiler, Mode::Std, target, cargo_subcommand(builder.kind)); + let mut cargo = builder.cargo( + compiler, + Mode::Std, + SourceType::InTree, + target, + cargo_subcommand(builder.kind), + ); std_cargo(builder, target, compiler.stage, &mut cargo); builder.info(&format!("Checking std artifacts ({} -> {})", &compiler.host, target)); @@ -92,8 +98,13 @@ fn run(self, builder: &Builder<'_>) { builder.ensure(Std { target }); - let mut cargo = - builder.cargo(compiler, Mode::Rustc, target, cargo_subcommand(builder.kind)); + let mut cargo = builder.cargo( + compiler, + Mode::Rustc, + SourceType::InTree, + target, + cargo_subcommand(builder.kind), + ); rustc_cargo(builder, &mut cargo, target); builder.info(&format!("Checking compiler artifacts ({} -> {})", &compiler.host, target)); @@ -113,7 +124,7 @@ fn run(self, builder: &Builder<'_>) { } macro_rules! tool_check_step { - ($name:ident, $path:expr) => { + ($name:ident, $path:expr, $source_type:expr) => { #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub struct $name { pub target: Interned, @@ -145,7 +156,7 @@ fn run(self, builder: &Builder<'_>) { target, cargo_subcommand(builder.kind), $path, - SourceType::InTree, + $source_type, &[], ); @@ -184,8 +195,12 @@ fn stamp( }; } -tool_check_step!(Rustdoc, "src/tools/rustdoc"); -tool_check_step!(Clippy, "src/tools/clippy"); +tool_check_step!(Rustdoc, "src/tools/rustdoc", SourceType::InTree); +// Clippy is a hybrid. It is an external tool, but uses a git subtree instead +// of a submodule. Since the SourceType only drives the deny-warnings +// behavior, treat it as in-tree so that any new warnings in clippy will be +// rejected. +tool_check_step!(Clippy, "src/tools/clippy", SourceType::InTree); /// Cargo's output path for the standard library in a given stage, compiled /// by a particular compiler for the specified target. diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index afcf0dcac7e..0208dc8ba5e 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -20,13 +20,13 @@ use serde::Deserialize; use crate::builder::Cargo; -use crate::dist; -use crate::native; -use crate::util::{exe, is_dylib, symlink_dir}; -use crate::{Compiler, DependencyType, GitRepo, Mode}; - use crate::builder::{Builder, Kind, RunConfig, ShouldRun, Step}; use crate::cache::{Interned, INTERNER}; +use crate::dist; +use crate::native; +use crate::tool::SourceType; +use crate::util::{exe, is_dylib, symlink_dir}; +use crate::{Compiler, DependencyType, GitRepo, Mode}; #[derive(Debug, PartialOrd, Ord, Copy, Clone, PartialEq, Eq, Hash)] pub struct Std { @@ -87,7 +87,7 @@ fn run(self, builder: &Builder<'_>) { target_deps.extend(copy_third_party_objects(builder, &compiler, target)); target_deps.extend(copy_self_contained_objects(builder, &compiler, target)); - let mut cargo = builder.cargo(compiler, Mode::Std, target, "build"); + let mut cargo = builder.cargo(compiler, Mode::Std, SourceType::InTree, target, "build"); std_cargo(builder, target, compiler.stage, &mut cargo); builder.info(&format!( @@ -513,7 +513,7 @@ fn run(self, builder: &Builder<'_>) { target: builder.config.build, }); - let mut cargo = builder.cargo(compiler, Mode::Rustc, target, "build"); + let mut cargo = builder.cargo(compiler, Mode::Rustc, SourceType::InTree, target, "build"); rustc_cargo(builder, &mut cargo, target); builder.info(&format!( diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs index 6d7fb7acfcb..8b76158f9e5 100644 --- a/src/bootstrap/doc.rs +++ b/src/bootstrap/doc.rs @@ -435,7 +435,8 @@ fn run(self, builder: &Builder<'_>) { t!(fs::copy(builder.src.join("src/doc/rust.css"), out.join("rust.css"))); let run_cargo_rustdoc_for = |package: &str| { - let mut cargo = builder.cargo(compiler, Mode::Std, target, "rustdoc"); + let mut cargo = + builder.cargo(compiler, Mode::Std, SourceType::InTree, target, "rustdoc"); compile::std_cargo(builder, target, compiler.stage, &mut cargo); // Keep a whitelist so we do not build internal stdlib crates, these will be @@ -534,7 +535,7 @@ fn run(self, builder: &Builder<'_>) { t!(symlink_dir_force(&builder.config, &out, &out_dir)); // Build cargo command. - let mut cargo = builder.cargo(compiler, Mode::Rustc, target, "doc"); + let mut cargo = builder.cargo(compiler, Mode::Rustc, SourceType::InTree, target, "doc"); cargo.env( "RUSTDOCFLAGS", "--document-private-items \ diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index e7aeb08643c..5728b9d24de 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -301,16 +301,21 @@ pub enum Mode { /// Build codegen libraries, placing output in the "stageN-codegen" directory Codegen, - /// Build some tools, placing output in the "stageN-tools" directory. The - /// "other" here is for miscellaneous sets of tools that are built using the - /// bootstrap compiler in its entirety (target libraries and all). - /// Typically these tools compile with stable Rust. + /// Build a tool, placing output in the "stage0-bootstrap-tools" + /// directory. This is for miscellaneous sets of tools that are built + /// using the bootstrap stage0 compiler in its entirety (target libraries + /// and all). Typically these tools compile with stable Rust. ToolBootstrap, - /// Compile a tool which uses all libraries we compile (up to rustc). - /// Doesn't use the stage0 compiler libraries like "other", and includes - /// tools like rustdoc, cargo, rls, etc. + /// Build a tool which uses the locally built std, placing output in the + /// "stageN-tools" directory. Its usage is quite rare, mainly used by + /// compiletest which needs libtest. ToolStd, + + /// Build a tool which uses the locally built rustc and the target std, + /// placing the output in the "stageN-tools" directory. This is used for + /// anything that needs a fully functional rustc, such as rustdoc, clippy, + /// cargo, rls, rustfmt, miri, etc. ToolRustc, } diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index bb35203c826..12ab6b1636c 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -367,7 +367,8 @@ fn run(self, builder: &Builder<'_>) { extra_features: Vec::new(), }); if let (Some(miri), Some(_cargo_miri)) = (miri, cargo_miri) { - let mut cargo = builder.cargo(compiler, Mode::ToolRustc, host, "install"); + let mut cargo = + builder.cargo(compiler, Mode::ToolRustc, SourceType::Submodule, host, "install"); cargo.arg("xargo"); // Configure `cargo install` path. cargo adds a `bin/`. cargo.env("CARGO_INSTALL_ROOT", &builder.out); @@ -1696,7 +1697,8 @@ fn run(self, builder: &Builder<'_>) { // we're working with automatically. let compiler = builder.compiler_for(compiler.stage, compiler.host, target); - let mut cargo = builder.cargo(compiler, mode, target, test_kind.subcommand()); + let mut cargo = + builder.cargo(compiler, mode, SourceType::InTree, target, test_kind.subcommand()); match mode { Mode::Std => { compile::std_cargo(builder, target, compiler.stage, &mut cargo); diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs index c92082a9423..0055dee6092 100644 --- a/src/bootstrap/tool.rs +++ b/src/bootstrap/tool.rs @@ -16,7 +16,7 @@ use crate::Compiler; use crate::Mode; -#[derive(Debug, Clone, Hash, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum SourceType { InTree, Submodule, @@ -226,14 +226,10 @@ pub fn prepare_tool_cargo( source_type: SourceType, extra_features: &[String], ) -> CargoCommand { - let mut cargo = builder.cargo(compiler, mode, target, command); + let mut cargo = builder.cargo(compiler, mode, source_type, target, command); let dir = builder.src.join(path); cargo.arg("--manifest-path").arg(dir.join("Cargo.toml")); - if source_type == SourceType::Submodule { - cargo.env("RUSTC_EXTERNAL_TOOL", "1"); - } - let mut features = extra_features.to_vec(); if builder.build.config.cargo_native_static { if path.ends_with("cargo") @@ -596,6 +592,7 @@ macro_rules! tool_extended { $path:expr, $tool_name:expr, stable = $stable:expr, + $(in_tree = $in_tree:expr,)* $extra_deps:block;)+) => { $( #[derive(Debug, Clone, Hash, PartialEq, Eq)] @@ -647,7 +644,11 @@ fn run(mut $sel, $builder: &Builder<'_>) -> Option { path: $path, extra_features: $sel.extra_features, is_optional_tool: true, - source_type: SourceType::Submodule, + source_type: if false $(|| $in_tree)* { + SourceType::InTree + } else { + SourceType::Submodule + }, }) } } @@ -659,8 +660,8 @@ fn run(mut $sel, $builder: &Builder<'_>) -> Option { // to make `./x.py build ` work. tool_extended!((self, builder), Cargofmt, rustfmt, "src/tools/rustfmt", "cargo-fmt", stable=true, {}; - CargoClippy, clippy, "src/tools/clippy", "cargo-clippy", stable=true, {}; - Clippy, clippy, "src/tools/clippy", "clippy-driver", stable=true, {}; + CargoClippy, clippy, "src/tools/clippy", "cargo-clippy", stable=true, in_tree=true, {}; + Clippy, clippy, "src/tools/clippy", "clippy-driver", stable=true, in_tree=true, {}; Miri, miri, "src/tools/miri", "miri", stable=false, {}; CargoMiri, miri, "src/tools/miri/cargo-miri", "cargo-miri", stable=false, {}; Rls, rls, "src/tools/rls", "rls", stable=true, { diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 08e04f719e9..78628b198a3 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -278,7 +278,7 @@ fn build_type_alias_type(cx: &DocContext<'_>, did: DefId) -> Option type_.def_id().and_then(|did| build_ty(cx, did)) } -pub fn build_ty(cx: &DocContext, did: DefId) -> Option { +pub fn build_ty(cx: &DocContext<'_>, did: DefId) -> Option { match cx.tcx.def_kind(did) { DefKind::Struct | DefKind::Union | DefKind::Enum | DefKind::Const | DefKind::Static => { Some(cx.tcx.type_of(did).clean(cx)) diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index c4e4802db6c..2d99b2fd134 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -328,7 +328,7 @@ pub fn strip_path(path: &Path) -> Path { Path { global: path.global, res: path.res, segments } } -pub fn qpath_to_string(p: &hir::QPath) -> String { +pub fn qpath_to_string(p: &hir::QPath<'_>) -> String { let segments = match *p { hir::QPath::Resolved(_, ref path) => &path.segments, hir::QPath::TypeRelative(_, ref segment) => return segment.ident.to_string(), @@ -417,7 +417,7 @@ fn to_src(&self, cx: &DocContext<'_>) -> String { } } -pub fn name_from_pat(p: &hir::Pat) -> String { +pub fn name_from_pat(p: &hir::Pat<'_>) -> String { use rustc_hir::*; debug!("trying to get a name from pattern: {:?}", p); diff --git a/src/librustdoc/doctree.rs b/src/librustdoc/doctree.rs index 5b138327427..943729a74ab 100644 --- a/src/librustdoc/doctree.rs +++ b/src/librustdoc/doctree.rs @@ -262,7 +262,7 @@ pub struct ProcMacro<'hir> { pub whence: Span, } -pub fn struct_type_from_def(vdata: &hir::VariantData) -> StructType { +pub fn struct_type_from_def(vdata: &hir::VariantData<'_>) -> StructType { match *vdata { hir::VariantData::Struct(..) => Plain, hir::VariantData::Tuple(..) => Tuple, diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs index 21aa0ded5a4..e9504aa3af1 100644 --- a/src/librustdoc/test.rs +++ b/src/librustdoc/test.rs @@ -166,7 +166,7 @@ pub fn run(options: Options) -> Result<(), String> { } // Look for `#![doc(test(no_crate_inject))]`, used by crates in the std facade. -fn scrape_test_config(krate: &::rustc_hir::Crate) -> TestOptions { +fn scrape_test_config(krate: &::rustc_hir::Crate<'_>) -> TestOptions { use rustc_ast_pretty::pprust; let mut opts = @@ -973,7 +973,7 @@ fn nested_visit_map(&mut self) -> intravisit::NestedVisitorMap { intravisit::NestedVisitorMap::All(self.map) } - fn visit_item(&mut self, item: &'hir hir::Item) { + fn visit_item(&mut self, item: &'hir hir::Item<'_>) { let name = if let hir::ItemKind::Impl { ref self_ty, .. } = item.kind { rustc_hir_pretty::id_to_string(&self.map, self_ty.hir_id) } else { @@ -985,19 +985,19 @@ fn visit_item(&mut self, item: &'hir hir::Item) { }); } - fn visit_trait_item(&mut self, item: &'hir hir::TraitItem) { + fn visit_trait_item(&mut self, item: &'hir hir::TraitItem<'_>) { self.visit_testable(item.ident.to_string(), &item.attrs, item.hir_id, item.span, |this| { intravisit::walk_trait_item(this, item); }); } - fn visit_impl_item(&mut self, item: &'hir hir::ImplItem) { + fn visit_impl_item(&mut self, item: &'hir hir::ImplItem<'_>) { self.visit_testable(item.ident.to_string(), &item.attrs, item.hir_id, item.span, |this| { intravisit::walk_impl_item(this, item); }); } - fn visit_foreign_item(&mut self, item: &'hir hir::ForeignItem) { + fn visit_foreign_item(&mut self, item: &'hir hir::ForeignItem<'_>) { self.visit_testable(item.ident.to_string(), &item.attrs, item.hir_id, item.span, |this| { intravisit::walk_foreign_item(this, item); }); @@ -1005,8 +1005,8 @@ fn visit_foreign_item(&mut self, item: &'hir hir::ForeignItem) { fn visit_variant( &mut self, - v: &'hir hir::Variant, - g: &'hir hir::Generics, + v: &'hir hir::Variant<'_>, + g: &'hir hir::Generics<'_>, item_id: hir::HirId, ) { self.visit_testable(v.ident.to_string(), &v.attrs, v.id, v.span, |this| { @@ -1014,13 +1014,13 @@ fn visit_variant( }); } - fn visit_struct_field(&mut self, f: &'hir hir::StructField) { + fn visit_struct_field(&mut self, f: &'hir hir::StructField<'_>) { self.visit_testable(f.ident.to_string(), &f.attrs, f.hir_id, f.span, |this| { intravisit::walk_struct_field(this, f); }); } - fn visit_macro_def(&mut self, macro_def: &'hir hir::MacroDef) { + fn visit_macro_def(&mut self, macro_def: &'hir hir::MacroDef<'_>) { self.visit_testable( macro_def.ident.to_string(), ¯o_def.attrs, diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index d2a950027cf..c18f417e4f8 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -62,7 +62,7 @@ fn store_path(&mut self, did: DefId) { self.exact_paths.entry(did).or_insert_with(|| def_id_to_path(tcx, did)); } - pub fn visit(mut self, krate: &'tcx hir::Crate) -> Module<'tcx> { + pub fn visit(mut self, krate: &'tcx hir::Crate<'_>) -> Module<'tcx> { let mut module = self.visit_mod_contents( krate.item.span, krate.item.attrs, @@ -84,10 +84,10 @@ pub fn visit(mut self, krate: &'tcx hir::Crate) -> Module<'tcx> { fn visit_variant_data( &mut self, - item: &'tcx hir::Item, + item: &'tcx hir::Item<'_>, name: Symbol, - sd: &'tcx hir::VariantData, - generics: &'tcx hir::Generics, + sd: &'tcx hir::VariantData<'_>, + generics: &'tcx hir::Generics<'_>, ) -> Struct<'tcx> { debug!("visiting struct"); let struct_type = struct_type_from_def(&*sd); @@ -105,10 +105,10 @@ fn visit_variant_data( fn visit_union_data( &mut self, - item: &'tcx hir::Item, + item: &'tcx hir::Item<'_>, name: Symbol, - sd: &'tcx hir::VariantData, - generics: &'tcx hir::Generics, + sd: &'tcx hir::VariantData<'_>, + generics: &'tcx hir::Generics<'_>, ) -> Union<'tcx> { debug!("visiting union"); let struct_type = struct_type_from_def(&*sd); @@ -126,10 +126,10 @@ fn visit_union_data( fn visit_enum_def( &mut self, - it: &'tcx hir::Item, + it: &'tcx hir::Item<'_>, name: Symbol, - def: &'tcx hir::EnumDef, - generics: &'tcx hir::Generics, + def: &'tcx hir::EnumDef<'_>, + generics: &'tcx hir::Generics<'_>, ) -> Enum<'tcx> { debug!("visiting enum"); Enum { @@ -156,11 +156,11 @@ fn visit_enum_def( fn visit_fn( &mut self, om: &mut Module<'tcx>, - item: &'tcx hir::Item, + item: &'tcx hir::Item<'_>, name: Symbol, - decl: &'tcx hir::FnDecl, + decl: &'tcx hir::FnDecl<'_>, header: hir::FnHeader, - generics: &'tcx hir::Generics, + generics: &'tcx hir::Generics<'_>, body: hir::BodyId, ) { debug!("visiting fn"); @@ -231,7 +231,7 @@ fn visit_mod_contents( &mut self, span: Span, attrs: &'tcx [ast::Attribute], - vis: &'tcx hir::Visibility, + vis: &'tcx hir::Visibility<'_>, id: hir::HirId, m: &'tcx hir::Mod<'tcx>, name: Option, @@ -375,7 +375,12 @@ fn inherits_doc_hidden(cx: &core::DocContext<'_>, mut node: hir::HirId) -> bool ret } - fn visit_item(&mut self, item: &'tcx hir::Item, renamed: Option, om: &mut Module<'tcx>) { + fn visit_item( + &mut self, + item: &'tcx hir::Item<'_>, + renamed: Option, + om: &mut Module<'tcx>, + ) { debug!("visiting item {:?}", item); let ident = renamed.unwrap_or(item.ident); @@ -587,7 +592,7 @@ fn visit_item(&mut self, item: &'tcx hir::Item, renamed: Option, om: &mut fn visit_foreign_item( &mut self, - item: &'tcx hir::ForeignItem, + item: &'tcx hir::ForeignItem<'_>, renamed: Option, om: &mut Module<'tcx>, ) { @@ -607,7 +612,11 @@ fn visit_foreign_item( } // Convert each `exported_macro` into a doc item. - fn visit_local_macro(&self, def: &'tcx hir::MacroDef, renamed: Option) -> Macro<'tcx> { + fn visit_local_macro( + &self, + def: &'tcx hir::MacroDef<'_>, + renamed: Option, + ) -> Macro<'tcx> { debug!("visit_local_macro: {}", def.ident); let tts = def.ast.body.inner_tokens().trees().collect::>(); // Extract the spans of all matchers. They represent the "interface" of the macro. diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index 9eb43eb2df4..614e2558960 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -4,8 +4,6 @@ //! via `x.py dist hash-and-sign`; the cmdline arguments are set up //! by rustbuild (in `src/bootstrap/dist.rs`). -#![deny(warnings)] - use serde::Serialize; use std::collections::BTreeMap; diff --git a/src/tools/cargotest/main.rs b/src/tools/cargotest/main.rs index 6968822c1b8..ecaeda68695 100644 --- a/src/tools/cargotest/main.rs +++ b/src/tools/cargotest/main.rs @@ -1,5 +1,3 @@ -#![deny(warnings)] - use std::env; use std::fs; use std::path::{Path, PathBuf}; diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index 134ac66b7d1..2aea4d22700 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -1,5 +1,4 @@ #![crate_name = "compiletest"] -#![deny(warnings)] // The `test` crate is the only unstable feature // allowed here, just to share similar code. #![feature(test)] diff --git a/src/tools/error_index_generator/main.rs b/src/tools/error_index_generator/main.rs index 3335816f09f..097fb1f985a 100644 --- a/src/tools/error_index_generator/main.rs +++ b/src/tools/error_index_generator/main.rs @@ -1,5 +1,4 @@ #![feature(rustc_private)] -#![deny(warnings)] extern crate env_logger; extern crate rustc_ast; diff --git a/src/tools/expand-yaml-anchors/src/main.rs b/src/tools/expand-yaml-anchors/src/main.rs index f2ed8aa409a..d8dad8fc789 100644 --- a/src/tools/expand-yaml-anchors/src/main.rs +++ b/src/tools/expand-yaml-anchors/src/main.rs @@ -165,7 +165,7 @@ fn main() { impl Error for StrError {} impl std::fmt::Display for StrError { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.0, f) } } @@ -177,7 +177,7 @@ struct WithContext { } impl std::fmt::Display for WithContext { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "{}", self.context) } } diff --git a/src/tools/linkchecker/main.rs b/src/tools/linkchecker/main.rs index 570ffd5d306..9e4e2c433fb 100644 --- a/src/tools/linkchecker/main.rs +++ b/src/tools/linkchecker/main.rs @@ -14,8 +14,6 @@ //! A few whitelisted exceptions are allowed as there's known bugs in rustdoc, //! but this should catch the majority of "broken link" cases. -#![deny(warnings)] - use std::collections::hash_map::Entry; use std::collections::{HashMap, HashSet}; use std::env; diff --git a/src/tools/remote-test-client/src/main.rs b/src/tools/remote-test-client/src/main.rs index 1fafe109d34..6245b76fd6e 100644 --- a/src/tools/remote-test-client/src/main.rs +++ b/src/tools/remote-test-client/src/main.rs @@ -5,8 +5,6 @@ //! Here is also where we bake in the support to spawn the QEMU emulator as //! well. -#![deny(warnings)] - use std::env; use std::fs::{self, File}; use std::io::prelude::*; diff --git a/src/tools/remote-test-server/src/main.rs b/src/tools/remote-test-server/src/main.rs index 8c56910e2df..d92758eb747 100644 --- a/src/tools/remote-test-server/src/main.rs +++ b/src/tools/remote-test-server/src/main.rs @@ -10,8 +10,6 @@ //! themselves having support libraries. All data over the TCP sockets is in a //! basically custom format suiting our needs. -#![deny(warnings)] - #[cfg(not(windows))] use std::fs::Permissions; #[cfg(not(windows))] diff --git a/src/tools/tidy/src/main.rs b/src/tools/tidy/src/main.rs index e2856c69055..2d105c7f33a 100644 --- a/src/tools/tidy/src/main.rs +++ b/src/tools/tidy/src/main.rs @@ -4,8 +4,6 @@ //! etc. This is run by default on `./x.py test` and as part of the auto //! builders. The tidy checks can be executed with `./x.py test tidy`. -#![deny(warnings)] - use tidy::*; use std::env; diff --git a/src/tools/unstable-book-gen/src/main.rs b/src/tools/unstable-book-gen/src/main.rs index c9d1561a9d3..aa24881ac6b 100644 --- a/src/tools/unstable-book-gen/src/main.rs +++ b/src/tools/unstable-book-gen/src/main.rs @@ -1,7 +1,5 @@ //! Auto-generate stub docs for the unstable book -#![deny(warnings)] - use std::collections::BTreeSet; use std::env; use std::fs::{self, File};