Module Absint.IssueLog

type t

Module for storing issues detected outside of per-procedure analysis (and hence not serialized as a part of procedure summary).

val empty : t
val iter : f:(IR.Procname.t -> Errlog.t -> unit) -> t -> unit
val get_or_add : proc:IR.Procname.t -> t -> t * Errlog.t

Get the error log for a given procname. If there is none, add an empty one to the map. Return the resulting map together with the errlog.

val is_stored : checker:IBase.Checker.t -> file:IBase.SourceFile.t -> bool

Returns true iff an issue log for the given checker and source file is stored in the database

val store : checker:IBase.Checker.t -> file:IBase.SourceFile.t -> t -> unit

If there are any issues in the log, store ~checker ~file stores the map in the database. Otherwise, no write occurs.

val invalidate : IBase.SourceFile.t -> unit

Delete any stored issues for the given source_file from the database.

val invalidate_all : procedures:IR.Procname.t list -> unit

Delete any stored issues that depend on the given procedures from the database.

val iter_all_issues : f:(IBase.Checker.t -> IR.Procname.t -> Errlog.t -> unit) -> unit

iterate over all stored issues from all registered checkers in arbitrary order