mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
feat(ast): add Expression::into_inner_expression (#8048)
Add `Expression::into_inner_expression`. Does the same as `get_inner_expression` and `get_inner_expression_mut`, but operates on an owned `Expression`.
This commit is contained in:
parent
cbd51694cd
commit
c2daa20751
1 changed files with 18 additions and 0 deletions
|
|
@ -187,6 +187,24 @@ impl<'a> Expression<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
#[allow(missing_docs)]
|
||||
#[must_use]
|
||||
pub fn into_inner_expression(self) -> Expression<'a> {
|
||||
let mut expr = self;
|
||||
loop {
|
||||
expr = match expr {
|
||||
Expression::ParenthesizedExpression(e) => e.unbox().expression,
|
||||
Expression::TSAsExpression(e) => e.unbox().expression,
|
||||
Expression::TSSatisfiesExpression(e) => e.unbox().expression,
|
||||
Expression::TSInstantiationExpression(e) => e.unbox().expression,
|
||||
Expression::TSNonNullExpression(e) => e.unbox().expression,
|
||||
Expression::TSTypeAssertion(e) => e.unbox().expression,
|
||||
_ => break,
|
||||
};
|
||||
}
|
||||
expr
|
||||
}
|
||||
|
||||
#[allow(missing_docs)]
|
||||
pub fn get_inner_expression(&self) -> &Expression<'a> {
|
||||
let mut expr = self;
|
||||
|
|
|
|||
Loading…
Reference in a new issue