Merge pull request #1337 from oli-obk/master
fix ice in `len_zero` lint when type has no inherent impls at all
This commit is contained in:
commit
3edf712434
@ -194,11 +194,11 @@ fn has_is_empty(cx: &LateContext, expr: &Expr) -> bool {
|
||||
|
||||
/// Check the inherent impl's items for an `is_empty(self)` method.
|
||||
fn has_is_empty_impl(cx: &LateContext, id: DefId) -> bool {
|
||||
cx.tcx.inherent_impls.borrow()[&id].iter().any(|imp| {
|
||||
cx.tcx.inherent_impls.borrow().get(&id).map_or(false, |impls| impls.iter().any(|imp| {
|
||||
cx.tcx.impl_or_trait_items(*imp).iter().any(|item| {
|
||||
is_is_empty(&cx.tcx.impl_or_trait_item(*item))
|
||||
})
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
let ty = &walk_ptrs_ty(cx.tcx.expr_ty(expr));
|
||||
|
17
tests/ice_exacte_size.rs
Normal file
17
tests/ice_exacte_size.rs
Normal file
@ -0,0 +1,17 @@
|
||||
#![feature(plugin)]
|
||||
#![plugin(clippy)]
|
||||
#![deny(clippy)]
|
||||
|
||||
#[allow(dead_code)]
|
||||
struct Foo;
|
||||
|
||||
impl Iterator for Foo {
|
||||
type Item = ();
|
||||
|
||||
fn next(&mut self) -> Option<()> {
|
||||
let _ = self.len() == 0;
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
impl ExactSizeIterator for Foo { }
|
Loading…
Reference in New Issue
Block a user