mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
feat(syntax): add AssignmentOperator::to_logical_operator and to_binary_operator methods (#7350)
Add methods to convert `AssignmentOperator` to `LogicalOperator` or `BinaryOperator`. e.g. `+=` -> `+`, `&&=` -> `&&`.
This commit is contained in:
parent
41a0e60c3e
commit
2534cdecb7
1 changed files with 29 additions and 0 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue