Skip to content

Commit

Permalink
feat(syntax): add AssignmentOperator::to_logical_operator and `to_b…
Browse files Browse the repository at this point in the history
…inary_operator` methods
  • Loading branch information
overlookmotel committed Nov 18, 2024
1 parent b5a2027 commit 890bdfa
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions crates/oxc_syntax/src/operator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,35 @@ impl AssignmentOperator {
)
}

/// Get [`LogicalOperator`] corresponding to this [`AssignmentOperator`].
pub fn to_logical_operator(self) -> Option<LogicalOperator> {
match self {
Self::LogicalAnd => Some(LogicalOperator::And),
Self::LogicalOr => Some(LogicalOperator::Or),
Self::LogicalNullish => Some(LogicalOperator::Coalesce),
_ => None,
}
}

/// Get [`BinaryOperator`] corresponding to this [`AssignmentOperator`].
pub fn to_binary_operator(self) -> Option<BinaryOperator> {
match self {
Self::Addition => Some(BinaryOperator::Addition),
Self::Subtraction => Some(BinaryOperator::Subtraction),
Self::Multiplication => Some(BinaryOperator::Multiplication),
Self::Division => Some(BinaryOperator::Division),
Self::Remainder => Some(BinaryOperator::Remainder),
Self::ShiftLeft => Some(BinaryOperator::ShiftLeft),
Self::ShiftRight => Some(BinaryOperator::ShiftRight),
Self::ShiftRightZeroFill => Some(BinaryOperator::ShiftRightZeroFill),
Self::BitwiseOR => Some(BinaryOperator::BitwiseOR),
Self::BitwiseXOR => Some(BinaryOperator::BitwiseXOR),
Self::BitwiseAnd => Some(BinaryOperator::BitwiseAnd),
Self::Exponential => Some(BinaryOperator::Exponential),
_ => None,
}
}

/// Get the string representation of this operator.
///
/// This is the same as how the operator appears in source code.
Expand Down

0 comments on commit 890bdfa

Please sign in to comment.