dialyzer_analysis_callgraph

Types


anal_type() = succ_typings | plt_build

compile_init_data() =
            #compile_init{callgraph = undefined
                                     | dialyzer_callgraph:callgraph(),
                          codeserver = undefined
                                      | dialyzer_codeserver:codeserver(),
                          defines = [dial_define()],
                          include_dirs = [file:filename()],
                          start_from = start_from(),
                          use_contracts = boolean()}

compile_mid_data() =
            {module(),
             cerl:cerl(),
             [mfa()],
             dialyzer_callgraph:callgraph(),
             dialyzer_codeserver:codeserver()}

compile_result() =
            {[{file:filename(), error_reason()}], [mfa()], [module()]}

dial_define() = {atom(), term()}

dial_warn_tag() = warn_return_no_exit
                        | warn_return_only_exit
                        | warn_not_called
                        | warn_non_proper_list
                        | warn_matching
                        | warn_opaque
                        | warn_fun_app
                        | warn_failing_call
                        | warn_bin_construction
                        | warn_contract_types
                        | warn_contract_syntax
                        | warn_contract_not_equal
                        | warn_contract_subtype
                        | warn_contract_supertype
                        | warn_callgraph
                        | warn_umatched_return
                        | warn_race_condition
                        | warn_behaviour
                        | warn_contract_range
                        | warn_undefined_callbacks
                        | warn_unknown

error_reason() = string()

label() = integer() >= 0

mfa_or_funlbl() = label() | mfa()

no_warn_unused() = sets:set(mfa())

one_file_result() = {error, error_reason()}
                          | {ok,
                             [dialyzer_callgraph:callgraph_edge()],
                             [mfa_or_funlbl()],
                             [mfa()],
                             module()}

solver() = v1 | v2

start_from() = byte_code | src_code

Functions


start(Parent::pid(), LegalWarnings::[dial_warn_tag()], Analysis::#analysis{analysis_pid=undefined | pid(), type=anal_type(), defines=[dial_define()], doc_plt=undefined | plt() (see module dialyzer_plt), files=[filename() (see module file)], include_dirs=[filename() (see module file)], start_from=start_from(), plt=undefined | plt() (see module dialyzer_plt), use_contracts=boolean(), race_detection=boolean(), behaviours_chk=boolean(), timing=boolean() | debug, timing_server=undefined | timing_server() (see module dialyzer_timing), callgraph_file=filename() (see module file), solvers=undefined | [solver()]}) -> ok

compile_init_result() -> compile_result()

add_to_result(File::filename() (see module file), NewData::one_file_result(), X3::compile_result(), InitData::compile_init_data()) -> compile_result()

start_compilation(File::filename() (see module file), Compile_init::compile_init_data()) -> {error, error_reason()} | {ok, integer(), compile_mid_data()}

continue_compilation(NextLabel::integer(), X2::compile_mid_data()) -> one_file_result()