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 tco_stream_errors
: bool;
28 so_remote_version_specifier
: string option;
29 so_remote_worker_vfs_checkout_threshold
: int;
30 so_naming_sqlite_path
: string option;
31 po_auto_namespace_map
: (string * string) list
;
33 po_deregister_php_stdlib
: bool;
34 po_disallow_toplevel_requires
: bool;
35 po_allow_unstable_features
: bool;
36 tco_log_inference_constraints
: bool;
37 tco_language_feature_logging
: bool;
39 tco_disallow_invalid_arraykey
: bool;
40 tco_disallow_byref_dynamic_calls
: bool;
41 tco_disallow_byref_calls
: bool;
42 allowed_fixme_codes_strict
: ISet.t
;
43 allowed_fixme_codes_partial
: ISet.t
;
44 codes_not_raised_partial
: ISet.t
;
45 log_levels
: int SMap.t
;
46 po_disable_lval_as_an_expression
: bool;
47 tco_shallow_class_decl
: bool;
48 tco_force_shallow_decl_fanout
: bool;
49 tco_fetch_remote_old_decls
: bool;
50 tco_force_load_hot_shallow_decls
: 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 tco_disallow_invalid_arraykey_constraint
: bool;
67 po_enable_class_level_where_clauses
: bool;
68 po_disable_legacy_soft_typehints
: bool;
69 po_allowed_decl_fixme_codes
: ISet.t
;
70 po_allow_new_attribute_syntax
: bool;
71 tco_global_inference
: bool;
72 tco_gi_reinfer_types
: string list
;
73 tco_ordered_solving
: bool;
74 tco_const_static_props
: bool;
75 po_disable_legacy_attribute_syntax
: bool;
76 tco_const_attribute
: bool;
77 po_const_default_func_args
: bool;
78 po_const_default_lambda_args
: bool;
79 po_disallow_silence
: bool;
80 po_abstract_static_props
: bool;
81 po_disable_unset_class_const
: bool;
82 po_parser_errors_only
: bool;
83 tco_check_attribute_locations
: bool;
84 glean_service
: string;
85 glean_hostname
: string;
87 glean_reponame
: string;
88 symbol_write_root_path
: string;
89 symbol_write_hhi_path
: string;
90 symbol_write_ignore_paths
: string list
;
91 symbol_write_index_paths
: string list
;
92 symbol_write_index_paths_file
: string option;
93 symbol_write_index_paths_file_output
: string option;
94 symbol_write_include_hhi
: bool;
95 po_disallow_func_ptrs_in_constants
: bool;
96 tco_error_php_lambdas
: bool;
97 tco_disallow_discarded_nullable_awaitables
: bool;
98 po_enable_xhp_class_modifier
: bool;
99 po_disable_xhp_element_mangling
: bool;
100 po_disable_xhp_children_declarations
: bool;
101 po_enable_enum_classes
: bool;
102 po_disable_hh_ignore_error
: bool;
103 po_disable_array
: bool;
104 po_disable_array_typehint
: bool;
105 tco_enable_systemlib_annotations
: bool;
106 tco_higher_kinded_types
: bool;
107 tco_method_call_inference
: bool;
108 tco_report_pos_from_reason
: bool;
109 tco_typecheck_sample_rate
: float;
110 tco_enable_sound_dynamic
: bool;
111 po_disallow_fun_and_cls_meth_pseudo_funcs
: bool;
112 po_disallow_inst_meth
: bool;
113 tco_use_direct_decl_parser
: bool;
114 tco_ifc_enabled
: string list
;
115 tco_global_write_check_enabled
: string list
;
116 po_enable_enum_supertyping
: bool;
117 po_interpret_soft_types_as_like_types
: bool;
118 tco_enable_strict_string_concat_interp
: bool;
119 tco_ignore_unsafe_cast
: bool;
121 tco_enable_expression_trees
: bool;
122 tco_enable_modules
: bool;
123 tco_allowed_expression_tree_visitors
: string list
;
124 tco_math_new_code
: bool;
125 tco_typeconst_concrete_concrete_error
: bool;
126 tco_enable_strict_const_semantics
: bool;
127 tco_meth_caller_only_public_visibility
: bool;
128 tco_require_extends_implements_ancestors
: bool;
129 tco_strict_value_equality
: bool;
130 tco_enforce_sealed_subclasses
: bool;
131 tco_everything_sdt
: bool;
132 tco_pessimise_builtins
: bool;
133 tco_enable_disk_heap
: bool;
134 tco_explicit_consistent_constructors
: int;
135 tco_type_printer_fuel
: int;
137 [@@deriving eq
, show
]
140 * Insist on instantiations for all generic types, even in non-strict files
142 let tco_experimental_generics_arity = "generics_arity"
145 * Forbid casting nullable values, since they have unexpected semantics. For
146 * example, casting `null` to an int results in `0`, which may or may not be
147 * what you were expecting.
149 let tco_experimental_forbid_nullable_cast = "forbid_nullable_cast"
152 * Disallow static memoized functions in non-final classes
155 let tco_experimental_disallow_static_memoized = "disallow_static_memoized"
158 * Prevent type param names from shadowing class names
160 let tco_experimental_type_param_shadowing = "type_param_shadowing"
163 * Enable abstract const type with default syntax, i.e.
164 * abstract const type T as num = int;
166 let tco_experimental_abstract_type_const_with_default =
167 "abstract_type_const_with_default"
170 * Allow typechecker to do global inference and infer IFC flows
171 * with the <<InferFlows>> flag
174 let tco_experimental_infer_flows = "ifc_infer_flows"
177 * Allow typechecker to raise error when inheriting members
178 * that differ only by case
180 let tco_experimental_case_sensitive_inheritance = "case_sensitive_inheritance"
182 let tco_experimental_supportdynamic_type_hint = "supportdynamic_type_hint"
184 let tco_experimental_all =
189 tco_experimental_generics_arity;
190 tco_experimental_forbid_nullable_cast;
191 tco_experimental_disallow_static_memoized;
192 tco_experimental_abstract_type_const_with_default;
193 tco_experimental_infer_flows;
194 tco_experimental_case_sensitive_inheritance;
195 tco_experimental_supportdynamic_type_hint;
198 let tco_migration_flags_all = List.fold_right ~init
:SSet.empty ~f
:SSet.add
[]
202 (* Default all features for testing. Actual options are set by reading
203 * from hhconfig, which defaults to empty. *)
204 tco_experimental_features
= tco_experimental_all;
205 tco_migration_flags
= SSet.empty
;
206 tco_num_local_workers
= None
;
207 tco_parallel_type_checking_threshold
= 10;
208 tco_max_typechecker_worker_memory_mb
= None
;
209 tco_defer_class_declaration_threshold
= None
;
210 tco_prefetch_deferred_files
= false;
211 tco_remote_type_check_threshold
= None
;
212 tco_remote_type_check
= true;
213 tco_remote_worker_key
= None
;
214 tco_remote_check_id
= None
;
215 tco_remote_max_batch_size
= 8_000;
216 tco_remote_min_batch_size
= 5_000;
217 tco_num_remote_workers
= 4;
218 tco_stream_errors
= false;
219 so_remote_version_specifier
= None
;
220 so_remote_worker_vfs_checkout_threshold
= 10000;
221 so_naming_sqlite_path
= None
;
222 po_auto_namespace_map
= [];
224 po_disallow_toplevel_requires
= false;
225 po_deregister_php_stdlib
= false;
226 po_allow_unstable_features
= false;
227 tco_log_inference_constraints
= false;
228 tco_language_feature_logging
= false;
230 tco_disallow_invalid_arraykey
= true;
231 tco_disallow_byref_dynamic_calls
= false;
232 tco_disallow_byref_calls
= true;
233 allowed_fixme_codes_strict
= ISet.empty
;
234 allowed_fixme_codes_partial
= ISet.empty
;
235 codes_not_raised_partial
= ISet.empty
;
236 log_levels
= SMap.empty
;
237 po_disable_lval_as_an_expression
= true;
238 tco_shallow_class_decl
= false;
239 tco_force_shallow_decl_fanout
= false;
240 tco_fetch_remote_old_decls
= false;
241 tco_force_load_hot_shallow_decls
= false;
242 tco_skip_hierarchy_checks
= false;
243 po_rust_parser_errors
= false;
244 tco_like_type_hints
= false;
245 tco_union_intersection_type_hints
= false;
246 tco_coeffects
= true;
247 tco_coeffects_local
= true;
248 tco_strict_contexts
= true;
249 tco_like_casts
= false;
250 tco_simple_pessimize
= 0.0;
251 tco_complex_coercion
= false;
252 error_codes_treated_strictly
= ISet.of_list
[];
253 tco_check_xhp_attribute
= false;
254 tco_check_redundant_generics
= false;
255 tco_disallow_unresolved_type_variables
= false;
256 tco_disallow_trait_reuse
= false;
257 tco_disallow_invalid_arraykey_constraint
= false;
258 po_enable_class_level_where_clauses
= false;
259 po_disable_legacy_soft_typehints
= true;
260 po_allowed_decl_fixme_codes
= ISet.of_list
[];
261 po_allow_new_attribute_syntax
= false;
262 tco_global_inference
= false;
263 tco_gi_reinfer_types
= [];
264 tco_ordered_solving
= false;
265 tco_const_static_props
= false;
266 po_disable_legacy_attribute_syntax
= false;
267 tco_const_attribute
= false;
268 po_const_default_func_args
= false;
269 po_const_default_lambda_args
= false;
270 po_disallow_silence
= false;
271 po_abstract_static_props
= false;
272 po_disable_unset_class_const
= false;
273 po_parser_errors_only
= false;
274 tco_check_attribute_locations
= true;
278 glean_reponame
= "www.autocomplete";
279 symbol_write_root_path
= "www";
280 symbol_write_hhi_path
= "hhi";
281 symbol_write_ignore_paths
= [];
282 symbol_write_index_paths
= [];
283 symbol_write_index_paths_file
= None
;
284 symbol_write_index_paths_file_output
= None
;
285 symbol_write_include_hhi
= true;
286 po_disallow_func_ptrs_in_constants
= false;
287 tco_error_php_lambdas
= false;
288 tco_disallow_discarded_nullable_awaitables
= false;
289 po_enable_xhp_class_modifier
= true;
290 po_disable_xhp_element_mangling
= true;
291 po_disable_xhp_children_declarations
= true;
292 po_enable_enum_classes
= true;
293 po_disable_hh_ignore_error
= false;
294 po_disable_array
= true;
295 po_disable_array_typehint
= true;
296 tco_enable_systemlib_annotations
= false;
297 tco_higher_kinded_types
= false;
298 tco_method_call_inference
= false;
299 tco_report_pos_from_reason
= false;
300 tco_typecheck_sample_rate
= 1.0;
301 tco_enable_sound_dynamic
= false;
302 po_disallow_fun_and_cls_meth_pseudo_funcs
= false;
303 po_disallow_inst_meth
= false;
304 tco_use_direct_decl_parser
= false;
305 tco_ifc_enabled
= [];
306 tco_global_write_check_enabled
= [];
307 po_enable_enum_supertyping
= false;
308 po_interpret_soft_types_as_like_types
= false;
309 tco_enable_strict_string_concat_interp
= false;
310 tco_ignore_unsafe_cast
= false;
311 tco_readonly
= false;
312 tco_enable_expression_trees
= false;
313 tco_enable_modules
= false;
314 tco_allowed_expression_tree_visitors
= [];
315 tco_math_new_code
= false;
316 tco_typeconst_concrete_concrete_error
= false;
317 tco_enable_strict_const_semantics
= false;
318 tco_meth_caller_only_public_visibility
= true;
319 tco_require_extends_implements_ancestors
= false;
320 tco_strict_value_equality
= false;
321 tco_enforce_sealed_subclasses
= false;
322 tco_everything_sdt
= false;
323 tco_pessimise_builtins
= false;
324 tco_enable_disk_heap
= true;
325 tco_explicit_consistent_constructors
= 0;
326 tco_type_printer_fuel
= 100;
330 ?
(po_deregister_php_stdlib
= default.po_deregister_php_stdlib
)
331 ?
(po_disallow_toplevel_requires
= default.po_disallow_toplevel_requires
)
332 ?
(tco_log_inference_constraints
= default.tco_log_inference_constraints
)
333 ?
(tco_experimental_features
= default.tco_experimental_features
)
334 ?
(tco_migration_flags
= default.tco_migration_flags
)
335 ?tco_num_local_workers
336 ?
(tco_parallel_type_checking_threshold
=
337 default.tco_parallel_type_checking_threshold
)
338 ?tco_max_typechecker_worker_memory_mb
339 ?tco_defer_class_declaration_threshold
340 ?
(tco_prefetch_deferred_files
= default.tco_prefetch_deferred_files
)
341 ?tco_remote_type_check_threshold
342 ?
(tco_remote_type_check
= default.tco_remote_type_check
)
343 ?tco_remote_worker_key
345 ?
(tco_remote_max_batch_size
= default.tco_remote_max_batch_size
)
346 ?
(tco_remote_min_batch_size
= default.tco_remote_min_batch_size
)
347 ?
(tco_num_remote_workers
= default.tco_num_remote_workers
)
348 ?
(tco_stream_errors
= default.tco_stream_errors
)
349 ?so_remote_version_specifier
350 ?
(so_remote_worker_vfs_checkout_threshold
=
351 default.so_remote_worker_vfs_checkout_threshold
)
352 ?so_naming_sqlite_path
353 ?
(po_auto_namespace_map
= default.po_auto_namespace_map
)
354 ?
(tco_language_feature_logging
= default.tco_language_feature_logging
)
355 ?
(tco_timeout
= default.tco_timeout
)
356 ?
(tco_disallow_invalid_arraykey
= default.tco_disallow_invalid_arraykey
)
357 ?
(tco_disallow_byref_dynamic_calls
=
358 default.tco_disallow_byref_dynamic_calls
)
359 ?
(tco_disallow_byref_calls
= default.tco_disallow_byref_calls
)
360 ?
(allowed_fixme_codes_strict
= default.allowed_fixme_codes_strict
)
361 ?
(allowed_fixme_codes_partial
= default.allowed_fixme_codes_partial
)
362 ?
(codes_not_raised_partial
= default.codes_not_raised_partial
)
363 ?
(log_levels
= default.log_levels
)
364 ?
(po_disable_lval_as_an_expression
=
365 default.po_disable_lval_as_an_expression
)
366 ?
(tco_shallow_class_decl
= default.tco_shallow_class_decl
)
367 ?
(tco_force_shallow_decl_fanout
= default.tco_force_shallow_decl_fanout
)
368 ?
(tco_fetch_remote_old_decls
= default.tco_fetch_remote_old_decls
)
369 ?
(tco_force_load_hot_shallow_decls
=
370 default.tco_force_load_hot_shallow_decls
)
371 ?
(tco_skip_hierarchy_checks
= default.tco_skip_hierarchy_checks
)
372 ?
(po_rust_parser_errors
= default.po_rust_parser_errors
)
373 ?
(tco_like_type_hints
= default.tco_like_type_hints
)
374 ?
(tco_union_intersection_type_hints
=
375 default.tco_union_intersection_type_hints
)
376 ?
(tco_coeffects
= default.tco_coeffects
)
377 ?
(tco_coeffects_local
= default.tco_coeffects_local
)
378 ?
(tco_strict_contexts
= default.tco_strict_contexts
)
379 ?
(tco_like_casts
= default.tco_like_casts
)
380 ?
(tco_simple_pessimize
= default.tco_simple_pessimize
)
381 ?
(tco_complex_coercion
= default.tco_complex_coercion
)
382 ?
(error_codes_treated_strictly
= default.error_codes_treated_strictly
)
383 ?
(tco_check_xhp_attribute
= default.tco_check_xhp_attribute
)
384 ?
(tco_check_redundant_generics
= default.tco_check_redundant_generics
)
385 ?
(tco_disallow_unresolved_type_variables
=
386 default.tco_disallow_unresolved_type_variables
)
387 ?
(tco_disallow_trait_reuse
= default.tco_disallow_trait_reuse
)
388 ?
(tco_disallow_invalid_arraykey_constraint
=
389 default.tco_disallow_invalid_arraykey_constraint
)
390 ?
(po_enable_class_level_where_clauses
=
391 default.po_enable_class_level_where_clauses
)
392 ?
(po_disable_legacy_soft_typehints
=
393 default.po_disable_legacy_soft_typehints
)
394 ?
(po_allowed_decl_fixme_codes
= default.po_allowed_decl_fixme_codes
)
395 ?
(po_allow_new_attribute_syntax
= default.po_allow_new_attribute_syntax
)
396 ?
(tco_global_inference
= default.tco_global_inference
)
397 ?
(tco_gi_reinfer_types
= default.tco_gi_reinfer_types
)
398 ?
(tco_ordered_solving
= default.tco_ordered_solving
)
399 ?
(tco_const_static_props
= default.tco_const_static_props
)
400 ?
(po_disable_legacy_attribute_syntax
=
401 default.po_disable_legacy_attribute_syntax
)
402 ?
(tco_const_attribute
= default.tco_const_attribute
)
403 ?
(po_const_default_func_args
= default.po_const_default_func_args
)
404 ?
(po_const_default_lambda_args
= default.po_const_default_lambda_args
)
405 ?
(po_disallow_silence
= default.po_disallow_silence
)
406 ?
(po_abstract_static_props
= default.po_abstract_static_props
)
407 ?
(po_disable_unset_class_const
= default.po_disable_unset_class_const
)
408 ?
(po_parser_errors_only
= default.po_parser_errors_only
)
409 ?
(tco_check_attribute_locations
= default.tco_check_attribute_locations
)
410 ?
(glean_service
= default.glean_service
)
411 ?
(glean_hostname
= default.glean_hostname
)
412 ?
(glean_port
= default.glean_port
)
413 ?
(glean_reponame
= default.glean_reponame
)
414 ?
(symbol_write_root_path
= default.symbol_write_root_path
)
415 ?
(symbol_write_hhi_path
= default.symbol_write_hhi_path
)
416 ?
(symbol_write_ignore_paths
= default.symbol_write_ignore_paths
)
417 ?
(symbol_write_index_paths
= default.symbol_write_index_paths
)
418 ?symbol_write_index_paths_file
419 ?symbol_write_index_paths_file_output
420 ?
(symbol_write_include_hhi
= default.symbol_write_include_hhi
)
421 ?
(po_disallow_func_ptrs_in_constants
=
422 default.po_disallow_func_ptrs_in_constants
)
423 ?
(tco_error_php_lambdas
= default.tco_error_php_lambdas
)
424 ?
(tco_disallow_discarded_nullable_awaitables
=
425 default.tco_disallow_discarded_nullable_awaitables
)
426 ?
(po_enable_xhp_class_modifier
= default.po_enable_xhp_class_modifier
)
427 ?
(po_disable_xhp_element_mangling
= default.po_disable_xhp_element_mangling
)
428 ?
(po_disable_xhp_children_declarations
=
429 default.po_disable_xhp_children_declarations
)
430 ?
(po_enable_enum_classes
= default.po_enable_enum_classes
)
431 ?
(po_disable_hh_ignore_error
= default.po_disable_hh_ignore_error
)
432 ?
(po_disable_array
= default.po_disable_array
)
433 ?
(po_disable_array_typehint
= default.po_disable_array_typehint
)
434 ?
(po_allow_unstable_features
= default.po_allow_unstable_features
)
435 ?
(tco_enable_systemlib_annotations
=
436 default.tco_enable_systemlib_annotations
)
437 ?
(tco_higher_kinded_types
= default.tco_higher_kinded_types
)
438 ?
(tco_method_call_inference
= default.tco_method_call_inference
)
439 ?
(tco_report_pos_from_reason
= default.tco_report_pos_from_reason
)
440 ?
(tco_typecheck_sample_rate
= default.tco_typecheck_sample_rate
)
441 ?
(tco_enable_sound_dynamic
= default.tco_enable_sound_dynamic
)
442 ?
(po_disallow_fun_and_cls_meth_pseudo_funcs
=
443 default.po_disallow_fun_and_cls_meth_pseudo_funcs
)
444 ?
(po_disallow_inst_meth
= default.po_disallow_inst_meth
)
445 ?
(tco_use_direct_decl_parser
= default.tco_use_direct_decl_parser
)
446 ?
(tco_ifc_enabled
= default.tco_ifc_enabled
)
447 ?
(tco_global_write_check_enabled
= default.tco_global_write_check_enabled
)
448 ?
(po_enable_enum_supertyping
= default.po_enable_enum_supertyping
)
449 ?
(po_interpret_soft_types_as_like_types
=
450 default.po_interpret_soft_types_as_like_types
)
451 ?
(tco_enable_strict_string_concat_interp
=
452 default.tco_enable_strict_string_concat_interp
)
453 ?
(tco_ignore_unsafe_cast
= default.tco_ignore_unsafe_cast
)
454 ?
(tco_readonly
= default.tco_readonly
)
455 ?
(tco_enable_expression_trees
= default.tco_enable_expression_trees
)
456 ?
(tco_enable_modules
= default.tco_enable_modules
)
457 ?
(tco_allowed_expression_tree_visitors
=
458 default.tco_allowed_expression_tree_visitors
)
459 ?
(tco_math_new_code
= default.tco_math_new_code
)
460 ?
(tco_typeconst_concrete_concrete_error
=
461 default.tco_typeconst_concrete_concrete_error
)
462 ?
(tco_enable_strict_const_semantics
=
463 default.tco_enable_strict_const_semantics
)
464 ?
(tco_meth_caller_only_public_visibility
=
465 default.tco_meth_caller_only_public_visibility
)
466 ?
(tco_require_extends_implements_ancestors
=
467 default.tco_require_extends_implements_ancestors
)
468 ?
(tco_strict_value_equality
= default.tco_strict_value_equality
)
469 ?
(tco_enforce_sealed_subclasses
= default.tco_enforce_sealed_subclasses
)
470 ?
(tco_everything_sdt
= default.tco_everything_sdt
)
471 ?
(tco_pessimise_builtins
= default.tco_pessimise_builtins
)
472 ?
(tco_enable_disk_heap
= default.tco_enable_disk_heap
)
473 ?
(tco_explicit_consistent_constructors
=
474 default.tco_explicit_consistent_constructors
)
475 ?
(tco_type_printer_fuel
= default.tco_type_printer_fuel
)
478 tco_experimental_features
;
480 tco_num_local_workers
;
481 tco_parallel_type_checking_threshold
;
482 tco_max_typechecker_worker_memory_mb
;
483 tco_defer_class_declaration_threshold
;
484 tco_prefetch_deferred_files
;
485 tco_remote_type_check_threshold
;
486 tco_remote_type_check
;
487 tco_remote_worker_key
;
489 tco_remote_max_batch_size
;
490 tco_remote_min_batch_size
;
491 tco_num_remote_workers
;
493 so_remote_version_specifier
;
494 so_remote_worker_vfs_checkout_threshold
;
495 so_naming_sqlite_path
;
496 po_auto_namespace_map
;
498 allowed_fixme_codes_strict
;
499 allowed_fixme_codes_partial
;
500 codes_not_raised_partial
;
501 po_deregister_php_stdlib
;
502 po_disallow_toplevel_requires
;
503 po_allow_unstable_features
;
504 tco_log_inference_constraints
;
505 tco_language_feature_logging
;
507 tco_disallow_invalid_arraykey
;
508 tco_disallow_byref_dynamic_calls
;
509 tco_disallow_byref_calls
;
511 po_disable_lval_as_an_expression
;
512 tco_shallow_class_decl
;
513 tco_force_shallow_decl_fanout
;
514 tco_fetch_remote_old_decls
;
515 tco_force_load_hot_shallow_decls
;
516 tco_skip_hierarchy_checks
;
517 po_rust_parser_errors
;
519 tco_union_intersection_type_hints
;
524 tco_simple_pessimize
;
525 tco_complex_coercion
;
526 error_codes_treated_strictly
;
527 tco_check_xhp_attribute
;
528 tco_check_redundant_generics
;
529 tco_disallow_unresolved_type_variables
;
530 tco_disallow_trait_reuse
;
531 tco_disallow_invalid_arraykey_constraint
;
532 po_enable_class_level_where_clauses
;
533 po_disable_legacy_soft_typehints
;
534 po_allowed_decl_fixme_codes
;
535 po_allow_new_attribute_syntax
;
536 tco_global_inference
;
537 tco_gi_reinfer_types
;
539 tco_const_static_props
;
540 po_disable_legacy_attribute_syntax
;
542 po_const_default_func_args
;
543 po_const_default_lambda_args
;
545 po_abstract_static_props
;
546 po_disable_unset_class_const
;
547 po_parser_errors_only
;
548 tco_check_attribute_locations
;
553 symbol_write_root_path
;
554 symbol_write_hhi_path
;
555 symbol_write_ignore_paths
;
556 symbol_write_index_paths
;
557 symbol_write_index_paths_file
;
558 symbol_write_index_paths_file_output
;
559 symbol_write_include_hhi
;
560 po_disallow_func_ptrs_in_constants
;
561 tco_error_php_lambdas
;
562 tco_disallow_discarded_nullable_awaitables
;
563 po_enable_xhp_class_modifier
;
564 po_disable_xhp_element_mangling
;
565 po_disable_xhp_children_declarations
;
566 po_enable_enum_classes
;
567 po_disable_hh_ignore_error
;
569 po_disable_array_typehint
;
570 tco_enable_systemlib_annotations
;
571 tco_higher_kinded_types
;
572 tco_method_call_inference
;
573 tco_report_pos_from_reason
;
574 tco_typecheck_sample_rate
;
575 tco_enable_sound_dynamic
;
576 po_disallow_fun_and_cls_meth_pseudo_funcs
;
577 po_disallow_inst_meth
;
578 tco_use_direct_decl_parser
;
580 tco_global_write_check_enabled
;
581 po_enable_enum_supertyping
;
582 po_interpret_soft_types_as_like_types
;
583 tco_enable_strict_string_concat_interp
;
584 tco_ignore_unsafe_cast
;
586 tco_enable_expression_trees
;
588 tco_allowed_expression_tree_visitors
;
590 tco_typeconst_concrete_concrete_error
;
591 tco_enable_strict_const_semantics
;
592 tco_meth_caller_only_public_visibility
;
593 tco_require_extends_implements_ancestors
;
594 tco_strict_value_equality
;
595 tco_enforce_sealed_subclasses
;
597 tco_pessimise_builtins
;
598 tco_enable_disk_heap
;
599 tco_explicit_consistent_constructors
;
600 tco_type_printer_fuel
;
603 let tco_experimental_feature_enabled t s
=
604 SSet.mem s t
.tco_experimental_features
606 let tco_migration_flag_enabled t s
= SSet.mem s t
.tco_migration_flags
608 let tco_num_local_workers t
= t
.tco_num_local_workers
610 let tco_parallel_type_checking_threshold t
=
611 t
.tco_parallel_type_checking_threshold
613 let tco_max_typechecker_worker_memory_mb t
=
614 t
.tco_max_typechecker_worker_memory_mb
616 let tco_defer_class_declaration_threshold t
=
617 t
.tco_defer_class_declaration_threshold
619 let tco_prefetch_deferred_files t
= t
.tco_prefetch_deferred_files
621 let tco_remote_type_check_threshold t
= t
.tco_remote_type_check_threshold
623 let tco_remote_type_check t
= t
.tco_remote_type_check
625 let tco_remote_worker_key t
= t
.tco_remote_worker_key
627 let tco_remote_check_id t
= t
.tco_remote_check_id
629 let tco_remote_max_batch_size t
= t
.tco_remote_max_batch_size
631 let tco_remote_min_batch_size t
= t
.tco_remote_min_batch_size
633 let tco_num_remote_workers t
= t
.tco_num_remote_workers
635 let tco_stream_errors t
= t
.tco_stream_errors
637 let so_remote_version_specifier t
= t
.so_remote_version_specifier
639 let so_remote_worker_vfs_checkout_threshold t
=
640 t
.so_remote_worker_vfs_checkout_threshold
642 let so_naming_sqlite_path t
= t
.so_naming_sqlite_path
644 let po_auto_namespace_map t
= t
.po_auto_namespace_map
646 let po_deregister_php_stdlib t
= t
.po_deregister_php_stdlib
648 let tco_log_inference_constraints t
= t
.tco_log_inference_constraints
650 let po_codegen t
= t
.po_codegen
652 let po_disallow_toplevel_requires t
= t
.po_disallow_toplevel_requires
654 let tco_language_feature_logging t
= t
.tco_language_feature_logging
656 let tco_timeout t
= t
.tco_timeout
658 let tco_disallow_invalid_arraykey t
= t
.tco_disallow_invalid_arraykey
660 let tco_disallow_invalid_arraykey_constraint t
=
661 t
.tco_disallow_invalid_arraykey_constraint
663 let tco_disallow_byref_dynamic_calls t
= t
.tco_disallow_byref_dynamic_calls
665 let tco_disallow_byref_calls t
= t
.tco_disallow_byref_calls
667 let allowed_fixme_codes_strict t
= t
.allowed_fixme_codes_strict
669 let allowed_fixme_codes_partial t
= t
.allowed_fixme_codes_partial
671 let codes_not_raised_partial t
= t
.codes_not_raised_partial
673 let log_levels t
= t
.log_levels
675 let po_disable_lval_as_an_expression t
= t
.po_disable_lval_as_an_expression
677 let tco_shallow_class_decl t
= t
.tco_shallow_class_decl
679 let tco_force_shallow_decl_fanout t
= t
.tco_force_shallow_decl_fanout
681 let tco_fetch_remote_old_decls t
= t
.tco_fetch_remote_old_decls
683 let tco_force_load_hot_shallow_decls t
= t
.tco_force_load_hot_shallow_decls
685 let tco_skip_hierarchy_checks t
= t
.tco_skip_hierarchy_checks
687 let po_rust_parser_errors t
= t
.po_rust_parser_errors
689 let tco_like_type_hints t
= t
.tco_like_type_hints
691 let tco_union_intersection_type_hints t
= t
.tco_union_intersection_type_hints
693 let tco_call_coeffects t
= t
.tco_coeffects
695 let tco_local_coeffects t
= t
.tco_coeffects_local
697 let tco_strict_contexts t
= t
.tco_strict_contexts
699 let ifc_enabled t
= t
.tco_ifc_enabled
701 (* Fully enable IFC on the tcopt *)
702 let enable_ifc t
= { t
with tco_ifc_enabled
= ["/"] }
704 let global_write_check_enabled t
= t
.tco_global_write_check_enabled
706 let enable_global_write_check t
=
707 { t
with tco_global_write_check_enabled
= ["/"] }
709 let tco_like_casts t
= t
.tco_like_casts
711 let tco_simple_pessimize t
= t
.tco_simple_pessimize
713 let tco_complex_coercion t
= t
.tco_complex_coercion
715 let error_codes_treated_strictly t
= t
.error_codes_treated_strictly
717 let tco_check_xhp_attribute t
= t
.tco_check_xhp_attribute
719 let tco_check_redundant_generics t
= t
.tco_check_redundant_generics
721 let tco_disallow_unresolved_type_variables t
=
722 t
.tco_disallow_unresolved_type_variables
724 let tco_disallow_trait_reuse t
= t
.tco_disallow_trait_reuse
726 let po_enable_class_level_where_clauses t
=
727 t
.po_enable_class_level_where_clauses
729 let po_disable_legacy_soft_typehints t
= t
.po_disable_legacy_soft_typehints
731 let po_allowed_decl_fixme_codes t
= t
.po_allowed_decl_fixme_codes
733 let po_allow_new_attribute_syntax t
= t
.po_allow_new_attribute_syntax
735 let po_allow_unstable_features t
= t
.po_allow_unstable_features
737 let tco_global_inference t
= t
.tco_global_inference
739 let tco_gi_reinfer_types t
= t
.tco_gi_reinfer_types
741 let tco_ordered_solving t
= t
.tco_ordered_solving
743 let tco_const_static_props t
= t
.tco_const_static_props
745 let po_disable_legacy_attribute_syntax t
= t
.po_disable_legacy_attribute_syntax
747 let tco_const_attribute t
= t
.tco_const_attribute
749 let po_const_default_func_args t
= t
.po_const_default_func_args
751 let po_const_default_lambda_args t
= t
.po_const_default_lambda_args
753 let po_disallow_silence t
= t
.po_disallow_silence
755 let po_abstract_static_props t
= t
.po_abstract_static_props
757 let po_disable_unset_class_const t
= t
.po_disable_unset_class_const
759 let tco_check_attribute_locations t
= t
.tco_check_attribute_locations
761 let glean_service t
= t
.glean_service
763 let glean_hostname t
= t
.glean_hostname
765 let glean_port t
= t
.glean_port
767 let glean_reponame t
= t
.glean_reponame
769 let symbol_write_root_path t
= t
.symbol_write_root_path
771 let symbol_write_hhi_path t
= t
.symbol_write_hhi_path
773 let symbol_write_ignore_paths t
= t
.symbol_write_ignore_paths
775 let symbol_write_index_paths t
= t
.symbol_write_index_paths
777 let symbol_write_index_paths_file t
= t
.symbol_write_index_paths_file
779 let symbol_write_index_paths_file_output t
=
780 t
.symbol_write_index_paths_file_output
782 let symbol_write_include_hhi t
= t
.symbol_write_include_hhi
784 let set_global_inference t
= { t
with tco_global_inference = true }
786 let set_ordered_solving t b
= { t
with tco_ordered_solving = b
}
788 let set_tco_readonly t b
= { t
with tco_readonly
= b
}
790 let tco_readonly t
= t
.tco_readonly
792 let po_parser_errors_only t
= t
.po_parser_errors_only
794 let po_disallow_func_ptrs_in_constants t
= t
.po_disallow_func_ptrs_in_constants
796 let tco_error_php_lambdas t
= t
.tco_error_php_lambdas
798 let tco_disallow_discarded_nullable_awaitables t
=
799 t
.tco_disallow_discarded_nullable_awaitables
801 let po_enable_xhp_class_modifier t
= t
.po_enable_xhp_class_modifier
803 let po_disable_xhp_element_mangling t
= t
.po_disable_xhp_element_mangling
805 let po_disable_xhp_children_declarations t
=
806 t
.po_disable_xhp_children_declarations
808 let po_enable_enum_classes t
= t
.po_enable_enum_classes
810 let po_disable_hh_ignore_error t
= t
.po_disable_hh_ignore_error
812 let po_disable_array t
= t
.po_disable_array
814 let po_disable_array_typehint t
= t
.po_disable_array_typehint
816 let tco_enable_systemlib_annotations t
= t
.tco_enable_systemlib_annotations
818 let tco_higher_kinded_types t
= t
.tco_higher_kinded_types
820 let tco_method_call_inference t
= t
.tco_method_call_inference
822 let tco_report_pos_from_reason t
= t
.tco_report_pos_from_reason
824 let tco_typecheck_sample_rate t
= t
.tco_typecheck_sample_rate
826 let tco_enable_sound_dynamic t
= t
.tco_enable_sound_dynamic
828 let po_disallow_fun_and_cls_meth_pseudo_funcs t
=
829 t
.po_disallow_fun_and_cls_meth_pseudo_funcs
831 let po_disallow_inst_meth t
= t
.po_disallow_inst_meth
833 let tco_use_direct_decl_parser t
= t
.tco_use_direct_decl_parser
835 let po_enable_enum_supertyping t
= t
.po_enable_enum_supertyping
837 let po_interpret_soft_types_as_like_types t
=
838 t
.po_interpret_soft_types_as_like_types
840 let tco_enable_strict_string_concat_interp t
=
841 t
.tco_enable_strict_string_concat_interp
843 let tco_ignore_unsafe_cast t
= t
.tco_ignore_unsafe_cast
845 let set_tco_enable_expression_trees t b
=
846 { t
with tco_enable_expression_trees
= b
}
848 let expression_trees_enabled t
= t
.tco_enable_expression_trees
850 let tco_enable_modules t
= t
.tco_enable_modules
852 let set_tco_enable_modules t b
= { t
with tco_enable_modules = b
}
854 let allowed_expression_tree_visitors t
= t
.tco_allowed_expression_tree_visitors
856 let tco_math_new_code t
= t
.tco_math_new_code
858 let tco_typeconst_concrete_concrete_error t
=
859 t
.tco_typeconst_concrete_concrete_error
861 let tco_enable_strict_const_semantics t
= t
.tco_enable_strict_const_semantics
863 let tco_meth_caller_only_public_visibility t
=
864 t
.tco_meth_caller_only_public_visibility
866 let tco_require_extends_implements_ancestors t
=
867 t
.tco_require_extends_implements_ancestors
869 let tco_strict_value_equality t
= t
.tco_strict_value_equality
871 let tco_enforce_sealed_subclasses t
= t
.tco_enforce_sealed_subclasses
873 let tco_everything_sdt t
= t
.tco_everything_sdt
875 let tco_pessimise_builtins t
= t
.tco_pessimise_builtins
877 let tco_enable_disk_heap t
= t
.tco_enable_disk_heap
879 let tco_explicit_consistent_constructors t
=
880 t
.tco_explicit_consistent_constructors
882 let tco_type_printer_fuel t
= t
.tco_type_printer_fuel