/src/librustc/lint/builtin.rs
https://gitlab.com/pranith/rust · Rust · 140 lines · 105 code · 19 blank · 16 comment · 1 complexity · 76700b84cfd804228b6809657ed3f424 MD5 · raw file
- // Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
- // file at the top-level directory of this distribution and at
- // http://rust-lang.org/COPYRIGHT.
- //
- // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
- // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
- // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
- // option. This file may not be copied, modified, or distributed
- // except according to those terms.
- //! Some lints that are built in to the compiler.
- //!
- //! These are the built-in lints that are emitted direct in the main
- //! compiler code, rather than using their own custom pass. Those
- //! lints are all available in `rustc_lint::builtin`.
- use lint::{LintPass, LintArray};
- declare_lint! {
- pub UNUSED_IMPORTS,
- Warn,
- "imports that are never used"
- }
- declare_lint! {
- pub UNUSED_EXTERN_CRATES,
- Allow,
- "extern crates that are never used"
- }
- declare_lint! {
- pub UNUSED_QUALIFICATIONS,
- Allow,
- "detects unnecessarily qualified names"
- }
- declare_lint! {
- pub UNKNOWN_LINTS,
- Warn,
- "unrecognized lint attribute"
- }
- declare_lint! {
- pub UNUSED_VARIABLES,
- Warn,
- "detect variables which are not used in any way"
- }
- declare_lint! {
- pub UNUSED_ASSIGNMENTS,
- Warn,
- "detect assignments that will never be read"
- }
- declare_lint! {
- pub DEAD_CODE,
- Warn,
- "detect unused, unexported items"
- }
- declare_lint! {
- pub UNREACHABLE_CODE,
- Warn,
- "detects unreachable code paths"
- }
- declare_lint! {
- pub WARNINGS,
- Warn,
- "mass-change the level for lints which produce warnings"
- }
- declare_lint! {
- pub UNUSED_FEATURES,
- Warn,
- "unused or unknown features found in crate-level #[feature] directives"
- }
- declare_lint! {
- pub STABLE_FEATURES,
- Warn,
- "stable features found in #[feature] directive"
- }
- declare_lint! {
- pub UNKNOWN_CRATE_TYPES,
- Deny,
- "unknown crate type found in #[crate_type] directive"
- }
- declare_lint! {
- pub VARIANT_SIZE_DIFFERENCES,
- Allow,
- "detects enums with widely varying variant sizes"
- }
- declare_lint! {
- pub FAT_PTR_TRANSMUTES,
- Allow,
- "detects transmutes of fat pointers"
- }
- declare_lint! {
- pub TRIVIAL_CASTS,
- Allow,
- "detects trivial casts which could be removed"
- }
- declare_lint! {
- pub TRIVIAL_NUMERIC_CASTS,
- Allow,
- "detects trivial casts of numeric types which could be removed"
- }
- /// Does nothing as a lint pass, but registers some `Lint`s
- /// which are used by other parts of the compiler.
- #[derive(Copy, Clone)]
- pub struct HardwiredLints;
- impl LintPass for HardwiredLints {
- fn get_lints(&self) -> LintArray {
- lint_array!(
- UNUSED_IMPORTS,
- UNUSED_EXTERN_CRATES,
- UNUSED_QUALIFICATIONS,
- UNKNOWN_LINTS,
- UNUSED_VARIABLES,
- UNUSED_ASSIGNMENTS,
- DEAD_CODE,
- UNREACHABLE_CODE,
- WARNINGS,
- UNUSED_FEATURES,
- STABLE_FEATURES,
- UNKNOWN_CRATE_TYPES,
- VARIANT_SIZE_DIFFERENCES,
- FAT_PTR_TRANSMUTES,
- TRIVIAL_CASTS,
- TRIVIAL_NUMERIC_CASTS
- )
- }
- }