Code style cleanup.
This commit is contained in:
@@ -444,11 +444,11 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
// if expr { if_block } else { else_block }
|
||||
Stmt::If(condition, x, _) => {
|
||||
optimize_expr(condition, state, false);
|
||||
let if_block = mem::take(x.0.statements()).into_vec();
|
||||
*x.0.statements() =
|
||||
let if_block = mem::take(x.0.statements_mut()).into_vec();
|
||||
*x.0.statements_mut() =
|
||||
optimize_stmt_block(if_block, state, preserve_result, true, false).into();
|
||||
let else_block = mem::take(x.1.statements()).into_vec();
|
||||
*x.1.statements() =
|
||||
let else_block = mem::take(x.1.statements_mut()).into_vec();
|
||||
*x.1.statements_mut() =
|
||||
optimize_stmt_block(else_block, state, preserve_result, true, false).into();
|
||||
}
|
||||
|
||||
@@ -520,8 +520,8 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
_ => {
|
||||
block.0 = Some(condition);
|
||||
|
||||
*block.1.statements() = optimize_stmt_block(
|
||||
mem::take(block.1.statements()).into_vec(),
|
||||
*block.1.statements_mut() = optimize_stmt_block(
|
||||
mem::take(block.1.statements_mut()).into_vec(),
|
||||
state,
|
||||
preserve_result,
|
||||
true,
|
||||
@@ -541,8 +541,8 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
x.0.remove(&key);
|
||||
}
|
||||
|
||||
let def_block = mem::take(x.1.statements()).into_vec();
|
||||
*x.1.statements() =
|
||||
let def_block = mem::take(x.1.statements_mut()).into_vec();
|
||||
*x.1.statements_mut() =
|
||||
optimize_stmt_block(def_block, state, preserve_result, true, false).into();
|
||||
}
|
||||
|
||||
@@ -554,8 +554,8 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
// while expr { block }
|
||||
Stmt::While(condition, body, _) => {
|
||||
optimize_expr(condition, state, false);
|
||||
let block = mem::take(body.statements()).into_vec();
|
||||
*body.statements() = optimize_stmt_block(block, state, false, true, false).into();
|
||||
let block = mem::take(body.statements_mut()).into_vec();
|
||||
*body.statements_mut() = optimize_stmt_block(block, state, false, true, false).into();
|
||||
|
||||
if body.len() == 1 {
|
||||
match body[0] {
|
||||
@@ -582,7 +582,7 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
| Stmt::Do(body, Expr::BoolConstant(false, _), true, _) => {
|
||||
state.set_dirty();
|
||||
let block_pos = body.position();
|
||||
let block = mem::take(body.statements()).into_vec();
|
||||
let block = mem::take(body.statements_mut()).into_vec();
|
||||
*stmt = Stmt::Block(
|
||||
optimize_stmt_block(block, state, false, true, false).into_boxed_slice(),
|
||||
block_pos,
|
||||
@@ -591,14 +591,14 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
// do { block } while|until expr
|
||||
Stmt::Do(body, condition, _, _) => {
|
||||
optimize_expr(condition, state, false);
|
||||
let block = mem::take(body.statements()).into_vec();
|
||||
*body.statements() = optimize_stmt_block(block, state, false, true, false).into();
|
||||
let block = mem::take(body.statements_mut()).into_vec();
|
||||
*body.statements_mut() = optimize_stmt_block(block, state, false, true, false).into();
|
||||
}
|
||||
// for id in expr { block }
|
||||
Stmt::For(iterable, x, _) => {
|
||||
optimize_expr(iterable, state, false);
|
||||
let body = mem::take(x.2.statements()).into_vec();
|
||||
*x.2.statements() = optimize_stmt_block(body, state, false, true, false).into();
|
||||
let body = mem::take(x.2.statements_mut()).into_vec();
|
||||
*x.2.statements_mut() = optimize_stmt_block(body, state, false, true, false).into();
|
||||
}
|
||||
// let id = expr;
|
||||
Stmt::Let(expr, _, _, _) => optimize_expr(expr, state, false),
|
||||
@@ -636,10 +636,12 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
|
||||
}
|
||||
// try { try_block } catch ( var ) { catch_block }
|
||||
Stmt::TryCatch(x, _, _) => {
|
||||
let try_block = mem::take(x.0.statements()).into_vec();
|
||||
*x.0.statements() = optimize_stmt_block(try_block, state, false, true, false).into();
|
||||
let catch_block = mem::take(x.2.statements()).into_vec();
|
||||
*x.2.statements() = optimize_stmt_block(catch_block, state, false, true, false).into();
|
||||
let try_block = mem::take(x.0.statements_mut()).into_vec();
|
||||
*x.0.statements_mut() =
|
||||
optimize_stmt_block(try_block, state, false, true, false).into();
|
||||
let catch_block = mem::take(x.2.statements_mut()).into_vec();
|
||||
*x.2.statements_mut() =
|
||||
optimize_stmt_block(catch_block, state, false, true, false).into();
|
||||
}
|
||||
// func(...)
|
||||
Stmt::Expr(expr @ Expr::FnCall(_, _)) => {
|
||||
@@ -686,7 +688,7 @@ fn optimize_expr(expr: &mut Expr, state: &mut State, _chaining: bool) {
|
||||
Expr::Stmt(x) if x.is_empty() => { state.set_dirty(); *expr = Expr::Unit(x.position()) }
|
||||
// { stmt; ... } - do not count promotion as dirty because it gets turned back into an array
|
||||
Expr::Stmt(x) => {
|
||||
*x.statements() = optimize_stmt_block(mem::take(x.statements()).into_vec(), state, true, true, false).into();
|
||||
*x.statements_mut() = optimize_stmt_block(mem::take(x.statements_mut()).into_vec(), state, true, true, false).into();
|
||||
|
||||
// { Stmt(Expr) } - promote
|
||||
match x.as_mut().as_mut() {
|
||||
@@ -948,7 +950,7 @@ fn optimize_expr(expr: &mut Expr, state: &mut State, _chaining: bool) {
|
||||
let arg_types: StaticVec<_> = arg_values.iter().map(Dynamic::type_id).collect();
|
||||
|
||||
// Search for overloaded operators (can override built-in).
|
||||
if !has_native_fn(state, x.hashes.native_hash(), arg_types.as_ref()) {
|
||||
if !has_native_fn(state, x.hashes.native, arg_types.as_ref()) {
|
||||
if let Some(mut result) = get_builtin_binary_op_fn(x.name.as_ref(), &arg_values[0], &arg_values[1])
|
||||
.and_then(|f| {
|
||||
let ctx = (state.engine, x.name.as_ref(), state.lib).into();
|
||||
@@ -1136,9 +1138,9 @@ pub fn optimize_into_ast(
|
||||
// Optimize the function body
|
||||
let state = &mut State::new(engine, lib2, level);
|
||||
|
||||
let body = mem::take(fn_def.body.statements()).into_vec();
|
||||
let body = mem::take(fn_def.body.statements_mut()).into_vec();
|
||||
|
||||
*fn_def.body.statements() =
|
||||
*fn_def.body.statements_mut() =
|
||||
optimize_stmt_block(body, state, true, true, true).into();
|
||||
|
||||
fn_def
|
||||
|
Reference in New Issue
Block a user