Consolidate generator code
[hiphop-php.git] / hphp / hack / src / options / globalOptions.ml
blob5b060fb91b60fbc4b7f9e36bcf5a01b40bd58e4d
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 [@@@warning "-33"]
12 open Hh_prelude
14 [@@@warning "+33"]
16 (* NOTE: this file is in the middle of a large refactoring.
17 Please try to avoid changes other than adding a field to struct `t`,
18 updating `default` value and `make` functions
19 Encapsulation and helpers better fit in the respective modules: e.g.,
20 TypecheckerOptions for tco_* fields
21 ParserOptions for po_*fields
22 etc.
25 type saved_state_loading = {
26 saved_state_manifold_api_key: string option;
27 log_saved_state_age_and_distance: bool;
28 use_manifold_cython_client: bool;
29 zstd_decompress_by_file: bool;
30 use_compressed_dep_graph: bool;
32 [@@deriving show, eq]
34 let default_saved_state_loading =
36 saved_state_manifold_api_key = None;
37 log_saved_state_age_and_distance = false;
38 use_manifold_cython_client = false;
39 zstd_decompress_by_file = true;
40 use_compressed_dep_graph = true;
43 type saved_state = {
44 loading: saved_state_loading;
45 rollouts: Saved_state_rollouts.t;
46 project_metadata_w_flags: bool;
48 [@@deriving show, eq]
50 type 'a all_or_some =
51 | All
52 | ASome of 'a list
53 [@@deriving eq, show]
55 type 'a none_or_all_except =
56 | NNone
57 | All_except of 'a list
58 [@@deriving eq, show]
60 let default_saved_state =
62 loading = default_saved_state_loading;
63 rollouts = Saved_state_rollouts.default;
64 project_metadata_w_flags = true;
67 let with_saved_state_manifold_api_key saved_state_manifold_api_key ss =
68 { ss with loading = { ss.loading with saved_state_manifold_api_key } }
70 let with_use_manifold_cython_client use_manifold_cython_client ss =
71 { ss with loading = { ss.loading with use_manifold_cython_client } }
73 let with_log_saved_state_age_and_distance log_saved_state_age_and_distance ss =
74 { ss with loading = { ss.loading with log_saved_state_age_and_distance } }
76 let with_zstd_decompress_by_file zstd_decompress_by_file ss =
77 { ss with loading = { ss.loading with zstd_decompress_by_file } }
79 type extended_reasons_config =
80 | Extended of int
81 | Legacy
82 | Debug
83 [@@deriving eq, show]
85 (** Naming conventions for fields in this struct:
86 - tco_<feature/flag/setting> - type checker option
87 - po_<feature/flag/setting> - parser option
88 - so_<feature/flag/setting> - server option
90 type t = {
91 po: ParserOptions.t;
92 tco_saved_state: saved_state;
93 tco_experimental_features: SSet.t;
94 tco_migration_flags: SSet.t;
95 tco_num_local_workers: int option;
96 tco_defer_class_declaration_threshold: int option;
97 tco_locl_cache_capacity: int;
98 tco_locl_cache_node_threshold: int;
99 so_naming_sqlite_path: string option;
100 po_disallow_toplevel_requires: bool;
101 tco_log_large_fanouts_threshold: int option;
102 tco_log_inference_constraints: bool;
103 tco_language_feature_logging: bool;
104 tco_timeout: int;
105 tco_disallow_invalid_arraykey: bool;
106 code_agnostic_fixme: bool;
107 allowed_fixme_codes_strict: ISet.t;
108 log_levels: int SMap.t;
109 class_pointer_levels: int SMap.t;
110 tco_remote_old_decls_no_limit: bool;
111 tco_use_old_decls_from_cas: bool;
112 tco_fetch_remote_old_decls: bool;
113 tco_populate_member_heaps: bool;
114 tco_skip_hierarchy_checks: bool;
115 tco_skip_tast_checks: bool;
116 tco_coeffects: bool;
117 tco_coeffects_local: bool;
118 tco_strict_contexts: bool;
119 tco_like_casts: bool;
120 tco_check_xhp_attribute: bool;
121 tco_check_redundant_generics: bool;
122 tco_disallow_unresolved_type_variables: bool;
123 tco_custom_error_config: Custom_error_config.t;
124 tco_const_attribute: bool;
125 tco_check_attribute_locations: bool;
126 tco_type_refinement_partition_shapes: bool;
127 glean_reponame: string;
128 symbol_write_index_inherited_members: bool;
129 symbol_write_ownership: bool;
130 symbol_write_root_path: string;
131 symbol_write_hhi_path: string;
132 symbol_write_ignore_paths: string list;
133 symbol_write_index_paths: string list;
134 symbol_write_index_paths_file: string option;
135 symbol_write_index_paths_file_output: string option;
136 symbol_write_include_hhi: bool;
137 symbol_write_sym_hash_in: string option;
138 symbol_write_exclude_out: string option;
139 symbol_write_referenced_out: string option;
140 symbol_write_reindexed_out: string option;
141 symbol_write_sym_hash_out: bool;
142 tco_error_php_lambdas: bool;
143 tco_disallow_discarded_nullable_awaitables: bool;
144 tco_higher_kinded_types: bool;
145 tco_report_pos_from_reason: bool;
146 tco_typecheck_sample_rate: float;
147 tco_enable_sound_dynamic: bool;
148 tco_pessimise_builtins: bool;
149 tco_enable_no_auto_dynamic: bool;
150 tco_skip_check_under_dynamic: bool;
151 tco_global_access_check_enabled: bool;
152 tco_enable_strict_string_concat_interp: bool;
153 tco_ignore_unsafe_cast: bool;
154 tco_enable_expression_trees: bool;
155 tco_enable_function_references: bool;
156 tco_allowed_expression_tree_visitors: string list;
157 tco_typeconst_concrete_concrete_error: bool;
158 tco_enable_strict_const_semantics: int;
159 tco_strict_wellformedness: int;
160 tco_meth_caller_only_public_visibility: bool;
161 tco_require_extends_implements_ancestors: bool;
162 tco_strict_value_equality: bool;
163 tco_enforce_sealed_subclasses: bool;
164 tco_implicit_inherit_sdt: bool;
165 tco_explicit_consistent_constructors: int;
166 tco_require_types_class_consts: int;
167 tco_type_printer_fuel: int;
168 tco_specify_manifold_api_key: bool;
169 tco_profile_top_level_definitions: bool;
170 tco_allow_all_files_for_module_declarations: bool;
171 tco_allowed_files_for_module_declarations: string list;
172 tco_record_fine_grained_dependencies: bool;
173 tco_loop_iteration_upper_bound: int option;
174 tco_populate_dead_unsafe_cast_heap: bool;
175 dump_tast_hashes: bool;
176 dump_tasts: string list;
177 tco_autocomplete_mode: bool;
178 tco_package_info: PackageInfo.t;
179 tco_log_exhaustivity_check: bool;
180 tco_sticky_quarantine: bool;
181 tco_lsp_invalidation: bool;
182 tco_autocomplete_sort_text: bool;
183 tco_extended_reasons: extended_reasons_config option;
184 tco_disable_physical_equality: bool;
185 hack_warnings: int none_or_all_except;
186 warnings_default_all: bool;
187 tco_strict_switch: bool;
188 tco_allowed_files_for_ignore_readonly: string list;
189 tco_package_v2_support_multifile_tests: bool;
190 tco_package_v2_bypass_package_check_for_class_const: bool;
191 re_no_cache: bool;
192 hh_distc_should_disable_trace_store: bool;
193 hh_distc_exponential_backoff_num_retries: int;
194 tco_enable_abstract_method_optional_parameters: bool;
195 recursive_case_types: bool;
197 [@@deriving eq, show]
199 let default =
201 po = ParserOptions.default;
202 tco_saved_state = default_saved_state;
203 tco_experimental_features = SSet.empty;
204 tco_migration_flags = SSet.empty;
205 tco_num_local_workers = None;
206 tco_defer_class_declaration_threshold = None;
207 tco_locl_cache_capacity = 30;
208 tco_locl_cache_node_threshold = 10_000;
209 so_naming_sqlite_path = None;
210 po_disallow_toplevel_requires = false;
211 tco_log_large_fanouts_threshold = None;
212 tco_log_inference_constraints = false;
213 tco_language_feature_logging = false;
214 tco_timeout = 0;
215 tco_disallow_invalid_arraykey = true;
216 code_agnostic_fixme = false;
217 allowed_fixme_codes_strict = ISet.empty;
218 log_levels = SMap.empty;
219 class_pointer_levels = SMap.empty;
220 tco_remote_old_decls_no_limit = false;
221 tco_use_old_decls_from_cas = false;
222 tco_fetch_remote_old_decls = true;
223 tco_populate_member_heaps = true;
224 tco_skip_hierarchy_checks = false;
225 tco_skip_tast_checks = false;
226 tco_coeffects = true;
227 tco_coeffects_local = true;
228 tco_strict_contexts = true;
229 tco_like_casts = false;
230 tco_check_xhp_attribute = false;
231 tco_check_redundant_generics = false;
232 tco_disallow_unresolved_type_variables = false;
233 tco_custom_error_config = Custom_error_config.empty;
234 tco_const_attribute = false;
235 tco_check_attribute_locations = true;
236 tco_type_refinement_partition_shapes = false;
237 glean_reponame = "www.hack.light";
238 symbol_write_index_inherited_members = true;
239 symbol_write_ownership = false;
240 symbol_write_root_path = "www";
241 symbol_write_hhi_path = "hhi";
242 symbol_write_ignore_paths = [];
243 symbol_write_index_paths = [];
244 symbol_write_index_paths_file = None;
245 symbol_write_index_paths_file_output = None;
246 symbol_write_include_hhi = false;
247 symbol_write_sym_hash_in = None;
248 symbol_write_exclude_out = None;
249 symbol_write_referenced_out = None;
250 symbol_write_reindexed_out = None;
251 symbol_write_sym_hash_out = false;
252 tco_error_php_lambdas = false;
253 tco_disallow_discarded_nullable_awaitables = false;
254 tco_higher_kinded_types = false;
255 tco_report_pos_from_reason = false;
256 tco_typecheck_sample_rate = 1.0;
257 tco_enable_sound_dynamic = false;
258 tco_pessimise_builtins = false;
259 tco_enable_no_auto_dynamic = false;
260 tco_skip_check_under_dynamic = false;
261 tco_global_access_check_enabled = false;
262 tco_enable_strict_string_concat_interp = false;
263 tco_ignore_unsafe_cast = false;
264 tco_enable_expression_trees = false;
265 tco_enable_function_references = false;
266 tco_allowed_expression_tree_visitors = [];
267 tco_typeconst_concrete_concrete_error = false;
268 tco_enable_strict_const_semantics = 0;
269 tco_strict_wellformedness = 0;
270 tco_meth_caller_only_public_visibility = true;
271 tco_require_extends_implements_ancestors = false;
272 tco_strict_value_equality = false;
273 tco_enforce_sealed_subclasses = false;
274 tco_implicit_inherit_sdt = false;
275 tco_explicit_consistent_constructors = 0;
276 tco_require_types_class_consts = 0;
277 tco_type_printer_fuel = 100;
278 tco_specify_manifold_api_key = false;
279 tco_profile_top_level_definitions = false;
280 tco_allow_all_files_for_module_declarations = true;
281 tco_allowed_files_for_module_declarations = [];
282 tco_record_fine_grained_dependencies = false;
283 tco_loop_iteration_upper_bound = None;
284 tco_populate_dead_unsafe_cast_heap = false;
285 dump_tast_hashes = false;
286 dump_tasts = [];
287 tco_autocomplete_mode = false;
288 tco_package_info = PackageInfo.empty;
289 tco_log_exhaustivity_check = false;
290 tco_sticky_quarantine = false;
291 tco_lsp_invalidation = false;
292 tco_autocomplete_sort_text = false;
293 tco_extended_reasons = None;
294 tco_disable_physical_equality = false;
295 hack_warnings = All_except [];
296 warnings_default_all = false;
297 tco_strict_switch = false;
298 tco_allowed_files_for_ignore_readonly = [];
299 tco_package_v2_support_multifile_tests = false;
300 tco_package_v2_bypass_package_check_for_class_const = true;
301 re_no_cache = false;
302 hh_distc_should_disable_trace_store = false;
303 hh_distc_exponential_backoff_num_retries = 10;
304 tco_enable_abstract_method_optional_parameters = false;
305 recursive_case_types = false;
308 let set
310 ?tco_saved_state
311 ?po_disallow_toplevel_requires
312 ?tco_log_large_fanouts_threshold
313 ?tco_log_inference_constraints
314 ?tco_experimental_features
315 ?tco_migration_flags
316 ?tco_num_local_workers
317 ?tco_defer_class_declaration_threshold
318 ?tco_locl_cache_capacity
319 ?tco_locl_cache_node_threshold
320 ?so_naming_sqlite_path
321 ?tco_language_feature_logging
322 ?tco_timeout
323 ?tco_disallow_invalid_arraykey
324 ?code_agnostic_fixme
325 ?allowed_fixme_codes_strict
326 ?log_levels
327 ?class_pointer_levels
328 ?tco_remote_old_decls_no_limit
329 ?tco_use_old_decls_from_cas
330 ?tco_fetch_remote_old_decls
331 ?tco_populate_member_heaps
332 ?tco_skip_hierarchy_checks
333 ?tco_skip_tast_checks
334 ?tco_coeffects
335 ?tco_coeffects_local
336 ?tco_strict_contexts
337 ?tco_like_casts
338 ?tco_check_xhp_attribute
339 ?tco_check_redundant_generics
340 ?tco_disallow_unresolved_type_variables
341 ?tco_custom_error_config
342 ?tco_const_attribute
343 ?tco_check_attribute_locations
344 ?tco_type_refinement_partition_shapes
345 ?glean_reponame
346 ?symbol_write_index_inherited_members
347 ?symbol_write_ownership
348 ?symbol_write_root_path
349 ?symbol_write_hhi_path
350 ?symbol_write_ignore_paths
351 ?symbol_write_index_paths
352 ?symbol_write_index_paths_file
353 ?symbol_write_index_paths_file_output
354 ?symbol_write_include_hhi
355 ?symbol_write_sym_hash_in
356 ?symbol_write_exclude_out
357 ?symbol_write_referenced_out
358 ?symbol_write_reindexed_out
359 ?symbol_write_sym_hash_out
360 ?tco_error_php_lambdas
361 ?tco_disallow_discarded_nullable_awaitables
362 ?tco_higher_kinded_types
363 ?tco_report_pos_from_reason
364 ?tco_typecheck_sample_rate
365 ?tco_enable_sound_dynamic
366 ?tco_pessimise_builtins
367 ?tco_enable_no_auto_dynamic
368 ?tco_skip_check_under_dynamic
369 ?tco_global_access_check_enabled
370 ?tco_enable_strict_string_concat_interp
371 ?tco_ignore_unsafe_cast
372 ?tco_enable_expression_trees
373 ?tco_enable_function_references
374 ?tco_allowed_expression_tree_visitors
375 ?tco_typeconst_concrete_concrete_error
376 ?tco_enable_strict_const_semantics
377 ?tco_strict_wellformedness
378 ?tco_meth_caller_only_public_visibility
379 ?tco_require_extends_implements_ancestors
380 ?tco_strict_value_equality
381 ?tco_enforce_sealed_subclasses
382 ?tco_implicit_inherit_sdt
383 ?tco_explicit_consistent_constructors
384 ?tco_require_types_class_consts
385 ?tco_type_printer_fuel
386 ?tco_specify_manifold_api_key
387 ?tco_profile_top_level_definitions
388 ?tco_allow_all_files_for_module_declarations
389 ?tco_allowed_files_for_module_declarations
390 ?tco_record_fine_grained_dependencies
391 ?tco_loop_iteration_upper_bound
392 ?tco_populate_dead_unsafe_cast_heap
393 ?dump_tast_hashes
394 ?dump_tasts
395 ?tco_autocomplete_mode
396 ?tco_package_info
397 ?tco_log_exhaustivity_check
398 ?tco_sticky_quarantine
399 ?tco_lsp_invalidation
400 ?tco_autocomplete_sort_text
401 ?tco_extended_reasons
402 ?tco_disable_physical_equality
403 ?hack_warnings
404 ?warnings_default_all
405 ?tco_strict_switch
406 ?tco_allowed_files_for_ignore_readonly
407 ?tco_package_v2_support_multifile_tests
408 ?tco_package_v2_bypass_package_check_for_class_const
409 ?re_no_cache
410 ?hh_distc_should_disable_trace_store
411 ?hh_distc_exponential_backoff_num_retries
412 ?tco_enable_abstract_method_optional_parameters
413 ?recursive_case_types
414 options =
415 let setting setting option =
416 match setting with
417 | None -> option
418 | Some value -> value
420 let setting_opt setting option =
421 match setting with
422 | None -> option
423 | Some _ -> setting
426 po = setting po options.po;
427 tco_saved_state = setting tco_saved_state options.tco_saved_state;
428 tco_experimental_features =
429 setting tco_experimental_features options.tco_experimental_features;
430 tco_migration_flags =
431 setting tco_migration_flags options.tco_migration_flags;
432 tco_num_local_workers =
433 setting_opt tco_num_local_workers options.tco_num_local_workers;
434 tco_defer_class_declaration_threshold =
435 setting_opt
436 tco_defer_class_declaration_threshold
437 options.tco_defer_class_declaration_threshold;
438 tco_locl_cache_capacity =
439 setting tco_locl_cache_capacity options.tco_locl_cache_capacity;
440 tco_locl_cache_node_threshold =
441 setting
442 tco_locl_cache_node_threshold
443 options.tco_locl_cache_node_threshold;
444 so_naming_sqlite_path =
445 setting_opt so_naming_sqlite_path options.so_naming_sqlite_path;
446 code_agnostic_fixme =
447 setting code_agnostic_fixme options.code_agnostic_fixme;
448 allowed_fixme_codes_strict =
449 setting allowed_fixme_codes_strict options.allowed_fixme_codes_strict;
450 po_disallow_toplevel_requires =
451 setting
452 po_disallow_toplevel_requires
453 options.po_disallow_toplevel_requires;
454 tco_log_large_fanouts_threshold =
455 setting_opt
456 tco_log_large_fanouts_threshold
457 options.tco_log_large_fanouts_threshold;
458 tco_log_inference_constraints =
459 setting
460 tco_log_inference_constraints
461 options.tco_log_inference_constraints;
462 tco_language_feature_logging =
463 setting tco_language_feature_logging options.tco_language_feature_logging;
464 tco_timeout = setting tco_timeout options.tco_timeout;
465 tco_disallow_invalid_arraykey =
466 setting
467 tco_disallow_invalid_arraykey
468 options.tco_disallow_invalid_arraykey;
469 log_levels = setting log_levels options.log_levels;
470 class_pointer_levels =
471 setting class_pointer_levels options.class_pointer_levels;
472 tco_remote_old_decls_no_limit =
473 setting
474 tco_remote_old_decls_no_limit
475 options.tco_remote_old_decls_no_limit;
476 tco_use_old_decls_from_cas =
477 setting tco_use_old_decls_from_cas options.tco_use_old_decls_from_cas;
478 tco_fetch_remote_old_decls =
479 setting tco_fetch_remote_old_decls options.tco_fetch_remote_old_decls;
480 tco_populate_member_heaps =
481 setting tco_populate_member_heaps options.tco_populate_member_heaps;
482 tco_skip_hierarchy_checks =
483 setting tco_skip_hierarchy_checks options.tco_skip_hierarchy_checks;
484 tco_skip_tast_checks =
485 setting tco_skip_tast_checks options.tco_skip_tast_checks;
486 tco_coeffects = setting tco_coeffects options.tco_coeffects;
487 tco_coeffects_local =
488 setting tco_coeffects_local options.tco_coeffects_local;
489 tco_strict_contexts =
490 setting tco_strict_contexts options.tco_strict_contexts;
491 tco_like_casts = setting tco_like_casts options.tco_like_casts;
492 tco_check_xhp_attribute =
493 setting tco_check_xhp_attribute options.tco_check_xhp_attribute;
494 tco_check_redundant_generics =
495 setting tco_check_redundant_generics options.tco_check_redundant_generics;
496 tco_disallow_unresolved_type_variables =
497 setting
498 tco_disallow_unresolved_type_variables
499 options.tco_disallow_unresolved_type_variables;
500 tco_custom_error_config =
501 setting tco_custom_error_config options.tco_custom_error_config;
502 tco_const_attribute =
503 setting tco_const_attribute options.tco_const_attribute;
504 tco_check_attribute_locations =
505 setting
506 tco_check_attribute_locations
507 options.tco_check_attribute_locations;
508 tco_type_refinement_partition_shapes =
509 setting
510 tco_type_refinement_partition_shapes
511 options.tco_type_refinement_partition_shapes;
512 glean_reponame = setting glean_reponame options.glean_reponame;
513 symbol_write_index_inherited_members =
514 setting
515 symbol_write_index_inherited_members
516 options.symbol_write_index_inherited_members;
517 symbol_write_ownership =
518 setting symbol_write_ownership options.symbol_write_ownership;
519 symbol_write_root_path =
520 setting symbol_write_root_path options.symbol_write_root_path;
521 symbol_write_hhi_path =
522 setting symbol_write_hhi_path options.symbol_write_hhi_path;
523 symbol_write_ignore_paths =
524 setting symbol_write_ignore_paths options.symbol_write_ignore_paths;
525 symbol_write_index_paths =
526 setting symbol_write_index_paths options.symbol_write_index_paths;
527 symbol_write_index_paths_file =
528 setting_opt
529 symbol_write_index_paths_file
530 options.symbol_write_index_paths_file;
531 symbol_write_index_paths_file_output =
532 setting_opt
533 symbol_write_index_paths_file_output
534 options.symbol_write_index_paths_file_output;
535 symbol_write_include_hhi =
536 setting symbol_write_include_hhi options.symbol_write_include_hhi;
537 symbol_write_sym_hash_in =
538 setting_opt symbol_write_sym_hash_in options.symbol_write_sym_hash_in;
539 symbol_write_exclude_out =
540 setting_opt symbol_write_exclude_out options.symbol_write_exclude_out;
541 symbol_write_referenced_out =
542 setting_opt
543 symbol_write_referenced_out
544 options.symbol_write_referenced_out;
545 symbol_write_reindexed_out =
546 setting_opt symbol_write_reindexed_out options.symbol_write_reindexed_out;
547 symbol_write_sym_hash_out =
548 setting symbol_write_sym_hash_out options.symbol_write_sym_hash_out;
549 tco_error_php_lambdas =
550 setting tco_error_php_lambdas options.tco_error_php_lambdas;
551 tco_disallow_discarded_nullable_awaitables =
552 setting
553 tco_disallow_discarded_nullable_awaitables
554 options.tco_disallow_discarded_nullable_awaitables;
555 tco_higher_kinded_types =
556 setting tco_higher_kinded_types options.tco_higher_kinded_types;
557 tco_report_pos_from_reason =
558 setting tco_report_pos_from_reason options.tco_report_pos_from_reason;
559 tco_typecheck_sample_rate =
560 setting tco_typecheck_sample_rate options.tco_typecheck_sample_rate;
561 tco_enable_sound_dynamic =
562 setting tco_enable_sound_dynamic options.tco_enable_sound_dynamic;
563 tco_pessimise_builtins =
564 setting tco_pessimise_builtins options.tco_pessimise_builtins;
565 tco_enable_no_auto_dynamic =
566 setting tco_enable_no_auto_dynamic options.tco_enable_no_auto_dynamic;
567 tco_skip_check_under_dynamic =
568 setting tco_skip_check_under_dynamic options.tco_skip_check_under_dynamic;
569 tco_global_access_check_enabled =
570 setting
571 tco_global_access_check_enabled
572 options.tco_global_access_check_enabled;
573 tco_enable_strict_string_concat_interp =
574 setting
575 tco_enable_strict_string_concat_interp
576 options.tco_enable_strict_string_concat_interp;
577 tco_ignore_unsafe_cast =
578 setting tco_ignore_unsafe_cast options.tco_ignore_unsafe_cast;
579 tco_enable_expression_trees =
580 setting tco_enable_expression_trees options.tco_enable_expression_trees;
581 tco_enable_function_references =
582 setting
583 tco_enable_function_references
584 options.tco_enable_function_references;
585 tco_allowed_expression_tree_visitors =
586 setting
587 tco_allowed_expression_tree_visitors
588 options.tco_allowed_expression_tree_visitors;
589 tco_typeconst_concrete_concrete_error =
590 setting
591 tco_typeconst_concrete_concrete_error
592 options.tco_typeconst_concrete_concrete_error;
593 tco_enable_strict_const_semantics =
594 setting
595 tco_enable_strict_const_semantics
596 options.tco_enable_strict_const_semantics;
597 tco_strict_wellformedness =
598 setting tco_strict_wellformedness options.tco_strict_wellformedness;
599 tco_meth_caller_only_public_visibility =
600 setting
601 tco_meth_caller_only_public_visibility
602 options.tco_meth_caller_only_public_visibility;
603 tco_require_extends_implements_ancestors =
604 setting
605 tco_require_extends_implements_ancestors
606 options.tco_require_extends_implements_ancestors;
607 tco_strict_value_equality =
608 setting tco_strict_value_equality options.tco_strict_value_equality;
609 tco_enforce_sealed_subclasses =
610 setting
611 tco_enforce_sealed_subclasses
612 options.tco_enforce_sealed_subclasses;
613 tco_implicit_inherit_sdt =
614 setting tco_implicit_inherit_sdt options.tco_implicit_inherit_sdt;
615 tco_explicit_consistent_constructors =
616 setting
617 tco_explicit_consistent_constructors
618 options.tco_explicit_consistent_constructors;
619 tco_require_types_class_consts =
620 setting
621 tco_require_types_class_consts
622 options.tco_require_types_class_consts;
623 tco_type_printer_fuel =
624 setting tco_type_printer_fuel options.tco_type_printer_fuel;
625 tco_specify_manifold_api_key =
626 setting tco_specify_manifold_api_key options.tco_specify_manifold_api_key;
627 tco_profile_top_level_definitions =
628 setting
629 tco_profile_top_level_definitions
630 options.tco_profile_top_level_definitions;
631 tco_allow_all_files_for_module_declarations =
632 setting
633 tco_allow_all_files_for_module_declarations
634 options.tco_allow_all_files_for_module_declarations;
635 tco_allowed_files_for_module_declarations =
636 setting
637 tco_allowed_files_for_module_declarations
638 options.tco_allowed_files_for_module_declarations;
639 tco_record_fine_grained_dependencies =
640 setting
641 tco_record_fine_grained_dependencies
642 options.tco_record_fine_grained_dependencies;
643 tco_loop_iteration_upper_bound =
644 setting
645 tco_loop_iteration_upper_bound
646 options.tco_loop_iteration_upper_bound;
647 tco_populate_dead_unsafe_cast_heap =
648 setting
649 tco_populate_dead_unsafe_cast_heap
650 options.tco_populate_dead_unsafe_cast_heap;
651 dump_tast_hashes = setting dump_tast_hashes options.dump_tast_hashes;
652 dump_tasts = setting dump_tasts options.dump_tasts;
653 tco_autocomplete_mode =
654 setting tco_autocomplete_mode options.tco_autocomplete_mode;
655 tco_package_info = setting tco_package_info options.tco_package_info;
656 tco_log_exhaustivity_check =
657 setting tco_log_exhaustivity_check options.tco_log_exhaustivity_check;
658 tco_sticky_quarantine =
659 setting tco_sticky_quarantine options.tco_sticky_quarantine;
660 tco_lsp_invalidation =
661 setting tco_lsp_invalidation options.tco_lsp_invalidation;
662 tco_autocomplete_sort_text =
663 setting tco_autocomplete_sort_text options.tco_autocomplete_sort_text;
664 tco_extended_reasons =
665 setting_opt tco_extended_reasons options.tco_extended_reasons;
666 tco_disable_physical_equality =
667 setting
668 tco_disable_physical_equality
669 options.tco_disable_physical_equality;
670 hack_warnings = setting hack_warnings options.hack_warnings;
671 warnings_default_all =
672 setting warnings_default_all options.warnings_default_all;
673 tco_strict_switch = setting tco_strict_switch options.tco_strict_switch;
674 tco_allowed_files_for_ignore_readonly =
675 setting
676 tco_allowed_files_for_ignore_readonly
677 options.tco_allowed_files_for_ignore_readonly;
678 tco_package_v2_support_multifile_tests =
679 setting
680 tco_package_v2_support_multifile_tests
681 options.tco_package_v2_support_multifile_tests;
682 tco_package_v2_bypass_package_check_for_class_const =
683 setting
684 tco_package_v2_bypass_package_check_for_class_const
685 options.tco_package_v2_bypass_package_check_for_class_const;
686 re_no_cache = setting re_no_cache options.re_no_cache;
687 hh_distc_should_disable_trace_store =
688 setting
689 hh_distc_should_disable_trace_store
690 options.hh_distc_should_disable_trace_store;
691 hh_distc_exponential_backoff_num_retries =
692 setting
693 hh_distc_exponential_backoff_num_retries
694 options.hh_distc_exponential_backoff_num_retries;
695 tco_enable_abstract_method_optional_parameters =
696 setting
697 tco_enable_abstract_method_optional_parameters
698 options.tco_enable_abstract_method_optional_parameters;
699 recursive_case_types =
700 setting recursive_case_types options.recursive_case_types;
703 let so_naming_sqlite_path t = t.so_naming_sqlite_path
705 let allowed_fixme_codes_strict t = t.allowed_fixme_codes_strict
707 let code_agnostic_fixme t = t.code_agnostic_fixme