Module Symb.SymbolPath

type deref_kind =
  1. | Deref_ArrayIndex
  2. | Deref_COneValuePointer
  3. | Deref_CPointer
  4. | Deref_JavaPointer
type prim =
  1. | Pvar of IR.Pvar.t
  2. | Deref of deref_kind * partial
  3. | Callsite of {
    1. ret_typ : IR.Typ.t;
    2. cs : Absint.CallSite.t;
    3. obj_path : partial option;
    }
    (*

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

    *)
val compare_prim : prim -> prim -> int
val compare_partial : partial -> partial -> int
type t = private
  1. | Normal of partial
  2. | Offset of {
    1. p : partial;
    2. is_void : bool;
    }
  3. | Length of {
    1. p : partial;
    2. is_void : bool;
    }
  4. | Modeled of partial
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
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