Auto merge of #106696 - kylematsuda:early-binder, r=lcnr
Switch to `EarlyBinder` for `const_param_default` and `impl_trait_ref` queries Part of the work to close #105779 and implement https://github.com/rust-lang/types-team/issues/78. Several queries `X` have a `bound_X` variant that wraps the output in `EarlyBinder`. This PR adds `EarlyBinder` to the return type of `const_param_default` and `impl_trait_ref`, and removes their `bound_X` variants. r? `@lcnr`
This commit is contained in:
commit
b8f9cb345a
55 changed files with 145 additions and 112 deletions
|
|
@ -33,7 +33,7 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {
|
|||
trait_def_id,
|
||||
impl_def_id
|
||||
);
|
||||
let trait_ref = cx.tcx.bound_impl_trait_ref(impl_def_id).unwrap();
|
||||
let trait_ref = cx.tcx.impl_trait_ref(impl_def_id).unwrap();
|
||||
if !matches!(trait_ref.0.self_ty().kind(), ty::Param(_)) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -376,7 +376,7 @@ pub(crate) fn build_impl(
|
|||
let _prof_timer = cx.tcx.sess.prof.generic_activity("build_impl");
|
||||
|
||||
let tcx = cx.tcx;
|
||||
let associated_trait = tcx.impl_trait_ref(did);
|
||||
let associated_trait = tcx.impl_trait_ref(did).map(ty::EarlyBinder::skip_binder);
|
||||
|
||||
// Only inline impl if the implemented trait is
|
||||
// reachable in rustdoc generated documentation
|
||||
|
|
|
|||
|
|
@ -506,7 +506,9 @@ fn clean_generic_param_def<'tcx>(
|
|||
Some(def.def_id),
|
||||
)),
|
||||
default: match has_default {
|
||||
true => Some(Box::new(cx.tcx.const_param_default(def.def_id).to_string())),
|
||||
true => Some(Box::new(
|
||||
cx.tcx.const_param_default(def.def_id).subst_identity().to_string(),
|
||||
)),
|
||||
false => None,
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -786,7 +786,7 @@ fn trait_impls_for<'a>(
|
|||
tcx.find_map_relevant_impl(trait_, ty, |impl_| {
|
||||
let trait_ref = tcx.impl_trait_ref(impl_).expect("this is not an inherent impl");
|
||||
// Check if these are the same type.
|
||||
let impl_type = trait_ref.self_ty();
|
||||
let impl_type = trait_ref.skip_binder().self_ty();
|
||||
trace!(
|
||||
"comparing type {} with kind {:?} against type {:?}",
|
||||
impl_type,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue