Skip to content

Commit

Permalink
optimize performance
Browse files Browse the repository at this point in the history
  • Loading branch information
g-plane committed Jan 25, 2024
1 parent f4e800e commit 59eb2fa
Showing 1 changed file with 18 additions and 22 deletions.
40 changes: 18 additions & 22 deletions visitor/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1223,36 +1223,32 @@ where

if !self.injecting_consts.is_empty() || !self.injecting_vars.is_empty() {
if let BlockStmtOrExpr::Expr(ret) = &*arrow_expr.body {
let mut stmts = vec![Stmt::Return(ReturnStmt {
span: DUMMY_SP,
arg: Some(ret.clone()),
})];
let mut stmts = Vec::with_capacity(3);

if !self.injecting_consts.is_empty() {
stmts.insert(
0,
Stmt::Decl(Decl::Var(Box::new(VarDecl {
span: DUMMY_SP,
kind: VarDeclKind::Const,
declare: false,
decls: mem::take(&mut self.injecting_consts),
}))),
);
stmts.push(Stmt::Decl(Decl::Var(Box::new(VarDecl {
span: DUMMY_SP,
kind: VarDeclKind::Const,
declare: false,
decls: mem::take(&mut self.injecting_consts),
}))));
}

if !self.injecting_vars.is_empty() {
stmts.insert(
0,
Stmt::Decl(Decl::Var(Box::new(VarDecl {
span: DUMMY_SP,
kind: VarDeclKind::Let,
declare: false,
decls: mem::take(&mut self.injecting_vars),
}))),
);
stmts.push(Stmt::Decl(Decl::Var(Box::new(VarDecl {
span: DUMMY_SP,
kind: VarDeclKind::Let,
declare: false,
decls: mem::take(&mut self.injecting_vars),
}))));
self.slot_counter = 1;
}

stmts.push(Stmt::Return(ReturnStmt {
span: DUMMY_SP,
arg: Some(ret.clone()),
}));

arrow_expr.body = Box::new(BlockStmtOrExpr::BlockStmt(BlockStmt {
span: DUMMY_SP,
stmts,
Expand Down

0 comments on commit 59eb2fa

Please sign in to comment.