Module InferIR.AccessExpression

type t =
| Base of AccessPath.base
| FieldOffset of t * Typ.Fieldname.t
| ArrayOffset of t * Typ.t * t list
| AddressOf of t
| Dereference of t
include sig ... end
val compare : t ‑> t ‑> int
val to_access_path : t ‑> AccessPath.t
val to_access_paths : t list ‑> AccessPath.t list
val of_id : Ident.t ‑> Typ.t ‑> t

create an access expression from an ident

val get_base : t ‑> AccessPath.base
val replace_base : remove_deref_after_base:bool ‑> AccessPath.base ‑> t ‑> t
val is_base : t ‑> bool
val get_typ : t ‑> Tenv.t ‑> Typ.t option
val pp : Format.formatter ‑> t ‑> unit
val equal : t ‑> t ‑> bool
val of_lhs_exp : include_array_indexes:bool ‑> add_deref:bool ‑> Exp.t ‑> Typ.t ‑> f_resolve_id:(Var.t ‑> t option) ‑> t option

convert lhs_exp to an access expression, resolving identifiers using f_resolve_id

val normalize : t ‑> t