From 03dfa642d9080a12e491681097806eb4207d19dc Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Thu, 9 Jan 2020 06:42:42 +0100 Subject: [PATCH] lints: promote levels.rs to lint.rs & extract passes.rs --- src/librustc/{lint/levels.rs => lint.rs} | 12 ++++++++++-- src/librustc/lint/context.rs | 4 ++-- src/librustc/lint/internal.rs | 3 ++- src/librustc/lint/{mod.rs => passes.rs} | 8 +------- src/librustc/mir/interpret/error.rs | 2 +- src/librustc_lint/array_into_iter.rs | 3 ++- src/librustc_passes/dead.rs | 2 +- src/librustdoc/core.rs | 2 +- src/librustdoc/lib.rs | 1 + 9 files changed, 21 insertions(+), 16 deletions(-) rename src/librustc/{lint/levels.rs => lint.rs} (98%) rename src/librustc/lint/{mod.rs => passes.rs} (98%) diff --git a/src/librustc/lint/levels.rs b/src/librustc/lint.rs similarity index 98% rename from src/librustc/lint/levels.rs rename to src/librustc/lint.rs index 7e966a74910..c4332fa0c63 100644 --- a/src/librustc/lint/levels.rs +++ b/src/librustc/lint.rs @@ -1,12 +1,12 @@ use std::cmp; use crate::ich::StableHashingContext; -use crate::lint::context::{CheckLintNameResult, LintStore}; +use crate::lint::context::CheckLintNameResult; use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder, DiagnosticId}; use rustc_hir::HirId; -use rustc_session::lint::{builtin, Level, Lint, LintId}; +pub use rustc_session::lint::{builtin, Level, Lint, LintId, LintPass}; use rustc_session::{DiagnosticMessageId, Session}; use rustc_span::hygiene::MacroKind; use rustc_span::source_map::{DesugaringKind, ExpnKind, MultiSpan}; @@ -19,6 +19,14 @@ use syntax::sess::feature_err; use rustc_error_codes::*; +mod context; +pub mod internal; +mod passes; + +pub use context::add_elided_lifetime_in_path_suggestion; +pub use context::{EarlyContext, LateContext, LintContext, LintStore}; +pub use passes::{EarlyLintPass, EarlyLintPassObject, LateLintPass, LateLintPassObject}; + /// How a lint level was set. #[derive(Clone, Copy, PartialEq, Eq, HashStable)] pub enum LintSource { diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs index 779077f1ff4..702d707346b 100644 --- a/src/librustc/lint/context.rs +++ b/src/librustc/lint/context.rs @@ -17,8 +17,8 @@ use self::TargetLint::*; use crate::hir::map::definitions::{DefPathData, DisambiguatedDefPathData}; -use crate::lint::levels::LintLevelsBuilder; -use crate::lint::{EarlyLintPassObject, LateLintPassObject}; +use crate::lint::passes::{EarlyLintPassObject, LateLintPassObject}; +use crate::lint::LintLevelsBuilder; use crate::middle::privacy::AccessLevels; use crate::middle::stability; use crate::ty::layout::{LayoutError, LayoutOf, TyLayout}; diff --git a/src/librustc/lint/internal.rs b/src/librustc/lint/internal.rs index 30679226b9b..33282a7291e 100644 --- a/src/librustc/lint/internal.rs +++ b/src/librustc/lint/internal.rs @@ -1,7 +1,8 @@ //! Some lints that are only useful in the compiler or crates that use compiler internals, such as //! Clippy. -use crate::lint::{EarlyContext, EarlyLintPass, LateContext, LateLintPass, LintContext}; +use crate::lint::context::{EarlyContext, LateContext, LintContext}; +use crate::lint::passes::{EarlyLintPass, LateLintPass}; use rustc_data_structures::fx::FxHashMap; use rustc_errors::Applicability; use rustc_hir::{GenericArg, HirId, MutTy, Mutability, Path, PathSegment, QPath, Ty, TyKind}; diff --git a/src/librustc/lint/mod.rs b/src/librustc/lint/passes.rs similarity index 98% rename from src/librustc/lint/mod.rs rename to src/librustc/lint/passes.rs index 6eec77d1d90..41671ccc6c0 100644 --- a/src/librustc/lint/mod.rs +++ b/src/librustc/lint/passes.rs @@ -18,8 +18,8 @@ //! example) requires more effort. See `emit_lint` and `GatherNodeLevels` //! in `context.rs`. -pub use self::levels::LintSource::{self, *}; pub use self::Level::*; +pub use crate::lint::LintSource::{self, *}; use rustc_data_structures::sync; use rustc_hir as hir; @@ -308,9 +308,3 @@ macro_rules! declare_combined_early_lint_pass { pub type EarlyLintPassObject = Box; pub type LateLintPassObject = Box LateLintPass<'a, 'tcx> + sync::Send + sync::Sync + 'static>; - -mod context; -pub mod internal; -mod levels; - -pub use self::levels::{struct_lint_level, LintLevelMap, LintLevelSets, LintLevelsBuilder}; diff --git a/src/librustc/mir/interpret/error.rs b/src/librustc/mir/interpret/error.rs index ed61534d545..8643bd63d8c 100644 --- a/src/librustc/mir/interpret/error.rs +++ b/src/librustc/mir/interpret/error.rs @@ -154,7 +154,7 @@ impl<'tcx> ConstEvalErr<'tcx> { .next() .unwrap_or(lint_root); tcx.struct_span_lint_hir( - crate::rustc::lint::builtin::CONST_ERR, + rustc_session::lint::builtin::CONST_ERR, hir_id, tcx.span, message, diff --git a/src/librustc_lint/array_into_iter.rs b/src/librustc_lint/array_into_iter.rs index 19d1052d1b2..7f053f9de29 100644 --- a/src/librustc_lint/array_into_iter.rs +++ b/src/librustc_lint/array_into_iter.rs @@ -1,8 +1,9 @@ -use rustc::lint::{FutureIncompatibleInfo, LateContext, LateLintPass, LintContext}; +use rustc::lint::{LateContext, LateLintPass, LintContext}; use rustc::ty; use rustc::ty::adjustment::{Adjust, Adjustment}; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_session::lint::FutureIncompatibleInfo; use rustc_span::symbol::sym; declare_lint! { diff --git a/src/librustc_passes/dead.rs b/src/librustc_passes/dead.rs index f626a5f8cb0..f2778b2aa6b 100644 --- a/src/librustc_passes/dead.rs +++ b/src/librustc_passes/dead.rs @@ -3,7 +3,6 @@ // from live codes are live, and everything else is dead. use rustc::hir::map::Map; -use rustc::lint; use rustc::middle::codegen_fn_attrs::CodegenFnAttrFlags; use rustc::middle::privacy; use rustc::ty::{self, DefIdTree, TyCtxt}; @@ -14,6 +13,7 @@ use rustc_hir::def_id::{DefId, LOCAL_CRATE}; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; use rustc_hir::itemlikevisit::ItemLikeVisitor; use rustc_hir::{Node, PatKind, TyKind}; +use rustc_session::lint; use rustc_span; use rustc_span::symbol::sym; diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 3cda1b3be75..61a7bc765bc 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -1,4 +1,3 @@ -use rustc::lint; use rustc::middle::cstore::CrateStore; use rustc::middle::privacy::AccessLevels; use rustc::session::config::ErrorOutputType; @@ -14,6 +13,7 @@ use rustc_hir::HirId; use rustc_interface::interface; use rustc_lint; use rustc_resolve as resolve; +use rustc_session::lint; use rustc_errors::emitter::{Emitter, EmitterWriter}; use rustc_errors::json::JsonEmitter; diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index b15dae452ff..032a5c83d17 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -36,6 +36,7 @@ extern crate rustc_metadata; extern crate rustc_mir; extern crate rustc_parse; extern crate rustc_resolve; +extern crate rustc_session; extern crate rustc_span as rustc_span; extern crate rustc_target; extern crate rustc_typeck;