Module Checkers.ClassLoadsDomain

module F = Stdlib.Format
module ClassLoad : Absint.ExplicitTrace.Element with type Element.t = string
module Event : Absint.ExplicitTrace.TraceElem with type elem_t = ClassLoad.t
include Absint.AbstractDomain.WithBottom
include Absint.AbstractDomain.S
include Absint.AbstractDomain.NoJoin
include IStdlib.PrettyPrintable.PrintableType
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val bottom : t

The bottom value of the domain.

val is_bottom : t -> bool

Return true if this is the bottom value

type summary = t
val pp_summary : F.formatter -> summary -> unit
val mem_typename : IR.Typ.Name.t -> t -> bool
val add_typename : IBase.Location.t -> t -> IR.Typ.Name.t -> t
val integrate_summary : IR.Procname.t -> IBase.Location.t -> t -> summary -> t
val iter : (Event.t -> unit) -> t -> unit