summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/clippy_lints/src/misc_early/builtin_type_shadow.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/tools/clippy/clippy_lints/src/misc_early/builtin_type_shadow.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/tools/clippy/clippy_lints/src/misc_early/builtin_type_shadow.rs b/src/tools/clippy/clippy_lints/src/misc_early/builtin_type_shadow.rs
new file mode 100644
index 000000000..9f6b0bdc7
--- /dev/null
+++ b/src/tools/clippy/clippy_lints/src/misc_early/builtin_type_shadow.rs
@@ -0,0 +1,19 @@
+use clippy_utils::diagnostics::span_lint;
+use rustc_ast::ast::{GenericParam, GenericParamKind};
+use rustc_hir::PrimTy;
+use rustc_lint::EarlyContext;
+
+use super::BUILTIN_TYPE_SHADOW;
+
+pub(super) fn check(cx: &EarlyContext<'_>, param: &GenericParam) {
+ if let GenericParamKind::Type { .. } = param.kind {
+ if let Some(prim_ty) = PrimTy::from_name(param.ident.name) {
+ span_lint(
+ cx,
+ BUILTIN_TYPE_SHADOW,
+ param.ident.span,
+ &format!("this generic shadows the built-in type `{}`", prim_ty.name()),
+ );
+ }
+ }
+}