diff options
Diffstat (limited to 'crates/ra_assists/src/handlers/flip_binexpr.rs')
-rw-r--r-- | crates/ra_assists/src/handlers/flip_binexpr.rs | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/crates/ra_assists/src/handlers/flip_binexpr.rs b/crates/ra_assists/src/handlers/flip_binexpr.rs index 8030efb35..573196576 100644 --- a/crates/ra_assists/src/handlers/flip_binexpr.rs +++ b/crates/ra_assists/src/handlers/flip_binexpr.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use ra_syntax::ast::{AstNode, BinExpr, BinOp}; | 1 | use ra_syntax::ast::{AstNode, BinExpr, BinOp}; |
2 | 2 | ||
3 | use crate::{Assist, AssistCtx, AssistId}; | 3 | use crate::{AssistContext, AssistId, Assists}; |
4 | 4 | ||
5 | // Assist: flip_binexpr | 5 | // Assist: flip_binexpr |
6 | // | 6 | // |
@@ -17,7 +17,7 @@ use crate::{Assist, AssistCtx, AssistId}; | |||
17 | // let _ = 2 + 90; | 17 | // let _ = 2 + 90; |
18 | // } | 18 | // } |
19 | // ``` | 19 | // ``` |
20 | pub(crate) fn flip_binexpr(ctx: AssistCtx) -> Option<Assist> { | 20 | pub(crate) fn flip_binexpr(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { |
21 | let expr = ctx.find_node_at_offset::<BinExpr>()?; | 21 | let expr = ctx.find_node_at_offset::<BinExpr>()?; |
22 | let lhs = expr.lhs()?.syntax().clone(); | 22 | let lhs = expr.lhs()?.syntax().clone(); |
23 | let rhs = expr.rhs()?.syntax().clone(); | 23 | let rhs = expr.rhs()?.syntax().clone(); |
@@ -33,8 +33,7 @@ pub(crate) fn flip_binexpr(ctx: AssistCtx) -> Option<Assist> { | |||
33 | return None; | 33 | return None; |
34 | } | 34 | } |
35 | 35 | ||
36 | ctx.add_assist(AssistId("flip_binexpr"), "Flip binary expression", |edit| { | 36 | acc.add(AssistId("flip_binexpr"), "Flip binary expression", op_range, |edit| { |
37 | edit.target(op_range); | ||
38 | if let FlipAction::FlipAndReplaceOp(new_op) = action { | 37 | if let FlipAction::FlipAndReplaceOp(new_op) = action { |
39 | edit.replace(op_range, new_op); | 38 | edit.replace(op_range, new_op); |
40 | } | 39 | } |
@@ -69,7 +68,7 @@ impl From<BinOp> for FlipAction { | |||
69 | mod tests { | 68 | mod tests { |
70 | use super::*; | 69 | use super::*; |
71 | 70 | ||
72 | use crate::helpers::{check_assist, check_assist_not_applicable, check_assist_target}; | 71 | use crate::tests::{check_assist, check_assist_not_applicable, check_assist_target}; |
73 | 72 | ||
74 | #[test] | 73 | #[test] |
75 | fn flip_binexpr_target_is_the_op() { | 74 | fn flip_binexpr_target_is_the_op() { |
@@ -86,17 +85,13 @@ mod tests { | |||
86 | check_assist( | 85 | check_assist( |
87 | flip_binexpr, | 86 | flip_binexpr, |
88 | "fn f() { let res = 1 ==<|> 2; }", | 87 | "fn f() { let res = 1 ==<|> 2; }", |
89 | "fn f() { let res = 2 ==<|> 1; }", | 88 | "fn f() { let res = 2 == 1; }", |
90 | ) | 89 | ) |
91 | } | 90 | } |
92 | 91 | ||
93 | #[test] | 92 | #[test] |
94 | fn flip_binexpr_works_for_gt() { | 93 | fn flip_binexpr_works_for_gt() { |
95 | check_assist( | 94 | check_assist(flip_binexpr, "fn f() { let res = 1 ><|> 2; }", "fn f() { let res = 2 < 1; }") |
96 | flip_binexpr, | ||
97 | "fn f() { let res = 1 ><|> 2; }", | ||
98 | "fn f() { let res = 2 <<|> 1; }", | ||
99 | ) | ||
100 | } | 95 | } |
101 | 96 | ||
102 | #[test] | 97 | #[test] |
@@ -104,7 +99,7 @@ mod tests { | |||
104 | check_assist( | 99 | check_assist( |
105 | flip_binexpr, | 100 | flip_binexpr, |
106 | "fn f() { let res = 1 <=<|> 2; }", | 101 | "fn f() { let res = 1 <=<|> 2; }", |
107 | "fn f() { let res = 2 >=<|> 1; }", | 102 | "fn f() { let res = 2 >= 1; }", |
108 | ) | 103 | ) |
109 | } | 104 | } |
110 | 105 | ||
@@ -113,7 +108,7 @@ mod tests { | |||
113 | check_assist( | 108 | check_assist( |
114 | flip_binexpr, | 109 | flip_binexpr, |
115 | "fn f() { let res = (1 + 1) ==<|> (2 + 2); }", | 110 | "fn f() { let res = (1 + 1) ==<|> (2 + 2); }", |
116 | "fn f() { let res = (2 + 2) ==<|> (1 + 1); }", | 111 | "fn f() { let res = (2 + 2) == (1 + 1); }", |
117 | ) | 112 | ) |
118 | } | 113 | } |
119 | 114 | ||
@@ -133,7 +128,7 @@ mod tests { | |||
133 | fn dyn_eq(&self, other: &dyn Diagnostic) -> bool { | 128 | fn dyn_eq(&self, other: &dyn Diagnostic) -> bool { |
134 | match other.downcast_ref::<Self>() { | 129 | match other.downcast_ref::<Self>() { |
135 | None => false, | 130 | None => false, |
136 | Some(it) => self ==<|> it, | 131 | Some(it) => self == it, |
137 | } | 132 | } |
138 | } | 133 | } |
139 | "#, | 134 | "#, |