Absint.AccessPath
Module for naming heap locations via the path used to access them (e.g., x.f.g, ya
.b)
type access =
| ArrayAccess of IR.Typ.t * t list
array element type with list of access paths in index
*)| FieldAccess of IR.Fieldname.t
field name
*)root var, and a list of accesses. closest to the root var is first that is, x.f.g is represented as (x, f; g
)
get 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 -> t
create an access path from an ident
append new accesses to an existing access path; e.g., `append_access x.f g, h
` produces `x.f.g.h`
val pp : Stdlib.Format.formatter -> t -> unit
val pp_base : Stdlib.Format.formatter -> base -> unit
val pp_access : Stdlib.Format.formatter -> access -> unit
val pp_access_list : Stdlib.Format.formatter -> access list -> unit
module Abs : sig ... end
module BaseMap : IStdlib.PrettyPrintable.PPMap with type key = base