Remove parentheses when inverting !(cond)
This commit is contained in:
@@ -77,6 +77,15 @@ mod tests {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn invert_if_remove_not_parentheses() {
|
||||||
|
check_assist(
|
||||||
|
invert_if,
|
||||||
|
"fn f() { i<|>f !(x == 3 || x == 4 || x == 5) { 3 * 2 } else { 1 } }",
|
||||||
|
"fn f() { if x == 3 || x == 4 || x == 5 { 1 } else { 3 * 2 } }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn invert_if_remove_inequality() {
|
fn invert_if_remove_inequality() {
|
||||||
check_assist(
|
check_assist(
|
||||||
|
|||||||
@@ -232,7 +232,13 @@ fn invert_special_case(expr: &ast::Expr) -> Option<ast::Expr> {
|
|||||||
};
|
};
|
||||||
Some(make::expr_method_call(receiver, method, arg_list))
|
Some(make::expr_method_call(receiver, method, arg_list))
|
||||||
}
|
}
|
||||||
ast::Expr::PrefixExpr(pe) if pe.op_kind()? == ast::PrefixOp::Not => pe.expr(),
|
ast::Expr::PrefixExpr(pe) if pe.op_kind()? == ast::PrefixOp::Not => {
|
||||||
|
if let ast::Expr::ParenExpr(parexpr) = pe.expr()? {
|
||||||
|
parexpr.expr()
|
||||||
|
} else {
|
||||||
|
pe.expr()
|
||||||
|
}
|
||||||
|
}
|
||||||
// FIXME:
|
// FIXME:
|
||||||
// ast::Expr::Literal(true | false )
|
// ast::Expr::Literal(true | false )
|
||||||
_ => None,
|
_ => None,
|
||||||
|
|||||||
Reference in New Issue
Block a user