mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 14:21:44 +00:00
simplify
This commit is contained in:
parent
d15cf2c960
commit
fd4c083e42
1 changed files with 36 additions and 35 deletions
|
@ -132,41 +132,42 @@ pub enum BinOp {
|
||||||
|
|
||||||
impl ast::BinExpr {
|
impl ast::BinExpr {
|
||||||
fn op_details(&self) -> Option<(SyntaxToken, BinOp)> {
|
fn op_details(&self) -> Option<(SyntaxToken, BinOp)> {
|
||||||
self.syntax().children_with_tokens().filter_map(|it| it.into_token()).find_map(|c| match c
|
self.syntax().children_with_tokens().filter_map(|it| it.into_token()).find_map(|c| {
|
||||||
.kind()
|
let bin_op = match c.kind() {
|
||||||
{
|
T![||] => BinOp::BooleanOr,
|
||||||
T![||] => Some((c, BinOp::BooleanOr)),
|
T![&&] => BinOp::BooleanAnd,
|
||||||
T![&&] => Some((c, BinOp::BooleanAnd)),
|
T![==] => BinOp::EqualityTest,
|
||||||
T![==] => Some((c, BinOp::EqualityTest)),
|
T![!=] => BinOp::NegatedEqualityTest,
|
||||||
T![!=] => Some((c, BinOp::NegatedEqualityTest)),
|
T![<=] => BinOp::LesserEqualTest,
|
||||||
T![<=] => Some((c, BinOp::LesserEqualTest)),
|
T![>=] => BinOp::GreaterEqualTest,
|
||||||
T![>=] => Some((c, BinOp::GreaterEqualTest)),
|
T![<] => BinOp::LesserTest,
|
||||||
T![<] => Some((c, BinOp::LesserTest)),
|
T![>] => BinOp::GreaterTest,
|
||||||
T![>] => Some((c, BinOp::GreaterTest)),
|
T![+] => BinOp::Addition,
|
||||||
T![+] => Some((c, BinOp::Addition)),
|
T![*] => BinOp::Multiplication,
|
||||||
T![*] => Some((c, BinOp::Multiplication)),
|
T![-] => BinOp::Subtraction,
|
||||||
T![-] => Some((c, BinOp::Subtraction)),
|
T![/] => BinOp::Division,
|
||||||
T![/] => Some((c, BinOp::Division)),
|
T![%] => BinOp::Remainder,
|
||||||
T![%] => Some((c, BinOp::Remainder)),
|
T![<<] => BinOp::LeftShift,
|
||||||
T![<<] => Some((c, BinOp::LeftShift)),
|
T![>>] => BinOp::RightShift,
|
||||||
T![>>] => Some((c, BinOp::RightShift)),
|
T![^] => BinOp::BitwiseXor,
|
||||||
T![^] => Some((c, BinOp::BitwiseXor)),
|
T![|] => BinOp::BitwiseOr,
|
||||||
T![|] => Some((c, BinOp::BitwiseOr)),
|
T![&] => BinOp::BitwiseAnd,
|
||||||
T![&] => Some((c, BinOp::BitwiseAnd)),
|
T![..] => BinOp::RangeRightOpen,
|
||||||
T![..] => Some((c, BinOp::RangeRightOpen)),
|
T![..=] => BinOp::RangeRightClosed,
|
||||||
T![..=] => Some((c, BinOp::RangeRightClosed)),
|
T![=] => BinOp::Assignment,
|
||||||
T![=] => Some((c, BinOp::Assignment)),
|
T![+=] => BinOp::AddAssign,
|
||||||
T![+=] => Some((c, BinOp::AddAssign)),
|
T![/=] => BinOp::DivAssign,
|
||||||
T![/=] => Some((c, BinOp::DivAssign)),
|
T![*=] => BinOp::MulAssign,
|
||||||
T![*=] => Some((c, BinOp::MulAssign)),
|
T![%=] => BinOp::RemAssign,
|
||||||
T![%=] => Some((c, BinOp::RemAssign)),
|
T![>>=] => BinOp::ShrAssign,
|
||||||
T![>>=] => Some((c, BinOp::ShrAssign)),
|
T![<<=] => BinOp::ShlAssign,
|
||||||
T![<<=] => Some((c, BinOp::ShlAssign)),
|
T![-=] => BinOp::SubAssign,
|
||||||
T![-=] => Some((c, BinOp::SubAssign)),
|
T![|=] => BinOp::BitOrAssign,
|
||||||
T![|=] => Some((c, BinOp::BitOrAssign)),
|
T![&=] => BinOp::BitAndAssign,
|
||||||
T![&=] => Some((c, BinOp::BitAndAssign)),
|
T![^=] => BinOp::BitXorAssign,
|
||||||
T![^=] => Some((c, BinOp::BitXorAssign)),
|
_ => return None,
|
||||||
_ => None,
|
};
|
||||||
|
Some((c, bin_op))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue