From 433e546af9503f712089debee665671094f79275 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 12 Nov 2019 08:51:57 -0500 Subject: [PATCH] Move Level to rustc_session --- src/librustc/lint/mod.rs | 44 +++--------------------------------- src/librustc_session/lib.rs | 1 + src/librustc_session/lint.rs | 44 ++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 41 deletions(-) create mode 100644 src/librustc_session/lint.rs diff --git a/src/librustc/lint/mod.rs b/src/librustc/lint/mod.rs index d84102ff3c5..0cc2c356a15 100644 --- a/src/librustc/lint/mod.rs +++ b/src/librustc/lint/mod.rs @@ -39,7 +39,7 @@ use syntax::source_map::{MultiSpan, ExpnKind, DesugaringKind}; use syntax::early_buffered_lints::BufferedEarlyLintId; use syntax::edition::Edition; -use syntax::symbol::{Symbol, sym}; +use syntax::symbol::Symbol; use syntax_pos::hygiene::MacroKind; use syntax_pos::Span; @@ -47,6 +47,8 @@ check_crate, check_ast_crate, late_lint_mod, CheckLintNameResult, BufferedEarlyLint,}; +pub use rustc_session::lint::Level; + /// Specification of a single lint. #[derive(Copy, Clone, Debug)] pub struct Lint { @@ -542,46 +544,6 @@ pub fn to_string(&self) -> String { } } -/// Setting for how to handle a lint. -#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash, HashStable)] -pub enum Level { - Allow, Warn, Deny, Forbid, -} - -impl Level { - /// Converts a level to a lower-case string. - pub fn as_str(self) -> &'static str { - match self { - Allow => "allow", - Warn => "warn", - Deny => "deny", - Forbid => "forbid", - } - } - - /// Converts a lower-case string to a level. - pub fn from_str(x: &str) -> Option { - match x { - "allow" => Some(Allow), - "warn" => Some(Warn), - "deny" => Some(Deny), - "forbid" => Some(Forbid), - _ => None, - } - } - - /// Converts a symbol to a level. - pub fn from_symbol(x: Symbol) -> Option { - match x { - sym::allow => Some(Allow), - sym::warn => Some(Warn), - sym::deny => Some(Deny), - sym::forbid => Some(Forbid), - _ => None, - } - } -} - /// How a lint level was set. #[derive(Clone, Copy, PartialEq, Eq, HashStable)] pub enum LintSource { diff --git a/src/librustc_session/lib.rs b/src/librustc_session/lib.rs index e65ed84f19b..4e873e8bb28 100644 --- a/src/librustc_session/lib.rs +++ b/src/librustc_session/lib.rs @@ -1,2 +1,3 @@ pub mod cgu_reuse_tracker; pub mod utils; +pub mod lint; diff --git a/src/librustc_session/lint.rs b/src/librustc_session/lint.rs new file mode 100644 index 00000000000..44b1f4ec254 --- /dev/null +++ b/src/librustc_session/lint.rs @@ -0,0 +1,44 @@ +use syntax_pos::{Symbol, sym}; +pub use self::Level::*; + +/// Setting for how to handle a lint. +#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)] +pub enum Level { + Allow, Warn, Deny, Forbid, +} + +rustc_data_structures::impl_stable_hash_via_hash!(Level); + +impl Level { + /// Converts a level to a lower-case string. + pub fn as_str(self) -> &'static str { + match self { + Level::Allow => "allow", + Level::Warn => "warn", + Level::Deny => "deny", + Level::Forbid => "forbid", + } + } + + /// Converts a lower-case string to a level. + pub fn from_str(x: &str) -> Option { + match x { + "allow" => Some(Level::Allow), + "warn" => Some(Level::Warn), + "deny" => Some(Level::Deny), + "forbid" => Some(Level::Forbid), + _ => None, + } + } + + /// Converts a symbol to a level. + pub fn from_symbol(x: Symbol) -> Option { + match x { + sym::allow => Some(Level::Allow), + sym::warn => Some(Level::Warn), + sym::deny => Some(Level::Deny), + sym::forbid => Some(Level::Forbid), + _ => None, + } + } +} -- 2.44.0