@@ -126,11 +126,7 @@ fn (mut g Gen) fixed_array_init(node ast.ArrayInit, array_type Type, var_name st
126
126
g.indent++
127
127
g.writeln ('int it = index;' ) // FIXME: Remove this line when it is fully forbidden
128
128
g.write ('*pelem = ' )
129
- if node.elem_type.has_flag (.option) {
130
- g.expr_with_opt (node.default_expr, node.default_type, node.elem_type)
131
- } else {
132
- g.expr_with_cast (node.default_expr, node.default_type, node.elem_type)
133
- }
129
+ g.expr_with_default (node)
134
130
g.writeln (';' )
135
131
g.indent--
136
132
g.writeln ('}' )
@@ -171,11 +167,7 @@ fn (mut g Gen) fixed_array_init(node ast.ArrayInit, array_type Type, var_name st
171
167
} else if node.has_default {
172
168
info := array_type.unaliased_sym.info as ast.ArrayFixed
173
169
for i in 0 .. info.size {
174
- if info.elem_type.has_flag (.option) {
175
- g.expr_with_opt (node.default_expr, node.default_type, info.elem_type)
176
- } else {
177
- g.expr_with_cast (node.default_expr, node.default_type, info.elem_type)
178
- }
170
+ g.expr_with_default (node)
179
171
if i != info.size - 1 {
180
172
g.write (', ' )
181
173
}
@@ -244,6 +236,14 @@ fn (mut g Gen) fixed_array_init(node ast.ArrayInit, array_type Type, var_name st
244
236
}
245
237
}
246
238
239
+ fn (mut g Gen) expr_with_default (node ast.ArrayInit) {
240
+ if node.elem_type.has_flag (.option) {
241
+ g.expr_with_opt (node.default_expr, node.default_type, node.elem_type)
242
+ } else {
243
+ g.expr_with_cast (node.default_expr, node.default_type, node.elem_type)
244
+ }
245
+ }
246
+
247
247
fn (mut g Gen) struct_has_array_or_map_field (elem_typ ast.Type) bool {
248
248
unaliased_sym := g.table.final_sym (elem_typ)
249
249
if unaliased_sym.kind == .struct_ {
@@ -342,11 +342,7 @@ fn (mut g Gen) array_init_with_fields(node ast.ArrayInit, elem_type Type, is_amp
342
342
g.indent++
343
343
g.writeln ('int it = index;' ) // FIXME: Remove this line when it is fully forbidden
344
344
g.write ('*pelem = ' )
345
- if node.elem_type.has_flag (.option) {
346
- g.expr_with_opt (node.default_expr, node.default_type, node.elem_type)
347
- } else {
348
- g.expr_with_cast (node.default_expr, node.default_type, node.elem_type)
349
- }
345
+ g.expr_with_default (node)
350
346
g.writeln (';' )
351
347
g.indent--
352
348
g.writeln ('}' )
@@ -409,11 +405,7 @@ fn (mut g Gen) array_init_with_fields(node ast.ArrayInit, elem_type Type, is_amp
409
405
g.writeln ('; ${ind} ++) {' )
410
406
g.write ('\t ${tmp} [${ind} ] = ' )
411
407
if node.has_default {
412
- if node.elem_type.has_flag (.option) {
413
- g.expr_with_opt (node.default_expr, node.default_type, node.elem_type)
414
- } else {
415
- g.expr_with_cast (node.default_expr, node.default_type, node.elem_type)
416
- }
408
+ g.expr_with_default (node)
417
409
} else {
418
410
if node.elem_type.has_flag (.option) {
419
411
g.expr_with_opt (ast.None{}, ast.none_type, node.elem_type)
@@ -427,11 +419,7 @@ fn (mut g Gen) array_init_with_fields(node ast.ArrayInit, elem_type Type, is_amp
427
419
g.write (' (voidptr)${tmp} )' )
428
420
} else if node.has_default {
429
421
g.write ('&(${elem_styp} []){' )
430
- if node.elem_type.has_flag (.option) {
431
- g.expr_with_opt (node.default_expr, node.default_type, node.elem_type)
432
- } else {
433
- g.expr_with_cast (node.default_expr, node.default_type, node.elem_type)
434
- }
422
+ g.expr_with_default (node)
435
423
g.write ('})' )
436
424
} else if node.has_len && node.elem_type.has_flag (.option) {
437
425
g.write ('&' )
0 commit comments