Skip to content

Commit fe00a34

Browse files
bors[bot]kjeremy
andauthored
Merge #2747
2747: BinOp helper to detect assignment r=matklad a=kjeremy Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2 parents c15293e + 5afb22e commit fe00a34

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

crates/ra_assists/src/assists/flip_binexpr.rs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,7 @@ enum FlipAction {
5656
impl From<BinOp> for FlipAction {
5757
fn from(op_kind: BinOp) -> Self {
5858
match op_kind {
59-
BinOp::Assignment => FlipAction::DontFlip,
60-
BinOp::AddAssign => FlipAction::DontFlip,
61-
BinOp::DivAssign => FlipAction::DontFlip,
62-
BinOp::MulAssign => FlipAction::DontFlip,
63-
BinOp::RemAssign => FlipAction::DontFlip,
64-
BinOp::ShrAssign => FlipAction::DontFlip,
65-
BinOp::ShlAssign => FlipAction::DontFlip,
66-
BinOp::SubAssign => FlipAction::DontFlip,
67-
BinOp::BitOrAssign => FlipAction::DontFlip,
68-
BinOp::BitAndAssign => FlipAction::DontFlip,
69-
BinOp::BitXorAssign => FlipAction::DontFlip,
59+
kind if kind.is_assignment() => FlipAction::DontFlip,
7060
BinOp::GreaterTest => FlipAction::FlipAndReplaceOp("<"),
7161
BinOp::GreaterEqualTest => FlipAction::FlipAndReplaceOp("<="),
7262
BinOp::LesserTest => FlipAction::FlipAndReplaceOp(">"),

crates/ra_syntax/src/ast/expr_extensions.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,24 @@ pub enum BinOp {
126126
BitXorAssign,
127127
}
128128

129+
impl BinOp {
130+
pub fn is_assignment(&self) -> bool {
131+
match *self {
132+
BinOp::Assignment
133+
| BinOp::AddAssign
134+
| BinOp::DivAssign
135+
| BinOp::MulAssign
136+
| BinOp::RemAssign
137+
| BinOp::ShrAssign
138+
| BinOp::ShlAssign
139+
| BinOp::SubAssign
140+
| BinOp::BitOrAssign
141+
| BinOp::BitAndAssign
142+
| BinOp::BitXorAssign => true,
143+
_ => false,
144+
}
145+
}
146+
}
129147
impl ast::BinExpr {
130148
pub fn op_details(&self) -> Option<(SyntaxToken, BinOp)> {
131149
self.syntax().children_with_tokens().filter_map(|it| it.into_token()).find_map(|c| {

0 commit comments

Comments
 (0)