diff options
| author | Michael Goulet <michael@errs.io> | 2024-05-23 19:22:55 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-05-23 19:22:55 -0400 |
| commit | a02aba7c542bf65f53c3a631f56110d8d95afc1c (patch) | |
| tree | 4daaadbfc128abf70143bacd19a1c92a690c54ba /compiler | |
| parent | 5baee04b6349d176440cb1fcd5424a89f67b9f7b (diff) | |
| download | rust-a02aba7c542bf65f53c3a631f56110d8d95afc1c.tar.gz rust-a02aba7c542bf65f53c3a631f56110d8d95afc1c.zip | |
Only suppress binop error in favor of semicolon suggestion if we're in an assignment statement
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_hir_typeck/src/op.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/rustc_hir_typeck/src/op.rs b/compiler/rustc_hir_typeck/src/op.rs index 87b76b978b9..25b74dca12f 100644 --- a/compiler/rustc_hir_typeck/src/op.rs +++ b/compiler/rustc_hir_typeck/src/op.rs @@ -381,10 +381,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { let maybe_missing_semi = self.check_for_missing_semi(expr, &mut err); // We defer to the later error produced by `check_lhs_assignable`. - // We only downgrade this if it's the LHS, though. + // We only downgrade this if it's the LHS, though, and if this is a + // valid assignment statement. if maybe_missing_semi && let hir::Node::Expr(parent) = self.tcx.parent_hir_node(expr.hir_id) && let hir::ExprKind::Assign(lhs, _, _) = parent.kind + && let hir::Node::Stmt(stmt) = self.tcx.parent_hir_node(parent.hir_id) + && let hir::StmtKind::Expr(_) | hir::StmtKind::Semi(_) = stmt.kind && lhs.hir_id == expr.hir_id { err.downgrade_to_delayed_bug(); |
