Checkers.ImpurityDomain
type trace =
| WrittenTo of Pulselib.PulseBasicInterface.Trace.t
| Invalid of Pulselib.PulseBasicInterface.Invalidation.t
* Pulselib.PulseBasicInterface.Trace.t
module ModifiedAccess : sig ... end
module ModifiedVarMap : sig ... end
module Exited = Absint.AbstractDomain.BooleanOr
type t = {
modified_params : ModifiedVarMap.t;
modified_globals : ModifiedVarMap.t;
skipped_calls : Pulselib.PulseBasicInterface.SkippedCalls.t;
exited : Exited.t;
}
val pure : t
val is_pure : t -> bool
val add_to_errlog :
nesting:int ->
param_source ->
IR.Pvar.t ->
ModifiedAccess.t ->
Absint.Errlog.loc_trace_elem list ->
Absint.Errlog.loc_trace_elem list
val get_modified_immutables_opt :
IR.Tenv.t ->
t ->
(ModifiedVarMap.t * ModifiedVarMap.t) option