Default `disable_unset_class_const` to `true` and remove
[hiphop-php.git] / hphp / hack / src / options / globalOptions.ml
blob1915a1a8eb43db087e717752ec34077915d37e99
1 (*
2 * Copyright (c) 2015, Facebook, Inc.
3 * All rights reserved.
5 * This source code is licensed under the MIT license found in the
6 * LICENSE file in the "hack" directory of this source tree.
8 *)
10 open Hh_prelude
12 type t = {
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;
31 po_codegen: bool;
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;
37 tco_timeout: int;
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;
55 tco_coeffects: bool;
56 tco_coeffects_local: bool;
57 tco_strict_contexts: bool;
58 tco_like_casts: 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;
84 glean_port: int;
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;
118 tco_readonly: 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 =
181 List.fold_right
182 ~f:SSet.add
183 ~init:SSet.empty
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 []
195 let default =
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 = [];
215 po_codegen = false;
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;
221 tco_timeout = 0;
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;
266 glean_service = "";
267 glean_hostname = "";
268 glean_port = 0;
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;
324 let make
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
339 ?tco_remote_check_id
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)
475 () =
477 tco_experimental_features;
478 tco_migration_flags;
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;
487 tco_remote_check_id;
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;
495 po_codegen = false;
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;
504 tco_timeout;
505 tco_disallow_invalid_arraykey;
506 tco_disallow_byref_dynamic_calls;
507 tco_disallow_byref_calls;
508 log_levels;
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;
517 tco_like_type_hints;
518 tco_union_intersection_type_hints;
519 tco_coeffects;
520 tco_coeffects_local;
521 tco_strict_contexts;
522 tco_like_casts;
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;
536 tco_ordered_solving;
537 tco_const_static_props;
538 po_disable_legacy_attribute_syntax;
539 tco_const_attribute;
540 po_const_default_func_args;
541 po_const_default_lambda_args;
542 po_disallow_silence;
543 po_abstract_static_props;
544 po_parser_errors_only;
545 tco_check_attribute_locations;
546 glean_service;
547 glean_hostname;
548 glean_port;
549 glean_reponame;
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;
565 po_disable_array;
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;
576 tco_ifc_enabled;
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;
582 tco_readonly;
583 tco_enable_expression_trees;
584 tco_enable_modules;
585 tco_allowed_expression_tree_visitors;
586 tco_math_new_code;
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;
593 tco_everything_sdt;
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