2 * Copyright (c) 2015, Facebook, Inc.
5 * This source code is licensed under the MIT license found in the
6 * LICENSE file in the "hack" directory of this source tree.
13 tco_experimental_features
: SSet.t
;
14 tco_migration_flags
: SSet.t
;
15 tco_num_local_workers
: int option;
16 tco_parallel_type_checking_threshold
: int;
17 tco_max_typechecker_worker_memory_mb
: int option;
18 tco_defer_class_declaration_threshold
: int option;
19 tco_prefetch_deferred_files
: bool;
20 tco_remote_type_check_threshold
: int option;
21 tco_remote_type_check
: bool;
22 tco_remote_worker_key
: string option;
23 tco_remote_check_id
: string option;
24 tco_remote_max_batch_size
: int;
25 tco_remote_min_batch_size
: int;
26 tco_num_remote_workers
: int;
27 so_remote_version_specifier
: string option;
28 so_remote_worker_vfs_checkout_threshold
: int;
29 so_naming_sqlite_path
: string option;
30 po_auto_namespace_map
: (string * string) list
;
32 po_deregister_php_stdlib
: bool;
33 po_disallow_toplevel_requires
: bool;
34 po_allow_unstable_features
: bool;
35 tco_log_inference_constraints
: bool;
36 tco_language_feature_logging
: bool;
38 tco_disallow_invalid_arraykey
: bool;
39 tco_disallow_byref_dynamic_calls
: bool;
40 tco_disallow_byref_calls
: bool;
41 allowed_fixme_codes_strict
: ISet.t
;
42 allowed_fixme_codes_partial
: ISet.t
;
43 codes_not_raised_partial
: ISet.t
;
44 log_levels
: int SMap.t
;
45 po_disable_lval_as_an_expression
: bool;
46 tco_shallow_class_decl
: bool;
47 tco_force_shallow_decl_fanout
: bool;
48 tco_fetch_remote_old_decls
: bool;
49 tco_force_load_hot_shallow_decls
: bool;
50 tco_populate_member_heaps
: bool;
51 tco_skip_hierarchy_checks
: bool;
52 po_rust_parser_errors
: bool;
53 tco_like_type_hints
: bool;
54 tco_union_intersection_type_hints
: bool;
56 tco_coeffects_local
: bool;
57 tco_strict_contexts
: bool;
59 tco_simple_pessimize
: float;
60 tco_complex_coercion
: bool;
61 error_codes_treated_strictly
: ISet.t
;
62 tco_check_xhp_attribute
: bool;
63 tco_check_redundant_generics
: bool;
64 tco_disallow_unresolved_type_variables
: bool;
65 tco_disallow_trait_reuse
: bool;
66 po_enable_class_level_where_clauses
: bool;
67 po_disable_legacy_soft_typehints
: bool;
68 po_allowed_decl_fixme_codes
: ISet.t
;
69 po_allow_new_attribute_syntax
: bool;
70 tco_global_inference
: bool;
71 tco_gi_reinfer_types
: string list
;
72 tco_ordered_solving
: bool;
73 tco_const_static_props
: bool;
74 po_disable_legacy_attribute_syntax
: bool;
75 tco_const_attribute
: bool;
76 po_const_default_func_args
: bool;
77 po_const_default_lambda_args
: bool;
78 po_disallow_silence
: bool;
79 po_abstract_static_props
: bool;
80 po_parser_errors_only
: bool;
81 tco_check_attribute_locations
: bool;
82 glean_service
: string;
83 glean_hostname
: string;
85 glean_reponame
: string;
86 symbol_write_root_path
: string;
87 symbol_write_hhi_path
: string;
88 symbol_write_ignore_paths
: string list
;
89 symbol_write_index_paths
: string list
;
90 symbol_write_index_paths_file
: string option;
91 symbol_write_index_paths_file_output
: string option;
92 symbol_write_include_hhi
: bool;
93 po_disallow_func_ptrs_in_constants
: bool;
94 tco_error_php_lambdas
: bool;
95 tco_disallow_discarded_nullable_awaitables
: bool;
96 po_enable_xhp_class_modifier
: bool;
97 po_disable_xhp_element_mangling
: bool;
98 po_disable_xhp_children_declarations
: bool;
99 po_enable_enum_classes
: bool;
100 po_disable_hh_ignore_error
: bool;
101 po_disable_array
: bool;
102 po_disable_array_typehint
: bool;
103 tco_enable_systemlib_annotations
: bool;
104 tco_higher_kinded_types
: bool;
105 tco_method_call_inference
: bool;
106 tco_report_pos_from_reason
: bool;
107 tco_typecheck_sample_rate
: float;
108 tco_enable_sound_dynamic
: bool;
109 po_disallow_fun_and_cls_meth_pseudo_funcs
: bool;
110 po_disallow_inst_meth
: bool;
111 tco_use_direct_decl_parser
: bool;
112 tco_ifc_enabled
: string list
;
113 tco_global_write_check_enabled
: string list
;
114 po_enable_enum_supertyping
: bool;
115 po_interpret_soft_types_as_like_types
: bool;
116 tco_enable_strict_string_concat_interp
: bool;
117 tco_ignore_unsafe_cast
: bool;
119 tco_enable_expression_trees
: bool;
120 tco_enable_modules
: bool;
121 tco_allowed_expression_tree_visitors
: string list
;
122 tco_math_new_code
: bool;
123 tco_typeconst_concrete_concrete_error
: bool;
124 tco_enable_strict_const_semantics
: bool;
125 tco_meth_caller_only_public_visibility
: bool;
126 tco_require_extends_implements_ancestors
: bool;
127 tco_strict_value_equality
: bool;
128 tco_enforce_sealed_subclasses
: bool;
129 tco_everything_sdt
: bool;
130 tco_pessimise_builtins
: bool;
131 tco_enable_disk_heap
: bool;
132 tco_explicit_consistent_constructors
: int;
133 tco_type_printer_fuel
: int;
134 tco_log_saved_state_age_and_distance
: bool;
135 tco_specify_manifold_api_key
: bool;
136 tco_saved_state_manifold_api_key
: string option;
137 tco_profile_toplevel_definitions
: bool;
139 [@@deriving eq
, show
]
142 * Insist on instantiations for all generic types, even in non-strict files
144 let tco_experimental_generics_arity = "generics_arity"
147 * Forbid casting nullable values, since they have unexpected semantics. For
148 * example, casting `null` to an int results in `0`, which may or may not be
149 * what you were expecting.
151 let tco_experimental_forbid_nullable_cast = "forbid_nullable_cast"
154 * Disallow static memoized functions in non-final classes
157 let tco_experimental_disallow_static_memoized = "disallow_static_memoized"
160 * Prevent type param names from shadowing class names
162 let tco_experimental_type_param_shadowing = "type_param_shadowing"
165 * Enable abstract const type with default syntax, i.e.
166 * abstract const type T as num = int;
168 let tco_experimental_abstract_type_const_with_default =
169 "abstract_type_const_with_default"
172 * Allow typechecker to do global inference and infer IFC flows
173 * with the <<InferFlows>> flag
176 let tco_experimental_infer_flows = "ifc_infer_flows"
178 let tco_experimental_supportdynamic_type_hint = "supportdynamic_type_hint"
180 let tco_experimental_all =
185 tco_experimental_generics_arity;
186 tco_experimental_forbid_nullable_cast;
187 tco_experimental_disallow_static_memoized;
188 tco_experimental_abstract_type_const_with_default;
189 tco_experimental_infer_flows;
190 tco_experimental_supportdynamic_type_hint;
193 let tco_migration_flags_all = List.fold_right ~init
:SSet.empty ~f
:SSet.add
[]
197 tco_experimental_features
= SSet.empty
;
198 tco_migration_flags
= SSet.empty
;
199 tco_num_local_workers
= None
;
200 tco_parallel_type_checking_threshold
= 10;
201 tco_max_typechecker_worker_memory_mb
= None
;
202 tco_defer_class_declaration_threshold
= None
;
203 tco_prefetch_deferred_files
= false;
204 tco_remote_type_check_threshold
= None
;
205 tco_remote_type_check
= true;
206 tco_remote_worker_key
= None
;
207 tco_remote_check_id
= None
;
208 tco_remote_max_batch_size
= 8_000;
209 tco_remote_min_batch_size
= 5_000;
210 tco_num_remote_workers
= 4;
211 so_remote_version_specifier
= None
;
212 so_remote_worker_vfs_checkout_threshold
= 10000;
213 so_naming_sqlite_path
= None
;
214 po_auto_namespace_map
= [];
216 po_disallow_toplevel_requires
= false;
217 po_deregister_php_stdlib
= false;
218 po_allow_unstable_features
= false;
219 tco_log_inference_constraints
= false;
220 tco_language_feature_logging
= false;
222 tco_disallow_invalid_arraykey
= true;
223 tco_disallow_byref_dynamic_calls
= false;
224 tco_disallow_byref_calls
= true;
225 allowed_fixme_codes_strict
= ISet.empty
;
226 allowed_fixme_codes_partial
= ISet.empty
;
227 codes_not_raised_partial
= ISet.empty
;
228 log_levels
= SMap.empty
;
229 po_disable_lval_as_an_expression
= true;
230 tco_shallow_class_decl
= false;
231 tco_force_shallow_decl_fanout
= false;
232 tco_fetch_remote_old_decls
= false;
233 tco_force_load_hot_shallow_decls
= false;
234 tco_populate_member_heaps
= true;
235 tco_skip_hierarchy_checks
= false;
236 po_rust_parser_errors
= false;
237 tco_like_type_hints
= false;
238 tco_union_intersection_type_hints
= false;
239 tco_coeffects
= true;
240 tco_coeffects_local
= true;
241 tco_strict_contexts
= true;
242 tco_like_casts
= false;
243 tco_simple_pessimize
= 0.0;
244 tco_complex_coercion
= false;
245 error_codes_treated_strictly
= ISet.of_list
[];
246 tco_check_xhp_attribute
= false;
247 tco_check_redundant_generics
= false;
248 tco_disallow_unresolved_type_variables
= false;
249 tco_disallow_trait_reuse
= false;
250 po_enable_class_level_where_clauses
= false;
251 po_disable_legacy_soft_typehints
= true;
252 po_allowed_decl_fixme_codes
= ISet.of_list
[];
253 po_allow_new_attribute_syntax
= false;
254 tco_global_inference
= false;
255 tco_gi_reinfer_types
= [];
256 tco_ordered_solving
= false;
257 tco_const_static_props
= false;
258 po_disable_legacy_attribute_syntax
= false;
259 tco_const_attribute
= false;
260 po_const_default_func_args
= false;
261 po_const_default_lambda_args
= false;
262 po_disallow_silence
= false;
263 po_abstract_static_props
= false;
264 po_parser_errors_only
= false;
265 tco_check_attribute_locations
= true;
269 glean_reponame
= "www.autocomplete";
270 symbol_write_root_path
= "www";
271 symbol_write_hhi_path
= "hhi";
272 symbol_write_ignore_paths
= [];
273 symbol_write_index_paths
= [];
274 symbol_write_index_paths_file
= None
;
275 symbol_write_index_paths_file_output
= None
;
276 symbol_write_include_hhi
= true;
277 po_disallow_func_ptrs_in_constants
= false;
278 tco_error_php_lambdas
= false;
279 tco_disallow_discarded_nullable_awaitables
= false;
280 po_enable_xhp_class_modifier
= true;
281 po_disable_xhp_element_mangling
= true;
282 po_disable_xhp_children_declarations
= true;
283 po_enable_enum_classes
= true;
284 po_disable_hh_ignore_error
= false;
285 po_disable_array
= true;
286 po_disable_array_typehint
= true;
287 tco_enable_systemlib_annotations
= false;
288 tco_higher_kinded_types
= false;
289 tco_method_call_inference
= false;
290 tco_report_pos_from_reason
= false;
291 tco_typecheck_sample_rate
= 1.0;
292 tco_enable_sound_dynamic
= false;
293 po_disallow_fun_and_cls_meth_pseudo_funcs
= false;
294 po_disallow_inst_meth
= false;
295 tco_use_direct_decl_parser
= false;
296 tco_ifc_enabled
= [];
297 tco_global_write_check_enabled
= [];
298 po_enable_enum_supertyping
= false;
299 po_interpret_soft_types_as_like_types
= false;
300 tco_enable_strict_string_concat_interp
= false;
301 tco_ignore_unsafe_cast
= false;
302 tco_readonly
= false;
303 tco_enable_expression_trees
= false;
304 tco_enable_modules
= false;
305 tco_allowed_expression_tree_visitors
= [];
306 tco_math_new_code
= false;
307 tco_typeconst_concrete_concrete_error
= false;
308 tco_enable_strict_const_semantics
= false;
309 tco_meth_caller_only_public_visibility
= true;
310 tco_require_extends_implements_ancestors
= false;
311 tco_strict_value_equality
= false;
312 tco_enforce_sealed_subclasses
= false;
313 tco_everything_sdt
= false;
314 tco_pessimise_builtins
= false;
315 tco_enable_disk_heap
= true;
316 tco_explicit_consistent_constructors
= 0;
317 tco_type_printer_fuel
= 100;
318 tco_log_saved_state_age_and_distance
= false;
319 tco_specify_manifold_api_key
= false;
320 tco_saved_state_manifold_api_key
= None
;
321 tco_profile_toplevel_definitions
= false;
325 ?
(po_deregister_php_stdlib
= default.po_deregister_php_stdlib
)
326 ?
(po_disallow_toplevel_requires
= default.po_disallow_toplevel_requires
)
327 ?
(tco_log_inference_constraints
= default.tco_log_inference_constraints
)
328 ?
(tco_experimental_features
= default.tco_experimental_features
)
329 ?
(tco_migration_flags
= default.tco_migration_flags
)
330 ?tco_num_local_workers
331 ?
(tco_parallel_type_checking_threshold
=
332 default.tco_parallel_type_checking_threshold
)
333 ?tco_max_typechecker_worker_memory_mb
334 ?tco_defer_class_declaration_threshold
335 ?
(tco_prefetch_deferred_files
= default.tco_prefetch_deferred_files
)
336 ?tco_remote_type_check_threshold
337 ?
(tco_remote_type_check
= default.tco_remote_type_check
)
338 ?tco_remote_worker_key
340 ?
(tco_remote_max_batch_size
= default.tco_remote_max_batch_size
)
341 ?
(tco_remote_min_batch_size
= default.tco_remote_min_batch_size
)
342 ?
(tco_num_remote_workers
= default.tco_num_remote_workers
)
343 ?so_remote_version_specifier
344 ?
(so_remote_worker_vfs_checkout_threshold
=
345 default.so_remote_worker_vfs_checkout_threshold
)
346 ?so_naming_sqlite_path
347 ?
(po_auto_namespace_map
= default.po_auto_namespace_map
)
348 ?
(tco_language_feature_logging
= default.tco_language_feature_logging
)
349 ?
(tco_timeout
= default.tco_timeout
)
350 ?
(tco_disallow_invalid_arraykey
= default.tco_disallow_invalid_arraykey
)
351 ?
(tco_disallow_byref_dynamic_calls
=
352 default.tco_disallow_byref_dynamic_calls
)
353 ?
(tco_disallow_byref_calls
= default.tco_disallow_byref_calls
)
354 ?
(allowed_fixme_codes_strict
= default.allowed_fixme_codes_strict
)
355 ?
(allowed_fixme_codes_partial
= default.allowed_fixme_codes_partial
)
356 ?
(codes_not_raised_partial
= default.codes_not_raised_partial
)
357 ?
(log_levels
= default.log_levels
)
358 ?
(po_disable_lval_as_an_expression
=
359 default.po_disable_lval_as_an_expression
)
360 ?
(tco_shallow_class_decl
= default.tco_shallow_class_decl
)
361 ?
(tco_force_shallow_decl_fanout
= default.tco_force_shallow_decl_fanout
)
362 ?
(tco_fetch_remote_old_decls
= default.tco_fetch_remote_old_decls
)
363 ?
(tco_force_load_hot_shallow_decls
=
364 default.tco_force_load_hot_shallow_decls
)
365 ?
(tco_populate_member_heaps
= default.tco_populate_member_heaps
)
366 ?
(tco_skip_hierarchy_checks
= default.tco_skip_hierarchy_checks
)
367 ?
(po_rust_parser_errors
= default.po_rust_parser_errors
)
368 ?
(tco_like_type_hints
= default.tco_like_type_hints
)
369 ?
(tco_union_intersection_type_hints
=
370 default.tco_union_intersection_type_hints
)
371 ?
(tco_coeffects
= default.tco_coeffects
)
372 ?
(tco_coeffects_local
= default.tco_coeffects_local
)
373 ?
(tco_strict_contexts
= default.tco_strict_contexts
)
374 ?
(tco_like_casts
= default.tco_like_casts
)
375 ?
(tco_simple_pessimize
= default.tco_simple_pessimize
)
376 ?
(tco_complex_coercion
= default.tco_complex_coercion
)
377 ?
(error_codes_treated_strictly
= default.error_codes_treated_strictly
)
378 ?
(tco_check_xhp_attribute
= default.tco_check_xhp_attribute
)
379 ?
(tco_check_redundant_generics
= default.tco_check_redundant_generics
)
380 ?
(tco_disallow_unresolved_type_variables
=
381 default.tco_disallow_unresolved_type_variables
)
382 ?
(tco_disallow_trait_reuse
= default.tco_disallow_trait_reuse
)
383 ?
(po_enable_class_level_where_clauses
=
384 default.po_enable_class_level_where_clauses
)
385 ?
(po_disable_legacy_soft_typehints
=
386 default.po_disable_legacy_soft_typehints
)
387 ?
(po_allowed_decl_fixme_codes
= default.po_allowed_decl_fixme_codes
)
388 ?
(po_allow_new_attribute_syntax
= default.po_allow_new_attribute_syntax
)
389 ?
(tco_global_inference
= default.tco_global_inference
)
390 ?
(tco_gi_reinfer_types
= default.tco_gi_reinfer_types
)
391 ?
(tco_ordered_solving
= default.tco_ordered_solving
)
392 ?
(tco_const_static_props
= default.tco_const_static_props
)
393 ?
(po_disable_legacy_attribute_syntax
=
394 default.po_disable_legacy_attribute_syntax
)
395 ?
(tco_const_attribute
= default.tco_const_attribute
)
396 ?
(po_const_default_func_args
= default.po_const_default_func_args
)
397 ?
(po_const_default_lambda_args
= default.po_const_default_lambda_args
)
398 ?
(po_disallow_silence
= default.po_disallow_silence
)
399 ?
(po_abstract_static_props
= default.po_abstract_static_props
)
400 ?
(po_parser_errors_only
= default.po_parser_errors_only
)
401 ?
(tco_check_attribute_locations
= default.tco_check_attribute_locations
)
402 ?
(glean_service
= default.glean_service
)
403 ?
(glean_hostname
= default.glean_hostname
)
404 ?
(glean_port
= default.glean_port
)
405 ?
(glean_reponame
= default.glean_reponame
)
406 ?
(symbol_write_root_path
= default.symbol_write_root_path
)
407 ?
(symbol_write_hhi_path
= default.symbol_write_hhi_path
)
408 ?
(symbol_write_ignore_paths
= default.symbol_write_ignore_paths
)
409 ?
(symbol_write_index_paths
= default.symbol_write_index_paths
)
410 ?symbol_write_index_paths_file
411 ?symbol_write_index_paths_file_output
412 ?
(symbol_write_include_hhi
= default.symbol_write_include_hhi
)
413 ?
(po_disallow_func_ptrs_in_constants
=
414 default.po_disallow_func_ptrs_in_constants
)
415 ?
(tco_error_php_lambdas
= default.tco_error_php_lambdas
)
416 ?
(tco_disallow_discarded_nullable_awaitables
=
417 default.tco_disallow_discarded_nullable_awaitables
)
418 ?
(po_enable_xhp_class_modifier
= default.po_enable_xhp_class_modifier
)
419 ?
(po_disable_xhp_element_mangling
= default.po_disable_xhp_element_mangling
)
420 ?
(po_disable_xhp_children_declarations
=
421 default.po_disable_xhp_children_declarations
)
422 ?
(po_enable_enum_classes
= default.po_enable_enum_classes
)
423 ?
(po_disable_hh_ignore_error
= default.po_disable_hh_ignore_error
)
424 ?
(po_disable_array
= default.po_disable_array
)
425 ?
(po_disable_array_typehint
= default.po_disable_array_typehint
)
426 ?
(po_allow_unstable_features
= default.po_allow_unstable_features
)
427 ?
(tco_enable_systemlib_annotations
=
428 default.tco_enable_systemlib_annotations
)
429 ?
(tco_higher_kinded_types
= default.tco_higher_kinded_types
)
430 ?
(tco_method_call_inference
= default.tco_method_call_inference
)
431 ?
(tco_report_pos_from_reason
= default.tco_report_pos_from_reason
)
432 ?
(tco_typecheck_sample_rate
= default.tco_typecheck_sample_rate
)
433 ?
(tco_enable_sound_dynamic
= default.tco_enable_sound_dynamic
)
434 ?
(po_disallow_fun_and_cls_meth_pseudo_funcs
=
435 default.po_disallow_fun_and_cls_meth_pseudo_funcs
)
436 ?
(po_disallow_inst_meth
= default.po_disallow_inst_meth
)
437 ?
(tco_use_direct_decl_parser
= default.tco_use_direct_decl_parser
)
438 ?
(tco_ifc_enabled
= default.tco_ifc_enabled
)
439 ?
(tco_global_write_check_enabled
= default.tco_global_write_check_enabled
)
440 ?
(po_enable_enum_supertyping
= default.po_enable_enum_supertyping
)
441 ?
(po_interpret_soft_types_as_like_types
=
442 default.po_interpret_soft_types_as_like_types
)
443 ?
(tco_enable_strict_string_concat_interp
=
444 default.tco_enable_strict_string_concat_interp
)
445 ?
(tco_ignore_unsafe_cast
= default.tco_ignore_unsafe_cast
)
446 ?
(tco_readonly
= default.tco_readonly
)
447 ?
(tco_enable_expression_trees
= default.tco_enable_expression_trees
)
448 ?
(tco_enable_modules
= default.tco_enable_modules
)
449 ?
(tco_allowed_expression_tree_visitors
=
450 default.tco_allowed_expression_tree_visitors
)
451 ?
(tco_math_new_code
= default.tco_math_new_code
)
452 ?
(tco_typeconst_concrete_concrete_error
=
453 default.tco_typeconst_concrete_concrete_error
)
454 ?
(tco_enable_strict_const_semantics
=
455 default.tco_enable_strict_const_semantics
)
456 ?
(tco_meth_caller_only_public_visibility
=
457 default.tco_meth_caller_only_public_visibility
)
458 ?
(tco_require_extends_implements_ancestors
=
459 default.tco_require_extends_implements_ancestors
)
460 ?
(tco_strict_value_equality
= default.tco_strict_value_equality
)
461 ?
(tco_enforce_sealed_subclasses
= default.tco_enforce_sealed_subclasses
)
462 ?
(tco_everything_sdt
= default.tco_everything_sdt
)
463 ?
(tco_pessimise_builtins
= default.tco_pessimise_builtins
)
464 ?
(tco_enable_disk_heap
= default.tco_enable_disk_heap
)
465 ?
(tco_explicit_consistent_constructors
=
466 default.tco_explicit_consistent_constructors
)
467 ?
(tco_type_printer_fuel
= default.tco_type_printer_fuel
)
468 ?
(tco_log_saved_state_age_and_distance
=
469 default.tco_log_saved_state_age_and_distance
)
470 ?
(tco_specify_manifold_api_key
= default.tco_specify_manifold_api_key
)
471 ?
(tco_saved_state_manifold_api_key
=
472 default.tco_saved_state_manifold_api_key
)
473 ?
(tco_profile_toplevel_definitions
=
474 default.tco_profile_toplevel_definitions
)
477 tco_experimental_features
;
479 tco_num_local_workers
;
480 tco_parallel_type_checking_threshold
;
481 tco_max_typechecker_worker_memory_mb
;
482 tco_defer_class_declaration_threshold
;
483 tco_prefetch_deferred_files
;
484 tco_remote_type_check_threshold
;
485 tco_remote_type_check
;
486 tco_remote_worker_key
;
488 tco_remote_max_batch_size
;
489 tco_remote_min_batch_size
;
490 tco_num_remote_workers
;
491 so_remote_version_specifier
;
492 so_remote_worker_vfs_checkout_threshold
;
493 so_naming_sqlite_path
;
494 po_auto_namespace_map
;
496 allowed_fixme_codes_strict
;
497 allowed_fixme_codes_partial
;
498 codes_not_raised_partial
;
499 po_deregister_php_stdlib
;
500 po_disallow_toplevel_requires
;
501 po_allow_unstable_features
;
502 tco_log_inference_constraints
;
503 tco_language_feature_logging
;
505 tco_disallow_invalid_arraykey
;
506 tco_disallow_byref_dynamic_calls
;
507 tco_disallow_byref_calls
;
509 po_disable_lval_as_an_expression
;
510 tco_shallow_class_decl
;
511 tco_force_shallow_decl_fanout
;
512 tco_fetch_remote_old_decls
;
513 tco_force_load_hot_shallow_decls
;
514 tco_populate_member_heaps
;
515 tco_skip_hierarchy_checks
;
516 po_rust_parser_errors
;
518 tco_union_intersection_type_hints
;
523 tco_simple_pessimize
;
524 tco_complex_coercion
;
525 error_codes_treated_strictly
;
526 tco_check_xhp_attribute
;
527 tco_check_redundant_generics
;
528 tco_disallow_unresolved_type_variables
;
529 tco_disallow_trait_reuse
;
530 po_enable_class_level_where_clauses
;
531 po_disable_legacy_soft_typehints
;
532 po_allowed_decl_fixme_codes
;
533 po_allow_new_attribute_syntax
;
534 tco_global_inference
;
535 tco_gi_reinfer_types
;
537 tco_const_static_props
;
538 po_disable_legacy_attribute_syntax
;
540 po_const_default_func_args
;
541 po_const_default_lambda_args
;
543 po_abstract_static_props
;
544 po_parser_errors_only
;
545 tco_check_attribute_locations
;
550 symbol_write_root_path
;
551 symbol_write_hhi_path
;
552 symbol_write_ignore_paths
;
553 symbol_write_index_paths
;
554 symbol_write_index_paths_file
;
555 symbol_write_index_paths_file_output
;
556 symbol_write_include_hhi
;
557 po_disallow_func_ptrs_in_constants
;
558 tco_error_php_lambdas
;
559 tco_disallow_discarded_nullable_awaitables
;
560 po_enable_xhp_class_modifier
;
561 po_disable_xhp_element_mangling
;
562 po_disable_xhp_children_declarations
;
563 po_enable_enum_classes
;
564 po_disable_hh_ignore_error
;
566 po_disable_array_typehint
;
567 tco_enable_systemlib_annotations
;
568 tco_higher_kinded_types
;
569 tco_method_call_inference
;
570 tco_report_pos_from_reason
;
571 tco_typecheck_sample_rate
;
572 tco_enable_sound_dynamic
;
573 po_disallow_fun_and_cls_meth_pseudo_funcs
;
574 po_disallow_inst_meth
;
575 tco_use_direct_decl_parser
;
577 tco_global_write_check_enabled
;
578 po_enable_enum_supertyping
;
579 po_interpret_soft_types_as_like_types
;
580 tco_enable_strict_string_concat_interp
;
581 tco_ignore_unsafe_cast
;
583 tco_enable_expression_trees
;
585 tco_allowed_expression_tree_visitors
;
587 tco_typeconst_concrete_concrete_error
;
588 tco_enable_strict_const_semantics
;
589 tco_meth_caller_only_public_visibility
;
590 tco_require_extends_implements_ancestors
;
591 tco_strict_value_equality
;
592 tco_enforce_sealed_subclasses
;
594 tco_pessimise_builtins
;
595 tco_enable_disk_heap
;
596 tco_explicit_consistent_constructors
;
597 tco_type_printer_fuel
;
598 tco_log_saved_state_age_and_distance
;
599 tco_specify_manifold_api_key
;
600 tco_saved_state_manifold_api_key
;
601 tco_profile_toplevel_definitions
;
604 let tco_experimental_feature_enabled t s
=
605 SSet.mem s t
.tco_experimental_features
607 let tco_migration_flag_enabled t s
= SSet.mem s t
.tco_migration_flags
609 let tco_num_local_workers t
= t
.tco_num_local_workers
611 let tco_parallel_type_checking_threshold t
=
612 t
.tco_parallel_type_checking_threshold
614 let tco_max_typechecker_worker_memory_mb t
=
615 t
.tco_max_typechecker_worker_memory_mb
617 let tco_defer_class_declaration_threshold t
=
618 t
.tco_defer_class_declaration_threshold
620 let tco_prefetch_deferred_files t
= t
.tco_prefetch_deferred_files
622 let tco_remote_type_check_threshold t
= t
.tco_remote_type_check_threshold
624 let tco_remote_type_check t
= t
.tco_remote_type_check
626 let tco_remote_worker_key t
= t
.tco_remote_worker_key
628 let tco_remote_check_id t
= t
.tco_remote_check_id
630 let tco_remote_max_batch_size t
= t
.tco_remote_max_batch_size
632 let tco_remote_min_batch_size t
= t
.tco_remote_min_batch_size
634 let tco_num_remote_workers t
= t
.tco_num_remote_workers
636 let so_remote_version_specifier t
= t
.so_remote_version_specifier
638 let so_remote_worker_vfs_checkout_threshold t
=
639 t
.so_remote_worker_vfs_checkout_threshold
641 let so_naming_sqlite_path t
= t
.so_naming_sqlite_path
643 let po_auto_namespace_map t
= t
.po_auto_namespace_map
645 let po_deregister_php_stdlib t
= t
.po_deregister_php_stdlib
647 let tco_log_inference_constraints t
= t
.tco_log_inference_constraints
649 let po_codegen t
= t
.po_codegen
651 let po_disallow_toplevel_requires t
= t
.po_disallow_toplevel_requires
653 let tco_language_feature_logging t
= t
.tco_language_feature_logging
655 let tco_timeout t
= t
.tco_timeout
657 let tco_disallow_invalid_arraykey t
= t
.tco_disallow_invalid_arraykey
659 let tco_disallow_byref_dynamic_calls t
= t
.tco_disallow_byref_dynamic_calls
661 let tco_disallow_byref_calls t
= t
.tco_disallow_byref_calls
663 let allowed_fixme_codes_strict t
= t
.allowed_fixme_codes_strict
665 let allowed_fixme_codes_partial t
= t
.allowed_fixme_codes_partial
667 let codes_not_raised_partial t
= t
.codes_not_raised_partial
669 let log_levels t
= t
.log_levels
671 let po_disable_lval_as_an_expression t
= t
.po_disable_lval_as_an_expression
673 let tco_shallow_class_decl t
= t
.tco_shallow_class_decl
675 let tco_force_shallow_decl_fanout t
= t
.tco_force_shallow_decl_fanout
677 let tco_fetch_remote_old_decls t
= t
.tco_fetch_remote_old_decls
679 let tco_force_load_hot_shallow_decls t
= t
.tco_force_load_hot_shallow_decls
681 let tco_populate_member_heaps t
= t
.tco_populate_member_heaps
683 let tco_skip_hierarchy_checks t
= t
.tco_skip_hierarchy_checks
685 let po_rust_parser_errors t
= t
.po_rust_parser_errors
687 let tco_like_type_hints t
= t
.tco_like_type_hints
689 let tco_union_intersection_type_hints t
= t
.tco_union_intersection_type_hints
691 let tco_call_coeffects t
= t
.tco_coeffects
693 let tco_local_coeffects t
= t
.tco_coeffects_local
695 let tco_strict_contexts t
= t
.tco_strict_contexts
697 let ifc_enabled t
= t
.tco_ifc_enabled
699 (* Fully enable IFC on the tcopt *)
700 let enable_ifc t
= { t
with tco_ifc_enabled
= ["/"] }
702 let global_write_check_enabled t
= t
.tco_global_write_check_enabled
704 let enable_global_write_check t
=
705 { t
with tco_global_write_check_enabled
= ["/"] }
707 let tco_like_casts t
= t
.tco_like_casts
709 let tco_simple_pessimize t
= t
.tco_simple_pessimize
711 let tco_complex_coercion t
= t
.tco_complex_coercion
713 let error_codes_treated_strictly t
= t
.error_codes_treated_strictly
715 let tco_check_xhp_attribute t
= t
.tco_check_xhp_attribute
717 let tco_check_redundant_generics t
= t
.tco_check_redundant_generics
719 let tco_disallow_unresolved_type_variables t
=
720 t
.tco_disallow_unresolved_type_variables
722 let tco_disallow_trait_reuse t
= t
.tco_disallow_trait_reuse
724 let po_enable_class_level_where_clauses t
=
725 t
.po_enable_class_level_where_clauses
727 let po_disable_legacy_soft_typehints t
= t
.po_disable_legacy_soft_typehints
729 let po_allowed_decl_fixme_codes t
= t
.po_allowed_decl_fixme_codes
731 let po_allow_new_attribute_syntax t
= t
.po_allow_new_attribute_syntax
733 let po_allow_unstable_features t
= t
.po_allow_unstable_features
735 let tco_global_inference t
= t
.tco_global_inference
737 let tco_gi_reinfer_types t
= t
.tco_gi_reinfer_types
739 let tco_ordered_solving t
= t
.tco_ordered_solving
741 let tco_const_static_props t
= t
.tco_const_static_props
743 let po_disable_legacy_attribute_syntax t
= t
.po_disable_legacy_attribute_syntax
745 let tco_const_attribute t
= t
.tco_const_attribute
747 let po_const_default_func_args t
= t
.po_const_default_func_args
749 let po_const_default_lambda_args t
= t
.po_const_default_lambda_args
751 let po_disallow_silence t
= t
.po_disallow_silence
753 let po_abstract_static_props t
= t
.po_abstract_static_props
755 let tco_check_attribute_locations t
= t
.tco_check_attribute_locations
757 let glean_service t
= t
.glean_service
759 let glean_hostname t
= t
.glean_hostname
761 let glean_port t
= t
.glean_port
763 let glean_reponame t
= t
.glean_reponame
765 let symbol_write_root_path t
= t
.symbol_write_root_path
767 let symbol_write_hhi_path t
= t
.symbol_write_hhi_path
769 let symbol_write_ignore_paths t
= t
.symbol_write_ignore_paths
771 let symbol_write_index_paths t
= t
.symbol_write_index_paths
773 let symbol_write_index_paths_file t
= t
.symbol_write_index_paths_file
775 let symbol_write_index_paths_file_output t
=
776 t
.symbol_write_index_paths_file_output
778 let symbol_write_include_hhi t
= t
.symbol_write_include_hhi
780 let set_global_inference t
= { t
with tco_global_inference = true }
782 let set_ordered_solving t b
= { t
with tco_ordered_solving = b
}
784 let set_tco_readonly t b
= { t
with tco_readonly
= b
}
786 let tco_readonly t
= t
.tco_readonly
788 let po_parser_errors_only t
= t
.po_parser_errors_only
790 let po_disallow_func_ptrs_in_constants t
= t
.po_disallow_func_ptrs_in_constants
792 let tco_error_php_lambdas t
= t
.tco_error_php_lambdas
794 let tco_disallow_discarded_nullable_awaitables t
=
795 t
.tco_disallow_discarded_nullable_awaitables
797 let po_enable_xhp_class_modifier t
= t
.po_enable_xhp_class_modifier
799 let po_disable_xhp_element_mangling t
= t
.po_disable_xhp_element_mangling
801 let po_disable_xhp_children_declarations t
=
802 t
.po_disable_xhp_children_declarations
804 let po_enable_enum_classes t
= t
.po_enable_enum_classes
806 let po_disable_hh_ignore_error t
= t
.po_disable_hh_ignore_error
808 let po_disable_array t
= t
.po_disable_array
810 let po_disable_array_typehint t
= t
.po_disable_array_typehint
812 let tco_enable_systemlib_annotations t
= t
.tco_enable_systemlib_annotations
814 let tco_higher_kinded_types t
= t
.tco_higher_kinded_types
816 let tco_method_call_inference t
= t
.tco_method_call_inference
818 let tco_report_pos_from_reason t
= t
.tco_report_pos_from_reason
820 let tco_typecheck_sample_rate t
= t
.tco_typecheck_sample_rate
822 let tco_enable_sound_dynamic t
= t
.tco_enable_sound_dynamic
824 let po_disallow_fun_and_cls_meth_pseudo_funcs t
=
825 t
.po_disallow_fun_and_cls_meth_pseudo_funcs
827 let po_disallow_inst_meth t
= t
.po_disallow_inst_meth
829 let tco_use_direct_decl_parser t
= t
.tco_use_direct_decl_parser
831 let po_enable_enum_supertyping t
= t
.po_enable_enum_supertyping
833 let po_interpret_soft_types_as_like_types t
=
834 t
.po_interpret_soft_types_as_like_types
836 let tco_enable_strict_string_concat_interp t
=
837 t
.tco_enable_strict_string_concat_interp
839 let tco_ignore_unsafe_cast t
= t
.tco_ignore_unsafe_cast
841 let set_tco_enable_expression_trees t b
=
842 { t
with tco_enable_expression_trees
= b
}
844 let expression_trees_enabled t
= t
.tco_enable_expression_trees
846 let tco_enable_modules t
= t
.tco_enable_modules
848 let set_tco_enable_modules t b
= { t
with tco_enable_modules = b
}
850 let allowed_expression_tree_visitors t
= t
.tco_allowed_expression_tree_visitors
852 let tco_math_new_code t
= t
.tco_math_new_code
854 let tco_typeconst_concrete_concrete_error t
=
855 t
.tco_typeconst_concrete_concrete_error
857 let tco_enable_strict_const_semantics t
= t
.tco_enable_strict_const_semantics
859 let tco_meth_caller_only_public_visibility t
=
860 t
.tco_meth_caller_only_public_visibility
862 let tco_require_extends_implements_ancestors t
=
863 t
.tco_require_extends_implements_ancestors
865 let tco_strict_value_equality t
= t
.tco_strict_value_equality
867 let tco_enforce_sealed_subclasses t
= t
.tco_enforce_sealed_subclasses
869 let tco_everything_sdt t
= t
.tco_everything_sdt
871 let tco_pessimise_builtins t
= t
.tco_pessimise_builtins
873 let tco_enable_disk_heap t
= t
.tco_enable_disk_heap
875 let tco_explicit_consistent_constructors t
=
876 t
.tco_explicit_consistent_constructors
878 let tco_type_printer_fuel t
= t
.tco_type_printer_fuel
880 let tco_log_saved_state_age_and_distance t
=
881 t
.tco_log_saved_state_age_and_distance
883 let tco_specify_manifold_api_key t
= t
.tco_specify_manifold_api_key
885 let tco_saved_state_manifold_api_key t
= t
.tco_saved_state_manifold_api_key
887 let tco_profile_toplevel_definitions t
= t
.tco_profile_toplevel_definitions