tcx.at(it.span).super_predicates_of(def_id);
tcx.predicates_of(def_id);
},
+ hir::ItemTraitAlias(..) => {
+ tcx.generics_of(def_id);
+ tcx.trait_def(def_id);
+ tcx.predicates_of(def_id);
+ },
hir::ItemStruct(ref struct_def, _) |
hir::ItemUnion(ref struct_def, _) => {
tcx.generics_of(def_id);
let (generics, bounds) = match item.node {
hir::ItemTrait(.., ref generics, ref supertraits, _) => (generics, supertraits),
+ hir::ItemTraitAlias(ref generics, ref supertraits) => (generics, supertraits),
_ => span_bug!(item.span,
"super_predicates invoked on non-trait"),
};
let unsafety = match item.node {
hir::ItemTrait(_, unsafety, ..) => unsafety,
+ hir::ItemTraitAlias(..) => hir::Unsafety::Normal,
_ => span_bug!(item.span, "trait_def_of_item invoked on non-trait"),
};
(generics, None)
}
- ItemTrait(_, _, ref generics, ..) => {
+ ItemTrait(_, _, ref generics, ..) | ItemTraitAlias(ref generics, ..) => {
// Add in the self type parameter.
//
// Something of a hack: use the node id for the trait, also as
tcx.mk_adt(def, substs)
}
ItemAutoImpl(..) |
- ItemTrait(..) |
+ ItemTrait(..) | ItemTraitAlias(..) |
ItemMod(..) |
ItemForeignMod(..) |
ItemGlobalAsm(..) |