Skip to content

Commit 8c94aa6

Browse files
committed
Move HardwiredLints in librustc_lint.
1 parent 30f6ee7 commit 8c94aa6

File tree

3 files changed

+72
-71
lines changed

3 files changed

+72
-71
lines changed

src/librustc/lint/builtin.rs

+1-68
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//! compiler code, rather than using their own custom pass. Those
55
//! lints are all available in `rustc_lint::builtin`.
66
7-
use crate::lint::{FutureIncompatibleInfo, LateLintPass, LintArray, LintPass};
7+
use crate::lint::FutureIncompatibleInfo;
88
use crate::middle::stability;
99
use crate::session::Session;
1010
use errors::{pluralize, Applicability, DiagnosticBuilder};
@@ -13,7 +13,6 @@ use rustc_span::edition::Edition;
1313
use rustc_span::source_map::Span;
1414
use rustc_span::symbol::Symbol;
1515
use syntax::ast;
16-
use syntax::early_buffered_lints::{ILL_FORMED_ATTRIBUTE_INPUT, META_VARIABLE_MISUSE};
1716

1817
declare_lint! {
1918
pub EXCEEDING_BITSHIFTS,
@@ -443,70 +442,6 @@ declare_lint! {
443442
};
444443
}
445444

446-
declare_lint_pass! {
447-
/// Does nothing as a lint pass, but registers some `Lint`s
448-
/// that are used by other parts of the compiler.
449-
HardwiredLints => [
450-
ILLEGAL_FLOATING_POINT_LITERAL_PATTERN,
451-
EXCEEDING_BITSHIFTS,
452-
UNUSED_IMPORTS,
453-
UNUSED_EXTERN_CRATES,
454-
UNUSED_QUALIFICATIONS,
455-
UNKNOWN_LINTS,
456-
UNUSED_VARIABLES,
457-
UNUSED_ASSIGNMENTS,
458-
DEAD_CODE,
459-
UNREACHABLE_CODE,
460-
UNREACHABLE_PATTERNS,
461-
OVERLAPPING_PATTERNS,
462-
UNUSED_MACROS,
463-
WARNINGS,
464-
UNUSED_FEATURES,
465-
STABLE_FEATURES,
466-
UNKNOWN_CRATE_TYPES,
467-
TRIVIAL_CASTS,
468-
TRIVIAL_NUMERIC_CASTS,
469-
PRIVATE_IN_PUBLIC,
470-
EXPORTED_PRIVATE_DEPENDENCIES,
471-
PUB_USE_OF_PRIVATE_EXTERN_CRATE,
472-
INVALID_TYPE_PARAM_DEFAULT,
473-
CONST_ERR,
474-
RENAMED_AND_REMOVED_LINTS,
475-
SAFE_PACKED_BORROWS,
476-
PATTERNS_IN_FNS_WITHOUT_BODY,
477-
MISSING_FRAGMENT_SPECIFIER,
478-
LATE_BOUND_LIFETIME_ARGUMENTS,
479-
ORDER_DEPENDENT_TRAIT_OBJECTS,
480-
DEPRECATED,
481-
UNUSED_UNSAFE,
482-
UNUSED_MUT,
483-
UNCONDITIONAL_RECURSION,
484-
SINGLE_USE_LIFETIMES,
485-
UNUSED_LIFETIMES,
486-
UNUSED_LABELS,
487-
TYVAR_BEHIND_RAW_POINTER,
488-
ELIDED_LIFETIMES_IN_PATHS,
489-
BARE_TRAIT_OBJECTS,
490-
ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
491-
UNSTABLE_NAME_COLLISIONS,
492-
IRREFUTABLE_LET_PATTERNS,
493-
INTRA_DOC_LINK_RESOLUTION_FAILURE,
494-
MISSING_DOC_CODE_EXAMPLES,
495-
PRIVATE_DOC_TESTS,
496-
WHERE_CLAUSES_OBJECT_SAFETY,
497-
PROC_MACRO_DERIVE_RESOLUTION_FALLBACK,
498-
MACRO_USE_EXTERN_CRATE,
499-
MACRO_EXPANDED_MACRO_EXPORTS_ACCESSED_BY_ABSOLUTE_PATHS,
500-
ILL_FORMED_ATTRIBUTE_INPUT,
501-
META_VARIABLE_MISUSE,
502-
DEPRECATED_IN_FUTURE,
503-
AMBIGUOUS_ASSOCIATED_ITEMS,
504-
MUTABLE_BORROW_RESERVATION_CONFLICT,
505-
INDIRECT_STRUCTURAL_MATCH,
506-
SOFT_UNSTABLE,
507-
]
508-
}
509-
510445
// this could be a closure, but then implementing derive traits
511446
// becomes hacky (and it gets allocated)
512447
#[derive(PartialEq, RustcEncodable, RustcDecodable, Debug)]
@@ -646,5 +581,3 @@ impl BuiltinLintDiagnostics {
646581
}
647582
}
648583
}
649-
650-
impl<'a, 'tcx> LateLintPass<'a, 'tcx> for HardwiredLints {}

src/librustc_lint/builtin.rs

