Don't delay invalid lhs bug unless we know it'll be replaced by one in check_overloaded_binop

This commit is contained in:
Michael Goulet 2022-09-03 19:12:44 +00:00
parent ae0030beb0
commit 771456264b

View File

@ -57,9 +57,20 @@ pub fn check_binop_assign(
)
.is_ok()
{
// Suppress this error, since we already emitted
// a deref suggestion in check_overloaded_binop
err.downgrade_to_delayed_bug();
// If LHS += RHS is an error, but *LHS += RHS is successful, then we will have
// emitted a better suggestion during error handling in check_overloaded_binop.
if self
.lookup_op_method(
lhs_ty,
Some(rhs_ty),
Some(rhs),
Op::Binary(op, IsAssign::Yes),
expected,
)
.is_err()
{
err.downgrade_to_delayed_bug();
}
}
}
});