rustdoc: render for<>
param lists of cross-crate trait-object types
This commit is contained in:
parent
2d9755fa21
commit
1ac7034481
@ -12,7 +12,7 @@ pub(crate) mod utils;
|
|||||||
|
|
||||||
use rustc_ast as ast;
|
use rustc_ast as ast;
|
||||||
use rustc_attr as attr;
|
use rustc_attr as attr;
|
||||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexSet};
|
||||||
use rustc_hir as hir;
|
use rustc_hir as hir;
|
||||||
use rustc_hir::def::{CtorKind, DefKind, Res};
|
use rustc_hir::def::{CtorKind, DefKind, Res};
|
||||||
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
||||||
@ -1710,8 +1710,25 @@ pub(crate) fn clean_middle_ty<'tcx>(
|
|||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
let late_bound_regions: FxIndexSet<_> = obj
|
||||||
|
.iter()
|
||||||
|
.flat_map(|pb| pb.bound_vars())
|
||||||
|
.filter_map(|br| match br {
|
||||||
|
ty::BoundVariableKind::Region(ty::BrNamed(_, name))
|
||||||
|
if name != kw::UnderscoreLifetime =>
|
||||||
|
{
|
||||||
|
Some(GenericParamDef {
|
||||||
|
name,
|
||||||
|
kind: GenericParamDefKind::Lifetime { outlives: vec![] },
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_ => None,
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
let late_bound_regions = late_bound_regions.into_iter().collect();
|
||||||
|
|
||||||
let path = external_path(cx, did, false, bindings, substs);
|
let path = external_path(cx, did, false, bindings, substs);
|
||||||
bounds.insert(0, PolyTrait { trait_: path, generic_params: Vec::new() });
|
bounds.insert(0, PolyTrait { trait_: path, generic_params: late_bound_regions });
|
||||||
|
|
||||||
DynTrait(bounds, lifetime)
|
DynTrait(bounds, lifetime)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user