type t
=
| AccessExpression of AccessExpression.t | (** access path (e.g., x.f.g or x |
| UnaryOperator of Unop.t * t * Typ.t option | (** Unary operator with type of the result if known *) |
| BinaryOperator of Binop.t * t * t | (** Binary operator *) |
| Exception of t | (** Exception *) |
| Closure of Typ.Procname.t * (AccessPath.base * t) list | (** Name of function + environment *) |
| Constant of Const.t | (** Constants *) |
| Cast of Typ.t * t | (** Type cast *) |
| Sizeof of Typ.t * t option | (** C-style sizeof(), and also used to treate a type as an expression. Refer to |
val of_sil : include_array_indexes:bool ‑> f_resolve_id:(Var.t ‑> AccessExpression.t option) ‑> add_deref:bool ‑> Exp.t ‑> Typ.t ‑> t
Convert SIL expression to HIL expression
val get_access_exprs : t ‑> AccessExpression.t list
Get all the access paths used in the given HIL expression, including duplicates if a path is used more than once.
val is_null_literal : t ‑> bool
val is_int_zero : t ‑> bool