Fix the issue of invalid suggestion for a reference of iterator
This commit is contained in:
parent
077d0da30a
commit
48ddf5e323
2 changed files with 3 additions and 9 deletions
|
@ -466,7 +466,6 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
&& let Some(arg_ty) = typeck_results.expr_ty_adjusted_opt(expr)
|
||||
{
|
||||
// Suggest dereferencing the argument to a function/method call if possible
|
||||
|
||||
let mut real_trait_pred = trait_pred;
|
||||
while let Some((parent_code, parent_trait_pred)) = code.parent() {
|
||||
code = parent_code;
|
||||
|
@ -553,6 +552,9 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
);
|
||||
if self.predicate_may_hold(&obligation)
|
||||
&& self.predicate_must_hold_modulo_regions(&sized_obligation)
|
||||
// Do not suggest * if it is already a reference,
|
||||
// will suggest removing the borrow instead in that case.
|
||||
&& !matches!(expr.kind, hir::ExprKind::AddrOf(..))
|
||||
{
|
||||
let call_node = self.tcx.hir_node(*call_hir_id);
|
||||
let msg = "consider dereferencing here";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue