diff --git a/src/librustc/middle/traits/object_safety.rs b/src/librustc/middle/traits/object_safety.rs index 3c6e939833fff..3a2602cd5b448 100644 --- a/src/librustc/middle/traits/object_safety.rs +++ b/src/librustc/middle/traits/object_safety.rs @@ -92,14 +92,13 @@ fn object_safety_violations_for_trait<'tcx>(tcx: &ty::ctxt<'tcx>, // Check methods for violations. let mut violations: Vec<_> = tcx.trait_items(trait_def_id).iter() - .flat_map(|item| { + .filter_map(|item| { match *item { ty::MethodTraitItem(ref m) => { object_safety_violation_for_method(tcx, trait_def_id, &**m) .map(|code| ObjectSafetyViolation::Method(m.clone(), code)) - .into_iter() } - _ => None.into_iter(), + _ => None, } }) .collect();