add EnableRustEmitter in hhvm && rm rust_top_level_elaborator
[hiphop-php.git] / hphp / hack / src / options / globalOptions.ml
bloba17ee469137fe715dbcf4d41fedfc189673531bd
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 type t = {
11 tco_experimental_features: SSet.t;
12 tco_migration_flags: SSet.t;
13 tco_dynamic_view: bool;
14 tco_num_local_workers: int option;
15 tco_parallel_type_checking_threshold: int;
16 tco_defer_class_declaration_threshold: int option;
17 tco_max_times_to_defer_type_checking: int option;
18 tco_prefetch_deferred_files: bool;
19 tco_remote_type_check_threshold: int option;
20 tco_remote_type_check: bool;
21 tco_remote_worker_key: string option;
22 tco_remote_check_id: string option;
23 tco_remote_max_batch_size: int;
24 tco_remote_min_batch_size: int;
25 tco_num_remote_workers: int;
26 so_remote_version_specifier: string option;
27 so_remote_worker_vfs_checkout_threshold: int;
28 so_naming_sqlite_path: string option;
29 po_auto_namespace_map: (string * string) list;
30 po_codegen: bool;
31 po_deregister_php_stdlib: bool;
32 po_disallow_execution_operator: bool;
33 po_disallow_toplevel_requires: bool;
34 po_disable_nontoplevel_declarations: bool;
35 po_disable_static_closures: bool;
36 po_allow_goto: bool;
37 tco_log_inference_constraints: bool;
38 tco_disallow_array_typehint: bool;
39 tco_disallow_array_literal: bool;
40 tco_language_feature_logging: bool;
41 tco_unsafe_rx: bool;
42 tco_disallow_scrutinee_case_value_type_mismatch: bool;
43 tco_timeout: int;
44 tco_disallow_invalid_arraykey: bool;
45 tco_disallow_byref_dynamic_calls: bool;
46 tco_disallow_byref_calls: bool;
47 ignored_fixme_codes: ISet.t;
48 log_levels: int SMap.t;
49 po_disable_lval_as_an_expression: bool;
50 tco_shallow_class_decl: bool;
51 po_rust_parser_errors: bool;
52 profile_type_check_duration_threshold: float;
53 profile_type_check_twice: bool;
54 profile_owner: string;
55 profile_desc: string;
56 tco_like_type_hints: bool;
57 tco_union_intersection_type_hints: bool;
58 tco_like_casts: bool;
59 tco_simple_pessimize: float;
60 tco_complex_coercion: bool;
61 tco_disable_partially_abstract_typeconsts: bool;
62 error_codes_treated_strictly: ISet.t;
63 tco_check_xhp_attribute: bool;
64 tco_check_redundant_generics: bool;
65 tco_disallow_unresolved_type_variables: 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_disallowed_decl_fixmes: 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;
86 glean_port: int;
87 glean_reponame: string;
88 symbol_write_root_path: string;
89 symbol_write_hhi_path: string;
90 po_disallow_func_ptrs_in_constants: bool;
91 tco_error_php_lambdas: bool;
92 tco_disallow_discarded_nullable_awaitables: bool;
93 po_enable_xhp_class_modifier: bool;
94 po_disable_xhp_element_mangling: bool;
95 po_disable_xhp_children_declarations: bool;
96 po_enable_first_class_function_pointers: bool;
97 po_disable_modes: bool;
98 po_disable_array: bool;
99 tco_enable_systemlib_annotations: bool;
100 tco_pu_enabled_paths: bool * Relative_path.t list;
102 [@@deriving show]
104 let tco_experimental_isarray = "is_array"
106 (* Whether Shapes::idx should return a non-nullable type when the input shape
107 is known to contain the field. *)
108 let tco_experimental_stronger_shape_idx_ret = "stronger_shape_idx_return"
111 * Insist on instantiations for all generic types, even in non-strict files
113 let tco_experimental_generics_arity = "generics_arity"
116 * Forbid casting nullable values, since they have unexpected semantics. For
117 * example, casting `null` to an int results in `0`, which may or may not be
118 * what you were expecting.
120 let tco_experimental_forbid_nullable_cast = "forbid_nullable_cast"
123 * Disallow static memoized functions in non-final classes
126 let tco_experimental_disallow_static_memoized = "disallow_static_memoized"
129 * Allows parsing of coroutine functions/suspend operator
131 let tco_experimental_coroutines = "coroutines"
134 * Enforce no duplication of traits in a class hierarchy. There is some clean-up
135 * involved, so it's behind a flag.
137 let tco_experimental_no_trait_reuse = "no_trait_reuse"
140 * Prevent type param names from shadowing class names
142 let tco_experimental_type_param_shadowing = "type_param_shadowing"
145 * Enable trait method redeclarations, i.e. public function f(): void = T1::f;
147 let tco_experimental_trait_method_redeclarations = "trait_method_redeclarations"
150 * Enable abstract const type with default syntax, i.e.
151 * abstract const type T as num = int;
153 let tco_experimental_abstract_type_const_with_default =
154 "abstract_type_const_with_default"
156 let tco_experimental_all =
157 SSet.empty
158 |> List.fold_right
159 SSet.add
161 tco_experimental_isarray;
162 tco_experimental_stronger_shape_idx_ret;
163 tco_experimental_generics_arity;
164 tco_experimental_forbid_nullable_cast;
165 tco_experimental_coroutines;
166 tco_experimental_disallow_static_memoized;
167 tco_experimental_no_trait_reuse;
168 tco_experimental_trait_method_redeclarations;
169 tco_experimental_abstract_type_const_with_default;
172 let tco_migration_flags_all =
173 SSet.empty |> List.fold_right SSet.add ["array_cast"]
175 let default =
177 (* Default all features for testing. Actual options are set by reading
178 * from hhconfig, which defaults to empty. *)
179 tco_experimental_features = tco_experimental_all;
180 tco_migration_flags = SSet.empty;
181 tco_dynamic_view = false;
182 tco_num_local_workers = None;
183 tco_parallel_type_checking_threshold = 10;
184 tco_defer_class_declaration_threshold = None;
185 tco_max_times_to_defer_type_checking = None;
186 tco_prefetch_deferred_files = false;
187 tco_remote_type_check_threshold = None;
188 tco_remote_type_check = true;
189 tco_remote_worker_key = None;
190 tco_remote_check_id = None;
191 tco_remote_max_batch_size = 8_000;
192 tco_remote_min_batch_size = 5_000;
193 tco_num_remote_workers = 4;
194 so_remote_version_specifier = None;
195 so_remote_worker_vfs_checkout_threshold = 10000;
196 so_naming_sqlite_path = None;
197 po_auto_namespace_map = [];
198 po_codegen = false;
199 po_disallow_execution_operator = false;
200 po_disallow_toplevel_requires = false;
201 po_deregister_php_stdlib = false;
202 po_disable_nontoplevel_declarations = false;
203 po_disable_static_closures = false;
204 po_allow_goto = true;
205 tco_log_inference_constraints = false;
206 tco_disallow_array_typehint = false;
207 tco_disallow_array_literal = false;
208 tco_language_feature_logging = false;
209 tco_unsafe_rx = true;
210 tco_disallow_scrutinee_case_value_type_mismatch = false;
211 tco_timeout = 0;
212 tco_disallow_invalid_arraykey = true;
213 tco_disallow_byref_dynamic_calls = false;
214 tco_disallow_byref_calls = false;
215 ignored_fixme_codes = Errors.default_ignored_fixme_codes;
216 log_levels = SMap.empty;
217 po_disable_lval_as_an_expression = true;
218 tco_shallow_class_decl = false;
219 po_rust_parser_errors = false;
220 profile_type_check_duration_threshold = 0.05;
221 profile_type_check_twice = false;
222 profile_owner = "";
223 profile_desc = "";
224 tco_like_type_hints = false;
225 tco_union_intersection_type_hints = false;
226 tco_like_casts = false;
227 tco_simple_pessimize = 0.0;
228 tco_complex_coercion = false;
229 tco_disable_partially_abstract_typeconsts = false;
230 error_codes_treated_strictly = ISet.of_list [];
231 tco_check_xhp_attribute = false;
232 tco_check_redundant_generics = false;
233 tco_disallow_unresolved_type_variables = false;
234 tco_disallow_invalid_arraykey_constraint = false;
235 po_enable_class_level_where_clauses = false;
236 po_disable_legacy_soft_typehints = false;
237 po_disallowed_decl_fixmes = ISet.of_list [];
238 po_allow_new_attribute_syntax = false;
239 tco_global_inference = false;
240 tco_gi_reinfer_types = [];
241 tco_ordered_solving = false;
242 tco_const_static_props = false;
243 po_disable_legacy_attribute_syntax = false;
244 tco_const_attribute = false;
245 po_const_default_func_args = false;
246 po_const_default_lambda_args = false;
247 po_disallow_silence = false;
248 po_abstract_static_props = false;
249 po_disable_unset_class_const = false;
250 po_parser_errors_only = false;
251 tco_check_attribute_locations = false;
252 glean_service = "";
253 glean_hostname = "";
254 glean_port = 0;
255 glean_reponame = "www.autocomplete";
256 symbol_write_root_path = "www";
257 symbol_write_hhi_path = "hhi";
258 po_disallow_func_ptrs_in_constants = false;
259 tco_error_php_lambdas = false;
260 tco_disallow_discarded_nullable_awaitables = false;
261 po_enable_xhp_class_modifier = false;
262 po_disable_xhp_element_mangling = false;
263 po_disable_xhp_children_declarations = false;
264 po_enable_first_class_function_pointers = false;
265 po_disable_modes = false;
266 po_disable_array = false;
267 tco_enable_systemlib_annotations = false;
268 tco_pu_enabled_paths = (false, []);
271 let make
272 ?(po_deregister_php_stdlib = default.po_deregister_php_stdlib)
273 ?(po_disallow_execution_operator = default.po_disallow_execution_operator)
274 ?(po_disallow_toplevel_requires = default.po_disallow_toplevel_requires)
275 ?(po_disable_nontoplevel_declarations =
276 default.po_disable_nontoplevel_declarations)
277 ?(po_disable_static_closures = default.po_disable_static_closures)
278 ?(po_allow_goto = default.po_allow_goto)
279 ?(tco_log_inference_constraints = default.tco_log_inference_constraints)
280 ?(tco_experimental_features = default.tco_experimental_features)
281 ?(tco_migration_flags = default.tco_migration_flags)
282 ?(tco_dynamic_view = default.tco_dynamic_view)
283 ?tco_num_local_workers
284 ?(tco_parallel_type_checking_threshold =
285 default.tco_parallel_type_checking_threshold)
286 ?tco_defer_class_declaration_threshold
287 ?tco_max_times_to_defer_type_checking
288 ?(tco_prefetch_deferred_files = default.tco_prefetch_deferred_files)
289 ?tco_remote_type_check_threshold
290 ?(tco_remote_type_check = default.tco_remote_type_check)
291 ?tco_remote_worker_key
292 ?tco_remote_check_id
293 ?(tco_remote_max_batch_size = default.tco_remote_max_batch_size)
294 ?(tco_remote_min_batch_size = default.tco_remote_min_batch_size)
295 ?(tco_num_remote_workers = default.tco_num_remote_workers)
296 ?so_remote_version_specifier
297 ?(so_remote_worker_vfs_checkout_threshold =
298 default.so_remote_worker_vfs_checkout_threshold)
299 ?so_naming_sqlite_path
300 ?(po_auto_namespace_map = default.po_auto_namespace_map)
301 ?(tco_disallow_array_typehint = default.tco_disallow_array_typehint)
302 ?(tco_disallow_array_literal = default.tco_disallow_array_literal)
303 ?(tco_language_feature_logging = default.tco_language_feature_logging)
304 ?(tco_unsafe_rx = default.tco_unsafe_rx)
305 ?(tco_disallow_scrutinee_case_value_type_mismatch =
306 default.tco_disallow_scrutinee_case_value_type_mismatch)
307 ?(tco_timeout = default.tco_timeout)
308 ?(tco_disallow_invalid_arraykey = default.tco_disallow_invalid_arraykey)
309 ?(tco_disallow_byref_dynamic_calls =
310 default.tco_disallow_byref_dynamic_calls)
311 ?(tco_disallow_byref_calls = default.tco_disallow_byref_calls)
312 ?(ignored_fixme_codes = default.ignored_fixme_codes)
313 ?(log_levels = default.log_levels)
314 ?(po_disable_lval_as_an_expression =
315 default.po_disable_lval_as_an_expression)
316 ?(tco_shallow_class_decl = default.tco_shallow_class_decl)
317 ?(po_rust_parser_errors = default.po_rust_parser_errors)
318 ?(profile_type_check_duration_threshold =
319 default.profile_type_check_duration_threshold)
320 ?(profile_type_check_twice = default.profile_type_check_twice)
321 ?(profile_owner = default.profile_owner)
322 ?(profile_desc = default.profile_desc)
323 ?(tco_like_type_hints = default.tco_like_type_hints)
324 ?(tco_union_intersection_type_hints =
325 default.tco_union_intersection_type_hints)
326 ?(tco_like_casts = default.tco_like_casts)
327 ?(tco_simple_pessimize = default.tco_simple_pessimize)
328 ?(tco_complex_coercion = default.tco_complex_coercion)
329 ?(tco_disable_partially_abstract_typeconsts =
330 default.tco_disable_partially_abstract_typeconsts)
331 ?(error_codes_treated_strictly = default.error_codes_treated_strictly)
332 ?(tco_check_xhp_attribute = default.tco_check_xhp_attribute)
333 ?(tco_check_redundant_generics = default.tco_check_redundant_generics)
334 ?(tco_disallow_unresolved_type_variables =
335 default.tco_disallow_unresolved_type_variables)
336 ?(tco_disallow_invalid_arraykey_constraint =
337 default.tco_disallow_invalid_arraykey_constraint)
338 ?(po_enable_class_level_where_clauses =
339 default.po_enable_class_level_where_clauses)
340 ?(po_disable_legacy_soft_typehints =
341 default.po_disable_legacy_soft_typehints)
342 ?(po_disallowed_decl_fixmes = default.po_disallowed_decl_fixmes)
343 ?(po_allow_new_attribute_syntax = default.po_allow_new_attribute_syntax)
344 ?(tco_global_inference = default.tco_global_inference)
345 ?(tco_gi_reinfer_types = default.tco_gi_reinfer_types)
346 ?(tco_ordered_solving = default.tco_ordered_solving)
347 ?(tco_const_static_props = default.tco_const_static_props)
348 ?(po_disable_legacy_attribute_syntax =
349 default.po_disable_legacy_attribute_syntax)
350 ?(tco_const_attribute = default.tco_const_attribute)
351 ?(po_const_default_func_args = default.po_const_default_func_args)
352 ?(po_const_default_lambda_args = default.po_const_default_lambda_args)
353 ?(po_disallow_silence = default.po_disallow_silence)
354 ?(po_abstract_static_props = default.po_abstract_static_props)
355 ?(po_disable_unset_class_const = default.po_disable_unset_class_const)
356 ?(po_parser_errors_only = default.po_parser_errors_only)
357 ?(tco_check_attribute_locations = default.tco_check_attribute_locations)
358 ?(glean_service = default.glean_service)
359 ?(glean_hostname = default.glean_hostname)
360 ?(glean_port = default.glean_port)
361 ?(glean_reponame = default.glean_reponame)
362 ?(symbol_write_root_path = default.symbol_write_root_path)
363 ?(symbol_write_hhi_path = default.symbol_write_hhi_path)
364 ?(po_disallow_func_ptrs_in_constants =
365 default.po_disallow_func_ptrs_in_constants)
366 ?(tco_error_php_lambdas = default.tco_error_php_lambdas)
367 ?(tco_disallow_discarded_nullable_awaitables =
368 default.tco_disallow_discarded_nullable_awaitables)
369 ?(po_enable_xhp_class_modifier = default.po_enable_xhp_class_modifier)
370 ?(po_disable_xhp_element_mangling = default.po_disable_xhp_element_mangling)
371 ?(po_disable_xhp_children_declarations =
372 default.po_disable_xhp_children_declarations)
373 ?(po_enable_first_class_function_pointers =
374 default.po_enable_first_class_function_pointers)
375 ?(po_disable_modes = default.po_disable_modes)
376 ?(po_disable_array = default.po_disable_array)
377 ?(tco_enable_systemlib_annotations =
378 default.tco_enable_systemlib_annotations)
379 ?(tco_pu_enabled_paths = default.tco_pu_enabled_paths)
380 () =
382 tco_experimental_features;
383 tco_migration_flags;
384 tco_dynamic_view;
385 tco_num_local_workers;
386 tco_parallel_type_checking_threshold;
387 tco_defer_class_declaration_threshold;
388 tco_max_times_to_defer_type_checking;
389 tco_prefetch_deferred_files;
390 tco_remote_type_check_threshold;
391 tco_remote_type_check;
392 tco_remote_worker_key;
393 tco_remote_check_id;
394 tco_remote_max_batch_size;
395 tco_remote_min_batch_size;
396 tco_num_remote_workers;
397 so_remote_version_specifier;
398 so_remote_worker_vfs_checkout_threshold;
399 so_naming_sqlite_path;
400 po_auto_namespace_map;
401 po_codegen = false;
402 ignored_fixme_codes;
403 po_deregister_php_stdlib;
404 po_disallow_execution_operator;
405 po_disallow_toplevel_requires;
406 po_disable_nontoplevel_declarations;
407 po_disable_static_closures;
408 po_allow_goto;
409 tco_log_inference_constraints;
410 tco_disallow_array_typehint;
411 tco_disallow_array_literal;
412 tco_language_feature_logging;
413 tco_unsafe_rx;
414 tco_disallow_scrutinee_case_value_type_mismatch;
415 tco_timeout;
416 tco_disallow_invalid_arraykey;
417 tco_disallow_byref_dynamic_calls;
418 tco_disallow_byref_calls;
419 log_levels;
420 po_disable_lval_as_an_expression;
421 tco_shallow_class_decl;
422 po_rust_parser_errors;
423 profile_type_check_duration_threshold;
424 profile_type_check_twice;
425 profile_owner;
426 profile_desc;
427 tco_like_type_hints;
428 tco_union_intersection_type_hints;
429 tco_like_casts;
430 tco_simple_pessimize;
431 tco_complex_coercion;
432 tco_disable_partially_abstract_typeconsts;
433 error_codes_treated_strictly;
434 tco_check_xhp_attribute;
435 tco_check_redundant_generics;
436 tco_disallow_unresolved_type_variables;
437 tco_disallow_invalid_arraykey_constraint;
438 po_enable_class_level_where_clauses;
439 po_disable_legacy_soft_typehints;
440 po_disallowed_decl_fixmes;
441 po_allow_new_attribute_syntax;
442 tco_global_inference;
443 tco_gi_reinfer_types;
444 tco_ordered_solving;
445 tco_const_static_props;
446 po_disable_legacy_attribute_syntax;
447 tco_const_attribute;
448 po_const_default_func_args;
449 po_const_default_lambda_args;
450 po_disallow_silence;
451 po_abstract_static_props;
452 po_disable_unset_class_const;
453 po_parser_errors_only;
454 tco_check_attribute_locations;
455 glean_service;
456 glean_hostname;
457 glean_port;
458 glean_reponame;
459 symbol_write_root_path;
460 symbol_write_hhi_path;
461 po_disallow_func_ptrs_in_constants;
462 tco_error_php_lambdas;
463 tco_disallow_discarded_nullable_awaitables;
464 po_enable_xhp_class_modifier;
465 po_disable_xhp_element_mangling;
466 po_disable_xhp_children_declarations;
467 po_enable_first_class_function_pointers;
468 po_disable_modes;
469 po_disable_array;
470 tco_enable_systemlib_annotations;
471 tco_pu_enabled_paths;
474 let tco_experimental_feature_enabled t s =
475 SSet.mem s t.tco_experimental_features
477 let tco_migration_flag_enabled t s = SSet.mem s t.tco_migration_flags
479 let tco_dynamic_view t = t.tco_dynamic_view
481 let tco_num_local_workers t = t.tco_num_local_workers
483 let tco_parallel_type_checking_threshold t =
484 t.tco_parallel_type_checking_threshold
486 let tco_defer_class_declaration_threshold t =
487 t.tco_defer_class_declaration_threshold
489 let tco_max_times_to_defer_type_checking t =
490 t.tco_max_times_to_defer_type_checking
492 let tco_prefetch_deferred_files t = t.tco_prefetch_deferred_files
494 let tco_remote_type_check_threshold t = t.tco_remote_type_check_threshold
496 let tco_remote_type_check t = t.tco_remote_type_check
498 let tco_remote_worker_key t = t.tco_remote_worker_key
500 let tco_remote_check_id t = t.tco_remote_check_id
502 let tco_remote_max_batch_size t = t.tco_remote_max_batch_size
504 let tco_remote_min_batch_size t = t.tco_remote_min_batch_size
506 let tco_num_remote_workers t = t.tco_num_remote_workers
508 let so_remote_version_specifier t = t.so_remote_version_specifier
510 let so_remote_worker_vfs_checkout_threshold t =
511 t.so_remote_worker_vfs_checkout_threshold
513 let so_naming_sqlite_path t = t.so_naming_sqlite_path
515 let po_auto_namespace_map t = t.po_auto_namespace_map
517 let po_deregister_php_stdlib t = t.po_deregister_php_stdlib
519 let po_disable_nontoplevel_declarations t =
520 t.po_disable_nontoplevel_declarations
522 let po_disable_static_closures t = t.po_disable_static_closures
524 let po_allow_goto t = t.po_allow_goto
526 let tco_log_inference_constraints t = t.tco_log_inference_constraints
528 let po_codegen t = t.po_codegen
530 let po_disallow_execution_operator t = t.po_disallow_execution_operator
532 let po_disallow_toplevel_requires t = t.po_disallow_toplevel_requires
534 let tco_disallow_array_typehint t = t.tco_disallow_array_typehint
536 let tco_disallow_array_literal t = t.tco_disallow_array_literal
538 let tco_language_feature_logging t = t.tco_language_feature_logging
540 let tco_unsafe_rx t = t.tco_unsafe_rx
542 let tco_disallow_scrutinee_case_value_type_mismatch t =
543 t.tco_disallow_scrutinee_case_value_type_mismatch
545 let tco_timeout t = t.tco_timeout
547 let tco_disallow_invalid_arraykey t = t.tco_disallow_invalid_arraykey
549 let tco_disallow_invalid_arraykey_constraint t =
550 t.tco_disallow_invalid_arraykey_constraint
552 let tco_disallow_byref_dynamic_calls t = t.tco_disallow_byref_dynamic_calls
554 let tco_disallow_byref_calls t = t.tco_disallow_byref_calls
556 let ignored_fixme_codes t = t.ignored_fixme_codes
558 let log_levels t = t.log_levels
560 let po_disable_lval_as_an_expression t = t.po_disable_lval_as_an_expression
562 let tco_shallow_class_decl t = t.tco_shallow_class_decl
564 let po_rust_parser_errors t = t.po_rust_parser_errors
566 let profile_type_check_duration_threshold t =
567 t.profile_type_check_duration_threshold
569 let profile_type_check_twice t = t.profile_type_check_twice
571 let profile_owner t = t.profile_owner
573 let profile_desc t = t.profile_desc
575 let tco_like_type_hints t = t.tco_like_type_hints
577 let tco_union_intersection_type_hints t = t.tco_union_intersection_type_hints
579 let tco_like_casts t = t.tco_like_casts
581 let tco_simple_pessimize t = t.tco_simple_pessimize
583 let tco_complex_coercion t = t.tco_complex_coercion
585 let tco_disable_partially_abstract_typeconsts t =
586 t.tco_disable_partially_abstract_typeconsts
588 let error_codes_treated_strictly t = t.error_codes_treated_strictly
590 let tco_check_xhp_attribute t = t.tco_check_xhp_attribute
592 let tco_check_redundant_generics t = t.tco_check_redundant_generics
594 let tco_disallow_unresolved_type_variables t =
595 t.tco_disallow_unresolved_type_variables
597 let po_enable_class_level_where_clauses t =
598 t.po_enable_class_level_where_clauses
600 let po_disable_legacy_soft_typehints t = t.po_disable_legacy_soft_typehints
602 let po_disallowed_decl_fixmes t = t.po_disallowed_decl_fixmes
604 let po_allow_new_attribute_syntax t = t.po_allow_new_attribute_syntax
606 let tco_global_inference t = t.tco_global_inference
608 let tco_gi_reinfer_types t = t.tco_gi_reinfer_types
610 let tco_ordered_solving t = t.tco_ordered_solving
612 let tco_const_static_props t = t.tco_const_static_props
614 let po_disable_legacy_attribute_syntax t = t.po_disable_legacy_attribute_syntax
616 let tco_const_attribute t = t.tco_const_attribute
618 let po_const_default_func_args t = t.po_const_default_func_args
620 let po_const_default_lambda_args t = t.po_const_default_lambda_args
622 let po_disallow_silence t = t.po_disallow_silence
624 let po_abstract_static_props t = t.po_abstract_static_props
626 let po_disable_unset_class_const t = t.po_disable_unset_class_const
628 let tco_check_attribute_locations t = t.tco_check_attribute_locations
630 let glean_service t = t.glean_service
632 let glean_hostname t = t.glean_hostname
634 let glean_port t = t.glean_port
636 let glean_reponame t = t.glean_reponame
638 let symbol_write_root_path t = t.symbol_write_root_path
640 let symbol_write_hhi_path t = t.symbol_write_hhi_path
642 let set_global_inference t = { t with tco_global_inference = true }
644 let set_ordered_solving t b = { t with tco_ordered_solving = b }
646 let po_parser_errors_only t = t.po_parser_errors_only
648 let po_disallow_func_ptrs_in_constants t = t.po_disallow_func_ptrs_in_constants
650 let tco_error_php_lambdas t = t.tco_error_php_lambdas
652 let tco_disallow_discarded_nullable_awaitables t =
653 t.tco_disallow_discarded_nullable_awaitables
655 let po_enable_xhp_class_modifier t = t.po_enable_xhp_class_modifier
657 let po_disable_xhp_element_mangling t = t.po_disable_xhp_element_mangling
659 let po_disable_xhp_children_declarations t =
660 t.po_disable_xhp_children_declarations
662 let po_enable_first_class_function_pointers t =
663 t.po_enable_first_class_function_pointers
665 let po_disable_modes t = t.po_disable_modes
667 let po_disable_array t = t.po_disable_array
669 let tco_enable_systemlib_annotations t = t.tco_enable_systemlib_annotations
671 let tco_pu_enabled_paths t = t.tco_pu_enabled_paths