@@ -68,7 +68,7 @@ fn (mut g Gen) fn_decl(node ast.FnDecl) {
6868 if ! g.is_used_by_main (node) {
6969 return
7070 }
71- if g.is_builtin_mod && g.pref.gc_mode == .boehm_leak && node.name == ' malloc' {
71+ if g.is_builtin_mod && g.pref.gc_mode == .boehm_leak && node.kind == . malloc {
7272 g.definitions.write_string ('#define builtin___v_malloc GC_MALLOC\n ' )
7373 return
7474 }
@@ -1043,7 +1043,7 @@ fn (mut g Gen) call_expr(node ast.CallExpr) {
10431043 }
10441044 }
10451045 if node.is_method && ! node.is_field {
1046- if g.pref.experimental && node.args.len > 0 && node.name == ' writeln'
1046+ if g.pref.experimental && node.args.len > 0 && node.kind == . writeln
10471047 && node.args[0 ].expr is ast.StringInterLiteral
10481048 && g.table.sym (node.receiver_type).name == 'strings.Builder' {
10491049 g.string_inter_literal_sb_optimized (node)
@@ -1220,7 +1220,7 @@ fn (mut g Gen) gen_array_method_call(node ast.CallExpr, left_type ast.Type, left
12201220 .delete, .drop, .delete_last, .delete_many {
12211221 g.write ('builtin__array_${node .name }(' )
12221222 g.gen_arg_from_type (left_type, node.left)
1223- if node.name != ' delete_last' {
1223+ if node.kind != . delete_last {
12241224 g.write (', ' )
12251225 g.expr (node.args[0 ].expr)
12261226 if node.kind == .delete_many {
@@ -1240,12 +1240,12 @@ fn (mut g Gen) gen_array_method_call(node ast.CallExpr, left_type ast.Type, left
12401240 .first, .last, .pop_left, .pop {
12411241 mut noscan := ''
12421242 array_info := left_sym.info as ast.Array
1243- if node.name in [' pop_left' , ' pop' ] {
1243+ if node.kind in [. pop_left, . pop] {
12441244 noscan = g.check_noscan (array_info.elem_type)
12451245 }
12461246 return_type_str := g.styp (node.return_type)
12471247 g.write ('(*(${return_type_str }*)builtin__array_${node .name }${noscan }(' )
1248- if node.name in [' pop_left' , ' pop' ] {
1248+ if node.kind in [. pop_left, . pop] {
12491249 g.gen_arg_from_type (left_type, node.left)
12501250 } else {
12511251 if node.left_type.is_ptr () {
@@ -1271,7 +1271,7 @@ fn (mut g Gen) gen_array_method_call(node ast.CallExpr, left_type ast.Type, left
12711271 }
12721272 to_static := if is_range_slice { '_static' } else { '' }
12731273 g.write ('builtin__array_${node .name }${to_static }${to_depth }(' )
1274- if node.name == ' clone' {
1274+ if node.kind == . clone {
12751275 if is_range_slice {
12761276 if node.left_type.is_ptr () {
12771277 g.write ('*' .repeat (node.left_type.nr_muls ()))
@@ -1503,11 +1503,11 @@ fn (mut g Gen) resolve_return_type(node ast.CallExpr) ast.Type {
15031503fn (mut g Gen) resolve_receiver_name (node ast.CallExpr, unwrapped_rec_type ast.Type, final_left_sym ast.TypeSymbol,
15041504 left_sym ast.TypeSymbol, typ_sym ast.TypeSymbol) string {
15051505 mut receiver_type_name := util.no_dots (g.cc_type (unwrapped_rec_type, false ))
1506- if final_left_sym.kind == .map && node.name in [' clone' , ' move' ] {
1506+ if final_left_sym.kind == .map && node.kind in [. clone, . move] {
15071507 receiver_type_name = 'map'
15081508 }
15091509 if final_left_sym.kind == .array && ! (left_sym.kind == .alias && left_sym.has_method (node.name))
1510- && node.name in [' clear' , ' repeat' , ' sort_with_compare' , ' sorted_with_compare' , ' push_many' , ' trim' , ' first' , ' last' , ' pop_left' , ' pop' , ' clone' , ' clone_to_depth' , ' reverse' , ' slice' , ' pointers' ] {
1510+ && node.kind in [. clear, . repeat, . sort_with_compare, . sorted_with_compare, . push_many, . trim, . first, . last, . pop_left, . pop, . clone, . clone_to_depth, . reverse, . slice, . pointers] {
15111511 if ! (left_sym.info is ast.Alias && typ_sym.has_method (node.name)) {
15121512 // `array_Xyz_clone` => `builtin__array_clone`
15131513 receiver_type_name = 'array'
@@ -1555,11 +1555,11 @@ fn (mut g Gen) unwrap_receiver_type(node ast.CallExpr) (ast.Type, &ast.TypeSymbo
15551555 }
15561556 mut typ_sym := g.table.sym (unwrapped_rec_type)
15571557 // non-option alias type that undefined this method (not include `str`) need to use parent type
1558- if ! left_type.has_flag (.option) && mut typ_sym.info is ast.Alias && node.name != ' str'
1558+ if ! left_type.has_flag (.option) && mut typ_sym.info is ast.Alias && node.kind != . str
15591559 && ! typ_sym.has_method (node.name) {
15601560 unwrapped_rec_type = typ_sym.info.parent_type
15611561 typ_sym = g.table.sym (unwrapped_rec_type)
1562- } else if mut typ_sym.info is ast.Array && ! typ_sym.has_method (node.name) && node.name != ' str' {
1562+ } else if mut typ_sym.info is ast.Array && ! typ_sym.has_method (node.name) && node.kind != . str {
15631563 typ := g.table.unaliased_type (typ_sym.info.elem_type)
15641564 typ_idx := g.table.find_type_idx (g.table.array_name (typ))
15651565 if typ_idx > 0 {
@@ -1649,7 +1649,7 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
16491649 return
16501650 }
16511651 }
1652- if left_sym.kind == .array_fixed && node.name == ' wait' {
1652+ if left_sym.kind == .array_fixed && node.kind == . wait {
16531653 g.gen_fixed_array_wait (node)
16541654 return
16551655 }
@@ -1702,7 +1702,7 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
17021702 } else if receiver_type_name in ['int_literal' , 'float_literal' , 'vint_t' ] {
17031703 name = 'builtin__${name }'
17041704 }
1705- if left_sym.kind == .chan && node.name in [' close' , ' try_pop' , ' try_push' ] {
1705+ if left_sym.kind == .chan && node.kind in [. close, . try_pop, . try_push] {
17061706 name = 'sync__Channel_${node .name }'
17071707 }
17081708 mut is_range_slice := false
@@ -1742,14 +1742,14 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
17421742 }
17431743 }
17441744 // g.generate_tmp_autofree_arg_vars(node, name)
1745- if ! node.receiver_type.is_ptr () && left_type.is_ptr () && node.name == ' str' {
1745+ if ! node.receiver_type.is_ptr () && left_type.is_ptr () && node.kind == . str {
17461746 if left_type.is_int_valptr () {
17471747 g.write ('builtin__ptr_str(' )
17481748 } else {
17491749 g.gen_expr_to_string (node.left, left_type)
17501750 return
17511751 }
1752- } else if node.receiver_type.is_ptr () && left_type.is_ptr () && node.name == ' str'
1752+ } else if node.receiver_type.is_ptr () && left_type.is_ptr () && node.kind == . str
17531753 && ! left_sym.has_method ('str' ) {
17541754 g.gen_expr_to_string (node.left, left_type)
17551755 return
@@ -1764,7 +1764,7 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
17641764 is_interface := left_sym.kind == .interface
17651765 && g.table.sym (node.receiver_type).kind == .interface
17661766 if node.receiver_type.is_ptr () && (! left_type.is_ptr ()
1767- || node.from_embed_types.len != 0 || (left_type.has_flag (.shared_f) && node.name != ' str' )) {
1767+ || node.from_embed_types.len != 0 || (left_type.has_flag (.shared_f) && node.kind != . str)) {
17681768 // The receiver is a reference, but the caller provided a value
17691769 // Add `&` automatically.
17701770 // TODO: same logic in call_args()
@@ -1792,12 +1792,12 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
17921792 cast_n++
17931793 }
17941794 }
1795- } else if ! node.receiver_type.is_ptr () && left_type.is_ptr () && node.name != ' str'
1795+ } else if ! node.receiver_type.is_ptr () && left_type.is_ptr () && node.kind != . str
17961796 && node.from_embed_types.len == 0 {
17971797 if ! left_type.has_flag (.shared_f) {
17981798 g.write ('*' .repeat (left_type.nr_muls ()))
17991799 }
1800- } else if ! is_range_slice && node.from_embed_types.len == 0 && node.name != ' str' {
1800+ } else if ! is_range_slice && node.from_embed_types.len == 0 && node.kind != . str {
18011801 diff := left_type.nr_muls () - node.receiver_type.nr_muls ()
18021802 if diff > 0 {
18031803 g.write ('*' .repeat (diff))
@@ -1963,13 +1963,13 @@ fn (mut g Gen) fn_call(node ast.CallExpr) {
19631963 }
19641964 }
19651965 }
1966- is_print := name in [' print' , ' println' , ' eprint' , ' eprintln' , ' panic' ]
1966+ is_print := node.kind in [. print, . println, . eprint, . eprintln, . panic]
19671967 print_method := name
1968- is_json_encode := name == 'json.encode'
1969- is_json_encode_pretty := name == 'json.encode_pretty'
1970- is_json_decode := name == 'json.decode'
1968+ is_json_encode := node. kind == .json_encode
1969+ is_json_encode_pretty := node. kind == .json_encode_pretty
1970+ is_json_decode := node. kind == .json_decode
19711971 is_json_fn := is_json_encode || is_json_encode_pretty || is_json_decode
1972- is_va_arg := name == 'C .va_arg'
1972+ is_va_arg := node. kind == .va_arg
19731973 mut json_type_str := ''
19741974 mut json_obj := ''
19751975 if is_json_fn {
@@ -2028,7 +2028,7 @@ fn (mut g Gen) fn_call(node ast.CallExpr) {
20282028 g.write (', ${typ })' )
20292029 return
20302030 }
2031- if name == '__addr' {
2031+ if node. kind == .addr {
20322032 name = '&'
20332033 }
20342034 if node.language == .c {
@@ -2582,7 +2582,7 @@ fn (mut g Gen) call_args(node ast.CallExpr) {
25822582 }
25832583 } else {
25842584 if use_tmp_var_autofree {
2585- n := if node.kind == .jsondecode { i + 2 } else { i + 1 }
2585+ n := if node.kind == .json_decode { i + 2 } else { i + 1 }
25862586 // TODO: copypasta, move to an inline fn
25872587 fn_name := node.name.replace ('.' , '_' )
25882588 name := '_arg_expr_${fn_name }_${n }_${node .pos .pos }'
0 commit comments