Solving inter-procedural constraints in shape-like-dict
[hiphop-php.git] / hphp / hack / src / shape_analysis / shape_analysis.mli
blob6142df7153bea4a36e105f84f39d95dd0d61712d
1 (*
2 * Copyright (c) Facebook, Inc. and its affiliates.
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the "hack" directory of this source tree.
7 *)
9 (** A program analysis to find shape like dicts and the static keys used in
10 these dicts. *)
12 open Shape_analysis_types
14 exception Shape_analysis_exn of string
16 val is_shape_like_dict : shape_result -> bool
18 val simplify : Typing_env_types.env -> constraint_ list -> shape_result list
20 val callable :
21 A.id_ ->
22 Tast_env.t ->
23 Tast.fun_param list ->
24 return:Tast.type_hint ->
25 Tast.func_body ->
26 decorated_constraints
28 val do_ : options -> Provider_context.t -> Tast.program -> unit
30 val show_shape_result : Typing_env_types.env -> shape_result -> string