Module Absint__AccessTree.PathSet
Concise representation of a set of access paths
Parameters
Signature
include module type of sig ... end
module TraceDomain : sig ... endmodule AccessMap : sig ... endmodule BaseMap = Absint.AccessPath.BaseMaptype node= TraceDomain.t * treeand tree= Make(Absint.AbstractDomain.BooleanOr)(Config).tree=|Subtree of node AccessMap.tmap from access -> nodes. a leaf is encoded as an empty map
|Starspecial leaf for starred access paths
type t= node BaseMap.t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unitval leq : lhs:t -> rhs:t -> boolval join : t -> t -> tval widen : prev:t -> next:t -> num_iters:int -> tval bottom : tval is_bottom : t -> boolval empty_node : nodeval make_node : TraceDomain.t -> node AccessMap.t -> nodeval make_access_node : TraceDomain.t -> Absint.AccessPath.access -> TraceDomain.t -> nodefor testing only
val make_normal_leaf : TraceDomain.t -> nodecreate a leaf node with no successors
val make_starred_leaf : TraceDomain.t -> nodecreate a leaf node with a wildcard successor
val get_node : Absint.AccessPath.Abs.t -> t -> node optionretrieve the node associated with the given access path
val get_trace : Absint.AccessPath.Abs.t -> t -> TraceDomain.t optionretrieve the trace associated with the given access path
val add_node : Absint.AccessPath.Abs.t -> node -> t -> tadd the given access path to the tree and associate its last access with the given node. if any of the accesses in the path are not already present in the tree, they will be added with empty traces associated with each of the inner nodes.
val add_trace : Absint.AccessPath.Abs.t -> TraceDomain.t -> t -> tadd the given access path to the tree and associate its last access with the given trace. if any of the accesses in the path are not already present in the tree, they will be added with empty traces associated with each of the inner nodes.
val fold : ('a -> Absint.AccessPath.Abs.t -> node -> 'a) -> t -> 'a -> 'aapply a function to each (access path, node) pair in the tree.
val trace_fold : ('a -> Absint.AccessPath.Abs.t -> TraceDomain.t -> 'a) -> t -> 'a -> 'aval exists : (Absint.AccessPath.Abs.t -> node -> bool) -> t -> boolval iter : (Absint.AccessPath.Abs.t -> node -> unit) -> t -> unitval depth : t -> intnumber of traces in the tallest branch of the tree
val pp_node : Stdlib.Format.formatter -> node -> unit
val mem : Absint.AccessPath.Abs.t -> t -> bool