Module RacerDDomain.AccessSnapshot
snapshot of the relevant state at the time of a heap access: concurrent thread(s), lock(s) held, ownership precondition
module AccessSnapshotElem : sig ... endinclude Absint.ExplicitTrace.TraceElem with type elem_t = AccessSnapshotElem.t
type elem_t= AccessSnapshotElem.ttype t= private{elem : elem_t;loc : IBase.Location.t;trace : Absint.CallSite.t list;}An
elemwhich occured atloc, after the chain of steps (usually calls) intrace.
Both pp and describe simply call the same function on the trace element.
include Absint.ExplicitTrace.Element with type Element.t := t
include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val describe : Stdlib.Format.formatter -> t -> unitPretty printer used for trace construction;
ppis used for debug output.
val make : elem_t -> IBase.Location.t -> tval map : f:(elem_t -> elem_t) -> t -> tval get_loc : t -> IBase.Location.tStarting location of the trace: this is either
lociftrace==[], or the head oftrace.
val make_loc_trace : ?nesting:int -> t -> Absint.Errlog.loc_traceval with_callsite : t -> Absint.CallSite.t -> tPush given callsite onto trace, extending the call chain by one.
module FiniteSet : Absint.ExplicitTrace.FiniteSet with type FiniteSet.elt = tA powerset of traces.
val is_write : t -> boolis it a write OR a container write
val is_container_write : t -> boolval get_loc : t -> IBase.Location.tval is_unprotected : t -> boolreturn true if not protected by lock, thread, or ownership