Module InferIR__Var

Single abstraction for all the kinds of variables in SIL

type t = private
| LogicalVar of InferIR.Ident.t
| ProgramVar of InferIR.Pvar.t
val compare : t -> t -> int
val equal : t -> t -> bool
val compare_modulo_this : t -> t -> int
val of_id : InferIR.Ident.t -> t
val of_pvar : InferIR.Pvar.t -> t
val of_formal_index : int -> t

Create a variable representing the ith formal of the current procedure

val get_all_vars_in_exp : InferIR.Exp.t -> t InferStdlib.IStd.Sequence.t

Get all free and program vars

val to_exp : t -> InferIR.Exp.t
val get_ident : t -> InferIR.Ident.t option
val get_pvar : t -> InferIR.Pvar.t option
val is_global : t -> bool
val is_local_to_procedure : InferIR.Typ.Procname.t -> t -> bool
val is_return : t -> bool
val is_footprint : t -> bool
val is_none : t -> bool
val appears_in_source_code : t -> bool

return true if this variable appears in source code (i.e., is not a LogicalVar or a frontend-generated ProgramVar)

val is_cpp_temporary : t -> bool
val get_footprint_index : t -> int option
val pp : Stdlib.Format.formatter -> t -> unit
module Map : InferStdlib.PrettyPrintable.PPMap with type PPMap.key = t