[litho] Remove receiver from MethodCallPrefix

Reviewed By: skcho

Differential Revision: D18960178

fbshipit-source-id: b0acff4dc
master
Ezgi Çiçek 5 years ago committed by Facebook Github Bot
parent 38421e2735
commit 9ed9363207

@ -28,25 +28,21 @@ let suffixes = String.Set.of_list ["Attr"; "Dip"; "Px"; "Res"; "Sp"]
module MethodCallPrefix = struct
type t =
{ (* TODO: We can remove the [receiver] field after we replace the old checker *)
receiver: LocalAccessPath.t [@compare.ignore]
; prefix: string
{ prefix: string
; procname: Typ.Procname.t [@compare.ignore]
; location: Location.t [@compare.ignore] }
[@@deriving compare]
let make receiver procname location =
let make procname location =
let method_name = Typ.Procname.get_method procname in
let prefix_opt =
String.Set.find_map suffixes ~f:(fun suffix -> String.chop_suffix method_name ~suffix)
in
let prefix = Option.value prefix_opt ~default:method_name in
{receiver; prefix; procname; location}
{prefix; procname; location}
let pp fmt {receiver; procname} =
F.fprintf fmt "%a.%a" LocalAccessPath.pp receiver Typ.Procname.pp procname
let pp fmt {procname} = Typ.Procname.pp fmt procname
let procname_to_string {procname} = Typ.Procname.get_method procname
end

@ -18,12 +18,11 @@ end
val suffixes : String.Set.t
(** Called procedure & location + its receiver *)
(** Called procedure & location *)
module MethodCallPrefix : sig
type t = private
{receiver: LocalAccessPath.t; prefix: string; procname: Typ.Procname.t; location: Location.t}
type t = private {prefix: string; procname: Typ.Procname.t; location: Location.t}
val make : LocalAccessPath.t -> Typ.Procname.t -> Location.t -> t
val make : Typ.Procname.t -> Location.t -> t
end
module Mem : sig

@ -135,7 +135,7 @@ struct
if is_component_build_method callee_pname tenv then
Domain.call_build_method ~ret:return_access_path ~receiver astate
else if is_component_builder callee_pname tenv then
let callee_prefix = Domain.MethodCallPrefix.make receiver callee_pname location in
let callee_prefix = Domain.MethodCallPrefix.make callee_pname location in
Domain.call_builder ~ret:return_access_path ~receiver callee_prefix astate
else astate
else

Loading…
Cancel
Save