Module TraceTests.MockTrace

module Source : sig ... end
module Sink : sig ... end
val get_report : Source.t -> Sink.t -> Sanitizer.t list -> IBase.IssueType.t option
type t
val leq : lhs:t -> rhs:t -> bool
val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val bottom : t
val is_bottom : t -> bool
module Sources : sig ... end
module Sinks = Sink.Set
module Passthroughs = Absint.Passthrough.Set
type path = Passthroughs.t * (Source.t * Passthroughs.t) list * (Sink.t * Passthroughs.t) list
type report = {
  1. issue : IBase.IssueType.t;
  2. path_source : Source.t;
  3. path_sink : Sink.t;
  4. path_passthroughs : Passthroughs.t;
}
val sources : t -> Sources.t
val sinks : t -> Sinks.t
val passthroughs : t -> Passthroughs.t
val get_reports : ?cur_site:Absint.CallSite.t -> t -> report list
val get_reportable_paths : ?cur_site:Absint.CallSite.t -> t -> trace_of_pname:(IR.Procname.t -> t) -> path list
val to_loc_trace : ?desc_of_source:(Source.t -> string) -> ?source_should_nest:(Source.t -> bool) -> ?desc_of_sink:(Sink.t -> string) -> ?sink_should_nest:(Sink.t -> bool) -> path -> Absint.Errlog.loc_trace
val of_source : Source.t -> t
val of_footprint : Absint.AccessPath.Abs.t -> t
val add_source : Source.t -> t -> t
val add_sink : Sink.t -> t -> t
val add_sanitizer : Sanitizer.t -> t -> t
val update_sources : t -> Sources.t -> t
val update_sinks : t -> Sinks.t -> t
val get_footprint_indexes : t -> IStdlib.IntSet.t
val append : t -> t -> Absint.CallSite.t -> t
val pp : Absint__TaintTrace.F.formatter -> t -> unit
val pp_path : IR.Procname.t -> Absint__TaintTrace.F.formatter -> path -> unit