use rustc::traits::misc::can_type_implement_copy;
use rustc::ty::query::Providers;
use rustc::ty::TyCtxt;
+use rustc_attr::{self as attr, Stability};
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
use rustc_errors::struct_span_err;
use rustc_hir as hir;
use rustc_span::symbol::{sym, Symbol};
use rustc_span::Span;
use syntax::ast::Attribute;
-use syntax::attr::{self, Stability};
use std::cmp::Ordering;
use std::mem::replace;
use std::num::NonZeroU32;
-use rustc_error_codes::*;
-
#[derive(PartialEq)]
enum AnnotationKind {
// Annotation is required if not inherited from unstable parents
// Put the active features into a map for quick lookup.
index.active_features = active_lib_features
.iter()
- .map(|&(ref s, ..)| s.clone())
- .chain(active_lang_features.iter().map(|&(ref s, ..)| s.clone()))
+ .map(|&(s, ..)| s)
+ .chain(active_lang_features.iter().map(|&(s, ..)| s))
.collect();
{
let trait_item_def_id = self
.tcx
.associated_items(trait_did)
+ .iter()
.find(|item| item.ident.name == impl_item.ident.name)
.map(|item| item.def_id);
if let Some(def_id) = trait_item_def_id {