+67
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ use rustc_span::symbol::{kw, sym, Symbol};
4343
use rustc_span::{BytePos, Span};
4444
use syntax::ast::{self, Expr};
4545
use syntax::attr::{self, HasAttrs};
46+
use syntax::early_buffered_lints::{ILL_FORMED_ATTRIBUTE_INPUT, META_VARIABLE_MISUSE};
4647
use syntax::errors::{Applicability, DiagnosticBuilder};
4748
use syntax::print::pprust::{self, expr_to_string};
4849
use syntax::ptr::P;
@@ -59,6 +60,72 @@ use log::debug;
5960
// hardwired lints from librustc
6061
pub use lint::builtin::*;
6162

63+
declare_lint_pass! {
64+
/// Does nothing as a lint pass, but registers some `Lint`s
65+
/// that are used by other parts of the compiler.
66+
HardwiredLints => [
67+
ILLEGAL_FLOATING_POINT_LITERAL_PATTERN,
68+
EXCEEDING_BITSHIFTS,
69+
UNUSED_IMPORTS,
70+
UNUSED_EXTERN_CRATES,
71+
UNUSED_QUALIFICATIONS,
72+
UNKNOWN_LINTS,
73+
UNUSED_VARIABLES,
74+
UNUSED_ASSIGNMENTS,
75+
DEAD_CODE,
76+
UNREACHABLE_CODE,
77+
UNREACHABLE_PATTERNS,
78+
OVERLAPPING_PATTERNS,
79+
UNUSED_MACROS,
80+
WARNINGS,
81+
UNUSED_FEATURES,
82+
STABLE_FEATURES,
83+
UNKNOWN_CRATE_TYPES,
84+
TRIVIAL_CASTS,
85+
TRIVIAL_NUMERIC_CASTS,
86+
PRIVATE_IN_PUBLIC,
87+
EXPORTED_PRIVATE_DEPENDENCIES,
88+
PUB_USE_OF_PRIVATE_EXTERN_CRATE,
89+
INVALID_TYPE_PARAM_DEFAULT,
90+
CONST_ERR,
91+
RENAMED_AND_REMOVED_LINTS,
92+
SAFE_PACKED_BORROWS,
93+
PATTERNS_IN_FNS_WITHOUT_BODY,
94+
MISSING_FRAGMENT_SPECIFIER,
95+
LATE_BOUND_LIFETIME_ARGUMENTS,
96+
ORDER_DEPENDENT_TRAIT_OBJECTS,
97+
DEPRECATED,
98+
UNUSED_UNSAFE,
99+
UNUSED_MUT,
100+
UNCONDITIONAL_RECURSION,
101+
SINGLE_USE_LIFETIMES,
102+
UNUSED_LIFETIMES,
103+
UNUSED_LABELS,
104+
TYVAR_BEHIND_RAW_POINTER,
105+
ELIDED_LIFETIMES_IN_PATHS,
106+
BARE_TRAIT_OBJECTS,
107+
ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
108+
UNSTABLE_NAME_COLLISIONS,
109+
IRREFUTABLE_LET_PATTERNS,
110+
INTRA_DOC_LINK_RESOLUTION_FAILURE,
111+
MISSING_DOC_CODE_EXAMPLES,
112+
PRIVATE_DOC_TESTS,
113+
WHERE_CLAUSES_OBJECT_SAFETY,
114+
PROC_MACRO_DERIVE_RESOLUTION_FALLBACK,
115+
MACRO_USE_EXTERN_CRATE,
116+
MACRO_EXPANDED_MACRO_EXPORTS_ACCESSED_BY_ABSOLUTE_PATHS,
117+
ILL_FORMED_ATTRIBUTE_INPUT,
118+
META_VARIABLE_MISUSE,
119+
DEPRECATED_IN_FUTURE,
120+
AMBIGUOUS_ASSOCIATED_ITEMS,
121+
MUTABLE_BORROW_RESERVATION_CONFLICT,
122+
INDIRECT_STRUCTURAL_MATCH,
123+
SOFT_UNSTABLE,
124+
]
125+
}
126+
127+
impl<'a, 'tcx> LateLintPass<'a, 'tcx> for HardwiredLints {}
128+
62129
declare_lint! {
63130
WHILE_TRUE,
64131
Warn,

src/librustdoc/core.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,9 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
253253
let cpath = Some(input.clone());
254254
let input = Input::File(input);
255255

256-
let intra_link_resolution_failure_name = lint::builtin::INTRA_DOC_LINK_RESOLUTION_FAILURE.name;
257-
let warnings_lint_name = lint::builtin::WARNINGS.name;
256+
let intra_link_resolution_failure_name =
257+
rustc_lint::builtin::INTRA_DOC_LINK_RESOLUTION_FAILURE.name;
258+
let warnings_lint_name = rustc_lint::builtin::WARNINGS.name;
258259
let missing_docs = rustc_lint::builtin::MISSING_DOCS.name;
259260
let missing_doc_example = rustc_lint::builtin::MISSING_DOC_CODE_EXAMPLES.name;
260261
let private_doc_tests = rustc_lint::builtin::PRIVATE_DOC_TESTS.name;
@@ -272,7 +273,7 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
272273
whitelisted_lints.extend(lint_opts.iter().map(|(lint, _)| lint).cloned());
273274

274275
let lints = || {
275-
lint::builtin::HardwiredLints::get_lints()
276+
rustc_lint::builtin::HardwiredLints::get_lints()
276277
.into_iter()
277278
.chain(rustc_lint::SoftLints::get_lints().into_iter())
278279
};

0 commit comments

Comments
 (0)