dialyzer_callgraph

DATA TYPES

callgraph() = #callgraph{digraph=digraph(), esc=set(), name_map=dict(), rev_name_map=dict(), postorder=[scc()], rec_var_map=dict(), self_rec=set(), calls=dict(), race_code=dict(), public_tables=[label()], named_tables=[string()], race_detection=boolean(), beh_api_calls=[{mfa(), mfa()}]}
callgraph_edge() = {mfa_or_funlbl(), mfa_or_funlbl()}
label() = non_neg_integer()
mfa_calls() = [{mfa_or_funlbl(), mfa_or_funlbl()}]
mfa_or_funlbl() = label() | mfa()
scc() = [mfa_or_funlbl()]

Functions


new() -> callgraph()

delete(Callgraph::callgraph()) -> true

all_nodes(Callgraph::callgraph()) -> [mfa()]

lookup_rec_var(Label::label(), Callgraph::callgraph()) -> error | {ok, mfa()}

lookup_call_site(Label::label(), Callgraph::callgraph()) -> error | {ok, [term()]}

lookup_name(Label::label(), Callgraph::callgraph()) -> error | {ok, mfa()}

lookup_label(MFA::mfa_or_funlbl(), Callgraph::callgraph()) -> error | {ok, integer()}

in_neighbours(Label::mfa_or_funlbl(), Callgraph::callgraph()) -> none | [mfa_or_funlbl(), ...]

is_self_rec(MfaOrLabel::mfa_or_funlbl(), Callgraph::callgraph()) -> boolean()

is_escaping(Label::label(), Callgraph::callgraph()) -> boolean()

add_edges(Edges::[callgraph_edge()], CG::callgraph()) -> callgraph()

take_scc(Callgraph::callgraph()) -> none | {ok, scc(), callgraph()}

remove_external(Callgraph::callgraph()) -> {callgraph(), [tuple()]}

non_local_calls(Callgraph::callgraph()) -> mfa_calls()

renew_race_info(CG::callgraph(), RaceCode::dict(), PublicTables::[label()], NamedTables::[string()]) -> callgraph()

modules(Callgraph::callgraph()) -> [module()]

module_deps(Callgraph::callgraph()) -> dict()

strip_module_deps(ModDeps::dict(), StripSet::set()) -> dict()

finalize(Callgraph::callgraph()) -> callgraph()

reset_from_funs(Funs::[mfa_or_funlbl()], Callgraph::callgraph()) -> callgraph()

module_postorder_from_funs(Funs::[mfa_or_funlbl()], Callgraph::callgraph()) -> [[module()]]

scan_core_tree(Tree::c_module() (see module cerl), Callgraph::callgraph()) -> callgraph()

cleanup(Callgraph::callgraph()) -> callgraph()

get_digraph(Callgraph::callgraph()) -> digraph()

get_named_tables(Callgraph::callgraph()) -> [string()]

get_public_tables(Callgraph::callgraph()) -> [label()]

get_race_code(Callgraph::callgraph()) -> dict()

get_race_detection(Callgraph::callgraph()) -> boolean()

race_code_new(Callgraph::callgraph()) -> callgraph()

put_digraph(Digraph::digraph(), Callgraph::callgraph()) -> callgraph()

put_race_code(RaceCode::dict(), Callgraph::callgraph()) -> callgraph()

put_race_detection(RaceDetection::boolean(), Callgraph::callgraph()) -> callgraph()

put_named_tables(NamedTables::[string()], Callgraph::callgraph()) -> callgraph()

put_public_tables(PublicTables::[label()], Callgraph::callgraph()) -> callgraph()

to_dot(Callgraph::callgraph(), File::filename() (see module file)) -> ok

to_ps(Callgraph::callgraph(), File::filename() (see module file), Args::string()) -> ok

put_behaviour_api_calls(Calls::[{mfa(), mfa()}], Callgraph::callgraph()) -> callgraph()

get_behaviour_api_calls(Callgraph::callgraph()) -> [{mfa(), mfa()}]