@@ -293,7 +293,8 @@ fn new_transformer_base(env &types.Environment, p &pref.Preferences) &Transforme
293293 smartcast_expr_counts: map [string ]int {}
294294 monomorphize_enabled: os.getenv ('V2_TRANSFORMER_MONOMORPH' ) != ''
295295 monomorphized_specs: map [string ]bool {}
296- is_native_be: p != unsafe { nil } && (p.backend == .arm64 || p.backend == .x64 )
296+ is_native_be: p != unsafe { nil }
297+ && (p.backend == .arm64 || p.backend == .x64 )
297298 }
298299 return t
299300}
@@ -2061,8 +2062,7 @@ fn (t &Transformer) expr_depends_on_runtime_const(mod string, expr ast.Expr) boo
20612062}
20622063
20632064fn (mut t Transformer) collect_runtime_const_inits (files []ast.File) {
2064- is_native := t.pref != unsafe { nil }
2065- && (t.is_native_be || t.pref.backend == .c)
2065+ is_native := t.pref != unsafe { nil } && (t.is_native_be || t.pref.backend == .c)
20662066 t.runtime_const_inits_by_mod.clear ()
20672067 t.runtime_const_modules.clear ()
20682068 t.runtime_const_init_fn_name.clear ()
@@ -2347,13 +2347,13 @@ fn (mut t Transformer) transform_expr_in_module(mod string, expr ast.Expr) ast.E
23472347fn (mut t Transformer) runtime_const_init_fn_stmt (mod string , fn_name string , inits []RuntimeConstInit) ast.Stmt {
23482348 mut stmts := []ast.Stmt{cap: inits.len}
23492349 for item in inits {
2350- saved_pending := t.pending_stmts. clone ()
2351- t.pending_stmts. clear ()
2350+ saved_pending := t.pending_stmts
2351+ t.pending_stmts = []ast.Stmt{}
23522352 old_skip_if := t.skip_if_value_lowering
23532353 t.skip_if_value_lowering = true
23542354 transformed_expr := t.transform_expr_in_module (mod, item.expr)
23552355 t.skip_if_value_lowering = old_skip_if
2356- generated_pending := t.pending_stmts. clone ()
2356+ generated_pending := t.pending_stmts
23572357 t.pending_stmts = saved_pending
23582358 for pending_stmt in generated_pending {
23592359 stmts << pending_stmt
@@ -4285,10 +4285,10 @@ fn (mut t Transformer) transform_or_call_expr(call_expr ast.Expr) (ast.Expr, []a
42854285 if t.pref == unsafe { nil } || t.pref.backend != .cleanc {
42864286 return t.transform_expr (call_expr), []ast.Stmt{}
42874287 }
4288- saved_pending := t.pending_stmts. clone ()
4289- t.pending_stmts. clear ()
4288+ saved_pending := t.pending_stmts
4289+ t.pending_stmts = []ast.Stmt{}
42904290 transformed_call := t.transform_expr (call_expr)
4291- call_pending := t.pending_stmts. clone ()
4291+ call_pending := t.pending_stmts
42924292 t.pending_stmts = saved_pending
42934293 return transformed_call, call_pending
42944294}
@@ -4393,8 +4393,7 @@ fn (mut t Transformer) expand_direct_or_expr_assign(stmt ast.AssignStmt, or_expr
43934393 }
43944394 }
43954395
4396- if t.is_native_be
4397- && is_string_range_or {
4396+ if t.is_native_be && is_string_range_or {
43984397 // String ranges still need the native inline bounds-check path because the
43994398 // checker records them as `string` instead of `!string`.
44004399 idx_expr := call_expr as ast.IndexExpr
@@ -4640,10 +4639,10 @@ fn (mut t Transformer) gen_typed_temp_ident(typ types.Type) ast.Ident {
46404639}
46414640
46424641fn (mut t Transformer) transform_expr_with_captured_pending (expr ast.Expr) (ast.Expr, []ast.Stmt) {
4643- saved_pending := t.pending_stmts. clone ()
4644- t.pending_stmts. clear ()
4642+ saved_pending := t.pending_stmts
4643+ t.pending_stmts = []ast.Stmt{}
46454644 transformed := t.transform_expr (expr)
4646- captured := t.pending_stmts. clone ()
4645+ captured := t.pending_stmts
46474646 t.pending_stmts = saved_pending
46484647 return transformed, captured
46494648}
@@ -4996,8 +4995,8 @@ fn (mut t Transformer) try_expand_filter_or_map_expr(expr ast.Expr) ?ast.Expr {
49964995 // Transform generated statements while lowering the synthetic loop with the
49974996 // array type already resolved above. Nested expression expansions inside the
49984997 // loop body stay scoped to that loop.
4999- saved_pending := t.pending_stmts. clone ()
5000- t.pending_stmts. clear ()
4998+ saved_pending := t.pending_stmts
4999+ t.pending_stmts = []ast.Stmt{}
50015000 mut generated_stmts := []ast.Stmt{cap: 2 }
50025001 if has_cache_stmt {
50035002 generated_stmts << cache_stmt
@@ -5008,7 +5007,7 @@ fn (mut t Transformer) try_expand_filter_or_map_expr(expr ast.Expr) ?ast.Expr {
50085007 t.open_scope ()
50095008 transformed_for := ast.Stmt (t.transform_array_for_in (raw_for_stmt, for_in_stmt, iter_type))
50105009 t.close_scope ()
5011- inner_pending := t.pending_stmts. clone ()
5010+ inner_pending := t.pending_stmts
50125011 t.pending_stmts = saved_pending
50135012 t.pending_stmts << transformed_generated
50145013 t.pending_stmts << transformed_for
@@ -5120,8 +5119,8 @@ fn (mut t Transformer) expand_any_or_all_expr(method_name string, receiver_expr
51205119 }
51215120 stmts: loop_body
51225121 })
5123- saved_pending := t.pending_stmts. clone ()
5124- t.pending_stmts. clear ()
5122+ saved_pending := t.pending_stmts
5123+ t.pending_stmts = []ast.Stmt{}
51255124 transformed_init := t.transform_stmt (init_stmt)
51265125 transformed_for := t.transform_stmt (for_stmt)
51275126 t.pending_stmts = saved_pending
@@ -5202,8 +5201,8 @@ fn (mut t Transformer) expand_count_expr(receiver_expr ast.Expr, body_expr ast.E
52025201 }
52035202 stmts: loop_body
52045203 })
5205- saved_pending := t.pending_stmts. clone ()
5206- t.pending_stmts. clear ()
5204+ saved_pending := t.pending_stmts
5205+ t.pending_stmts = []ast.Stmt{}
52075206 transformed_init := t.transform_stmt (init_stmt)
52085207 transformed_for := t.transform_stmt (for_stmt)
52095208 t.pending_stmts = saved_pending
@@ -6088,15 +6087,15 @@ fn (mut t Transformer) try_expand_or_expr_stmt(stmt ast.ExprStmt) ?[]ast.Stmt {
60886087 // pending_stmts (e.g., lower_if_expr_value creates _if_tN). These must
60896088 // be placed AFTER the or-expr prefix_stmts (which define _or_tN used
60906089 // by the if condition), not before.
6091- saved_pending := t.pending_stmts. clone ()
6092- t.pending_stmts. clear ()
6090+ saved_pending := t.pending_stmts
6091+ t.pending_stmts = []ast.Stmt{}
60936092 // The expression is used at statement level (ExprStmt), so skip
60946093 // IfExpr value lowering which would create temp variables for void results.
60956094 saved_skip_if := t.skip_if_value_lowering
60966095 t.skip_if_value_lowering = true
60976096 transformed_new := t.transform_expr (new_expr)
60986097 t.skip_if_value_lowering = saved_skip_if
6099- inner_pending := t.pending_stmts. clone ()
6098+ inner_pending := t.pending_stmts
61006099 t.pending_stmts = saved_pending
61016100 // Merge: prefix_stmts first (or-expr decls), then any inner pending
61026101 for ip in inner_pending {
@@ -6756,8 +6755,7 @@ fn (mut t Transformer) expand_single_or_expr(or_expr ast.OrExpr, mut prefix_stmt
67566755 is_result = true
67576756 }
67586757
6759- if t.is_native_be
6760- && is_string_range_or {
6758+ if t.is_native_be && is_string_range_or {
67616759 idx_expr := call_expr as ast.IndexExpr
67626760 return t.expand_string_range_or_native_expr (idx_expr, or_expr.stmts, mut prefix_stmts)
67636761 }
@@ -9244,8 +9242,8 @@ fn (mut t Transformer) lower_assoc_expr(node ast.AssocExpr, take_addr bool) ast.
92449242 // Save pending_stmts from outer context to prevent field value transforms
92459243 // (which may call transform_stmts internally, e.g., for if-expression branches)
92469244 // from draining our accumulated stmts into the wrong scope.
9247- saved_pending := t.pending_stmts. clone ()
9248- t.pending_stmts. clear ()
9245+ saved_pending := t.pending_stmts
9246+ t.pending_stmts = []ast.Stmt{}
92499247 mut assoc_stmts := []ast.Stmt{cap: 1 + node.fields.len * 2 }
92509248 assoc_stmts << ast.Stmt (ast.AssignStmt{
92519249 op: .decl_assign
@@ -10150,8 +10148,7 @@ fn (mut t Transformer) apply_smartcast_direct_ctx(original_expr ast.Expr, ctx Sm
1015010148 // For native backends (arm64/x64): _data is a plain i64 (void pointer) in the SSA struct.
1015110149 // No union variant sub-field exists, so just use _data directly.
1015210150 // For C backends: _data is a union, so access _data._variant for the specific member.
10153- is_native_backend := t.pref != unsafe { nil }
10154- && t.is_native_be
10151+ is_native_backend := t.pref != unsafe { nil } && t.is_native_be
1015510152 data_access := t.synth_selector (transformed_base, '_data' , types.Type (types.voidptr_))
1015610153 variant_access := if is_native_backend {
1015710154 data_access
@@ -10262,8 +10259,7 @@ fn (mut t Transformer) apply_smartcast_receiver_ctx(sumtype_expr ast.Expr, ctx S
1026210259 // Create data access.
1026310260 // For native backends: _data is a plain i64, no union variant sub-field.
1026410261 // For C backends: _data is a union, access _data._variant.
10265- is_native_backend2 := t.pref != unsafe { nil }
10266- && t.is_native_be
10262+ is_native_backend2 := t.pref != unsafe { nil } && t.is_native_be
1026710263 data_access := t.synth_selector (transformed_base, '_data' , types.Type (types.voidptr_))
1026810264 variant_access := if is_native_backend2 {
1026910265 data_access
@@ -12974,8 +12970,7 @@ fn (mut t Transformer) generate_fixed_array_str_fn(fn_name string) ast.Stmt {
1297412970 }
1297512971
1297612972 // Create parameter: a Array_fixed_T_N
12977- param_type := if t.pref != unsafe { nil }
12978- && t.is_native_be {
12973+ param_type := if t.pref != unsafe { nil } && t.is_native_be {
1297912974 ast.Expr (ast.PrefixExpr{
1298012975 op: .amp
1298112976 expr: ast.Ident{
0 commit comments