Rip out legacy reactivity from the typechecker and HackC
[hiphop-php.git] / hphp / hack / src / options / globalOptions.mli
blob73b74a0d18d1051685b990cc9cde7709c6c3ac74
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 (* Naming conventions in this file:
11 - tco_<feature/flag/setting> - type checker option
12 - po_<feature/flag/setting> - parser option
13 - so_<feature/flag/setting> - server option
16 type t = {
17 (* Set of experimental features, in lowercase. *)
18 tco_experimental_features: SSet.t;
19 (* Set of opt-in migration behavior flags, in lowercase. *)
20 tco_migration_flags: SSet.t;
21 (* Whether to treat Tany as Tdynamic *)
22 tco_dynamic_view: bool;
23 (* If set to 0, only the type check delegate's logic will be used.
24 If the delegate fails to type check, the typing check service as a whole
25 will fail. *)
26 tco_num_local_workers: int option;
27 (* If the number of files to type check is fewer than this value, the files
28 will be type checked sequentially (in the master process). Otherwise,
29 the files will be type checked in parallel (in MultiWorker workers). *)
30 tco_parallel_type_checking_threshold: int;
31 (* If set, typechecker workers will quit after they exceed this limit *)
32 tco_max_typechecker_worker_memory_mb: int option;
33 (* If set, defers class declarations after N lazy declarations; if not set,
34 always lazily declares classes not already in cache. *)
35 tco_defer_class_declaration_threshold: int option;
36 (* If set, defers class declarations if worker memory exceeds threshold.
37 This prevents OOMs due to a single file fetching a lot of decls, which would
38 not be prevented by [tco_max_typechecker_worker_memory_mb] which is checked
39 only after each file. It doesn't make sense to set this higher
40 than [tco_max_typechecker_worker_memory_mb]. *)
41 tco_defer_class_memory_mb_threshold: int option;
42 (* If set, prevents type checking of files from being deferred more than
43 the number of times greater than or equal to the threshold. If not set,
44 defers class declarations indefinitely. *)
45 tco_max_times_to_defer_type_checking: int option;
46 (* Whether the Eden prefetch hook should be invoked *)
47 tco_prefetch_deferred_files: bool;
48 (* If set, distributes type checking to remote workers if the number of files to
49 type check exceeds the threshold. If not set, then always checks everything locally. *)
50 tco_remote_type_check_threshold: int option;
51 (* Turns on remote type checking *)
52 tco_remote_type_check: bool;
53 (* If set, uses the key to fetch type checking jobs *)
54 tco_remote_worker_key: string option;
55 (* If set, uses the check ID when logging events in the context of remove init/work *)
56 tco_remote_check_id: string option;
57 (* The max batch size that a remote worker can receive to type check *)
58 tco_remote_max_batch_size: int;
59 (* The min batch size that a remote worker can receive to type check *)
60 tco_remote_min_batch_size: int;
61 (* Dictates the number of remote type checking workers *)
62 tco_num_remote_workers: int;
63 (* The version specifier that is used to identify the remote worker package version to install *)
64 so_remote_version_specifier: string option;
65 (* Above this threshold of files to check, the remote type checking worker will not use Eden *)
66 so_remote_worker_vfs_checkout_threshold: int;
67 (* Enables the reverse naming table to fall back to SQLite for queries. *)
68 so_naming_sqlite_path: string option;
69 (* Namespace aliasing map *)
70 po_auto_namespace_map: (string * string) list;
71 (* Are we emitting bytecode? *)
72 po_codegen: bool;
73 (* Flag for disabling functions in HHI files with the __PHPStdLib attribute *)
74 po_deregister_php_stdlib: bool;
75 (* Flag to disallow `require`, `require_once` etc as toplevel statements *)
76 po_disallow_toplevel_requires: bool;
77 (* Flag to disable PHP's non-top-level declarations *)
78 po_disable_nontoplevel_declarations: bool;
79 (* Flag to disable PHP's static closures *)
80 po_disable_static_closures: bool;
81 (* Allows enabling unstable features via the __EnableUnstableFeatures attribute *)
82 po_allow_unstable_features: bool;
83 (* Print types of size bigger than 1000 after performing a type union. *)
84 tco_log_inference_constraints: bool;
86 * Flag to disallow array typehints
88 tco_disallow_array_typehint: bool;
90 * Flag to disallow array literal expressions
92 tco_disallow_array_literal: bool;
94 * Flag to enable logging of statistics regarding use of language features.
95 * Currently used for lambdas.
97 tco_language_feature_logging: bool;
99 * When enabled, mismatches between the types of the scrutinee and case value
100 * of a switch expression are reported as type errors.
102 tco_disallow_scrutinee_case_value_type_mismatch: bool;
104 * If non-zero, give up type checking a class or function after this many seconds
106 tco_timeout: int;
108 * Flag to disallow using values that get casted to array keys at runtime;
109 * like bools, floats, or null; as array keys.
111 tco_disallow_invalid_arraykey: bool;
113 * Produces an error if an arguments is passed by reference to dynamically
114 * called function [e.g. $foo(&$bar)].
116 tco_disallow_byref_dynamic_calls: bool;
118 * Produces an error if an arguments is passed by reference in any form
119 * [e.g. foo(&$bar)].
121 tco_disallow_byref_calls: bool;
122 (* Error codes for which we allow HH_FIXMEs in strict mode *)
123 allowed_fixme_codes_strict: ISet.t;
124 allowed_fixme_codes_partial: ISet.t;
125 codes_not_raised_partial: ISet.t;
126 (* Initial hh_log_level settings *)
127 log_levels: int SMap.t;
128 (* Flag to disable using lvals as expressions. *)
129 po_disable_lval_as_an_expression: bool;
130 (* Flag to ignore the string in vec<string>[...] *)
131 (* Look up class members lazily from shallow declarations instead of eagerly
132 computing folded declarations representing the entire class type. *)
133 tco_shallow_class_decl: bool;
134 (* Use Rust parser errors *)
135 po_rust_parser_errors: bool;
136 (* Enables like type hints *)
137 tco_like_type_hints: bool;
138 (* Enables union and intersection type hints *)
139 tco_union_intersection_type_hints: bool;
140 (* Enables checking of coeffects *)
141 tco_coeffects: bool;
142 (* Enables checking of coeffects for local operations (not calls) *)
143 tco_coeffects_local: bool;
144 (* Internal (for tests-only): whether any type can appear in a context list
145 * or only types defined in the appropriate Context namespace *)
146 tco_strict_contexts: bool;
147 (* Enables like casts *)
148 tco_like_casts: bool;
149 (* A simpler form of pessimization, only wraps the outermost type in like
150 * if the type is not enforceable *)
151 tco_simple_pessimize: float;
152 (* Enables complex coercion interactions that involve like types *)
153 tco_complex_coercion: bool;
154 (* Treat partially abstract typeconsts like concrete typeconsts, disable overriding type *)
155 tco_disable_partially_abstract_typeconsts: bool;
156 (* Set of codes to be treated as if they were in strict mode files *)
157 error_codes_treated_strictly: ISet.t;
158 (* static check xhp required attribute *)
159 tco_check_xhp_attribute: bool;
160 (* Check redundant generics in return types *)
161 tco_check_redundant_generics: bool;
163 * Flag to produce an error whenever the TAST contains unresolved type variables
165 tco_disallow_unresolved_type_variables: bool;
166 (* Ban use of traits that are already used in parent classes. *)
167 tco_disallow_trait_reuse: bool;
168 (* Disallow using non-string, non-int types as array key type constraints. *)
169 tco_disallow_invalid_arraykey_constraint: bool;
170 (* Enable class-level where clauses, i.e.
171 class base<T> where T = int {} *)
172 po_enable_class_level_where_clauses: bool;
173 (* Disable legacy soft typehint syntax (@int) and only allow the __Soft attribute. *)
174 po_disable_legacy_soft_typehints: bool;
175 (* Set of error codes disallowed in decl positions *)
176 po_allowed_decl_fixme_codes: ISet.t;
177 (* Enable @ attribute syntax *)
178 po_allow_new_attribute_syntax: bool;
179 (* Perform global inference globally on the code base to infer missing type annotations. *)
180 tco_global_inference: bool;
181 tco_gi_reinfer_types: string list;
182 (** Types we want to remove and replace by infered types during global inference. *)
183 tco_ordered_solving: bool;
184 (** Whether to solve typing inference constraints using ordered solving or transitive closure. *)
185 (* Enable const static properties *)
186 tco_const_static_props: bool;
187 (* Disable <<...>> attribute syntax *)
188 po_disable_legacy_attribute_syntax: bool;
189 (* Allow <<__Const>> attribute *)
190 tco_const_attribute: bool;
191 (* Statically check default function arguments *)
192 po_const_default_func_args: bool;
193 (* Statically check default lambda arguments. Subset of default_func_args *)
194 po_const_default_lambda_args: bool;
195 (* Flag to disable the error suppression operator *)
196 po_disallow_silence: bool;
197 (* Static properties can be abstract *)
198 po_abstract_static_props: bool;
199 (* Make unsetting a class constant a parse error *)
200 po_disable_unset_class_const: bool;
201 (* Ignore all errors except those that can influence the shape of syntax tree
202 * (skipping post parse error checks) *)
203 po_parser_errors_only: bool;
204 tco_check_attribute_locations: bool;
205 (* Service name for glean connection; default "" to autoselect server *)
206 glean_service: string;
207 (* Hostname for glean connection; default "" to autoselect server *)
208 glean_hostname: string;
209 (* Port number for glean connection; default 0 to autoselect server *)
210 glean_port: int;
211 (* Reponame used for glean connection, default to "www.autocomplete" *)
212 glean_reponame: string;
213 (* Path prefix to use for files relative to the repository root when writing symbol info to JSON *)
214 symbol_write_root_path: string;
215 (* Path prefix to use for hhi files when writing symbol info to JSON *)
216 symbol_write_hhi_path: string;
217 (* Filepaths to ignore when writing symbol info to JSON, relative to path prefix, eg: root|foo.php *)
218 symbol_write_ignore_paths: string list;
219 (* When set, write indexing data for these filepaths only. Relative to repository root, eg: bar.php for root|bar.php *)
220 symbol_write_index_paths: string list;
221 (* Write symbol indexing data for hhi files *)
222 symbol_write_include_hhi: bool;
223 (* Flag to disallow HH\fun and HH\class_meth in constants and constant initializers *)
224 po_disallow_func_ptrs_in_constants: bool;
225 (* Flag to report an error on php style anonymous functions *)
226 tco_error_php_lambdas: bool;
227 (* Flag to error on using discarded nullable awaitables *)
228 tco_disallow_discarded_nullable_awaitables: bool;
229 (* Enable the new style xhp class.
230 * Old style: class :name {}
231 * New style: xhp class name {}
233 po_enable_xhp_class_modifier: bool;
235 * Flag to disable the old stype xhp element mangling. `<something/>` would otherwise be resolved as `xhp_something`
236 * The new style `xhp class something {}` does not do this style of mangling, thus we need a way to disable it on the
237 * 'lookup side'.
239 po_disable_xhp_element_mangling: bool;
240 (* Disable `children (foo|bar+|pcdata)` declarations as they can be implemented without special syntax *)
241 po_disable_xhp_children_declarations: bool;
242 (* Enable enum class syntax *)
243 po_enable_enum_classes: bool;
244 (* Treats partial files as strict *)
245 po_disable_modes: bool;
246 po_disable_hh_ignore_error: bool;
247 (* Disable array(...) *)
248 po_disable_array: bool;
249 po_disable_array_typehint: bool;
250 (* Enable features used to typecheck systemlib *)
251 tco_enable_systemlib_annotations: bool;
252 (* Controls if higher-kinded types are supported *)
253 tco_higher_kinded_types: bool;
254 (* Controls if method-call inference is supported *)
255 tco_method_call_inference: bool;
256 (* If set, then positions derived from reason information are tainted, and primary errors
257 * with such positions are flagged
259 tco_report_pos_from_reason: bool;
260 (* Type check this proportion of all files. Default is 1.0.
261 * DO NOT set to any other value except for testing purposes.
263 tco_typecheck_sample_rate: float;
264 (* Experimental implementation of a "sound" dynamic type *)
265 tco_enable_sound_dynamic: bool;
266 (* Disallow #-style comments, except hashbangs(#!) *)
267 po_disallow_hash_comments: bool;
268 (* Disable parsing of fun() and class_meth() *)
269 po_disallow_fun_and_cls_meth_pseudo_funcs: bool;
270 (* Disable parsing of inst_meth() *)
271 po_disallow_inst_meth: bool;
272 (* Enable use of the direct decl parser for parsing type signatures. *)
273 tco_use_direct_decl_parser: bool;
274 (* Enable ifc on the specified list of path prefixes
275 (a list containing the empty string would denote all files,
276 an empty list denotes no files) *)
277 tco_ifc_enabled: string list;
278 (* Enables the enum supertyping extension *)
279 po_enable_enum_supertyping: bool;
280 (* Treat varray as vec, dict as dict, TODO varray_or_darray as vec_or_dict *)
281 po_array_unification: bool;
282 (* <<__Soft>> T -> ~T *)
283 po_interpret_soft_types_as_like_types: bool;
284 (* Restricts string concatenation and interpolation to arraykeys *)
285 tco_enable_strict_string_concat_interp: bool;
286 (* Ignores unsafe_cast and retains the original type of the expression *)
287 tco_ignore_unsafe_cast: bool;
288 (* Enable Unstable feature readonly tast check *)
289 tco_readonly: bool;
291 [@@deriving eq, show]
293 val make :
294 ?po_deregister_php_stdlib:bool ->
295 ?po_disallow_toplevel_requires:bool ->
296 ?po_disable_nontoplevel_declarations:bool ->
297 ?po_disable_static_closures:bool ->
298 ?tco_log_inference_constraints:bool ->
299 ?tco_experimental_features:SSet.t ->
300 ?tco_migration_flags:SSet.t ->
301 ?tco_dynamic_view:bool ->
302 ?tco_num_local_workers:int ->
303 ?tco_parallel_type_checking_threshold:int ->
304 ?tco_max_typechecker_worker_memory_mb:int ->
305 ?tco_defer_class_declaration_threshold:int ->
306 ?tco_defer_class_memory_mb_threshold:int ->
307 ?tco_max_times_to_defer_type_checking:int ->
308 ?tco_prefetch_deferred_files:bool ->
309 ?tco_remote_type_check_threshold:int ->
310 ?tco_remote_type_check:bool ->
311 ?tco_remote_worker_key:string ->
312 ?tco_remote_check_id:string ->
313 ?tco_remote_max_batch_size:int ->
314 ?tco_remote_min_batch_size:int ->
315 ?tco_num_remote_workers:int ->
316 ?so_remote_version_specifier:string ->
317 ?so_remote_worker_vfs_checkout_threshold:int ->
318 ?so_naming_sqlite_path:string ->
319 ?po_auto_namespace_map:(string * string) list ->
320 ?tco_disallow_array_typehint:bool ->
321 ?tco_disallow_array_literal:bool ->
322 ?tco_language_feature_logging:bool ->
323 ?tco_disallow_scrutinee_case_value_type_mismatch:bool ->
324 ?tco_timeout:int ->
325 ?tco_disallow_invalid_arraykey:bool ->
326 ?tco_disallow_byref_dynamic_calls:bool ->
327 ?tco_disallow_byref_calls:bool ->
328 ?allowed_fixme_codes_strict:ISet.t ->
329 ?allowed_fixme_codes_partial:ISet.t ->
330 ?codes_not_raised_partial:ISet.t ->
331 ?log_levels:int SMap.t ->
332 ?po_disable_lval_as_an_expression:bool ->
333 ?tco_shallow_class_decl:bool ->
334 ?po_rust_parser_errors:bool ->
335 ?tco_like_type_hints:bool ->
336 ?tco_union_intersection_type_hints:bool ->
337 ?tco_coeffects:bool ->
338 ?tco_coeffects_local:bool ->
339 ?tco_strict_contexts:bool ->
340 ?tco_like_casts:bool ->
341 ?tco_simple_pessimize:float ->
342 ?tco_complex_coercion:bool ->
343 ?tco_disable_partially_abstract_typeconsts:bool ->
344 ?error_codes_treated_strictly:ISet.t ->
345 ?tco_check_xhp_attribute:bool ->
346 ?tco_check_redundant_generics:bool ->
347 ?tco_disallow_unresolved_type_variables:bool ->
348 ?tco_disallow_trait_reuse:bool ->
349 ?tco_disallow_invalid_arraykey_constraint:bool ->
350 ?po_enable_class_level_where_clauses:bool ->
351 ?po_disable_legacy_soft_typehints:bool ->
352 ?po_allowed_decl_fixme_codes:ISet.t ->
353 ?po_allow_new_attribute_syntax:bool ->
354 ?tco_global_inference:bool ->
355 ?tco_gi_reinfer_types:string list ->
356 ?tco_ordered_solving:bool ->
357 ?tco_const_static_props:bool ->
358 ?po_disable_legacy_attribute_syntax:bool ->
359 ?tco_const_attribute:bool ->
360 ?po_const_default_func_args:bool ->
361 ?po_const_default_lambda_args:bool ->
362 ?po_disallow_silence:bool ->
363 ?po_abstract_static_props:bool ->
364 ?po_disable_unset_class_const:bool ->
365 ?po_parser_errors_only:bool ->
366 ?tco_check_attribute_locations:bool ->
367 ?glean_service:string ->
368 ?glean_hostname:string ->
369 ?glean_port:int ->
370 ?glean_reponame:string ->
371 ?symbol_write_root_path:string ->
372 ?symbol_write_hhi_path:string ->
373 ?symbol_write_ignore_paths:string list ->
374 ?symbol_write_index_paths:string list ->
375 ?symbol_write_include_hhi:bool ->
376 ?po_disallow_func_ptrs_in_constants:bool ->
377 ?tco_error_php_lambdas:bool ->
378 ?tco_disallow_discarded_nullable_awaitables:bool ->
379 ?po_enable_xhp_class_modifier:bool ->
380 ?po_disable_xhp_element_mangling:bool ->
381 ?po_disable_xhp_children_declarations:bool ->
382 ?po_enable_enum_classes:bool ->
383 ?po_disable_modes:bool ->
384 ?po_disable_hh_ignore_error:bool ->
385 ?po_disable_array:bool ->
386 ?po_disable_array_typehint:bool ->
387 ?po_allow_unstable_features:bool ->
388 ?tco_enable_systemlib_annotations:bool ->
389 ?tco_higher_kinded_types:bool ->
390 ?tco_method_call_inference:bool ->
391 ?tco_report_pos_from_reason:bool ->
392 ?tco_typecheck_sample_rate:float ->
393 ?tco_enable_sound_dynamic:bool ->
394 ?po_disallow_hash_comments:bool ->
395 ?po_disallow_fun_and_cls_meth_pseudo_funcs:bool ->
396 ?po_disallow_inst_meth:bool ->
397 ?tco_use_direct_decl_parser:bool ->
398 ?tco_ifc_enabled:string list ->
399 ?po_enable_enum_supertyping:bool ->
400 ?po_array_unification:bool ->
401 ?po_interpret_soft_types_as_like_types:bool ->
402 ?tco_enable_strict_string_concat_interp:bool ->
403 ?tco_ignore_unsafe_cast:bool ->
404 ?tco_readonly:bool ->
405 unit ->
408 val tco_experimental_feature_enabled : t -> SSet.elt -> bool
410 val tco_migration_flag_enabled : t -> SSet.elt -> bool
412 val tco_dynamic_view : t -> bool
414 val tco_num_local_workers : t -> int option
416 val tco_parallel_type_checking_threshold : t -> int
418 val tco_max_typechecker_worker_memory_mb : t -> int option
420 val tco_defer_class_declaration_threshold : t -> int option
422 val tco_defer_class_memory_mb_threshold : t -> int option
424 val tco_max_times_to_defer_type_checking : t -> int option
426 val tco_prefetch_deferred_files : t -> bool
428 val tco_remote_type_check_threshold : t -> int option
430 val tco_remote_type_check : t -> bool
432 val tco_remote_worker_key : t -> string option
434 val tco_remote_check_id : t -> string option
436 val tco_remote_max_batch_size : t -> int
438 val tco_remote_min_batch_size : t -> int
440 val tco_num_remote_workers : t -> int
442 val so_remote_version_specifier : t -> string option
444 val so_remote_worker_vfs_checkout_threshold : t -> int
446 val so_naming_sqlite_path : t -> string option
448 val po_auto_namespace_map : t -> (string * string) list
450 val po_deregister_php_stdlib : t -> bool
452 val po_disallow_toplevel_requires : t -> bool
454 val po_disable_nontoplevel_declarations : t -> bool
456 val po_disable_static_closures : t -> bool
458 val po_codegen : t -> bool
460 val tco_log_inference_constraints : t -> bool
462 val tco_disallow_array_typehint : t -> bool
464 val tco_disallow_array_literal : t -> bool
466 val tco_language_feature_logging : t -> bool
468 val tco_disallow_scrutinee_case_value_type_mismatch : t -> bool
470 val tco_timeout : t -> int
472 val tco_disallow_invalid_arraykey : t -> bool
474 val tco_disallow_byref_dynamic_calls : t -> bool
476 val tco_disallow_byref_calls : t -> bool
478 val default : t
480 val tco_experimental_isarray : string
482 val tco_experimental_generics_arity : string
484 val tco_experimental_forbid_nullable_cast : string
486 val tco_experimental_disallow_static_memoized : string
488 val tco_experimental_type_param_shadowing : string
490 val tco_experimental_abstract_type_const_with_default : string
492 val tco_experimental_infer_flows : string
494 val tco_experimental_case_sensitive_inheritance : string
496 val tco_experimental_all : SSet.t
498 val tco_migration_flags_all : SSet.t
500 val allowed_fixme_codes_strict : t -> ISet.t
502 val allowed_fixme_codes_partial : t -> ISet.t
504 val codes_not_raised_partial : t -> ISet.t
506 val log_levels : t -> int SMap.t
508 val po_disable_lval_as_an_expression : t -> bool
510 val tco_shallow_class_decl : t -> bool
512 val po_rust_parser_errors : t -> bool
514 val tco_like_type_hints : t -> bool
516 val tco_union_intersection_type_hints : t -> bool
518 val tco_call_coeffects : t -> bool
520 val tco_local_coeffects : t -> bool
522 val tco_strict_contexts : t -> bool
524 val ifc_enabled : t -> string list
526 val enable_ifc : t -> t
528 val tco_like_casts : t -> bool
530 val tco_simple_pessimize : t -> float
532 val tco_complex_coercion : t -> bool
534 val tco_disable_partially_abstract_typeconsts : t -> bool
536 val error_codes_treated_strictly : t -> ISet.t
538 val tco_check_xhp_attribute : t -> bool
540 val tco_check_redundant_generics : t -> bool
542 val tco_disallow_unresolved_type_variables : t -> bool
544 val tco_disallow_trait_reuse : t -> bool
546 val tco_disallow_invalid_arraykey_constraint : t -> bool
548 val po_enable_class_level_where_clauses : t -> bool
550 val po_disable_legacy_soft_typehints : t -> bool
552 val po_allowed_decl_fixme_codes : t -> ISet.t
554 val po_allow_new_attribute_syntax : t -> bool
556 val tco_global_inference : t -> bool
558 val tco_gi_reinfer_types : t -> string list
560 val tco_ordered_solving : t -> bool
562 val tco_const_static_props : t -> bool
564 val po_disable_legacy_attribute_syntax : t -> bool
566 val tco_const_attribute : t -> bool
568 val po_const_default_func_args : t -> bool
570 val po_const_default_lambda_args : t -> bool
572 val po_disallow_silence : t -> bool
574 val po_abstract_static_props : t -> bool
576 val po_allow_unstable_features : t -> bool
578 val po_disable_unset_class_const : t -> bool
580 val set_global_inference : t -> t
582 val set_ordered_solving : t -> bool -> t
584 val po_parser_errors_only : t -> bool
586 val tco_check_attribute_locations : t -> bool
588 val glean_service : t -> string
590 val glean_hostname : t -> string
592 val glean_port : t -> int
594 val glean_reponame : t -> string
596 val symbol_write_root_path : t -> string
598 val symbol_write_hhi_path : t -> string
600 val symbol_write_ignore_paths : t -> string list
602 val symbol_write_index_paths : t -> string list
604 val symbol_write_include_hhi : t -> bool
606 val po_disallow_func_ptrs_in_constants : t -> bool
608 val tco_error_php_lambdas : t -> bool
610 val tco_disallow_discarded_nullable_awaitables : t -> bool
612 val po_enable_xhp_class_modifier : t -> bool
614 val po_disable_xhp_element_mangling : t -> bool
616 val po_disable_xhp_children_declarations : t -> bool
618 val po_enable_enum_classes : t -> bool
620 val po_disable_modes : t -> bool
622 val po_disable_hh_ignore_error : t -> bool
624 val po_disable_array : t -> bool
626 val po_disable_array_typehint : t -> bool
628 val tco_enable_systemlib_annotations : t -> bool
630 val tco_higher_kinded_types : t -> bool
632 val tco_method_call_inference : t -> bool
634 val tco_report_pos_from_reason : t -> bool
636 val tco_typecheck_sample_rate : t -> float
638 val tco_enable_sound_dynamic : t -> bool
640 val po_disallow_hash_comments : t -> bool
642 val po_disallow_fun_and_cls_meth_pseudo_funcs : t -> bool
644 val po_disallow_inst_meth : t -> bool
646 val tco_use_direct_decl_parser : t -> bool
648 val po_enable_enum_supertyping : t -> bool
650 val po_array_unification : t -> bool
652 val po_interpret_soft_types_as_like_types : t -> bool
654 val tco_enable_strict_string_concat_interp : t -> bool
656 val tco_ignore_unsafe_cast : t -> bool
658 val tco_readonly : t -> bool
660 val set_tco_readonly : t -> bool -> t