[−][src]Struct rustc_lint::context::LintStore
Information about the registered lints.
This is basically the subset of Context that we can
build early in the compile pipeline.
Fields
lints: Vec<&'static Lint>Registered lints.
pre_expansion_passes: Vec<Box<dyn Fn() -> Box<dyn EarlyLintPass + Send + Sync + 'static> + Send + Sync>>Constructor functions for each variety of lint pass.
These should only be called once, but since we want to avoid locks or interior mutability, we don't enforce this (and lints should, in theory, be compatible with being constructed more than once, though not necessarily in a sane manner. This is safe though.)
early_passes: Vec<Box<dyn Fn() -> Box<dyn EarlyLintPass + Send + Sync + 'static> + Send + Sync>>late_passes: Vec<Box<dyn Fn() -> Box<dyn LateLintPass<'tcx> + Send + Sync + 'static> + Send + Sync>>late_module_passes: Vec<Box<dyn Fn() -> Box<dyn LateLintPass<'tcx> + Send + Sync + 'static> + Send + Sync>>This is unique in that we construct them per-module, so not once.
by_name: FxHashMap<String, TargetLint>Lints indexed by name.
lint_groups: FxHashMap<&'static str, LintGroup>Map of registered lint groups to what lints they expand to.
Implementations
impl LintStore[src]
pub fn new() -> LintStore[src]
pub fn get_lints<'t>(&'t self) -> &'t [&'static Lint][src]
pub fn get_lint_groups<'t>(&'t self) -> Vec<(&'static str, Vec<LintId>, bool)>[src]
pub fn register_early_pass(
&mut self,
pass: impl Fn() -> Box<dyn EarlyLintPass + Send + Sync + 'static> + 'static + Send + Sync
)[src]
&mut self,
pass: impl Fn() -> Box<dyn EarlyLintPass + Send + Sync + 'static> + 'static + Send + Sync
)
pub fn register_pre_expansion_pass(
&mut self,
pass: impl Fn() -> Box<dyn EarlyLintPass + Send + Sync + 'static> + 'static + Send + Sync
)[src]
&mut self,
pass: impl Fn() -> Box<dyn EarlyLintPass + Send + Sync + 'static> + 'static + Send + Sync
)
pub fn register_late_pass(
&mut self,
pass: impl Fn() -> Box<dyn LateLintPass<'tcx> + Send + Sync + 'static> + 'static + Send + Sync
)[src]
&mut self,
pass: impl Fn() -> Box<dyn LateLintPass<'tcx> + Send + Sync + 'static> + 'static + Send + Sync
)
pub fn register_late_mod_pass(
&mut self,
pass: impl Fn() -> Box<dyn LateLintPass<'tcx> + Send + Sync + 'static> + 'static + Send + Sync
)[src]
&mut self,
pass: impl Fn() -> Box<dyn LateLintPass<'tcx> + Send + Sync + 'static> + 'static + Send + Sync
)
pub fn register_lints(&mut self, lints: &[&'static Lint])[src]
pub fn register_group_alias(
&mut self,
lint_name: &'static str,
alias: &'static str
)[src]
&mut self,
lint_name: &'static str,
alias: &'static str
)
pub fn register_group(
&mut self,
from_plugin: bool,
name: &'static str,
deprecated_name: Option<&'static str>,
to: Vec<LintId>
)[src]
&mut self,
from_plugin: bool,
name: &'static str,
deprecated_name: Option<&'static str>,
to: Vec<LintId>
)
pub fn register_renamed(&mut self, old_name: &str, new_name: &str)[src]
pub fn register_removed(&mut self, name: &str, reason: &str)[src]
pub fn find_lints(&self, lint_name: &str) -> Result<Vec<LintId>, FindLintError>[src]
pub fn check_lint_name_cmdline(
&self,
sess: &Session,
lint_name: &str,
level: Level
)[src]
&self,
sess: &Session,
lint_name: &str,
level: Level
)
Checks the validity of lint names derived from the command line
pub fn check_lint_name(
&self,
lint_name: &str,
tool_name: Option<Symbol>
) -> CheckLintNameResult<'_>[src]
&self,
lint_name: &str,
tool_name: Option<Symbol>
) -> CheckLintNameResult<'_>
Checks the name of a lint for its existence, and whether it was renamed or removed. Generates a DiagnosticBuilder containing a warning for renamed and removed lints. This is over both lint names from attributes and those passed on the command line. Since it emits non-fatal warnings and there are two lint passes that inspect attributes, this is only run from the late pass to avoid printing duplicate warnings.
pub(in context) fn check_tool_name_for_backwards_compat(
&self,
lint_name: &str,
tool_name: &str
) -> CheckLintNameResult<'_>[src]
&self,
lint_name: &str,
tool_name: &str
) -> CheckLintNameResult<'_>
Trait Implementations
impl SessionLintStore for LintStore[src]
pub fn name_to_lint(&self, lint_name: &str) -> LintId[src]
Auto Trait Implementations
impl !RefUnwindSafe for LintStore
impl !Send for LintStore
impl !Sync for LintStore
impl Unpin for LintStore
impl !UnwindSafe for LintStore
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,