Do not suggest same trait over again
This commit is contained in:
parent
0c39762dd6
commit
88f2140d87
@ -20,8 +20,8 @@ use rustc_hir::def_id::DefId;
|
|||||||
use rustc_infer::infer::{self, InferOk};
|
use rustc_infer::infer::{self, InferOk};
|
||||||
use rustc_middle::ty::subst::Subst;
|
use rustc_middle::ty::subst::Subst;
|
||||||
use rustc_middle::ty::subst::{InternalSubsts, SubstsRef};
|
use rustc_middle::ty::subst::{InternalSubsts, SubstsRef};
|
||||||
use rustc_middle::ty::GenericParamDefKind;
|
|
||||||
use rustc_middle::ty::{self, ToPredicate, Ty, TypeVisitable};
|
use rustc_middle::ty::{self, ToPredicate, Ty, TypeVisitable};
|
||||||
|
use rustc_middle::ty::{DefIdTree, GenericParamDefKind};
|
||||||
use rustc_span::symbol::Ident;
|
use rustc_span::symbol::Ident;
|
||||||
use rustc_span::Span;
|
use rustc_span::Span;
|
||||||
use rustc_trait_selection::traits;
|
use rustc_trait_selection::traits;
|
||||||
@ -221,7 +221,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We probe again, taking all traits into account (not only those in scope).
|
// We probe again, taking all traits into account (not only those in scope).
|
||||||
let candidates = match self.lookup_probe(
|
let mut candidates = match self.lookup_probe(
|
||||||
span,
|
span,
|
||||||
segment.ident,
|
segment.ident,
|
||||||
self_ty,
|
self_ty,
|
||||||
@ -243,6 +243,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
.collect(),
|
.collect(),
|
||||||
_ => Vec::new(),
|
_ => Vec::new(),
|
||||||
};
|
};
|
||||||
|
candidates.retain(|candidate| *candidate != self.tcx.parent(result.callee.def_id));
|
||||||
|
|
||||||
return Err(IllegalSizedBound(candidates, needs_mut, span));
|
return Err(IllegalSizedBound(candidates, needs_mut, span));
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,6 @@ LL | fn wait(&self) where Self: Sized;
|
|||||||
...
|
...
|
||||||
LL | arg.wait();
|
LL | arg.wait();
|
||||||
| ^^^^
|
| ^^^^
|
||||||
|
|
|
||||||
help: another candidate was found in the following trait, perhaps add a `use` for it:
|
|
||||||
|
|
|
||||||
LL | use private::Future;
|
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user