ast,parser,cgen: add a new ast.FnDecl field is_c_extern, set it during parsing, to be available in markused and checker too

This commit is contained in:
Delyan Angelov 2024-10-13 16:10:22 +03:00
parent c4aaa2ef4d
commit b1142548b9
No known key found for this signature in database
GPG key ID: 66886C0F12D595ED
4 changed files with 19 additions and 1 deletions

View file

@ -546,9 +546,12 @@ fn (t Tree) fn_decl(node ast.FnDecl) &Node {
mut obj := new_object()
obj.add_terse('ast_type', t.string_node('FnDecl'))
obj.add_terse('name', t.string_node(node.name))
obj.add_terse('short_name', t.string_node(node.short_name))
obj.add_terse('mod', t.string_node(node.mod))
obj.add_terse('is_deprecated', t.bool_node(node.is_deprecated))
obj.add_terse('is_pub', t.bool_node(node.is_pub))
obj.add_terse('is_c_variadic', t.bool_node(node.is_c_variadic))
obj.add_terse('is_c_extern', t.bool_node(node.is_c_extern))
obj.add_terse('is_variadic', t.bool_node(node.is_variadic))
obj.add('is_anon', t.bool_node(node.is_anon))
obj.add_terse('is_noreturn', t.bool_node(node.is_noreturn))
@ -559,17 +562,23 @@ fn (t Tree) fn_decl(node ast.FnDecl) &Node {
obj.add_terse('is_exported', t.bool_node(node.is_exported))
obj.add('is_keep_alive', t.bool_node(node.is_keep_alive))
obj.add_terse('is_unsafe', t.bool_node(node.is_unsafe))
obj.add_terse('is_markused', t.bool_node(node.is_markused))
obj.add_terse('is_file_translated', t.bool_node(node.is_file_translated))
obj.add_terse('receiver', t.struct_field(node.receiver))
obj.add('receiver_pos', t.pos(node.receiver_pos))
obj.add_terse('is_method', t.bool_node(node.is_method))
obj.add_terse('is_static_type_method', t.bool_node(node.is_static_type_method))
obj.add('method_type_pos', t.pos(node.method_type_pos))
obj.add('method_idx', t.number_node(node.method_idx))
obj.add_terse('rec_mut', t.bool_node(node.rec_mut))
obj.add_terse('has_prev_newline', t.bool_node(node.has_prev_newline))
obj.add_terse('has_break_line', t.bool_node(node.has_break_line))
obj.add('rec_share', t.enum_node(node.rec_share))
obj.add_terse('language', t.enum_node(node.language))
obj.add('file_mode', t.enum_node(node.file_mode))
obj.add('no_body', t.bool_node(node.no_body))
obj.add('is_builtin', t.bool_node(node.is_builtin))
obj.add('file', t.string_node(node.file))
obj.add('is_direct_arr', t.bool_node(node.is_direct_arr))
obj.add('ctdefine_idx', t.number_node(node.ctdefine_idx))
obj.add('pos', t.pos(node.pos))