Cast to ExprStmt, style fixes

This commit is contained in:
ivan770 2020-12-10 18:10:39 +02:00
parent 35006eba79
commit bbb0bc7b04
No known key found for this signature in database
GPG key ID: D8C4BD5AE4D9CC4D
2 changed files with 9 additions and 10 deletions

View file

@ -334,11 +334,9 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
None => return,
};
let possible_tail_ty =
if let Some(possible_tail_ty) = self.infer.type_of_expr.get(possible_tail_id) {
possible_tail_ty
} else {
return;
let possible_tail_ty = match self.infer.type_of_expr.get(possible_tail_id) {
Some(ty) => ty,
None => return,
};
if mismatch.actual != Ty::unit() || mismatch.expected != *possible_tail_ty {
@ -346,6 +344,7 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
}
let (_, source_map) = db.body_with_source_map(self.owner.into());
if let Ok(source_ptr) = source_map.expr_syntax(possible_tail_id) {
self.sink
.push(RemoveThisSemicolon { file: source_ptr.file_id, expr: source_ptr.value });

View file

@ -16,7 +16,7 @@ use ide_db::{
use syntax::{
algo,
ast::{self, edit::IndentLevel, make},
AstNode, Direction, T,
AstNode,
};
use text_edit::TextEdit;
@ -110,9 +110,9 @@ impl DiagnosticWithFix for RemoveThisSemicolon {
.expr
.to_node(&root)
.syntax()
.siblings_with_tokens(Direction::Next)
.filter_map(|it| it.into_token())
.find(|it| it.kind() == T![;])?
.parent()
.and_then(ast::ExprStmt::cast)
.and_then(|expr| expr.semicolon_token())?
.text_range();
let edit = TextEdit::delete(semicolon);