diff --git a/infer/src/checkers/accessPath.ml b/infer/src/checkers/accessPath.ml index 373a3d633..d2b83e5c7 100644 --- a/infer/src/checkers/accessPath.ml +++ b/infer/src/checkers/accessPath.ml @@ -11,7 +11,7 @@ open! Utils module F = Format -type base = Pvar.t * Typ.t +type base = Var.t * Typ.t type access = | FieldAccess of Ident.fieldname * Typ.t @@ -27,7 +27,7 @@ let base_compare ((var1, typ1) as base1) ((var2, typ2) as base2) = if base1 == base2 then 0 else - Pvar.compare var1 var2 + Var.compare var1 var2 |> next Typ.compare typ1 typ2 let base_equal base1 base2 = @@ -68,7 +68,10 @@ let equal ap1 ap2 = compare ap1 ap2 = 0 let of_pvar pvar typ = - (pvar, typ), [] + (Var.of_pvar pvar, typ), [] + +let of_id id typ = + (Var.of_id id, typ), [] let append (base, accesses) access = base, accesses @ [access] @@ -102,7 +105,7 @@ let (<=) ~lhs ~rhs = | (Exact lhs_ap | Abstracted lhs_ap), Abstracted rhs_ap -> is_prefix rhs_ap lhs_ap let pp_base fmt (pvar, _) = - (Pvar.pp pe_text) fmt pvar + Var.pp fmt pvar let pp_access fmt = function | FieldAccess (field_name, _) -> F.fprintf fmt ".%a" Ident.pp_fieldname field_name diff --git a/infer/src/checkers/accessPath.mli b/infer/src/checkers/accessPath.mli index 2d8b72f32..53babd924 100644 --- a/infer/src/checkers/accessPath.mli +++ b/infer/src/checkers/accessPath.mli @@ -9,7 +9,7 @@ (** Module for naming heap locations via the path used to access them (e.g., x.f.g, y[a].b) *) -type base = Pvar.t * Typ.t +type base = Var.t * Typ.t type access = | FieldAccess of Ident.fieldname * Typ.t (* field name * field type *) @@ -38,6 +38,9 @@ val access_equal : access -> access -> bool (** create an access path from a pvar *) val of_pvar : Pvar.t -> Typ.t -> raw +(** create an access path from an ident *) +val of_id : Ident.t -> Typ.t -> raw + (** append a new access to an existing access path; e.g., `append_access g x.f` produces `x.f.g` *) val append : raw -> access -> raw diff --git a/infer/src/unit/accessPathTests.ml b/infer/src/unit/accessPathTests.ml index 109ad288f..9abb1a1cb 100644 --- a/infer/src/unit/accessPathTests.ml +++ b/infer/src/unit/accessPathTests.ml @@ -12,7 +12,7 @@ open !Utils module F = Format let make_base base_str = - Pvar.mk (Mangled.from_string base_str) Procname.empty_block, Typ.Tvoid + Var.of_pvar (Pvar.mk (Mangled.from_string base_str) Procname.empty_block), Typ.Tvoid let make_field_access access_str = AccessPath.FieldAccess (Ident.create_fieldname (Mangled.from_string access_str) 0, Typ.Tvoid) diff --git a/infer/src/unit/accessTreeTests.ml b/infer/src/unit/accessTreeTests.ml index 3cf718db6..8aaf7f78f 100644 --- a/infer/src/unit/accessTreeTests.ml +++ b/infer/src/unit/accessTreeTests.ml @@ -22,7 +22,7 @@ module MockTraceDomain = module Domain = AccessTree.Make (MockTraceDomain) let make_base base_str = - Pvar.mk (Mangled.from_string base_str) Procname.empty_block, Typ.Tvoid + Var.of_pvar (Pvar.mk (Mangled.from_string base_str) Procname.empty_block), Typ.Tvoid let make_field_access access_str = AccessPath.FieldAccess (Ident.create_fieldname (Mangled.from_string access_str) 0, Typ.Tvoid)