Rollup merge of #126675 - oli-obk:diagnostics_opaque, r=jackh726
Change a `DefineOpaqueTypes::No` to `Yes` in diagnostics code Explanation in comments of the function. r? ```@compiler-errors``` cc https://github.com/rust-lang/rust/issues/116652
This commit is contained in:
commit
e649eca1d2
1 changed files with 5 additions and 1 deletions
|
@ -1357,6 +1357,8 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
|
|||
traits::SelectionContext::new(self).select(&obligation)
|
||||
}
|
||||
|
||||
/// Used for ambiguous method call error reporting. Uses probing that throws away the result internally,
|
||||
/// so do not use to make a decision that may lead to a successful compilation.
|
||||
fn candidate_source(&self, candidate: &Candidate<'tcx>, self_ty: Ty<'tcx>) -> CandidateSource {
|
||||
match candidate.kind {
|
||||
InherentImplCandidate(_) => {
|
||||
|
@ -1370,8 +1372,10 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
|
|||
self.instantiate_binder_with_fresh_vars(self.span, infer::FnCall, trait_ref);
|
||||
let (xform_self_ty, _) =
|
||||
self.xform_self_ty(candidate.item, trait_ref.self_ty(), trait_ref.args);
|
||||
// Guide the trait selection to show impls that have methods whose type matches
|
||||
// up with the `self` parameter of the method.
|
||||
let _ = self.at(&ObligationCause::dummy(), self.param_env).sup(
|
||||
DefineOpaqueTypes::No,
|
||||
DefineOpaqueTypes::Yes,
|
||||
xform_self_ty,
|
||||
self_ty,
|
||||
);
|
||||
|
|
Loading…
Add table
Reference in a new issue