use rustc::session::Session;
use rustc::ty::query::Providers;
use rustc::ty::TyCtxt;
+use rustc_ast::ast::Attribute;
use rustc_attr::{self as attr, ConstStability, Stability};
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
use rustc_errors::struct_span_err;
use rustc_infer::traits::misc::can_type_implement_copy;
use rustc_span::symbol::{sym, Symbol};
use rustc_span::Span;
-use syntax::ast::Attribute;
use std::cmp::Ordering;
use std::mem::replace;
// optional. They inherit stability from their parents when unannotated.
hir::ItemKind::Impl { of_trait: None, .. } | hir::ItemKind::ForeignMod(..) => {}
- _ => self.check_missing_stability(i.hir_id, i.span, i.kind.descriptive_variant()),
+ _ => self.check_missing_stability(i.hir_id, i.span, i.kind.descr()),
}
intravisit::walk_item(self, i)
let trait_item_def_id = self
.tcx
.associated_items(trait_did)
- .iter()
- .find(|item| item.ident.name == impl_item.ident.name)
+ .filter_by_name_unhygienic(impl_item.ident.name)
+ .next()
.map(|item| item.def_id);
if let Some(def_id) = trait_item_def_id {
// Pass `None` to skip deprecation warnings.
.emit();
} else {
let param_env = self.tcx.param_env(def_id);
- if !can_type_implement_copy(self.tcx, param_env, ty).is_ok() {
+ if can_type_implement_copy(self.tcx, param_env, ty).is_err() {
feature_err(
&self.tcx.sess.parse_sess,
sym::untagged_unions,