mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +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.
|
/// Get the string representation of this operator.
|
||||||
///
|
///
|
||||||
/// This is the same as how the operator appears in source code.
|
/// This is the same as how the operator appears in source code.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue