Module Symb.SymbolPath

type deref_kind =
| Deref_ArrayIndex
| Deref_COneValuePointer
| Deref_CPointer
| Deref_JavaPointer
val compare_deref_kind : deref_kind -> deref_kind -> int
type prim =
| Pvar of IR.Pvar.t
| Deref of deref_kind * partial
| Callsite of {
ret_typ : IR.Typ.t;
cs : Absint.CallSite.t;
obj_path : partial option;
}

obj_path represents the varaible name object when a method of which is called at the cs callsite.

and partial = prim BufferOverrunField.t
val compare_prim : prim -> prim -> int
val compare_partial : partial -> partial -> int
val compare_prim : prim -> prim -> int
val compare_partial : partial -> partial -> int
type t = private
| Normal of partial
| Offset of {
p : partial;
is_void : bool;
}
| Length of {
p : partial;
is_void : bool;
}
| Modeled of partial
val equal : t -> t -> bool
val equal_partial : partial -> partial -> bool
val pp_mark : markup:bool -> F.formatter -> t -> unit
val pp_partial : F.formatter -> partial -> unit
val pp_partial_paren : paren:bool -> F.formatter -> partial -> unit
val of_pvar : IR.Pvar.t -> partial
val of_callsite : ?⁠obj_path:partial -> ret_typ:IR.Typ.t -> Absint.CallSite.t -> partial
val deref : deref_kind:deref_kind -> partial -> partial
val append_field : ?⁠typ:IR.Typ.t -> partial -> IR.Fieldname.t -> partial
val append_star_field : partial -> IR.Fieldname.t -> partial
val normal : partial -> t
val offset : partial -> is_void:bool -> t
val length : partial -> is_void:bool -> t
val modeled : partial -> t
val is_this : partial -> bool
val get_pvar : partial -> IR.Pvar.t option
val represents_multiple_values : partial -> bool
val represents_multiple_values_sound : partial -> bool
val represents_callsite_sound_partial : partial -> bool
val exists_pvar_partial : f:(IR.Pvar.t -> bool) -> partial -> bool
val exists_str_partial : f:(string -> bool) -> partial -> bool
val is_void_ptr_path : t -> bool
val is_cpp_vector_elem : partial -> bool
val is_global_partial : partial -> bool
val is_length : t -> bool