Skip to content

Commit 585ddf8

Browse files
committed
perf(semantic): inline enter_kind for FormalParameter (oxc-project#17400)
Ref oxc-project/backlog#72
1 parent eacd876 commit 585ddf8

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

crates/oxc_semantic/src/builder.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2193,6 +2193,22 @@ impl<'a> Visit<'a> for SemanticBuilder<'a> {
21932193
self.visit_binding_pattern(&element.argument);
21942194
self.leave_node(kind);
21952195
}
2196+
2197+
fn visit_formal_parameter(&mut self, param: &FormalParameter<'a>) {
2198+
let kind = AstKind::FormalParameter(self.alloc(param));
2199+
self.enter_node(kind);
2200+
param.bind(self);
2201+
self.visit_span(&param.span);
2202+
self.visit_decorators(&param.decorators);
2203+
self.visit_binding_pattern(&param.pattern);
2204+
if let Some(type_annotation) = &param.type_annotation {
2205+
self.visit_ts_type_annotation(type_annotation);
2206+
}
2207+
if let Some(initializer) = &param.initializer {
2208+
self.visit_expression(initializer);
2209+
}
2210+
self.leave_node(kind);
2211+
}
21962212
}
21972213

21982214
impl<'a> SemanticBuilder<'a> {
@@ -2214,9 +2230,6 @@ impl<'a> SemanticBuilder<'a> {
22142230
/* cfg */
22152231

22162232
match kind {
2217-
AstKind::FormalParameter(param) => {
2218-
param.bind(self);
2219-
}
22202233
AstKind::FormalParameterRest(param) => {
22212234
param.bind(self);
22222235
}

0 commit comments

Comments
 (0)