I am examples for GtBridge.Analysis, the static analysis module.
Summary
Functions
I define a module outside the bridge's pipeline (bare eval, as iex
or dynamic codegen would) and verify sync enters it into the
record: the fact is broadcast and the projection picks it up.
Message-driven - I wait on the broker's own event, no sleeps.
Returns the names sync announced.
I delete a module out-of-band (bare :code.delete, not the bridge's
purge) and verify full reconciliation retracts it as a
:source_removed fact. Not loaded alone is not enough (the BEAM
loads lazily); gone means not vouched for by any app spec and not
loadable either. Returns the reconciliation diff.
Callback implementation for ExExample.Behaviour.copy/1.
Callback implementation for ExExample.Behaviour.rerun?/1.
Functions
I define a module outside the bridge's pipeline (bare eval, as iex
or dynamic codegen would) and verify sync enters it into the
record: the fact is broadcast and the projection picks it up.
Message-driven - I wait on the broker's own event, no sleeps.
Returns the names sync announced.
I delete a module out-of-band (bare :code.delete, not the bridge's
purge) and verify full reconciliation retracts it as a
:source_removed fact. Not loaded alone is not enough (the BEAM
loads lazily); gone means not vouched for by any app spec and not
loadable either. Returns the reconciliation diff.
@spec annotations_survive_broken_buffer() :: map()
@spec app_dep_tree() :: map()
@spec app_reverse_dep_tree() :: map()
@spec append_function_finds_module_end() :: String.t()
@spec call_sites_cross_module_type() :: [map()]
@spec call_sites_local_defp_without_context() :: [map()]
@spec call_sites_simple() :: [map()]
@spec call_sites_through_wrapped_directives() :: [map()]
@spec call_sites_with_aliases() :: [map()]
@spec callees_of_eval() :: [module()]
@spec callers_of_serializer() :: [module()]
Callback implementation for ExExample.Behaviour.copy/1.
@spec default_arg_head_resolves_to_its_def() :: map()
@spec dynamic_module_discovery() :: [String.t()]
@spec exported_functions() :: [map()]
@spec exported_functions_erlang() :: [map()]
@spec functions_in_source_includes_types() :: [map()]
@spec implementors_of_start_link() :: [map()]
@spec implementors_required_keys() :: [map()]
@spec implementors_with_arity() :: [map()]
@spec mnesia_tables() :: [map()]
@spec module_details() :: [map()]
@spec module_graph() :: [GtBridge.Analysis.Graph.edge()]
@spec multiline_spec_stays_in_source() :: map()
@spec references_to_source_file() :: [map()]
@spec replace_function_save_and_delete() :: String.t()
Callback implementation for ExExample.Behaviour.rerun?/1.
@spec root_apps() :: [atom()]
@spec supervision_tree() :: map()
@spec swap_functions_keeps_bodies_intact() :: String.t()
@spec system_doc_coverage() :: [map()]
@spec system_info() :: map()
@spec system_stats() :: map()
@spec typedstruct_with_options_locates_t() :: map()
@spec xref_index_survives_recompile() :: non_neg_integer()