Consolidate ty::Generics
This commit is contained in:
parent
eca0da5985
commit
fe0c119e7d
27 changed files with 186 additions and 126 deletions
|
@ -225,30 +225,28 @@ impl<'a, 'tcx, 'rcx> AutoTraitFinder<'a, 'tcx, 'rcx> {
|
|||
|
||||
fn generics_to_path_params(&self, generics: ty::Generics) -> hir::PathParameters {
|
||||
let lifetimes = HirVec::from_vec(
|
||||
generics
|
||||
.regions
|
||||
.iter()
|
||||
.map(|p| {
|
||||
let name = if p.name == "" {
|
||||
hir::LifetimeName::Static
|
||||
} else {
|
||||
hir::LifetimeName::Name(p.name.as_symbol())
|
||||
};
|
||||
generics.lifetimes()
|
||||
.iter()
|
||||
.map(|p| {
|
||||
let name = if p.name == "" {
|
||||
hir::LifetimeName::Static
|
||||
} else {
|
||||
hir::LifetimeName::Name(p.name.as_symbol())
|
||||
};
|
||||
|
||||
hir::Lifetime {
|
||||
id: ast::DUMMY_NODE_ID,
|
||||
span: DUMMY_SP,
|
||||
name,
|
||||
}
|
||||
})
|
||||
.collect(),
|
||||
hir::Lifetime {
|
||||
id: ast::DUMMY_NODE_ID,
|
||||
span: DUMMY_SP,
|
||||
name,
|
||||
}
|
||||
})
|
||||
.collect(),
|
||||
);
|
||||
let types = HirVec::from_vec(
|
||||
generics
|
||||
.types
|
||||
.iter()
|
||||
.map(|p| P(self.ty_param_to_ty(p.clone())))
|
||||
.collect(),
|
||||
generics.types()
|
||||
.into_iter()
|
||||
.map(|p| P(self.ty_param_to_ty(p.clone())))
|
||||
.collect(),
|
||||
);
|
||||
|
||||
hir::PathParameters {
|
||||
|
|
|
@ -1800,7 +1800,7 @@ impl<'a, 'tcx> Clean<Generics> for (&'a ty::Generics,
|
|||
// Bounds in the type_params and lifetimes fields are repeated in the
|
||||
// predicates field (see rustc_typeck::collect::ty_generics), so remove
|
||||
// them.
|
||||
let stripped_typarams = gens.types.iter().filter_map(|tp| {
|
||||
let stripped_typarams = gens.types().iter().filter_map(|tp| {
|
||||
if tp.name == keywords::SelfType.name().as_str() {
|
||||
assert_eq!(tp.index, 0);
|
||||
None
|
||||
|
@ -1849,16 +1849,15 @@ impl<'a, 'tcx> Clean<Generics> for (&'a ty::Generics,
|
|||
// and instead see `where T: Foo + Bar + Sized + 'a`
|
||||
|
||||
Generics {
|
||||
params: gens.regions
|
||||
.clean(cx)
|
||||
.into_iter()
|
||||
.map(|lp| GenericParam::Lifetime(lp))
|
||||
.chain(
|
||||
simplify::ty_params(stripped_typarams)
|
||||
params: gens.lifetimes()
|
||||
.into_iter()
|
||||
.map(|tp| GenericParam::Type(tp))
|
||||
)
|
||||
.collect(),
|
||||
.map(|lp| GenericParam::Lifetime(lp.clean(cx)))
|
||||
.chain(
|
||||
simplify::ty_params(stripped_typarams)
|
||||
.into_iter()
|
||||
.map(|tp| GenericParam::Type(tp))
|
||||
)
|
||||
.collect(),
|
||||
where_predicates: simplify::where_clauses(cx, where_predicates),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue