use arena::TypedArena;
use rustc::ty::{self, TyCtxt};
+use rustc_hir as hir;
+use rustc_hir::itemlikevisit::ItemLikeVisitor;
+use rustc_hir::HirIdMap;
use std::fmt;
-use rustc::hir;
-use rustc::hir::itemlikevisit::ItemLikeVisitor;
-use crate::util::nodemap::HirIdMap;
use self::VarianceTerm::*;
match *self {
ConstantTerm(c1) => write!(f, "{:?}", c1),
TransformTerm(v1, v2) => write!(f, "({:?} \u{00D7} {:?})", v1, v2),
- InferredTerm(id) => {
- write!(f, "[{}]", {
- let InferredIndex(i) = id;
- i
- })
- }
+ InferredTerm(id) => write!(f, "[{}]", {
+ let InferredIndex(i) = id;
+ i
+ }),
}
}
}
let all = vec![
(lang_items.phantom_data(), vec![ty::Covariant]),
(lang_items.unsafe_cell_type(), vec![ty::Invariant]),
- ];
+ ];
all.into_iter() // iterating over (Option<DefId>, Variance)
- .filter(|&(ref d,_)| d.is_some())
- .map(|(d, v)| (d.unwrap(), v)) // (DefId, Variance)
- .filter_map(|(d, v)| tcx.hir().as_local_hir_id(d).map(|n| (n, v))) // (HirId, Variance)
- .collect()
+ .filter(|&(ref d, _)| d.is_some())
+ .map(|(d, v)| (d.unwrap(), v)) // (DefId, Variance)
+ .filter_map(|(d, v)| tcx.hir().as_local_hir_id(d).map(|n| (n, v))) // (HirId, Variance)
+ .collect()
}
impl<'a, 'tcx> TermsContext<'a, 'tcx> {
// for a particular item are assigned continuous indices.
let arena = self.arena;
- self.inferred_terms.extend((start..(start + count)).map(|i| {
- &*arena.alloc(InferredTerm(InferredIndex(i)))
- }));
+ self.inferred_terms.extend(
+ (start..(start + count)).map(|i| &*arena.alloc(InferredTerm(InferredIndex(i)))),
+ );
}
}
impl<'a, 'tcx, 'v> ItemLikeVisitor<'v> for TermsContext<'a, 'tcx> {
- fn visit_item(&mut self, item: &hir::Item) {
- debug!("add_inferreds for item {}",
- self.tcx.hir().node_to_string(item.hir_id));
+ fn visit_item(&mut self, item: &hir::Item<'_>) {
+ debug!("add_inferreds for item {}", self.tcx.hir().node_to_string(item.hir_id));
match item.kind {
- hir::ItemKind::Struct(ref struct_def, _) |
- hir::ItemKind::Union(ref struct_def, _) => {
+ hir::ItemKind::Struct(ref struct_def, _) | hir::ItemKind::Union(ref struct_def, _) => {
self.add_inferreds_for_item(item.hir_id);
if let hir::VariantData::Tuple(..) = *struct_def {
hir::ItemKind::Enum(ref enum_def, _) => {
self.add_inferreds_for_item(item.hir_id);
- for variant in &enum_def.variants {
+ for variant in enum_def.variants {
if let hir::VariantData::Tuple(..) = variant.data {
self.add_inferreds_for_item(variant.data.ctor_hir_id().unwrap());
}
}
hir::ItemKind::ForeignMod(ref foreign_mod) => {
- for foreign_item in &foreign_mod.items {
+ for foreign_item in foreign_mod.items {
if let hir::ForeignItemKind::Fn(..) = foreign_item.kind {
self.add_inferreds_for_item(foreign_item.hir_id);
}
}
}
- fn visit_trait_item(&mut self, trait_item: &hir::TraitItem) {
+ fn visit_trait_item(&mut self, trait_item: &hir::TraitItem<'_>) {
if let hir::TraitItemKind::Method(..) = trait_item.kind {
self.add_inferreds_for_item(trait_item.hir_id);
}
}
- fn visit_impl_item(&mut self, impl_item: &hir::ImplItem) {
+ fn visit_impl_item(&mut self, impl_item: &hir::ImplItem<'_>) {
if let hir::ImplItemKind::Method(..) = impl_item.kind {
self.add_inferreds_for_item(impl_item.hir_id);
}