refactor(isolated-declarations): remove Modifiers (#3847)

This commit is contained in:
Boshen 2024-06-23 12:46:36 +00:00
parent ae09a97a09
commit 2f5d50e710
6 changed files with 17 additions and 32 deletions

View file

@ -306,7 +306,7 @@ impl<'a> IsolatedDeclarations<'a> {
pub fn transform_class(
&self,
decl: &Class<'a>,
modifiers: Option<Modifiers<'a>>,
declare: Option<bool>,
) -> Option<Box<'a, Class<'a>>> {
if decl.declare {
return None;
@ -462,11 +462,6 @@ impl<'a> IsolatedDeclarations<'a> {
let body = self.ast.class_body(decl.body.span, elements);
let mut modifiers = modifiers.unwrap_or_else(|| self.modifiers_declare());
if decl.r#abstract {
modifiers.add_modifier(Modifier { span: SPAN, kind: ModifierKind::Abstract });
};
Some(self.ast.class(
decl.r#type,
decl.span,
@ -477,8 +472,8 @@ impl<'a> IsolatedDeclarations<'a> {
self.ast.copy(&decl.super_type_parameters),
self.ast.copy(&decl.implements),
self.ast.new_vec(),
modifiers.is_contains_abstract(),
modifiers.is_contains_declare(),
decl.r#abstract,
declare.unwrap_or_else(|| self.is_declare()),
))
}

View file

@ -39,7 +39,7 @@ impl<'a> IsolatedDeclarations<'a> {
decl.span,
decl.kind,
self.ast.new_vec_from_iter(declarations),
self.modifiers_declare().is_contains_declare(),
self.is_declare(),
)
}
@ -126,7 +126,7 @@ impl<'a> IsolatedDeclarations<'a> {
decl.span,
VariableDeclarationKind::Const,
declarations,
self.modifiers_declare().is_contains_declare(),
self.is_declare(),
)
}
@ -161,7 +161,7 @@ impl<'a> IsolatedDeclarations<'a> {
self.ast.copy(&decl.id),
Some(TSModuleDeclarationBody::TSModuleDeclaration(inner)),
decl.kind,
self.modifiers_declare().is_contains_declare(),
self.is_declare(),
)
}
TSModuleDeclarationBody::TSModuleBlock(block) => {
@ -171,7 +171,7 @@ impl<'a> IsolatedDeclarations<'a> {
self.ast.copy(&decl.id),
Some(TSModuleDeclarationBody::TSModuleBlock(body)),
decl.kind,
self.modifiers_declare().is_contains_declare(),
self.is_declare(),
)
}
}

View file

@ -90,17 +90,13 @@ impl<'a> IsolatedDeclarations<'a> {
members.push(member);
}
let mut modifiers = self.modifiers_declare();
if decl.r#const {
modifiers.add_modifier(Modifier { span: SPAN, kind: ModifierKind::Const });
}
Some(self.ast.ts_enum_declaration(
decl.span,
self.ast.copy(&decl.id),
members,
modifiers.is_contains_const(),
modifiers.is_contains_declare(),
decl.r#const,
self.is_declare(),
))
}

View file

@ -16,7 +16,7 @@ impl<'a> IsolatedDeclarations<'a> {
pub fn transform_function(
&mut self,
func: &Function<'a>,
modifiers: Option<Modifiers<'a>>,
declare: Option<bool>,
) -> Option<Box<'a, Function<'a>>> {
if func.declare {
None
@ -32,7 +32,7 @@ impl<'a> IsolatedDeclarations<'a> {
self.ast.copy(&func.id),
false,
false,
modifiers.unwrap_or_else(|| self.modifiers_declare()).is_contains_declare(),
declare.unwrap_or_else(|| self.is_declare()),
self.ast.copy(&func.this_param),
params,
None,

View file

@ -393,14 +393,8 @@ impl<'a> IsolatedDeclarations<'a> {
})
}
pub fn modifiers_declare(&self) -> Modifiers<'a> {
if self.scope.is_ts_module_block_flag() {
// If we are in a module block, we don't need to add declare
Modifiers::empty()
} else {
Modifiers::new(
self.ast.new_vec_single(Modifier { span: SPAN, kind: ModifierKind::Declare }),
)
}
pub fn is_declare(&self) -> bool {
// If we are in a module block, we don't need to add declare
!self.scope.is_ts_module_block_flag()
}
}

View file

@ -38,10 +38,10 @@ impl<'a> IsolatedDeclarations<'a> {
) -> Option<(Option<VariableDeclaration<'a>>, ExportDefaultDeclaration<'a>)> {
let declaration = match &decl.declaration {
ExportDefaultDeclarationKind::FunctionDeclaration(decl) => self
.transform_function(decl, Some(Modifiers::empty()))
.transform_function(decl, Some(false))
.map(|d| (None, ExportDefaultDeclarationKind::FunctionDeclaration(d))),
ExportDefaultDeclarationKind::ClassDeclaration(decl) => self
.transform_class(decl, Some(Modifiers::empty()))
.transform_class(decl, Some(false))
.map(|d| (None, ExportDefaultDeclarationKind::ClassDeclaration(d))),
ExportDefaultDeclarationKind::TSInterfaceDeclaration(_) => {
Some((None, self.ast.copy(&decl.declaration)))
@ -75,7 +75,7 @@ impl<'a> IsolatedDeclarations<'a> {
span: SPAN,
kind,
declarations,
declare: self.modifiers_declare().is_contains_declare(),
declare: self.is_declare(),
}),
ExportDefaultDeclarationKind::from(
self.ast.identifier_reference_expression(