[type_complexity]: Fix duplicate errors
This commit is contained in:
parent
9e02abec3e
commit
71db2d1451
@ -12,8 +12,8 @@
|
||||
use rustc_hir as hir;
|
||||
use rustc_hir::intravisit::FnKind;
|
||||
use rustc_hir::{
|
||||
Body, FnDecl, FnRetTy, GenericArg, ImplItem, ImplItemKind, Item, ItemKind, LetStmt, MutTy, QPath, TraitItem,
|
||||
TraitItemKind, TyKind,
|
||||
Body, FnDecl, FnRetTy, GenericArg, ImplItem, ImplItemKind, Item, ItemKind, LetStmt, MutTy, QPath, TraitFn,
|
||||
TraitItem, TraitItemKind, TyKind,
|
||||
};
|
||||
use rustc_lint::{LateContext, LateLintPass};
|
||||
use rustc_session::impl_lint_pass;
|
||||
@ -420,7 +420,13 @@ fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &TraitItem<'tcx>) {
|
||||
TraitItemKind::Const(ty, _) | TraitItemKind::Type(_, Some(ty)) => {
|
||||
self.check_ty(cx, ty, context);
|
||||
},
|
||||
TraitItemKind::Fn(ref sig, _) => self.check_fn_decl(cx, sig.decl, context),
|
||||
TraitItemKind::Fn(ref sig, trait_method) => {
|
||||
// Check only methods without body
|
||||
// Methods with body are covered by check_fn.
|
||||
if let TraitFn::Required(_) = trait_method {
|
||||
self.check_fn_decl(cx, sig.decl, context);
|
||||
}
|
||||
},
|
||||
TraitItemKind::Type(..) => (),
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
//@compile-flags: -Zdeduplicate-diagnostics=yes
|
||||
|
||||
#![warn(clippy::all)]
|
||||
#![allow(unused, clippy::needless_pass_by_value, clippy::vec_box, clippy::useless_vec)]
|
||||
#![feature(associated_type_defaults)]
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:9:12
|
||||
--> tests/ui/type_complexity.rs:7:12
|
||||
|
|
||||
LL | const CST: (u32, (u32, (u32, (u32, u32)))) = (0, (0, (0, (0, 0))));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -8,85 +8,85 @@ LL | const CST: (u32, (u32, (u32, (u32, u32)))) = (0, (0, (0, (0, 0))));
|
||||
= help: to override `-D warnings` add `#[allow(clippy::type_complexity)]`
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:12:12
|
||||
--> tests/ui/type_complexity.rs:10:12
|
||||
|
|
||||
LL | static ST: (u32, (u32, (u32, (u32, u32)))) = (0, (0, (0, (0, 0))));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:16:8
|
||||
--> tests/ui/type_complexity.rs:14:8
|
||||
|
|
||||
LL | f: Vec<Vec<Box<(u32, u32, u32, u32)>>>,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:20:11
|
||||
--> tests/ui/type_complexity.rs:18:11
|
||||
|
|
||||
LL | struct Ts(Vec<Vec<Box<(u32, u32, u32, u32)>>>);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:24:11
|
||||
--> tests/ui/type_complexity.rs:22:11
|
||||
|
|
||||
LL | Tuple(Vec<Vec<Box<(u32, u32, u32, u32)>>>),
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:26:17
|
||||
--> tests/ui/type_complexity.rs:24:17
|
||||
|
|
||||
LL | Struct { f: Vec<Vec<Box<(u32, u32, u32, u32)>>> },
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:31:14
|
||||
--> tests/ui/type_complexity.rs:29:14
|
||||
|
|
||||
LL | const A: (u32, (u32, (u32, (u32, u32)))) = (0, (0, (0, (0, 0))));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:33:30
|
||||
--> tests/ui/type_complexity.rs:31:30
|
||||
|
|
||||
LL | fn impl_method(&self, p: Vec<Vec<Box<(u32, u32, u32, u32)>>>) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:38:14
|
||||
--> tests/ui/type_complexity.rs:36:14
|
||||
|
|
||||
LL | const A: Vec<Vec<Box<(u32, u32, u32, u32)>>>;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:40:14
|
||||
--> tests/ui/type_complexity.rs:38:14
|
||||
|
|
||||
LL | type B = Vec<Vec<Box<(u32, u32, u32, u32)>>>;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:42:25
|
||||
--> tests/ui/type_complexity.rs:40:25
|
||||
|
|
||||
LL | fn method(&self, p: Vec<Vec<Box<(u32, u32, u32, u32)>>>);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:44:29
|
||||
--> tests/ui/type_complexity.rs:42:29
|
||||
|
|
||||
LL | fn def_method(&self, p: Vec<Vec<Box<(u32, u32, u32, u32)>>>) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:57:15
|
||||
--> tests/ui/type_complexity.rs:55:15
|
||||
|
|
||||
LL | fn test1() -> Vec<Vec<Box<(u32, u32, u32, u32)>>> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:62:14
|
||||
--> tests/ui/type_complexity.rs:60:14
|
||||
|
|
||||
LL | fn test2(_x: Vec<Vec<Box<(u32, u32, u32, u32)>>>) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: very complex type used. Consider factoring parts into `type` definitions
|
||||
--> tests/ui/type_complexity.rs:66:13
|
||||
--> tests/ui/type_complexity.rs:64:13
|
||||
|
|
||||
LL | let _y: Vec<Vec<Box<(u32, u32, u32, u32)>>> = vec![];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
Loading…
Reference in New Issue
Block a user