Skip to content

v.markused #

fn mark_used #

fn mark_used(mut table ast.Table, mut pref_ pref.Preferences, ast_files []&ast.File)

mark_used walks the AST, starting at main() and marks all used fns transitively.

fn Walker.new #

fn Walker.new(params Walker) &Walker

struct Walker #

struct Walker {
pub mut:
	table        &ast.Table        = unsafe { nil }
	features     &ast.UsedFeatures = unsafe { nil }
	used_fns     map[string]bool // used_fns['println'] == true
	used_consts  map[string]bool // used_consts['os.args'] == true
	used_globals map[string]bool
	used_fields  map[string]bool
	used_syms    map[int]bool
	used_none    int // _option_none
	used_option  int // _option_ok
	used_result  int // _result_ok
	used_panic   int // option/result propagation
	used_interp  int // str interpolation
	n_asserts    int
	pref         &pref.Preferences = unsafe { nil }
mut:
	files         []&ast.File
	all_fns       map[string]ast.FnDecl
	all_consts    map[string]ast.ConstField
	all_globals   map[string]ast.GlobalField
	all_fields    map[string]ast.StructField
	all_decltypes map[string]ast.Type
	all_structs   map[string]ast.StructDecl

	is_builtin_mod bool

	// dependencies finding flags
	uses_array         bool // has array
	uses_channel       bool // has chan dep
	uses_lock          bool // has mutex dep
	uses_ct_fields     bool // $for .fields
	uses_ct_methods    bool // $for .methods
	uses_ct_params     bool // $for .params
	uses_ct_values     bool // $for .values
	uses_ct_variants   bool // $for .variants
	uses_ct_attribute  bool // $for .attributes
	uses_external_type bool
	uses_err           bool // err var
}

fn (Walker) mark_fn_as_used #

fn (mut w Walker) mark_fn_as_used(fkey string)

fn (Walker) mark_builtin_array_method_as_used #

fn (mut w Walker) mark_builtin_array_method_as_used(method_name string)

fn (Walker) mark_builtin_map_method_as_used #

fn (mut w Walker) mark_builtin_map_method_as_used(method_name string)

fn (Walker) mark_builtin_type_method_as_used #

fn (mut w Walker) mark_builtin_type_method_as_used(k string, rk string)

fn (Walker) mark_const_as_used #

fn (mut w Walker) mark_const_as_used(ckey string)

fn (Walker) mark_global_as_used #

fn (mut w Walker) mark_global_as_used(ckey string)

fn (Walker) mark_struct_field_default_expr_as_used #

fn (mut w Walker) mark_struct_field_default_expr_as_used(sfkey string)

fn (Walker) mark_markused_fns #

fn (mut w Walker) mark_markused_fns()

fn (Walker) mark_root_fns #

fn (mut w Walker) mark_root_fns(all_fn_root_names []string)

fn (Walker) mark_markused_consts #

fn (mut w Walker) mark_markused_consts()

fn (Walker) mark_markused_globals #

fn (mut w Walker) mark_markused_globals()

fn (Walker) mark_markused_syms #

fn (mut w Walker) mark_markused_syms()

fn (Walker) mark_markused_decltypes #

fn (mut w Walker) mark_markused_decltypes()

fn (Walker) mark_struct_field_default_expr #

fn (mut w Walker) mark_struct_field_default_expr()

fn (Walker) stmt #

fn (mut w Walker) stmt(node_ ast.Stmt)

fn (Walker) fn_decl #

fn (mut w Walker) fn_decl(mut node ast.FnDecl)

fn (Walker) call_expr #

fn (mut w Walker) call_expr(mut node ast.CallExpr)

fn (Walker) fn_by_name #

fn (mut w Walker) fn_by_name(fn_name string)

fn (Walker) struct_fields #

fn (mut w Walker) struct_fields(sfields []ast.StructField)

fn (Walker) const_fields #

fn (mut w Walker) const_fields(cfields []ast.ConstField)

fn (Walker) or_block #

fn (mut w Walker) or_block(node ast.OrExpr)

fn (Walker) mark_fn_ret_and_params #

fn (mut w Walker) mark_fn_ret_and_params(return_type ast.Type, params []ast.Param)

fn (Walker) mark_by_sym_name #

fn (mut w Walker) mark_by_sym_name(name string)

fn (Walker) mark_by_type #

fn (mut w Walker) mark_by_type(typ ast.Type)

fn (Walker) mark_by_sym #

fn (mut w Walker) mark_by_sym(isym ast.TypeSymbol)

fn (Walker) finalize #

fn (mut w Walker) finalize(include_panic_deps bool)