Use more slicing and slice interning over iterable interning
This commit is contained in:
@@ -276,8 +276,7 @@ fn create_generic_args<'tcx>(
|
|||||||
tcx.impl_trait_header(parent).unwrap().trait_ref.instantiate_identity().args;
|
tcx.impl_trait_header(parent).unwrap().trait_ref.instantiate_identity().args;
|
||||||
|
|
||||||
let trait_args = ty::GenericArgs::identity_for_item(tcx, sig_id);
|
let trait_args = ty::GenericArgs::identity_for_item(tcx, sig_id);
|
||||||
let method_args =
|
let method_args = tcx.mk_args(&trait_args[callee_generics.parent_count..]);
|
||||||
tcx.mk_args_from_iter(trait_args.iter().skip(callee_generics.parent_count));
|
|
||||||
let method_args = build_generic_args(tcx, sig_id, def_id, method_args);
|
let method_args = build_generic_args(tcx, sig_id, def_id, method_args);
|
||||||
|
|
||||||
tcx.mk_args_from_iter(parent_args.iter().chain(method_args))
|
tcx.mk_args_from_iter(parent_args.iter().chain(method_args))
|
||||||
|
|||||||
@@ -588,7 +588,7 @@ impl<'tcx> GenericArgs<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn truncate_to(&self, tcx: TyCtxt<'tcx>, generics: &ty::Generics) -> GenericArgsRef<'tcx> {
|
pub fn truncate_to(&self, tcx: TyCtxt<'tcx>, generics: &ty::Generics) -> GenericArgsRef<'tcx> {
|
||||||
tcx.mk_args_from_iter(self.iter().take(generics.count()))
|
tcx.mk_args(&self[..generics.count()])
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn print_as_list(&self) -> String {
|
pub fn print_as_list(&self) -> String {
|
||||||
|
|||||||
Reference in New Issue
Block a user