Module Absint.AccessPath
type access=|ArrayAccess of IR.Typ.t * t listarray element type with list of access paths in index
|FieldAccess of IR.Fieldname.tfield name
and t= base * access listroot var, and a list of accesses. closest to the root var is first that is, x.f.g is represented as (x,
f; g)
val get_typ : t -> IR.Tenv.t -> IR.Typ.t optionget the typ of the last access in the list of accesses if the list is non-empty, or the base if the list is empty. that is, for x.f.g, return typ(g), and for x, return typ(x)
val of_id : IR.Ident.t -> IR.Typ.t -> tcreate an access path from an ident
val append : t -> access list -> tappend new accesses to an existing access path; e.g., `append_access x.f
g, h` produces `x.f.g.h`
val replace_prefix : prefix:t -> replace_with:t -> t -> t optionval equal_base : base -> base -> boolval pp : Stdlib.Format.formatter -> t -> unitval pp_base : Stdlib.Format.formatter -> base -> unitval pp_access : Stdlib.Format.formatter -> access -> unitval pp_access_list : Stdlib.Format.formatter -> access list -> unit
module Abs : sig ... endmodule BaseMap : IStdlib.PrettyPrintable.PPMap with type PPMap.key = base