diff --git a/src/librustc/lint/internal.rs b/src/librustc/lint/internal.rs index d4cf18123c3..22386b1c7a5 100644 --- a/src/librustc/lint/internal.rs +++ b/src/librustc/lint/internal.rs @@ -1,21 +1,11 @@ -// Copyright 2012-2018 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - //! Some lints that are only useful in the compiler or crates that use compiler internals, such as //! Clippy. -use errors::Applicability; -use hir::{Expr, ExprKind, PatKind, Path, QPath, Ty, TyKind}; -use lint::{ +use crate::hir::{Expr, ExprKind, PatKind, Path, QPath, Ty, TyKind}; +use crate::lint::{ EarlyContext, EarlyLintPass, LateContext, LateLintPass, LintArray, LintContext, LintPass, }; +use errors::Applicability; use rustc_data_structures::fx::FxHashMap; use syntax::ast::Ident; @@ -42,6 +32,10 @@ impl LintPass for DefaultHashTypes { fn get_lints(&self) -> LintArray { lint_array!(DEFAULT_HASH_TYPES) } + + fn name(&self) -> &'static str { + "DefaultHashTypes" + } } impl EarlyLintPass for DefaultHashTypes { @@ -53,7 +47,7 @@ impl EarlyLintPass for DefaultHashTypes { replace, ident_string ); let mut db = cx.struct_span_lint(DEFAULT_HASH_TYPES, ident.span, &msg); - db.span_suggestion_with_applicability( + db.span_suggestion( ident.span, "use", replace.to_string(), @@ -80,6 +74,10 @@ impl LintPass for TyKindUsage { fn get_lints(&self) -> LintArray { lint_array!(USAGE_OF_TY_TYKIND) } + + fn name(&self) -> &'static str { + "TyKindUsage" + } } impl<'a, 'tcx> LateLintPass<'a, 'tcx> for TyKindUsage { @@ -124,12 +122,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for TyKindUsage { path.span, "usage of `ty::TyKind::`", ) - .span_suggestion_with_applicability( + .span_suggestion( path.span, "try using ty:: directly", "ty".to_string(), Applicability::MaybeIncorrect, // ty maybe needs an import - ).emit(); + ) + .emit(); } } } diff --git a/src/test/ui-fulldeps/internal-lints/default_hash_types.rs b/src/test/ui-fulldeps/internal-lints/default_hash_types.rs index 6d32744145a..a6b0dbafbeb 100644 --- a/src/test/ui-fulldeps/internal-lints/default_hash_types.rs +++ b/src/test/ui-fulldeps/internal-lints/default_hash_types.rs @@ -1,13 +1,3 @@ -// Copyright 2018 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - // compile-flags: -Z internal-lints #![feature(rustc_private)] diff --git a/src/test/ui-fulldeps/internal-lints/default_hash_types.stderr b/src/test/ui-fulldeps/internal-lints/default_hash_types.stderr index 4f40c712aec..323a3880d1c 100644 --- a/src/test/ui-fulldeps/internal-lints/default_hash_types.stderr +++ b/src/test/ui-fulldeps/internal-lints/default_hash_types.stderr @@ -1,5 +1,5 @@ warning: Prefer FxHashMap over HashMap, it has better performance - --> $DIR/default_hash_types.rs:18:24 + --> $DIR/default_hash_types.rs:8:24 | LL | use std::collections::{HashMap, HashSet}; | ^^^^^^^ help: use: `FxHashMap` @@ -8,7 +8,7 @@ LL | use std::collections::{HashMap, HashSet}; = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary warning: Prefer FxHashSet over HashSet, it has better performance - --> $DIR/default_hash_types.rs:18:33 + --> $DIR/default_hash_types.rs:8:33 | LL | use std::collections::{HashMap, HashSet}; | ^^^^^^^ help: use: `FxHashSet` @@ -16,20 +16,20 @@ LL | use std::collections::{HashMap, HashSet}; = note: a `use rustc_data_structures::fx::FxHashSet` may be necessary error: Prefer FxHashMap over HashMap, it has better performance - --> $DIR/default_hash_types.rs:24:15 + --> $DIR/default_hash_types.rs:14:15 | LL | let _map: HashMap = HashMap::default(); | ^^^^^^^ help: use: `FxHashMap` | note: lint level defined here - --> $DIR/default_hash_types.rs:22:8 + --> $DIR/default_hash_types.rs:12:8 | LL | #[deny(default_hash_types)] | ^^^^^^^^^^^^^^^^^^ = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary error: Prefer FxHashMap over HashMap, it has better performance - --> $DIR/default_hash_types.rs:24:41 + --> $DIR/default_hash_types.rs:14:41 | LL | let _map: HashMap = HashMap::default(); | ^^^^^^^ help: use: `FxHashMap` @@ -37,7 +37,7 @@ LL | let _map: HashMap = HashMap::default(); = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary error: Prefer FxHashSet over HashSet, it has better performance - --> $DIR/default_hash_types.rs:27:15 + --> $DIR/default_hash_types.rs:17:15 | LL | let _set: HashSet = HashSet::default(); | ^^^^^^^ help: use: `FxHashSet` @@ -45,7 +45,7 @@ LL | let _set: HashSet = HashSet::default(); = note: a `use rustc_data_structures::fx::FxHashSet` may be necessary error: Prefer FxHashSet over HashSet, it has better performance - --> $DIR/default_hash_types.rs:27:33 + --> $DIR/default_hash_types.rs:17:33 | LL | let _set: HashSet = HashSet::default(); | ^^^^^^^ help: use: `FxHashSet` diff --git a/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.rs b/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.rs index 9962d9c6bcb..a1e08cd3b95 100644 --- a/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.rs +++ b/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.rs @@ -1,13 +1,3 @@ -// Copyright 2018 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - // compile-flags: -Z internal-lints #![feature(rustc_private)] diff --git a/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.stderr b/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.stderr index 82a8c715560..d3ad5e1264a 100644 --- a/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.stderr +++ b/src/test/ui-fulldeps/internal-lints/ty_tykind_usage.stderr @@ -1,191 +1,191 @@ error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:21:15 + --> $DIR/ty_tykind_usage.rs:11:15 | LL | let sty = TyKind::Bool; //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` | note: lint level defined here - --> $DIR/ty_tykind_usage.rs:19:8 + --> $DIR/ty_tykind_usage.rs:9:8 | LL | #[deny(usage_of_ty_tykind)] | ^^^^^^^^^^^^^^^^^^ error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:24:9 + --> $DIR/ty_tykind_usage.rs:14:9 | LL | TyKind::Bool => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:25:9 + --> $DIR/ty_tykind_usage.rs:15:9 | LL | TyKind::Char => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:26:9 + --> $DIR/ty_tykind_usage.rs:16:9 | LL | TyKind::Int(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:27:9 + --> $DIR/ty_tykind_usage.rs:17:9 | LL | TyKind::Uint(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:28:9 + --> $DIR/ty_tykind_usage.rs:18:9 | LL | TyKind::Float(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:29:9 + --> $DIR/ty_tykind_usage.rs:19:9 | LL | TyKind::Adt(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:30:9 + --> $DIR/ty_tykind_usage.rs:20:9 | LL | TyKind::Foreign(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:31:9 + --> $DIR/ty_tykind_usage.rs:21:9 | LL | TyKind::Str => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:32:9 + --> $DIR/ty_tykind_usage.rs:22:9 | LL | TyKind::Array(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:33:9 + --> $DIR/ty_tykind_usage.rs:23:9 | LL | TyKind::Slice(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:34:9 + --> $DIR/ty_tykind_usage.rs:24:9 | LL | TyKind::RawPtr(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:35:9 + --> $DIR/ty_tykind_usage.rs:25:9 | LL | TyKind::Ref(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:36:9 + --> $DIR/ty_tykind_usage.rs:26:9 | LL | TyKind::FnDef(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:37:9 + --> $DIR/ty_tykind_usage.rs:27:9 | LL | TyKind::FnPtr(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:38:9 + --> $DIR/ty_tykind_usage.rs:28:9 | LL | TyKind::Dynamic(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:39:9 + --> $DIR/ty_tykind_usage.rs:29:9 | LL | TyKind::Closure(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:40:9 + --> $DIR/ty_tykind_usage.rs:30:9 | LL | TyKind::Generator(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:41:9 + --> $DIR/ty_tykind_usage.rs:31:9 | LL | TyKind::GeneratorWitness(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:42:9 + --> $DIR/ty_tykind_usage.rs:32:9 | LL | TyKind::Never => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:43:9 + --> $DIR/ty_tykind_usage.rs:33:9 | LL | TyKind::Tuple(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:44:9 + --> $DIR/ty_tykind_usage.rs:34:9 | LL | TyKind::Projection(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:45:9 + --> $DIR/ty_tykind_usage.rs:35:9 | LL | TyKind::UnnormalizedProjection(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:46:9 + --> $DIR/ty_tykind_usage.rs:36:9 | LL | TyKind::Opaque(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:47:9 + --> $DIR/ty_tykind_usage.rs:37:9 | LL | TyKind::Param(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:48:9 + --> $DIR/ty_tykind_usage.rs:38:9 | LL | TyKind::Bound(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:49:9 + --> $DIR/ty_tykind_usage.rs:39:9 | LL | TyKind::Placeholder(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:50:9 + --> $DIR/ty_tykind_usage.rs:40:9 | LL | TyKind::Infer(..) => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:51:9 + --> $DIR/ty_tykind_usage.rs:41:9 | LL | TyKind::Error => (), //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind::` - --> $DIR/ty_tykind_usage.rs:56:12 + --> $DIR/ty_tykind_usage.rs:46:12 | LL | if let TyKind::Int(int_ty) = sty {} //~ ERROR usage of `ty::TyKind::` | ^^^^^^ help: try using ty:: directly: `ty` error: usage of `ty::TyKind` - --> $DIR/ty_tykind_usage.rs:58:24 + --> $DIR/ty_tykind_usage.rs:48:24 | LL | fn ty_kind(ty_bad: TyKind<'_>, ty_good: Ty<'_>) {} //~ ERROR usage of `ty::TyKind` | ^^^^^^^^^^