diff --git a/crates/oxc_parser/src/js/class.rs b/crates/oxc_parser/src/js/class.rs index 71b0735a98a28..96244fd1596b3 100644 --- a/crates/oxc_parser/src/js/class.rs +++ b/crates/oxc_parser/src/js/class.rs @@ -41,7 +41,7 @@ impl<'a> ParserImpl<'a> { pub(crate) fn parse_class_declaration( &mut self, start_span: Span, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { self.parse_class(start_span, ClassType::ClassDeclaration, modifiers) } @@ -59,7 +59,7 @@ impl<'a> ParserImpl<'a> { &mut self, start_span: Span, r#type: ClassType, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { self.bump_any(); // advance `class` diff --git a/crates/oxc_parser/src/js/declaration.rs b/crates/oxc_parser/src/js/declaration.rs index beb8723701421..f17fd4dc11983 100644 --- a/crates/oxc_parser/src/js/declaration.rs +++ b/crates/oxc_parser/src/js/declaration.rs @@ -46,7 +46,7 @@ impl<'a> ParserImpl<'a> { &mut self, start_span: Span, decl_ctx: VariableDeclarationContext, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { let kind = match self.cur_kind() { Kind::Var => VariableDeclarationKind::Var, diff --git a/crates/oxc_parser/src/js/function.rs b/crates/oxc_parser/src/js/function.rs index 0417dd8ac8f6f..e0467eaca2e32 100644 --- a/crates/oxc_parser/src/js/function.rs +++ b/crates/oxc_parser/src/js/function.rs @@ -63,7 +63,7 @@ impl<'a> ParserImpl<'a> { r#async: bool, generator: bool, func_kind: FunctionKind, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { let ctx = self.ctx; self.ctx = self.ctx.and_in(true).and_await(r#async).and_yield(generator); @@ -176,7 +176,7 @@ impl<'a> ParserImpl<'a> { &mut self, start_span: Span, func_kind: FunctionKind, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { let r#async = modifiers.contains(ModifierKind::Async); self.expect(Kind::Function)?; diff --git a/crates/oxc_parser/src/modifiers.rs b/crates/oxc_parser/src/modifiers.rs index 24f9ec6c044c8..e46a64d8eaf38 100644 --- a/crates/oxc_parser/src/modifiers.rs +++ b/crates/oxc_parser/src/modifiers.rs @@ -1,6 +1,5 @@ use bitflags::bitflags; -use oxc_allocator::Vec; use oxc_ast::ast::TSAccessibility; use oxc_span::Span; @@ -103,10 +102,10 @@ pub struct Modifier { } #[derive(Debug, Default, Hash)] -pub struct Modifiers<'a>(Option>); +pub struct Modifiers(Option>); -impl<'a> Modifiers<'a> { - pub fn new(modifiers: Vec<'a, Modifier>) -> Self { +impl Modifiers { + pub fn new(modifiers: Vec) -> Self { Self(Some(modifiers)) } @@ -179,9 +178,9 @@ impl ModifierKind { } impl<'a> ParserImpl<'a> { - pub(crate) fn eat_modifiers_before_declaration(&mut self) -> (ModifierFlags, Modifiers<'a>) { + pub(crate) fn eat_modifiers_before_declaration(&mut self) -> (ModifierFlags, Modifiers) { let mut flags = ModifierFlags::empty(); - let mut modifiers = self.ast.new_vec(); + let mut modifiers = vec![]; while self.at_modifier() { let span = self.start_span(); let modifier_flag = self.cur_kind().into(); diff --git a/crates/oxc_parser/src/ts/statement.rs b/crates/oxc_parser/src/ts/statement.rs index 92dfc9059c08f..08f34d56ca5dd 100644 --- a/crates/oxc_parser/src/ts/statement.rs +++ b/crates/oxc_parser/src/ts/statement.rs @@ -24,7 +24,7 @@ impl<'a> ParserImpl<'a> { pub(crate) fn parse_ts_enum_declaration( &mut self, span: Span, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result> { self.bump_any(); // bump `enum` @@ -104,7 +104,7 @@ impl<'a> ParserImpl<'a> { pub(crate) fn parse_ts_type_alias_declaration( &mut self, span: Span, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result> { self.expect(Kind::Type)?; @@ -140,7 +140,7 @@ impl<'a> ParserImpl<'a> { pub(crate) fn parse_ts_interface_declaration( &mut self, span: Span, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result> { self.expect(Kind::Interface)?; // bump interface let id = self.parse_binding_identifier()?; @@ -269,7 +269,7 @@ impl<'a> ParserImpl<'a> { &mut self, span: Span, kind: TSModuleDeclarationKind, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { let id = match self.cur_kind() { Kind::Str => self.parse_literal_string().map(TSModuleDeclarationName::StringLiteral), @@ -325,7 +325,7 @@ impl<'a> ParserImpl<'a> { pub(crate) fn parse_declaration( &mut self, start_span: Span, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result> { match self.cur_kind() { Kind::Namespace => { @@ -385,7 +385,7 @@ impl<'a> ParserImpl<'a> { pub(crate) fn parse_ts_declare_function( &mut self, start_span: Span, - modifiers: &Modifiers<'a>, + modifiers: &Modifiers, ) -> Result>> { let r#async = modifiers.contains(ModifierKind::Async); self.expect(Kind::Function)?;