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.
9 (** Provides decls from the configured backend, e.g. shared memory, local memory, service, etc. *)
13 type type_key
= string
15 type gconst_key
= string
17 type module_key
= string
20 include module type of Typing_classes_heap.Api
23 type fun_decl
= Typing_defs.fun_elt
25 type class_decl
= Class.t
27 type typedef_decl
= Typing_defs.typedef_type
29 type gconst_decl
= Typing_defs.const_decl
31 type module_decl
= Typing_defs.module_def_type
33 val prepare_for_typecheck
:
34 Provider_context.t
-> Relative_path.t
-> string -> unit
37 ?tracing_info
:Decl_counters.tracing_info
->
43 ?tracing_info
:Decl_counters.tracing_info
->
49 ?tracing_info
:Decl_counters.tracing_info
->
55 ?tracing_info
:Decl_counters.tracing_info
->
61 ?tracing_info
:Decl_counters.tracing_info
->
66 (** This assumes that [class_name] defines and overrides [method_name]
67 and returns the method from an ancestor of [class_name] that would
68 have been inherited by [class_name] had it not overridden it. *)
69 val get_overridden_method
:
71 class_name
:type_key
->
74 Typing_defs.class_elt
option
76 val local_changes_push_sharedmem_stack
: unit -> unit
78 val local_changes_pop_sharedmem_stack
: unit -> unit
80 val lookup_or_populate_class_cache
:
82 (type_key
-> Typing_classes_heap.class_t
option) ->
83 Typing_classes_heap.class_t
option
85 val declare_folded_class_in_file_FOR_TESTS_ONLY
:
86 Provider_context.t
-> type_key
-> Decl_defs.decl_class_type