Skip to content

Commit 86c1837

Browse files
ivan770bjorn3
andauthored
Apply suggestions from code review
Co-authored-by: bjorn3 <[email protected]>
1 parent 7738467 commit 86c1837

File tree

1 file changed

+20
-17
lines changed
  • crates/hir_ty/src/diagnostics

1 file changed

+20
-17
lines changed

crates/hir_ty/src/diagnostics/expr.rs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,11 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
7777
}
7878
}
7979
let body_expr = &body[body.body_expr];
80-
if let Expr::Block { tail: Some(t), .. } = body_expr {
81-
self.validate_results_in_tail_expr(body.body_expr, *t, db);
82-
} else {
83-
if let Expr::Block { statements, .. } = body_expr {
84-
if let Some(Statement::Expr(id)) = statements.last() {
85-
self.validate_missing_tail_expr(body.body_expr, *id, db);
86-
}
80+
if let Expr::Block { statements, tail, .. } = body_expr {
81+
if let Some(t) = tail {
82+
self.validate_results_in_tail_expr(body.body_expr, *t, db);
83+
} else if let Some(Statement::Expr(id)) = statements.last() {
84+
self.validate_missing_tail_expr(body.body_expr, *id, db);
8785
}
8886
}
8987
}
@@ -336,17 +334,22 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
336334
None => return,
337335
};
338336

339-
if let Some(possible_tail_ty) = self.infer.type_of_expr.get(possible_tail_id) {
340-
if mismatch.actual == Ty::unit() && mismatch.expected == *possible_tail_ty {
341-
let (_, source_map) = db.body_with_source_map(self.owner.into());
337+
let possible_tail_ty = if let Some(possible_tail_ty) = self.infer.type_of_expr.get(possible_tail_id) {
338+
possible_tail_ty
339+
} else {
340+
return;
341+
};
342342

343-
if let Ok(source_ptr) = source_map.expr_syntax(possible_tail_id) {
344-
self.sink.push(RemoveThisSemicolon {
345-
file: source_ptr.file_id,
346-
expr: source_ptr.value,
347-
});
348-
}
349-
}
343+
if mismatch.actual != Ty::unit() || mismatch.expected != *possible_tail_ty {
344+
return;
345+
}
346+
347+
let (_, source_map) = db.body_with_source_map(self.owner.into());
348+
if let Ok(source_ptr) = source_map.expr_syntax(possible_tail_id) {
349+
self.sink.push(RemoveThisSemicolon {
350+
file: source_ptr.file_id,
351+
expr: source_ptr.value,
352+
});
350353
}
351354
}
352355
}

0 commit comments

Comments
 (0)