From 39dbf907fa86c04b380feae5263e991a6a4e912a Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Thu, 25 Jul 2024 04:19:29 +0900 Subject: [PATCH] cleanup jscomp/test by mostly removing empty test files, outdated, dangling files. --- jscomp/test/a.res | 3 - jscomp/test/arith_parser.mly | 48 - jscomp/test/ast_abstract_test.res | 60 - jscomp/test/async_ideas.js | 2 - jscomp/test/async_ideas.res | 1 - jscomp/test/build.ninja | 25 +- jscomp/test/fail_comp.js | 2 - jscomp/test/fail_comp.res | 1 - jscomp/test/global_mangles.js | 34 +- jscomp/test/global_mangles.res | 14 +- jscomp/test/gpr_1150.res | 84 - jscomp/test/key_word_property_plus_test.js | 14 +- jscomp/test/key_word_property_plus_test.res | 14 +- jscomp/test/lam.md | 16 - jscomp/test/lint.sh | 3 - jscomp/test/loop_suites_test.js | 9 - jscomp/test/loop_suites_test.res | 1 - jscomp/test/map_test.js | 1916 +++++++++++++++++-- jscomp/test/map_test.resi | 1 - jscomp/test/null_list_test.js | 2 - jscomp/test/null_list_test.res | 5 - jscomp/test/option_record_none_test.js | 2 - jscomp/test/option_record_none_test.res | 27 - jscomp/test/record_regression.res | 4 +- jscomp/test/run_test.sh | 3 - jscomp/test/test.js | 2 - jscomp/test/test.res | 36 - jscomp/test/test_for_map2.js | 17 +- jscomp/test/test_for_map2.resi | 1 - jscomp/test/test_format.js | 2 - jscomp/test/test_format.res | 1 - jscomp/test/test_formatter.js | 2 - jscomp/test/test_formatter.res | 1 - jscomp/test/test_internalOO.js | 2 - jscomp/test/test_internalOO.res | 1 - jscomp/test/test_is_js.js | 11 + jscomp/test/test_is_js.resi | 1 - jscomp/test/test_pack.js | 2 - jscomp/test/test_pack.res | 1 - jscomp/test/test_sprintf.js | 2 - jscomp/test/test_sprintf.res | 1 - jscomp/test/test_unsafe_obj_ffi_ppx.res | 4 - jscomp/test/undefine_conditional.js | 14 - jscomp/test/undefine_conditional.res | 5 - jscomp/test/unicode_type_error.js | 2 - jscomp/test/unicode_type_error.res | 5 - jscomp/test/unitest_string.js | 2 - jscomp/test/unitest_string.res | 1 - 48 files changed, 1812 insertions(+), 595 deletions(-) delete mode 100644 jscomp/test/arith_parser.mly delete mode 100644 jscomp/test/async_ideas.js delete mode 100644 jscomp/test/async_ideas.res delete mode 100644 jscomp/test/fail_comp.js delete mode 100644 jscomp/test/fail_comp.res delete mode 100644 jscomp/test/lam.md delete mode 100755 jscomp/test/lint.sh delete mode 100644 jscomp/test/loop_suites_test.js delete mode 100644 jscomp/test/loop_suites_test.res delete mode 100644 jscomp/test/map_test.resi delete mode 100644 jscomp/test/null_list_test.js delete mode 100644 jscomp/test/null_list_test.res delete mode 100644 jscomp/test/option_record_none_test.js delete mode 100644 jscomp/test/option_record_none_test.res delete mode 100755 jscomp/test/run_test.sh delete mode 100644 jscomp/test/test.js delete mode 100644 jscomp/test/test.res delete mode 100644 jscomp/test/test_for_map2.resi delete mode 100644 jscomp/test/test_format.js delete mode 100644 jscomp/test/test_format.res delete mode 100644 jscomp/test/test_formatter.js delete mode 100644 jscomp/test/test_formatter.res delete mode 100644 jscomp/test/test_internalOO.js delete mode 100644 jscomp/test/test_internalOO.res delete mode 100644 jscomp/test/test_is_js.resi delete mode 100644 jscomp/test/test_pack.js delete mode 100644 jscomp/test/test_pack.res delete mode 100644 jscomp/test/test_sprintf.js delete mode 100644 jscomp/test/test_sprintf.res delete mode 100644 jscomp/test/undefine_conditional.js delete mode 100644 jscomp/test/undefine_conditional.res delete mode 100644 jscomp/test/unicode_type_error.js delete mode 100644 jscomp/test/unicode_type_error.res delete mode 100644 jscomp/test/unitest_string.js delete mode 100644 jscomp/test/unitest_string.res diff --git a/jscomp/test/a.res b/jscomp/test/a.res index 61c82e3983..dbfb1567f4 100644 --- a/jscomp/test/a.res +++ b/jscomp/test/a.res @@ -28,6 +28,3 @@ include ( /* let () = v.[0] <- 'a' */ }: {} ) - -/* [%%bs.cast.x: 'a -> 'b ] */ -/* external f : int -> (int -> int) = "%identity" */ diff --git a/jscomp/test/arith_parser.mly b/jscomp/test/arith_parser.mly deleted file mode 100644 index 95b429bab8..0000000000 --- a/jscomp/test/arith_parser.mly +++ /dev/null @@ -1,48 +0,0 @@ -%{ -open Arith_syntax -%} - - -/* Lexemes */ -%token NUMERAL -%token IDENT -%token PLUS -%token MINUS -%token TIMES -%token DIVIDE -%token UMINUS -%token LPAREN -%token RPAREN -%token EOF - -/* Precedence and associativity */ -%left PLUS MINUS -%left TIMES DIVIDE -%nonassoc UMINUS - -/* Top level rule */ -%start toplevel -%type toplevel - -%% - -/* Grammar */ - -toplevel: expression EOF { $1 } -; - -expression: - | NUMERAL { Numeral $1 } - | IDENT { Variable $1 } - | expression PLUS expression { Plus ($1, $3) } - | expression MINUS expression { Minus ($1, $3) } - | expression TIMES expression { Times ($1, $3) } - | expression DIVIDE expression { Divide ($1, $3) } - | MINUS expression %prec UMINUS { Negate $2 } - | LPAREN expression RPAREN { $2 } -; - -%% - - - diff --git a/jscomp/test/ast_abstract_test.res b/jscomp/test/ast_abstract_test.res index d8bda6b807..6f82b0b063 100644 --- a/jscomp/test/ast_abstract_test.res +++ b/jscomp/test/ast_abstract_test.res @@ -33,64 +33,4 @@ let () = { idx(#c) } -/* type a = - | A - | B [@as 3] - | C -[@@deriving {jsConverter = newType}] - -let id x = - eq __LOC__ (aFromJs (aToJs x )) x -let a0 = aToJs A -let a1 = aToJs B */ - -/* let () = - id A ; - id B ; - id C */ - -/* type b = - | D0 - | D1 - | D2 - | D3 -[@@deriving {jsConverter = newType }] - - -let b0 = bToJs D0 -let b1 = bToJs D1 - -let idb v = - eq __LOC__ (bFromJs (bToJs v )) v - -let () = idb D0; idb D1; idb D2 ; idb D3 */ - -/* type c = - | D0 [@as 3] - | D1 - | D2 - | D3 -[@@deriving {jsConverter = {newType }}] - -let c0 = cToJs D0 - -let idc v = eq __LOC__ (cFromJs (cToJs v)) v - -let () = idc D0; idc D1 ; idc D2; idc D3 */ - -/* type h = - | JsMapperEraseType - | B [@@deriving {accessors; jsConverter = newType} ] */ - -/* -type z = - | ZFromJs - | ZToJs - | ZXx (* not overridden *) -[@@deriving { - accessors; - jsConverter -} -] */ - Mt.from_pair_suites(__MODULE__, suites.contents) diff --git a/jscomp/test/async_ideas.js b/jscomp/test/async_ideas.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/async_ideas.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/async_ideas.res b/jscomp/test/async_ideas.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/async_ideas.res +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/build.ninja b/jscomp/test/build.ninja index fb802b91e2..9846f7e322 100644 --- a/jscomp/test/build.ninja +++ b/jscomp/test/build.ninja @@ -63,7 +63,6 @@ o test/as_inline_record_test.cmi test/as_inline_record_test.cmj : cc test/as_inl o test/ast_abstract_test.cmi test/ast_abstract_test.cmj : cc test/ast_abstract_test.res | test/mt.cmj $bsc $stdlib runtime o test/ast_mapper_unused_warning_test.cmi test/ast_mapper_unused_warning_test.cmj : cc test/ast_mapper_unused_warning_test.res | $bsc $stdlib runtime o test/async_await.cmi test/async_await.cmj : cc test/async_await.res | $bsc $stdlib runtime -o test/async_ideas.cmi test/async_ideas.cmj : cc test/async_ideas.res | $bsc $stdlib runtime o test/async_inline.cmi test/async_inline.cmj : cc test/async_inline.res | $bsc $stdlib runtime o test/async_inside_loop.cmi test/async_inside_loop.cmj : cc test/async_inside_loop.res | $bsc $stdlib runtime o test/attr_test.cmi test/attr_test.cmj : cc test/attr_test.res | $bsc $stdlib runtime @@ -189,7 +188,6 @@ o test/extensible_variant_test.cmi test/extensible_variant_test.cmj : cc test/ex o test/external_polyfill_test.cmi test/external_polyfill_test.cmj : cc test/external_polyfill_test.res | test/mt.cmj $bsc $stdlib runtime o test/external_ppx.cmi test/external_ppx.cmj : cc test/external_ppx.res | $bsc $stdlib runtime o test/external_ppx2.cmi test/external_ppx2.cmj : cc test/external_ppx2.res | $bsc $stdlib runtime -o test/fail_comp.cmi test/fail_comp.cmj : cc test/fail_comp.res | $bsc $stdlib runtime o test/ffi_arity_test.cmi test/ffi_arity_test.cmj : cc test/ffi_arity_test.res | test/mt.cmj $bsc $stdlib runtime o test/ffi_array_test.cmi test/ffi_array_test.cmj : cc test/ffi_array_test.res | test/mt.cmj $bsc $stdlib runtime o test/ffi_js_test.cmi test/ffi_js_test.cmj : cc test/ffi_js_test.res | test/mt.cmj $bsc $stdlib runtime @@ -428,10 +426,8 @@ o test/list_stack.cmi test/list_stack.cmj : cc test/list_stack.res | $bsc $stdli o test/list_test.cmi test/list_test.cmj : cc test/list_test.res | test/mt.cmj $bsc $stdlib runtime o test/local_exception_test.cmi test/local_exception_test.cmj : cc test/local_exception_test.res | $bsc $stdlib runtime o test/loop_regression_test.cmi test/loop_regression_test.cmj : cc test/loop_regression_test.res | test/mt.cmj $bsc $stdlib runtime -o test/loop_suites_test.cmi test/loop_suites_test.cmj : cc test/loop_suites_test.res | test/for_loop_test.cmj test/mt.cmj $bsc $stdlib runtime o test/map_find_test.cmi test/map_find_test.cmj : cc test/map_find_test.res | test/mt.cmj $bsc $stdlib runtime -o test/map_test.cmj : cc_cmi test/map_test.res | test/map_test.cmi test/mt.cmj $bsc $stdlib runtime -o test/map_test.cmi : cc test/map_test.resi | $bsc $stdlib runtime +o test/map_test.cmi test/map_test.cmj : cc test/map_test.res | test/mt.cmj $bsc $stdlib runtime o test/mario_game.cmi test/mario_game.cmj : cc test/mario_game.res | $bsc $stdlib runtime o test/marshal.cmi test/marshal.cmj : cc test/marshal.res | $bsc $stdlib runtime o test/meth_annotation.cmi test/meth_annotation.cmj : cc test/meth_annotation.res | $bsc $stdlib runtime @@ -464,7 +460,6 @@ o test/nested_obj_test.cmi test/nested_obj_test.cmj : cc test/nested_obj_test.re o test/nested_pattern_match_test.cmi test/nested_pattern_match_test.cmj : cc test/nested_pattern_match_test.res | $bsc $stdlib runtime o test/noassert.cmi test/noassert.cmj : cc test/noassert.res | $bsc $stdlib runtime o test/node_path_test.cmi test/node_path_test.cmj : cc test/node_path_test.res | $bsc $stdlib runtime -o test/null_list_test.cmi test/null_list_test.cmj : cc test/null_list_test.res | $bsc $stdlib runtime o test/number_lexer.cmi test/number_lexer.cmj : cc test/number_lexer.res | $bsc $stdlib runtime o test/obj_literal_ppx.cmi test/obj_literal_ppx.cmj : cc test/obj_literal_ppx.res | $bsc $stdlib runtime o test/obj_literal_ppx_test.cmi test/obj_literal_ppx_test.cmj : cc test/obj_literal_ppx_test.res | $bsc $stdlib runtime @@ -475,7 +470,6 @@ o test/of_string_test.cmi test/of_string_test.cmj : cc test/of_string_test.res | o test/offset.cmi test/offset.cmj : cc test/offset.res | $bsc $stdlib runtime o test/omit_trailing_undefined_in_external_calls.cmi test/omit_trailing_undefined_in_external_calls.cmj : cc test/omit_trailing_undefined_in_external_calls.res | $bsc $stdlib runtime o test/option_encoding_test.cmi test/option_encoding_test.cmj : cc test/option_encoding_test.res | $bsc $stdlib runtime -o test/option_record_none_test.cmi test/option_record_none_test.cmj : cc test/option_record_none_test.res | $bsc $stdlib runtime o test/option_repr_test.cmi test/option_repr_test.cmj : cc test/option_repr_test.res | test/mt.cmj $bsc $stdlib runtime o test/optional_ffi_test.cmi test/optional_ffi_test.cmj : cc test/optional_ffi_test.res | test/mt.cmj $bsc $stdlib runtime o test/optional_regression_test.cmi test/optional_regression_test.cmj : cc test/optional_regression_test.res | test/mt.cmj $bsc $stdlib runtime @@ -573,7 +567,6 @@ o test/switch_string.cmi test/switch_string.cmj : cc test/switch_string.res | $b o test/tagged_template_test.cmi test/tagged_template_test.cmj : cc test/tagged_template_test.res | test/mt.cmj $bsc $stdlib runtime o test/tailcall_inline_test.cmi test/tailcall_inline_test.cmj : cc test/tailcall_inline_test.res | test/mt.cmj $bsc $stdlib runtime o test/template.cmi test/template.cmj : cc test/template.res | $bsc $stdlib runtime -o test/test.cmi test/test.cmj : cc test/test.res | $bsc $stdlib runtime o test/test2.cmi test/test2.cmj : cc test/test2.res | $bsc $stdlib runtime o test/test_alias.cmi test/test_alias.cmj : cc test/test_alias.res | test/test_global_print.cmj $bsc $stdlib runtime o test/test_ari.cmi test/test_ari.cmj : cc test/test_ari.res | $bsc $stdlib runtime @@ -606,10 +599,7 @@ o test/test_fib.cmi test/test_fib.cmj : cc test/test_fib.res | $bsc $stdlib runt o test/test_filename.cmi test/test_filename.cmj : cc test/test_filename.res | $bsc $stdlib runtime o test/test_for_loop.cmi test/test_for_loop.cmj : cc test/test_for_loop.res | $bsc $stdlib runtime o test/test_for_map.cmi test/test_for_map.cmj : cc test/test_for_map.res | $bsc $stdlib runtime -o test/test_for_map2.cmj : cc_cmi test/test_for_map2.res | test/int_map.cmj test/test_for_map2.cmi $bsc $stdlib runtime -o test/test_for_map2.cmi : cc test/test_for_map2.resi | $bsc $stdlib runtime -o test/test_format.cmi test/test_format.cmj : cc test/test_format.res | $bsc $stdlib runtime -o test/test_formatter.cmi test/test_formatter.cmj : cc test/test_formatter.res | $bsc $stdlib runtime +o test/test_for_map2.cmi test/test_for_map2.cmj : cc test/test_for_map2.res | test/int_map.cmj $bsc $stdlib runtime o test/test_functor_dead_code.cmi test/test_functor_dead_code.cmj : cc test/test_functor_dead_code.res | $bsc $stdlib runtime o test/test_generative_module.cmi test/test_generative_module.cmj : cc test/test_generative_module.res | $bsc $stdlib runtime o test/test_global_print.cmi test/test_global_print.cmj : cc test/test_global_print.res | $bsc $stdlib runtime @@ -618,9 +608,7 @@ o test/test_include.cmi test/test_include.cmj : cc test/test_include.res | test/ o test/test_incomplete.cmi test/test_incomplete.cmj : cc test/test_incomplete.res | $bsc $stdlib runtime o test/test_incr_ref.cmi test/test_incr_ref.cmj : cc test/test_incr_ref.res | $bsc $stdlib runtime o test/test_int_map_find.cmi test/test_int_map_find.cmj : cc test/test_int_map_find.res | $bsc $stdlib runtime -o test/test_internalOO.cmi test/test_internalOO.cmj : cc test/test_internalOO.res | $bsc $stdlib runtime -o test/test_is_js.cmj : cc_cmi test/test_is_js.res | test/mt.cmj test/test_is_js.cmi $bsc $stdlib runtime -o test/test_is_js.cmi : cc test/test_is_js.resi | $bsc $stdlib runtime +o test/test_is_js.cmi test/test_is_js.cmj : cc test/test_is_js.res | test/mt.cmj $bsc $stdlib runtime o test/test_js_ffi.cmi test/test_js_ffi.cmj : cc test/test_js_ffi.res | $bsc $stdlib runtime o test/test_let.cmi test/test_let.cmj : cc test/test_let.res | $bsc $stdlib runtime o test/test_list.cmi test/test_list.cmj : cc test/test_list.res | $bsc $stdlib runtime @@ -637,7 +625,6 @@ o test/test_obj.cmi test/test_obj.cmj : cc test/test_obj.res | $bsc $stdlib runt o test/test_order.cmi test/test_order.cmj : cc test/test_order.res | $bsc $stdlib runtime o test/test_order_tailcall.cmi test/test_order_tailcall.cmj : cc test/test_order_tailcall.res | $bsc $stdlib runtime o test/test_other_exn.cmi test/test_other_exn.cmj : cc test/test_other_exn.res | $bsc $stdlib runtime -o test/test_pack.cmi test/test_pack.cmj : cc test/test_pack.res | $bsc $stdlib runtime o test/test_per.cmi test/test_per.cmj : cc test/test_per.res | $bsc $stdlib runtime o test/test_pervasive.cmi test/test_pervasive.cmj : cc test/test_pervasive.res | $bsc $stdlib runtime o test/test_pervasives2.cmi test/test_pervasives2.cmj : cc test/test_pervasives2.res | $bsc $stdlib runtime @@ -657,7 +644,6 @@ o test/test_simple_pattern_match.cmi test/test_simple_pattern_match.cmj : cc tes o test/test_simple_ref.cmi test/test_simple_ref.cmj : cc test/test_simple_ref.res | $bsc $stdlib runtime o test/test_simple_tailcall.cmi test/test_simple_tailcall.cmj : cc test/test_simple_tailcall.res | $bsc $stdlib runtime o test/test_small.cmi test/test_small.cmj : cc test/test_small.res | $bsc $stdlib runtime -o test/test_sprintf.cmi test/test_sprintf.cmj : cc test/test_sprintf.res | $bsc $stdlib runtime o test/test_stack.cmi test/test_stack.cmj : cc test/test_stack.res | $bsc $stdlib runtime o test/test_static_catch_ident.cmi test/test_static_catch_ident.cmj : cc test/test_static_catch_ident.res | $bsc $stdlib runtime o test/test_string.cmi test/test_string.cmj : cc test/test_string.res | $bsc $stdlib runtime @@ -704,14 +690,11 @@ o test/uncurry_test.cmj : cc_cmi test/uncurry_test.res | test/uncurry_test.cmi $ o test/uncurry_test.cmi : cc test/uncurry_test.resi | $bsc $stdlib runtime o test/undef_regression2_test.cmi test/undef_regression2_test.cmj : cc test/undef_regression2_test.res | test/mt.cmj $bsc $stdlib runtime o test/undef_regression_test.cmi test/undef_regression_test.cmj : cc test/undef_regression_test.res | $bsc $stdlib runtime -o test/undefine_conditional.cmi test/undefine_conditional.cmj : cc test/undefine_conditional.res | $bsc $stdlib runtime -o test/unicode_type_error.cmi test/unicode_type_error.cmj : cc test/unicode_type_error.res | $bsc $stdlib runtime o test/unit_undefined_test.cmi test/unit_undefined_test.cmj : cc test/unit_undefined_test.res | test/mt.cmj $bsc $stdlib runtime -o test/unitest_string.cmi test/unitest_string.cmj : cc test/unitest_string.res | $bsc $stdlib runtime o test/unsafe_full_apply_primitive.cmi test/unsafe_full_apply_primitive.cmj : cc test/unsafe_full_apply_primitive.res | $bsc $stdlib runtime o test/unsafe_ppx_test.cmi test/unsafe_ppx_test.cmj : cc test/unsafe_ppx_test.res | test/ffi_js_test.cmj test/mt.cmj $bsc $stdlib runtime o test/update_record_test.cmi test/update_record_test.cmj : cc test/update_record_test.res | test/mt.cmj $bsc $stdlib runtime o test/variant.cmi test/variant.cmj : cc test/variant.res | $bsc $stdlib runtime o test/variantsMatching.cmi test/variantsMatching.cmj : cc test/variantsMatching.res | $bsc $stdlib runtime o test/webpack_config.cmi test/webpack_config.cmj : cc test/webpack_config.res | $bsc $stdlib runtime -o test : phony test/406_primitive_test.cmi test/406_primitive_test.cmj test/AsInUncurriedExternals.cmi test/AsInUncurriedExternals.cmj test/Coercion.cmi test/Coercion.cmj test/DerivingAccessorsCurried.cmi test/DerivingAccessorsCurried.cmj test/DerivingAccessorsUncurried.cmi test/DerivingAccessorsUncurried.cmj test/DictInference.cmi test/DictInference.cmj test/DisambiguateOptionalFields.cmi test/DisambiguateOptionalFields.cmj test/DotDotDot.cmi test/DotDotDot.cmj test/EmptyRecord.cmi test/EmptyRecord.cmj test/ExternalArity.cmi test/ExternalArity.cmj test/FFI.cmi test/FFI.cmj test/Import.cmi test/Import.cmj test/ImportAttributes.cmi test/ImportAttributes.cmj test/PartialApplicationNoRuntimeCurry.cmi test/PartialApplicationNoRuntimeCurry.cmj test/RecordCoercion.cmi test/RecordCoercion.cmj test/RecordOrObject.cmi test/RecordOrObject.cmj test/SafePromises.cmi test/SafePromises.cmj test/UncurriedAlways.cmi test/UncurriedAlways.cmj test/UncurriedExternals.cmi test/UncurriedExternals.cmj test/UncurriedPervasives.cmi test/UncurriedPervasives.cmj test/UntaggedVariants.cmi test/UntaggedVariants.cmj test/VariantCoercion.cmi test/VariantCoercion.cmj test/VariantSpreads.cmi test/VariantSpreads.cmj test/a.cmi test/a.cmj test/a_filename_test.cmi test/a_filename_test.cmj test/a_list_test.cmi test/a_list_test.cmj test/a_recursive_type.cmi test/a_recursive_type.cmj test/a_scope_bug.cmi test/a_scope_bug.cmj test/a_string_test.cmi test/a_string_test.cmj test/abstract_type.cmi test/abstract_type.cmj test/adt_optimize_test.cmi test/adt_optimize_test.cmj test/alias_default_value_test.cmi test/alias_default_value_test.cmj test/alias_test.cmi test/alias_test.cmj test/and_or_tailcall_test.cmi test/and_or_tailcall_test.cmj test/argv_test.cmi test/argv_test.cmj test/ari_regress_test.cmi test/ari_regress_test.cmj test/arith_lexer.cmi test/arith_lexer.cmj test/arith_parser.cmi test/arith_parser.cmj test/arith_syntax.cmi test/arith_syntax.cmj test/arity.cmi test/arity.cmj test/arity_deopt.cmi test/arity_deopt.cmj test/arity_infer.cmi test/arity_infer.cmj test/array_data_util.cmi test/array_data_util.cmj test/array_safe_get.cmi test/array_safe_get.cmj test/array_subtle_test.cmi test/array_subtle_test.cmj test/array_test.cmi test/array_test.cmj test/as_inline_record_test.cmi test/as_inline_record_test.cmj test/ast_abstract_test.cmi test/ast_abstract_test.cmj test/ast_mapper_unused_warning_test.cmi test/ast_mapper_unused_warning_test.cmj test/async_await.cmi test/async_await.cmj test/async_ideas.cmi test/async_ideas.cmj test/async_inline.cmi test/async_inline.cmj test/async_inside_loop.cmi test/async_inside_loop.cmj test/attr_test.cmi test/attr_test.cmj test/b.cmi test/b.cmj test/bal_set_mini.cmi test/bal_set_mini.cmj test/bang_primitive.cmi test/bang_primitive.cmj test/basic_module_test.cmi test/basic_module_test.cmj test/bb.cmi test/bb.cmj test/bdd.cmi test/bdd.cmj test/belt_internal_test.cmi test/belt_internal_test.cmj test/belt_result_alias_test.cmi test/belt_result_alias_test.cmj test/bench.cmi test/bench.cmj test/big_enum.cmi test/big_enum.cmj test/big_polyvar_test.cmi test/big_polyvar_test.cmj test/bigint_test.cmi test/bigint_test.cmj test/block_alias_test.cmi test/block_alias_test.cmj test/boolean_test.cmi test/boolean_test.cmj test/bs_MapInt_test.cmi test/bs_MapInt_test.cmj test/bs_abstract_test.cmi test/bs_abstract_test.cmj test/bs_array_test.cmi test/bs_array_test.cmj test/bs_auto_uncurry.cmi test/bs_auto_uncurry.cmj test/bs_auto_uncurry_test.cmi test/bs_auto_uncurry_test.cmj test/bs_float_test.cmi test/bs_float_test.cmj test/bs_hashmap_test.cmi test/bs_hashmap_test.cmj test/bs_hashset_int_test.cmi test/bs_hashset_int_test.cmj test/bs_hashtbl_string_test.cmi test/bs_hashtbl_string_test.cmj test/bs_ignore_effect.cmi test/bs_ignore_effect.cmj test/bs_ignore_test.cmi test/bs_ignore_test.cmj test/bs_int_test.cmi test/bs_int_test.cmj test/bs_list_test.cmi test/bs_list_test.cmj test/bs_map_set_dict_test.cmi test/bs_map_set_dict_test.cmj test/bs_map_test.cmi test/bs_map_test.cmj test/bs_min_max_test.cmi test/bs_min_max_test.cmj test/bs_mutable_set_test.cmi test/bs_mutable_set_test.cmj test/bs_poly_map_test.cmi test/bs_poly_map_test.cmj test/bs_poly_mutable_map_test.cmi test/bs_poly_mutable_map_test.cmj test/bs_poly_mutable_set_test.cmi test/bs_poly_mutable_set_test.cmj test/bs_poly_set_test.cmi test/bs_poly_set_test.cmj test/bs_qualified.cmi test/bs_qualified.cmj test/bs_queue_test.cmi test/bs_queue_test.cmj test/bs_rbset_int_bench.cmi test/bs_rbset_int_bench.cmj test/bs_rest_test.cmi test/bs_rest_test.cmj test/bs_set_bench.cmi test/bs_set_bench.cmj test/bs_set_int_test.cmi test/bs_set_int_test.cmj test/bs_sort_test.cmi test/bs_sort_test.cmj test/bs_splice_partial.cmi test/bs_splice_partial.cmj test/bs_stack_test.cmi test/bs_stack_test.cmj test/bs_string_test.cmi test/bs_string_test.cmj test/bs_unwrap_test.cmi test/bs_unwrap_test.cmj test/buffer_test.cmi test/buffer_test.cmj test/bytes_split_gpr_743_test.cmi test/bytes_split_gpr_743_test.cmj test/caml_compare_bigint_test.cmi test/caml_compare_bigint_test.cmj test/caml_compare_test.cmi test/caml_compare_test.cmj test/caml_format_test.cmi test/caml_format_test.cmj test/chain_code_test.cmi test/chain_code_test.cmj test/chn_test.cmi test/chn_test.cmj test/class_type_ffi_test.cmi test/class_type_ffi_test.cmj test/coercion_module_alias_test.cmi test/coercion_module_alias_test.cmj test/compare_test.cmi test/compare_test.cmj test/complete_parmatch_test.cmi test/complete_parmatch_test.cmj test/complex_if_test.cmi test/complex_if_test.cmj test/complex_test.cmi test/complex_test.cmj test/complex_while_loop.cmi test/complex_while_loop.cmj test/condition_compilation_test.cmi test/condition_compilation_test.cmj test/config1_test.cmi test/config1_test.cmj test/console_log_test.cmi test/console_log_test.cmj test/const_block_test.cmi test/const_block_test.cmj test/const_defs.cmi test/const_defs.cmj test/const_defs_test.cmi test/const_defs_test.cmj test/const_test.cmi test/const_test.cmj test/cont_int_fold_test.cmi test/cont_int_fold_test.cmj test/cps_test.cmi test/cps_test.cmj test/cross_module_inline_test.cmi test/cross_module_inline_test.cmj test/custom_error_test.cmi test/custom_error_test.cmj test/debug_keep_test.cmi test/debug_keep_test.cmj test/debug_mode_value.cmi test/debug_mode_value.cmj test/debug_tmp.cmi test/debug_tmp.cmj test/debugger_test.cmi test/debugger_test.cmj test/default_export_test.cmi test/default_export_test.cmj test/defunctor_make_test.cmi test/defunctor_make_test.cmj test/demo_int_map.cmi test/demo_int_map.cmj test/demo_page.cmi test/demo_page.cmj test/demo_pipe.cmi test/demo_pipe.cmj test/derive_projector_test.cmi test/derive_projector_test.cmj test/digest_test.cmi test/digest_test.cmj test/directives.cmi test/directives.cmj test/div_by_zero_test.cmi test/div_by_zero_test.cmj test/dollar_escape_test.cmi test/dollar_escape_test.cmj test/earger_curry_test.cmi test/earger_curry_test.cmj test/effect.cmi test/effect.cmj test/epsilon_test.cmi test/epsilon_test.cmj test/equal_box_test.cmi test/equal_box_test.cmj test/equal_exception_test.cmi test/equal_exception_test.cmj test/equal_test.cmi test/equal_test.cmj test/es6_export.cmi test/es6_export.cmj test/es6_import.cmi test/es6_import.cmj test/es6_module_test.cmi test/es6_module_test.cmj test/escape_esmodule.cmi test/escape_esmodule.cmj test/esmodule_ref.cmi test/esmodule_ref.cmj test/event_ffi.cmi test/event_ffi.cmj test/exception_alias.cmi test/exception_alias.cmj test/exception_raise_test.cmi test/exception_raise_test.cmj test/exception_rebound_err_test.cmi test/exception_rebound_err_test.cmj test/exception_value_test.cmi test/exception_value_test.cmj test/exotic_labels_test.cmi test/exotic_labels_test.cmj test/exponentiation_precedence_test.cmi test/exponentiation_precedence_test.cmj test/export_keyword.cmi test/export_keyword.cmj test/ext_array_test.cmi test/ext_array_test.cmj test/ext_bytes_test.cmi test/ext_bytes_test.cmj test/ext_filename_test.cmi test/ext_filename_test.cmj test/ext_list_test.cmi test/ext_list_test.cmj test/ext_pervasives_test.cmi test/ext_pervasives_test.cmj test/ext_string_test.cmi test/ext_string_test.cmj test/ext_sys_test.cmi test/ext_sys_test.cmj test/extensible_variant_test.cmi test/extensible_variant_test.cmj test/external_polyfill_test.cmi test/external_polyfill_test.cmj test/external_ppx.cmi test/external_ppx.cmj test/external_ppx2.cmi test/external_ppx2.cmj test/fail_comp.cmi test/fail_comp.cmj test/ffi_arity_test.cmi test/ffi_arity_test.cmj test/ffi_array_test.cmi test/ffi_array_test.cmj test/ffi_js_test.cmi test/ffi_js_test.cmj test/ffi_splice_test.cmi test/ffi_splice_test.cmj test/ffi_test.cmi test/ffi_test.cmj test/fib.cmi test/fib.cmj test/flattern_order_test.cmi test/flattern_order_test.cmj test/flexible_array_test.cmi test/flexible_array_test.cmj test/float_array.cmi test/float_array.cmj test/float_of_bits_test.cmi test/float_of_bits_test.cmj test/float_record.cmi test/float_record.cmj test/float_test.cmi test/float_test.cmj test/floatarray_test.cmi test/floatarray_test.cmj test/for_loop_test.cmi test/for_loop_test.cmj test/for_side_effect_test.cmi test/for_side_effect_test.cmj test/format_regression.cmi test/format_regression.cmj test/format_test.cmi test/format_test.cmj test/fun_pattern_match.cmi test/fun_pattern_match.cmj test/function_directives.cmi test/function_directives.cmj test/function_directives_no_inline.cmi test/function_directives_no_inline.cmj test/functor_app_test.cmi test/functor_app_test.cmj test/functor_def.cmi test/functor_def.cmj test/functor_ffi.cmi test/functor_ffi.cmj test/functor_inst.cmi test/functor_inst.cmj test/functors.cmi test/functors.cmj test/gbk.cmi test/gbk.cmj test/genlex_test.cmi test/genlex_test.cmj test/gentTypeReTest.cmi test/gentTypeReTest.cmj test/global_exception_regression_test.cmi test/global_exception_regression_test.cmj test/global_mangles.cmi test/global_mangles.cmj test/global_module_alias_test.cmi test/global_module_alias_test.cmj test/google_closure_test.cmi test/google_closure_test.cmj test/gpr496_test.cmi test/gpr496_test.cmj test/gpr_1072.cmi test/gpr_1072.cmj test/gpr_1072_reg.cmi test/gpr_1072_reg.cmj test/gpr_1150.cmi test/gpr_1150.cmj test/gpr_1154_test.cmi test/gpr_1154_test.cmj test/gpr_1170.cmi test/gpr_1170.cmj test/gpr_1240_missing_unbox.cmi test/gpr_1240_missing_unbox.cmj test/gpr_1245_test.cmi test/gpr_1245_test.cmj test/gpr_1268.cmi test/gpr_1268.cmj test/gpr_1409_test.cmi test/gpr_1409_test.cmj test/gpr_1423_app_test.cmi test/gpr_1423_app_test.cmj test/gpr_1423_nav.cmi test/gpr_1423_nav.cmj test/gpr_1438.cmi test/gpr_1438.cmj test/gpr_1481.cmi test/gpr_1481.cmj test/gpr_1484.cmi test/gpr_1484.cmj test/gpr_1503_test.cmi test/gpr_1503_test.cmj test/gpr_1539_test.cmi test/gpr_1539_test.cmj test/gpr_1658_test.cmi test/gpr_1658_test.cmj test/gpr_1667_test.cmi test/gpr_1667_test.cmj test/gpr_1692_test.cmi test/gpr_1692_test.cmj test/gpr_1698_test.cmi test/gpr_1698_test.cmj test/gpr_1701_test.cmi test/gpr_1701_test.cmj test/gpr_1716_test.cmi test/gpr_1716_test.cmj test/gpr_1717_test.cmi test/gpr_1717_test.cmj test/gpr_1728_test.cmi test/gpr_1728_test.cmj test/gpr_1749_test.cmi test/gpr_1749_test.cmj test/gpr_1759_test.cmi test/gpr_1759_test.cmj test/gpr_1760_test.cmi test/gpr_1760_test.cmj test/gpr_1762_test.cmi test/gpr_1762_test.cmj test/gpr_1817_test.cmi test/gpr_1817_test.cmj test/gpr_1822_test.cmi test/gpr_1822_test.cmj test/gpr_1891_test.cmi test/gpr_1891_test.cmj test/gpr_1943_test.cmi test/gpr_1943_test.cmj test/gpr_1946_test.cmi test/gpr_1946_test.cmj test/gpr_2316_test.cmi test/gpr_2316_test.cmj test/gpr_2352_test.cmi test/gpr_2352_test.cmj test/gpr_2413_test.cmi test/gpr_2413_test.cmj test/gpr_2474.cmi test/gpr_2474.cmj test/gpr_2487.cmi test/gpr_2487.cmj test/gpr_2503_test.cmi test/gpr_2503_test.cmj test/gpr_2608_test.cmi test/gpr_2608_test.cmj test/gpr_2614_test.cmi test/gpr_2614_test.cmj test/gpr_2633_test.cmi test/gpr_2633_test.cmj test/gpr_2642_test.cmi test/gpr_2642_test.cmj test/gpr_2682_test.cmi test/gpr_2682_test.cmj test/gpr_2700_test.cmi test/gpr_2700_test.cmj test/gpr_2731_test.cmi test/gpr_2731_test.cmj test/gpr_2789_test.cmi test/gpr_2789_test.cmj test/gpr_2931_test.cmi test/gpr_2931_test.cmj test/gpr_3142_test.cmi test/gpr_3142_test.cmj test/gpr_3154_test.cmi test/gpr_3154_test.cmj test/gpr_3209_test.cmi test/gpr_3209_test.cmj test/gpr_3492_test.cmi test/gpr_3492_test.cmj test/gpr_3519_jsx_test.cmi test/gpr_3519_jsx_test.cmj test/gpr_3519_test.cmi test/gpr_3519_test.cmj test/gpr_3536_test.cmi test/gpr_3536_test.cmj test/gpr_3546_test.cmi test/gpr_3546_test.cmj test/gpr_3548_test.cmi test/gpr_3548_test.cmj test/gpr_3549_test.cmi test/gpr_3549_test.cmj test/gpr_3566_drive_test.cmi test/gpr_3566_drive_test.cmj test/gpr_3566_test.cmi test/gpr_3566_test.cmj test/gpr_3595_test.cmi test/gpr_3595_test.cmj test/gpr_3609_test.cmi test/gpr_3609_test.cmj test/gpr_3697_test.cmi test/gpr_3697_test.cmj test/gpr_373_test.cmi test/gpr_373_test.cmj test/gpr_3770_test.cmi test/gpr_3770_test.cmj test/gpr_3852_alias.cmi test/gpr_3852_alias.cmj test/gpr_3852_alias_reify.cmi test/gpr_3852_alias_reify.cmj test/gpr_3852_effect.cmi test/gpr_3852_effect.cmj test/gpr_3865.cmi test/gpr_3865.cmj test/gpr_3865_bar.cmi test/gpr_3865_bar.cmj test/gpr_3865_foo.cmi test/gpr_3865_foo.cmj test/gpr_3875_test.cmi test/gpr_3875_test.cmj test/gpr_3877_test.cmi test/gpr_3877_test.cmj test/gpr_3895_test.cmi test/gpr_3895_test.cmj test/gpr_3897_test.cmi test/gpr_3897_test.cmj test/gpr_3931_test.cmi test/gpr_3931_test.cmj test/gpr_3980_test.cmi test/gpr_3980_test.cmj test/gpr_4025_test.cmi test/gpr_4025_test.cmj test/gpr_405_test.cmi test/gpr_405_test.cmj test/gpr_4069_test.cmi test/gpr_4069_test.cmj test/gpr_4265_test.cmi test/gpr_4265_test.cmj test/gpr_4274_test.cmi test/gpr_4274_test.cmj test/gpr_4280_test.cmi test/gpr_4280_test.cmj test/gpr_4407_test.cmi test/gpr_4407_test.cmj test/gpr_441.cmi test/gpr_441.cmj test/gpr_4442_test.cmi test/gpr_4442_test.cmj test/gpr_4491_test.cmi test/gpr_4491_test.cmj test/gpr_4494_test.cmi test/gpr_4494_test.cmj test/gpr_4519_test.cmi test/gpr_4519_test.cmj test/gpr_459_test.cmi test/gpr_459_test.cmj test/gpr_4632.cmi test/gpr_4632.cmj test/gpr_4639_test.cmi test/gpr_4639_test.cmj test/gpr_4900_test.cmi test/gpr_4900_test.cmj test/gpr_4924_test.cmi test/gpr_4924_test.cmj test/gpr_4931.cmi test/gpr_4931.cmj test/gpr_4931_allow.cmi test/gpr_4931_allow.cmj test/gpr_5071_test.cmi test/gpr_5071_test.cmj test/gpr_5169_test.cmi test/gpr_5169_test.cmj test/gpr_5218_test.cmi test/gpr_5218_test.cmj test/gpr_5280_optimize_test.cmi test/gpr_5280_optimize_test.cmj test/gpr_5557.cmi test/gpr_5557.cmj test/gpr_5753.cmi test/gpr_5753.cmj test/gpr_658.cmi test/gpr_658.cmj test/gpr_858_test.cmi test/gpr_858_test.cmj test/gpr_858_unit2_test.cmi test/gpr_858_unit2_test.cmj test/gpr_904_test.cmi test/gpr_904_test.cmj test/gpr_974_test.cmi test/gpr_974_test.cmj test/gpr_977_test.cmi test/gpr_977_test.cmj test/gpr_return_type_unused_attribute.cmi test/gpr_return_type_unused_attribute.cmj test/gray_code_test.cmi test/gray_code_test.cmj test/guide_for_ext.cmi test/guide_for_ext.cmj test/hash_collision_test.cmi test/hash_collision_test.cmj test/hash_sugar_desugar.cmi test/hash_sugar_desugar.cmj test/hash_test.cmi test/hash_test.cmj test/hashtbl_test.cmi test/hashtbl_test.cmj test/hello.foo.cmi test/hello.foo.cmj test/hello_res.cmi test/hello_res.cmj test/ignore_test.cmi test/ignore_test.cmj test/ignore_uncurry_attribute.cmi test/ignore_uncurry_attribute.cmj test/imm_map_bench.cmi test/imm_map_bench.cmj test/import2.cmi test/import2.cmj test/import_external.cmi test/import_external.cmj test/import_side_effect.cmi test/import_side_effect.cmj test/import_side_effect_free.cmi test/import_side_effect_free.cmj test/include_side_effect.cmi test/include_side_effect.cmj test/include_side_effect_free.cmi test/include_side_effect_free.cmj test/incomplete_toplevel_test.cmi test/incomplete_toplevel_test.cmj test/infer_type_test.cmi test/infer_type_test.cmj test/inline_condition_with_pattern_matching.cmi test/inline_condition_with_pattern_matching.cmj test/inline_const.cmi test/inline_const.cmj test/inline_const_test.cmi test/inline_const_test.cmj test/inline_edge_cases.cmi test/inline_edge_cases.cmj test/inline_map2_test.cmi test/inline_map2_test.cmj test/inline_map_demo.cmi test/inline_map_demo.cmj test/inline_map_test.cmi test/inline_map_test.cmj test/inline_record_test.cmi test/inline_record_test.cmj test/inline_regression_test.cmi test/inline_regression_test.cmj test/inline_string_test.cmi test/inline_string_test.cmj test/inner_call.cmi test/inner_call.cmj test/inner_define.cmi test/inner_define.cmj test/inner_unused.cmi test/inner_unused.cmj test/installation_test.cmi test/installation_test.cmj test/int32_test.cmi test/int32_test.cmj test/int64_mul_div_test.cmi test/int64_mul_div_test.cmj test/int64_string_bench.cmi test/int64_string_bench.cmj test/int64_string_test.cmi test/int64_string_test.cmj test/int64_test.cmi test/int64_test.cmj test/int_hashtbl_test.cmi test/int_hashtbl_test.cmj test/int_map.cmi test/int_map.cmj test/int_overflow_test.cmi test/int_overflow_test.cmj test/int_poly_var.cmi test/int_poly_var.cmj test/int_switch_test.cmi test/int_switch_test.cmj test/internal_unused_test.cmi test/internal_unused_test.cmj test/io_test.cmi test/io_test.cmj test/js_array_test.cmi test/js_array_test.cmj test/js_bool_test.cmi test/js_bool_test.cmj test/js_cast_test.cmi test/js_cast_test.cmj test/js_date_test.cmi test/js_date_test.cmj test/js_dict_test.cmi test/js_dict_test.cmj test/js_exception_catch_test.cmi test/js_exception_catch_test.cmj test/js_float_test.cmi test/js_float_test.cmj test/js_global_test.cmi test/js_global_test.cmj test/js_int_test.cmi test/js_int_test.cmj test/js_json_test.cmi test/js_json_test.cmj test/js_math_test.cmi test/js_math_test.cmj test/js_null_test.cmi test/js_null_test.cmj test/js_null_undefined_test.cmi test/js_null_undefined_test.cmj test/js_nullable_test.cmi test/js_nullable_test.cmj test/js_obj_test.cmi test/js_obj_test.cmj test/js_option_test.cmi test/js_option_test.cmj test/js_re_test.cmi test/js_re_test.cmj test/js_string_test.cmi test/js_string_test.cmj test/js_undefined_test.cmi test/js_undefined_test.cmj test/js_val.cmi test/js_val.cmj test/jsoo_400_test.cmi test/jsoo_400_test.cmj test/jsoo_485_test.cmi test/jsoo_485_test.cmj test/jsxv4_newtype.cmi test/jsxv4_newtype.cmj test/keep_uncurry_attribute.cmi test/keep_uncurry_attribute.cmj test/key_word_property.cmi test/key_word_property.cmj test/key_word_property2.cmi test/key_word_property2.cmj test/key_word_property_plus_test.cmi test/key_word_property_plus_test.cmj test/label_uncurry.cmi test/label_uncurry.cmj test/large_integer_pat.cmi test/large_integer_pat.cmj test/large_record_duplication_test.cmi test/large_record_duplication_test.cmj test/largest_int_flow.cmi test/largest_int_flow.cmj test/lazy_demo.cmi test/lazy_demo.cmj test/lazy_test.cmi test/lazy_test.cmj test/lib_js_test.cmi test/lib_js_test.cmj test/libarg_test.cmi test/libarg_test.cmj test/libqueue_test.cmi test/libqueue_test.cmj test/limits_test.cmi test/limits_test.cmj test/list_stack.cmi test/list_stack.cmj test/list_test.cmi test/list_test.cmj test/local_exception_test.cmi test/local_exception_test.cmj test/loop_regression_test.cmi test/loop_regression_test.cmj test/loop_suites_test.cmi test/loop_suites_test.cmj test/map_find_test.cmi test/map_find_test.cmj test/map_test.cmi test/map_test.cmj test/mario_game.cmi test/mario_game.cmj test/marshal.cmi test/marshal.cmj test/meth_annotation.cmi test/meth_annotation.cmj test/method_name_test.cmi test/method_name_test.cmj test/method_string_name.cmi test/method_string_name.cmj test/minimal_test.cmi test/minimal_test.cmj test/miss_colon_test.cmi test/miss_colon_test.cmj test/mock_mt.cmi test/mock_mt.cmj test/module_alias_test.cmi test/module_alias_test.cmj test/module_as_class_ffi.cmi test/module_as_class_ffi.cmj test/module_as_function.cmi test/module_as_function.cmj test/module_missing_conversion.cmi test/module_missing_conversion.cmj test/module_parameter_test.cmi test/module_parameter_test.cmj test/module_splice_test.cmi test/module_splice_test.cmj test/more_poly_variant_test.cmi test/more_poly_variant_test.cmj test/more_uncurry.cmi test/more_uncurry.cmj test/mpr_6033_test.cmi test/mpr_6033_test.cmj test/mt.cmi test/mt.cmj test/mt_global.cmi test/mt_global.cmj test/mutable_obj_test.cmi test/mutable_obj_test.cmj test/mutable_uncurry_test.cmi test/mutable_uncurry_test.cmj test/mutual_non_recursive_type.cmi test/mutual_non_recursive_type.cmj test/name_mangle_test.cmi test/name_mangle_test.cmj test/nested_include.cmi test/nested_include.cmj test/nested_module_alias.cmi test/nested_module_alias.cmj test/nested_obj_literal.cmi test/nested_obj_literal.cmj test/nested_obj_test.cmi test/nested_obj_test.cmj test/nested_pattern_match_test.cmi test/nested_pattern_match_test.cmj test/noassert.cmi test/noassert.cmj test/node_path_test.cmi test/node_path_test.cmj test/null_list_test.cmi test/null_list_test.cmj test/number_lexer.cmi test/number_lexer.cmj test/obj_literal_ppx.cmi test/obj_literal_ppx.cmj test/obj_literal_ppx_test.cmi test/obj_literal_ppx_test.cmj test/obj_magic_test.cmi test/obj_magic_test.cmj test/obj_type_test.cmi test/obj_type_test.cmj test/ocaml_re_test.cmi test/ocaml_re_test.cmj test/of_string_test.cmi test/of_string_test.cmj test/offset.cmi test/offset.cmj test/omit_trailing_undefined_in_external_calls.cmi test/omit_trailing_undefined_in_external_calls.cmj test/option_encoding_test.cmi test/option_encoding_test.cmj test/option_record_none_test.cmi test/option_record_none_test.cmj test/option_repr_test.cmi test/option_repr_test.cmj test/optional_ffi_test.cmi test/optional_ffi_test.cmj test/optional_regression_test.cmi test/optional_regression_test.cmj test/pipe_send_readline.cmi test/pipe_send_readline.cmj test/pipe_syntax.cmi test/pipe_syntax.cmj test/poly_empty_array.cmi test/poly_empty_array.cmj test/poly_variant_test.cmi test/poly_variant_test.cmj test/polymorphic_raw_test.cmi test/polymorphic_raw_test.cmj test/polymorphism_test.cmi test/polymorphism_test.cmj test/polyvar_convert.cmi test/polyvar_convert.cmj test/polyvar_test.cmi test/polyvar_test.cmj test/ppx_apply_test.cmi test/ppx_apply_test.cmj test/pq_test.cmi test/pq_test.cmj test/pr6726.cmi test/pr6726.cmj test/prepend_data_ffi.cmi test/prepend_data_ffi.cmj test/primitive_reg_test.cmi test/primitive_reg_test.cmj test/print_alpha_test.cmi test/print_alpha_test.cmj test/queue_402.cmi test/queue_402.cmj test/queue_test.cmi test/queue_test.cmj test/random_test.cmi test/random_test.cmj test/raw_hash_tbl_bench.cmi test/raw_hash_tbl_bench.cmj test/raw_output_test.cmi test/raw_output_test.cmj test/raw_pure_test.cmi test/raw_pure_test.cmj test/rbset.cmi test/rbset.cmj test/react.cmi test/react.cmj test/reactDOMRe.cmi test/reactDOMRe.cmj test/reactDOMServerRe.cmi test/reactDOMServerRe.cmj test/reactEvent.cmi test/reactEvent.cmj test/reactTestUtils.cmi test/reactTestUtils.cmj test/reasonReact.cmi test/reasonReact.cmj test/reasonReactCompat.cmi test/reasonReactCompat.cmj test/reasonReactOptimizedCreateClass.cmi test/reasonReactOptimizedCreateClass.cmj test/reasonReactRouter.cmi test/reasonReactRouter.cmj test/rebind_module.cmi test/rebind_module.cmj test/rebind_module_test.cmi test/rebind_module_test.cmj test/rec_array_test.cmi test/rec_array_test.cmj test/rec_fun_test.cmi test/rec_fun_test.cmj test/rec_module_opt.cmi test/rec_module_opt.cmj test/rec_module_test.cmi test/rec_module_test.cmj test/recmodule.cmi test/recmodule.cmj test/record_debug_test.cmi test/record_debug_test.cmj test/record_extension_test.cmi test/record_extension_test.cmj test/record_name_test.cmi test/record_name_test.cmj test/record_regression.cmi test/record_regression.cmj test/record_type_spread.cmi test/record_type_spread.cmj test/record_with_test.cmi test/record_with_test.cmj test/recursive_module.cmi test/recursive_module.cmj test/recursive_module_test.cmi test/recursive_module_test.cmj test/recursive_react_component.cmi test/recursive_react_component.cmj test/recursive_records_test.cmi test/recursive_records_test.cmj test/recursive_unbound_module_test.cmi test/recursive_unbound_module_test.cmj test/regression_print.cmi test/regression_print.cmj test/relative_path.cmi test/relative_path.cmj test/res_debug.cmi test/res_debug.cmj test/return_check.cmi test/return_check.cmj test/runtime_encoding_test.cmi test/runtime_encoding_test.cmj test/set_annotation.cmi test/set_annotation.cmj test/set_gen.cmi test/set_gen.cmj test/sexp.cmi test/sexp.cmj test/sexpm.cmi test/sexpm.cmj test/sexpm_test.cmi test/sexpm_test.cmj test/side_effect.cmi test/side_effect.cmj test/side_effect2.cmi test/side_effect2.cmj test/side_effect_free.cmi test/side_effect_free.cmj test/simplify_lambda_632o.cmi test/simplify_lambda_632o.cmj test/single_module_alias.cmi test/single_module_alias.cmj test/singular_unit_test.cmi test/singular_unit_test.cmj test/small_inline_test.cmi test/small_inline_test.cmj test/splice_test.cmi test/splice_test.cmj test/stack_comp_test.cmi test/stack_comp_test.cmj test/stack_test.cmi test/stack_test.cmj test/stream_parser_test.cmi test/stream_parser_test.cmj test/string_bound_get_test.cmi test/string_bound_get_test.cmj test/string_constant_compare.cmi test/string_constant_compare.cmj test/string_get_set_test.cmi test/string_get_set_test.cmj test/string_runtime_test.cmi test/string_runtime_test.cmj test/string_set.cmi test/string_set.cmj test/string_set_test.cmi test/string_set_test.cmj test/string_test.cmi test/string_test.cmj test/string_unicode_test.cmi test/string_unicode_test.cmj test/stringmatch_test.cmi test/stringmatch_test.cmj test/submodule.cmi test/submodule.cmj test/submodule_call.cmi test/submodule_call.cmj test/switch_case_test.cmi test/switch_case_test.cmj test/switch_string.cmi test/switch_string.cmj test/tagged_template_test.cmi test/tagged_template_test.cmj test/tailcall_inline_test.cmi test/tailcall_inline_test.cmj test/template.cmi test/template.cmj test/test.cmi test/test.cmj test/test2.cmi test/test2.cmj test/test_alias.cmi test/test_alias.cmj test/test_ari.cmi test/test_ari.cmj test/test_array.cmi test/test_array.cmj test/test_array_append.cmi test/test_array_append.cmj test/test_array_primitive.cmi test/test_array_primitive.cmj test/test_bool_equal.cmi test/test_bool_equal.cmj test/test_bs_this.cmi test/test_bs_this.cmj test/test_bug.cmi test/test_bug.cmj test/test_bytes.cmi test/test_bytes.cmj test/test_case_opt_collision.cmi test/test_case_opt_collision.cmj test/test_case_set.cmi test/test_case_set.cmj test/test_char.cmi test/test_char.cmj test/test_closure.cmi test/test_closure.cmj test/test_common.cmi test/test_common.cmj test/test_const_elim.cmi test/test_const_elim.cmj test/test_const_propogate.cmi test/test_const_propogate.cmj test/test_cpp.cmi test/test_cpp.cmj test/test_cps.cmi test/test_cps.cmj test/test_demo.cmi test/test_demo.cmj test/test_dup_param.cmi test/test_dup_param.cmj test/test_eq.cmi test/test_eq.cmj test/test_exception.cmi test/test_exception.cmj test/test_exception_escape.cmi test/test_exception_escape.cmj test/test_export2.cmi test/test_export2.cmj test/test_external.cmi test/test_external.cmj test/test_external_unit.cmi test/test_external_unit.cmj test/test_ffi.cmi test/test_ffi.cmj test/test_fib.cmi test/test_fib.cmj test/test_filename.cmi test/test_filename.cmj test/test_for_loop.cmi test/test_for_loop.cmj test/test_for_map.cmi test/test_for_map.cmj test/test_for_map2.cmi test/test_for_map2.cmj test/test_format.cmi test/test_format.cmj test/test_formatter.cmi test/test_formatter.cmj test/test_functor_dead_code.cmi test/test_functor_dead_code.cmj test/test_generative_module.cmi test/test_generative_module.cmj test/test_global_print.cmi test/test_global_print.cmj test/test_google_closure.cmi test/test_google_closure.cmj test/test_include.cmi test/test_include.cmj test/test_incomplete.cmi test/test_incomplete.cmj test/test_incr_ref.cmi test/test_incr_ref.cmj test/test_int_map_find.cmi test/test_int_map_find.cmj test/test_internalOO.cmi test/test_internalOO.cmj test/test_is_js.cmi test/test_is_js.cmj test/test_js_ffi.cmi test/test_js_ffi.cmj test/test_let.cmi test/test_let.cmj test/test_list.cmi test/test_list.cmj test/test_literal.cmi test/test_literal.cmj test/test_literals.cmi test/test_literals.cmj test/test_match_exception.cmi test/test_match_exception.cmj test/test_mutliple.cmi test/test_mutliple.cmj test/test_nat64.cmi test/test_nat64.cmj test/test_nested_let.cmi test/test_nested_let.cmj test/test_nested_print.cmi test/test_nested_print.cmj test/test_non_export.cmi test/test_non_export.cmj test/test_nullary.cmi test/test_nullary.cmj test/test_obj.cmi test/test_obj.cmj test/test_order.cmi test/test_order.cmj test/test_order_tailcall.cmi test/test_order_tailcall.cmj test/test_other_exn.cmi test/test_other_exn.cmj test/test_pack.cmi test/test_pack.cmj test/test_per.cmi test/test_per.cmj test/test_pervasive.cmi test/test_pervasive.cmj test/test_pervasives2.cmi test/test_pervasives2.cmj test/test_pervasives3.cmi test/test_pervasives3.cmj test/test_primitive.cmi test/test_primitive.cmj test/test_ramification.cmi test/test_ramification.cmj test/test_react.cmi test/test_react.cmj test/test_react_case.cmi test/test_react_case.cmj test/test_regex.cmi test/test_regex.cmj test/test_runtime_encoding.cmi test/test_runtime_encoding.cmj test/test_scope.cmi test/test_scope.cmj test/test_seq.cmi test/test_seq.cmj test/test_set.cmi test/test_set.cmj test/test_side_effect_functor.cmi test/test_side_effect_functor.cmj test/test_simple_include.cmi test/test_simple_include.cmj test/test_simple_pattern_match.cmi test/test_simple_pattern_match.cmj test/test_simple_ref.cmi test/test_simple_ref.cmj test/test_simple_tailcall.cmi test/test_simple_tailcall.cmj test/test_small.cmi test/test_small.cmj test/test_sprintf.cmi test/test_sprintf.cmj test/test_stack.cmi test/test_stack.cmj test/test_static_catch_ident.cmi test/test_static_catch_ident.cmj test/test_string.cmi test/test_string.cmj test/test_string_case.cmi test/test_string_case.cmj test/test_string_const.cmi test/test_string_const.cmj test/test_string_map.cmi test/test_string_map.cmj test/test_string_switch.cmi test/test_string_switch.cmj test/test_switch.cmi test/test_switch.cmj test/test_trywith.cmi test/test_trywith.cmj test/test_tuple.cmi test/test_tuple.cmj test/test_tuple_destructring.cmi test/test_tuple_destructring.cmj test/test_type_based_arity.cmi test/test_type_based_arity.cmj test/test_u.cmi test/test_u.cmj test/test_unknown.cmi test/test_unknown.cmj test/test_unsafe_cmp.cmi test/test_unsafe_cmp.cmj test/test_unsafe_obj_ffi.cmi test/test_unsafe_obj_ffi.cmj test/test_unsafe_obj_ffi_ppx.cmi test/test_unsafe_obj_ffi_ppx.cmj test/test_unsupported_primitive.cmi test/test_unsupported_primitive.cmj test/test_while_closure.cmi test/test_while_closure.cmj test/test_while_side_effect.cmi test/test_while_side_effect.cmj test/test_zero_nullable.cmi test/test_zero_nullable.cmj test/then_mangle_test.cmi test/then_mangle_test.cmj test/ticker.cmi test/ticker.cmj test/to_string_test.cmi test/to_string_test.cmj test/topsort_test.cmi test/topsort_test.cmj test/tramp_fib.cmi test/tramp_fib.cmj test/tuple_alloc.cmi test/tuple_alloc.cmj test/type-coercion-free-vars.cmi test/type-coercion-free-vars.cmj test/type_disambiguate.cmi test/type_disambiguate.cmj test/typeof_test.cmi test/typeof_test.cmj test/unboxed_attribute.cmi test/unboxed_attribute.cmj test/unboxed_attribute_test.cmi test/unboxed_attribute_test.cmj test/unboxed_crash.cmi test/unboxed_crash.cmj test/unboxed_use_case.cmi test/unboxed_use_case.cmj test/uncurried_cast.cmi test/uncurried_cast.cmj test/uncurried_default.args.cmi test/uncurried_default.args.cmj test/uncurried_pipe.cmi test/uncurried_pipe.cmj test/uncurry_external_test.cmi test/uncurry_external_test.cmj test/uncurry_glob_test.cmi test/uncurry_glob_test.cmj test/uncurry_test.cmi test/uncurry_test.cmj test/undef_regression2_test.cmi test/undef_regression2_test.cmj test/undef_regression_test.cmi test/undef_regression_test.cmj test/undefine_conditional.cmi test/undefine_conditional.cmj test/unicode_type_error.cmi test/unicode_type_error.cmj test/unit_undefined_test.cmi test/unit_undefined_test.cmj test/unitest_string.cmi test/unitest_string.cmj test/unsafe_full_apply_primitive.cmi test/unsafe_full_apply_primitive.cmj test/unsafe_ppx_test.cmi test/unsafe_ppx_test.cmj test/update_record_test.cmi test/update_record_test.cmj test/variant.cmi test/variant.cmj test/variantsMatching.cmi test/variantsMatching.cmj test/webpack_config.cmi test/webpack_config.cmj +o test : phony test/406_primitive_test.cmi test/406_primitive_test.cmj test/AsInUncurriedExternals.cmi test/AsInUncurriedExternals.cmj test/Coercion.cmi test/Coercion.cmj test/DerivingAccessorsCurried.cmi test/DerivingAccessorsCurried.cmj test/DerivingAccessorsUncurried.cmi test/DerivingAccessorsUncurried.cmj test/DictInference.cmi test/DictInference.cmj test/DisambiguateOptionalFields.cmi test/DisambiguateOptionalFields.cmj test/DotDotDot.cmi test/DotDotDot.cmj test/EmptyRecord.cmi test/EmptyRecord.cmj test/ExternalArity.cmi test/ExternalArity.cmj test/FFI.cmi test/FFI.cmj test/Import.cmi test/Import.cmj test/ImportAttributes.cmi test/ImportAttributes.cmj test/PartialApplicationNoRuntimeCurry.cmi test/PartialApplicationNoRuntimeCurry.cmj test/RecordCoercion.cmi test/RecordCoercion.cmj test/RecordOrObject.cmi test/RecordOrObject.cmj test/SafePromises.cmi test/SafePromises.cmj test/UncurriedAlways.cmi test/UncurriedAlways.cmj test/UncurriedExternals.cmi test/UncurriedExternals.cmj test/UncurriedPervasives.cmi test/UncurriedPervasives.cmj test/UntaggedVariants.cmi test/UntaggedVariants.cmj test/VariantCoercion.cmi test/VariantCoercion.cmj test/VariantSpreads.cmi test/VariantSpreads.cmj test/a.cmi test/a.cmj test/a_filename_test.cmi test/a_filename_test.cmj test/a_list_test.cmi test/a_list_test.cmj test/a_recursive_type.cmi test/a_recursive_type.cmj test/a_scope_bug.cmi test/a_scope_bug.cmj test/a_string_test.cmi test/a_string_test.cmj test/abstract_type.cmi test/abstract_type.cmj test/adt_optimize_test.cmi test/adt_optimize_test.cmj test/alias_default_value_test.cmi test/alias_default_value_test.cmj test/alias_test.cmi test/alias_test.cmj test/and_or_tailcall_test.cmi test/and_or_tailcall_test.cmj test/argv_test.cmi test/argv_test.cmj test/ari_regress_test.cmi test/ari_regress_test.cmj test/arith_lexer.cmi test/arith_lexer.cmj test/arith_parser.cmi test/arith_parser.cmj test/arith_syntax.cmi test/arith_syntax.cmj test/arity.cmi test/arity.cmj test/arity_deopt.cmi test/arity_deopt.cmj test/arity_infer.cmi test/arity_infer.cmj test/array_data_util.cmi test/array_data_util.cmj test/array_safe_get.cmi test/array_safe_get.cmj test/array_subtle_test.cmi test/array_subtle_test.cmj test/array_test.cmi test/array_test.cmj test/as_inline_record_test.cmi test/as_inline_record_test.cmj test/ast_abstract_test.cmi test/ast_abstract_test.cmj test/ast_mapper_unused_warning_test.cmi test/ast_mapper_unused_warning_test.cmj test/async_await.cmi test/async_await.cmj test/async_inline.cmi test/async_inline.cmj test/async_inside_loop.cmi test/async_inside_loop.cmj test/attr_test.cmi test/attr_test.cmj test/b.cmi test/b.cmj test/bal_set_mini.cmi test/bal_set_mini.cmj test/bang_primitive.cmi test/bang_primitive.cmj test/basic_module_test.cmi test/basic_module_test.cmj test/bb.cmi test/bb.cmj test/bdd.cmi test/bdd.cmj test/belt_internal_test.cmi test/belt_internal_test.cmj test/belt_result_alias_test.cmi test/belt_result_alias_test.cmj test/bench.cmi test/bench.cmj test/big_enum.cmi test/big_enum.cmj test/big_polyvar_test.cmi test/big_polyvar_test.cmj test/bigint_test.cmi test/bigint_test.cmj test/block_alias_test.cmi test/block_alias_test.cmj test/boolean_test.cmi test/boolean_test.cmj test/bs_MapInt_test.cmi test/bs_MapInt_test.cmj test/bs_abstract_test.cmi test/bs_abstract_test.cmj test/bs_array_test.cmi test/bs_array_test.cmj test/bs_auto_uncurry.cmi test/bs_auto_uncurry.cmj test/bs_auto_uncurry_test.cmi test/bs_auto_uncurry_test.cmj test/bs_float_test.cmi test/bs_float_test.cmj test/bs_hashmap_test.cmi test/bs_hashmap_test.cmj test/bs_hashset_int_test.cmi test/bs_hashset_int_test.cmj test/bs_hashtbl_string_test.cmi test/bs_hashtbl_string_test.cmj test/bs_ignore_effect.cmi test/bs_ignore_effect.cmj test/bs_ignore_test.cmi test/bs_ignore_test.cmj test/bs_int_test.cmi test/bs_int_test.cmj test/bs_list_test.cmi test/bs_list_test.cmj test/bs_map_set_dict_test.cmi test/bs_map_set_dict_test.cmj test/bs_map_test.cmi test/bs_map_test.cmj test/bs_min_max_test.cmi test/bs_min_max_test.cmj test/bs_mutable_set_test.cmi test/bs_mutable_set_test.cmj test/bs_poly_map_test.cmi test/bs_poly_map_test.cmj test/bs_poly_mutable_map_test.cmi test/bs_poly_mutable_map_test.cmj test/bs_poly_mutable_set_test.cmi test/bs_poly_mutable_set_test.cmj test/bs_poly_set_test.cmi test/bs_poly_set_test.cmj test/bs_qualified.cmi test/bs_qualified.cmj test/bs_queue_test.cmi test/bs_queue_test.cmj test/bs_rbset_int_bench.cmi test/bs_rbset_int_bench.cmj test/bs_rest_test.cmi test/bs_rest_test.cmj test/bs_set_bench.cmi test/bs_set_bench.cmj test/bs_set_int_test.cmi test/bs_set_int_test.cmj test/bs_sort_test.cmi test/bs_sort_test.cmj test/bs_splice_partial.cmi test/bs_splice_partial.cmj test/bs_stack_test.cmi test/bs_stack_test.cmj test/bs_string_test.cmi test/bs_string_test.cmj test/bs_unwrap_test.cmi test/bs_unwrap_test.cmj test/buffer_test.cmi test/buffer_test.cmj test/bytes_split_gpr_743_test.cmi test/bytes_split_gpr_743_test.cmj test/caml_compare_bigint_test.cmi test/caml_compare_bigint_test.cmj test/caml_compare_test.cmi test/caml_compare_test.cmj test/caml_format_test.cmi test/caml_format_test.cmj test/chain_code_test.cmi test/chain_code_test.cmj test/chn_test.cmi test/chn_test.cmj test/class_type_ffi_test.cmi test/class_type_ffi_test.cmj test/coercion_module_alias_test.cmi test/coercion_module_alias_test.cmj test/compare_test.cmi test/compare_test.cmj test/complete_parmatch_test.cmi test/complete_parmatch_test.cmj test/complex_if_test.cmi test/complex_if_test.cmj test/complex_test.cmi test/complex_test.cmj test/complex_while_loop.cmi test/complex_while_loop.cmj test/condition_compilation_test.cmi test/condition_compilation_test.cmj test/config1_test.cmi test/config1_test.cmj test/console_log_test.cmi test/console_log_test.cmj test/const_block_test.cmi test/const_block_test.cmj test/const_defs.cmi test/const_defs.cmj test/const_defs_test.cmi test/const_defs_test.cmj test/const_test.cmi test/const_test.cmj test/cont_int_fold_test.cmi test/cont_int_fold_test.cmj test/cps_test.cmi test/cps_test.cmj test/cross_module_inline_test.cmi test/cross_module_inline_test.cmj test/custom_error_test.cmi test/custom_error_test.cmj test/debug_keep_test.cmi test/debug_keep_test.cmj test/debug_mode_value.cmi test/debug_mode_value.cmj test/debug_tmp.cmi test/debug_tmp.cmj test/debugger_test.cmi test/debugger_test.cmj test/default_export_test.cmi test/default_export_test.cmj test/defunctor_make_test.cmi test/defunctor_make_test.cmj test/demo_int_map.cmi test/demo_int_map.cmj test/demo_page.cmi test/demo_page.cmj test/demo_pipe.cmi test/demo_pipe.cmj test/derive_projector_test.cmi test/derive_projector_test.cmj test/digest_test.cmi test/digest_test.cmj test/directives.cmi test/directives.cmj test/div_by_zero_test.cmi test/div_by_zero_test.cmj test/dollar_escape_test.cmi test/dollar_escape_test.cmj test/earger_curry_test.cmi test/earger_curry_test.cmj test/effect.cmi test/effect.cmj test/epsilon_test.cmi test/epsilon_test.cmj test/equal_box_test.cmi test/equal_box_test.cmj test/equal_exception_test.cmi test/equal_exception_test.cmj test/equal_test.cmi test/equal_test.cmj test/es6_export.cmi test/es6_export.cmj test/es6_import.cmi test/es6_import.cmj test/es6_module_test.cmi test/es6_module_test.cmj test/escape_esmodule.cmi test/escape_esmodule.cmj test/esmodule_ref.cmi test/esmodule_ref.cmj test/event_ffi.cmi test/event_ffi.cmj test/exception_alias.cmi test/exception_alias.cmj test/exception_raise_test.cmi test/exception_raise_test.cmj test/exception_rebound_err_test.cmi test/exception_rebound_err_test.cmj test/exception_value_test.cmi test/exception_value_test.cmj test/exotic_labels_test.cmi test/exotic_labels_test.cmj test/exponentiation_precedence_test.cmi test/exponentiation_precedence_test.cmj test/export_keyword.cmi test/export_keyword.cmj test/ext_array_test.cmi test/ext_array_test.cmj test/ext_bytes_test.cmi test/ext_bytes_test.cmj test/ext_filename_test.cmi test/ext_filename_test.cmj test/ext_list_test.cmi test/ext_list_test.cmj test/ext_pervasives_test.cmi test/ext_pervasives_test.cmj test/ext_string_test.cmi test/ext_string_test.cmj test/ext_sys_test.cmi test/ext_sys_test.cmj test/extensible_variant_test.cmi test/extensible_variant_test.cmj test/external_polyfill_test.cmi test/external_polyfill_test.cmj test/external_ppx.cmi test/external_ppx.cmj test/external_ppx2.cmi test/external_ppx2.cmj test/ffi_arity_test.cmi test/ffi_arity_test.cmj test/ffi_array_test.cmi test/ffi_array_test.cmj test/ffi_js_test.cmi test/ffi_js_test.cmj test/ffi_splice_test.cmi test/ffi_splice_test.cmj test/ffi_test.cmi test/ffi_test.cmj test/fib.cmi test/fib.cmj test/flattern_order_test.cmi test/flattern_order_test.cmj test/flexible_array_test.cmi test/flexible_array_test.cmj test/float_array.cmi test/float_array.cmj test/float_of_bits_test.cmi test/float_of_bits_test.cmj test/float_record.cmi test/float_record.cmj test/float_test.cmi test/float_test.cmj test/floatarray_test.cmi test/floatarray_test.cmj test/for_loop_test.cmi test/for_loop_test.cmj test/for_side_effect_test.cmi test/for_side_effect_test.cmj test/format_regression.cmi test/format_regression.cmj test/format_test.cmi test/format_test.cmj test/fun_pattern_match.cmi test/fun_pattern_match.cmj test/function_directives.cmi test/function_directives.cmj test/function_directives_no_inline.cmi test/function_directives_no_inline.cmj test/functor_app_test.cmi test/functor_app_test.cmj test/functor_def.cmi test/functor_def.cmj test/functor_ffi.cmi test/functor_ffi.cmj test/functor_inst.cmi test/functor_inst.cmj test/functors.cmi test/functors.cmj test/gbk.cmi test/gbk.cmj test/genlex_test.cmi test/genlex_test.cmj test/gentTypeReTest.cmi test/gentTypeReTest.cmj test/global_exception_regression_test.cmi test/global_exception_regression_test.cmj test/global_mangles.cmi test/global_mangles.cmj test/global_module_alias_test.cmi test/global_module_alias_test.cmj test/google_closure_test.cmi test/google_closure_test.cmj test/gpr496_test.cmi test/gpr496_test.cmj test/gpr_1072.cmi test/gpr_1072.cmj test/gpr_1072_reg.cmi test/gpr_1072_reg.cmj test/gpr_1150.cmi test/gpr_1150.cmj test/gpr_1154_test.cmi test/gpr_1154_test.cmj test/gpr_1170.cmi test/gpr_1170.cmj test/gpr_1240_missing_unbox.cmi test/gpr_1240_missing_unbox.cmj test/gpr_1245_test.cmi test/gpr_1245_test.cmj test/gpr_1268.cmi test/gpr_1268.cmj test/gpr_1409_test.cmi test/gpr_1409_test.cmj test/gpr_1423_app_test.cmi test/gpr_1423_app_test.cmj test/gpr_1423_nav.cmi test/gpr_1423_nav.cmj test/gpr_1438.cmi test/gpr_1438.cmj test/gpr_1481.cmi test/gpr_1481.cmj test/gpr_1484.cmi test/gpr_1484.cmj test/gpr_1503_test.cmi test/gpr_1503_test.cmj test/gpr_1539_test.cmi test/gpr_1539_test.cmj test/gpr_1658_test.cmi test/gpr_1658_test.cmj test/gpr_1667_test.cmi test/gpr_1667_test.cmj test/gpr_1692_test.cmi test/gpr_1692_test.cmj test/gpr_1698_test.cmi test/gpr_1698_test.cmj test/gpr_1701_test.cmi test/gpr_1701_test.cmj test/gpr_1716_test.cmi test/gpr_1716_test.cmj test/gpr_1717_test.cmi test/gpr_1717_test.cmj test/gpr_1728_test.cmi test/gpr_1728_test.cmj test/gpr_1749_test.cmi test/gpr_1749_test.cmj test/gpr_1759_test.cmi test/gpr_1759_test.cmj test/gpr_1760_test.cmi test/gpr_1760_test.cmj test/gpr_1762_test.cmi test/gpr_1762_test.cmj test/gpr_1817_test.cmi test/gpr_1817_test.cmj test/gpr_1822_test.cmi test/gpr_1822_test.cmj test/gpr_1891_test.cmi test/gpr_1891_test.cmj test/gpr_1943_test.cmi test/gpr_1943_test.cmj test/gpr_1946_test.cmi test/gpr_1946_test.cmj test/gpr_2316_test.cmi test/gpr_2316_test.cmj test/gpr_2352_test.cmi test/gpr_2352_test.cmj test/gpr_2413_test.cmi test/gpr_2413_test.cmj test/gpr_2474.cmi test/gpr_2474.cmj test/gpr_2487.cmi test/gpr_2487.cmj test/gpr_2503_test.cmi test/gpr_2503_test.cmj test/gpr_2608_test.cmi test/gpr_2608_test.cmj test/gpr_2614_test.cmi test/gpr_2614_test.cmj test/gpr_2633_test.cmi test/gpr_2633_test.cmj test/gpr_2642_test.cmi test/gpr_2642_test.cmj test/gpr_2682_test.cmi test/gpr_2682_test.cmj test/gpr_2700_test.cmi test/gpr_2700_test.cmj test/gpr_2731_test.cmi test/gpr_2731_test.cmj test/gpr_2789_test.cmi test/gpr_2789_test.cmj test/gpr_2931_test.cmi test/gpr_2931_test.cmj test/gpr_3142_test.cmi test/gpr_3142_test.cmj test/gpr_3154_test.cmi test/gpr_3154_test.cmj test/gpr_3209_test.cmi test/gpr_3209_test.cmj test/gpr_3492_test.cmi test/gpr_3492_test.cmj test/gpr_3519_jsx_test.cmi test/gpr_3519_jsx_test.cmj test/gpr_3519_test.cmi test/gpr_3519_test.cmj test/gpr_3536_test.cmi test/gpr_3536_test.cmj test/gpr_3546_test.cmi test/gpr_3546_test.cmj test/gpr_3548_test.cmi test/gpr_3548_test.cmj test/gpr_3549_test.cmi test/gpr_3549_test.cmj test/gpr_3566_drive_test.cmi test/gpr_3566_drive_test.cmj test/gpr_3566_test.cmi test/gpr_3566_test.cmj test/gpr_3595_test.cmi test/gpr_3595_test.cmj test/gpr_3609_test.cmi test/gpr_3609_test.cmj test/gpr_3697_test.cmi test/gpr_3697_test.cmj test/gpr_373_test.cmi test/gpr_373_test.cmj test/gpr_3770_test.cmi test/gpr_3770_test.cmj test/gpr_3852_alias.cmi test/gpr_3852_alias.cmj test/gpr_3852_alias_reify.cmi test/gpr_3852_alias_reify.cmj test/gpr_3852_effect.cmi test/gpr_3852_effect.cmj test/gpr_3865.cmi test/gpr_3865.cmj test/gpr_3865_bar.cmi test/gpr_3865_bar.cmj test/gpr_3865_foo.cmi test/gpr_3865_foo.cmj test/gpr_3875_test.cmi test/gpr_3875_test.cmj test/gpr_3877_test.cmi test/gpr_3877_test.cmj test/gpr_3895_test.cmi test/gpr_3895_test.cmj test/gpr_3897_test.cmi test/gpr_3897_test.cmj test/gpr_3931_test.cmi test/gpr_3931_test.cmj test/gpr_3980_test.cmi test/gpr_3980_test.cmj test/gpr_4025_test.cmi test/gpr_4025_test.cmj test/gpr_405_test.cmi test/gpr_405_test.cmj test/gpr_4069_test.cmi test/gpr_4069_test.cmj test/gpr_4265_test.cmi test/gpr_4265_test.cmj test/gpr_4274_test.cmi test/gpr_4274_test.cmj test/gpr_4280_test.cmi test/gpr_4280_test.cmj test/gpr_4407_test.cmi test/gpr_4407_test.cmj test/gpr_441.cmi test/gpr_441.cmj test/gpr_4442_test.cmi test/gpr_4442_test.cmj test/gpr_4491_test.cmi test/gpr_4491_test.cmj test/gpr_4494_test.cmi test/gpr_4494_test.cmj test/gpr_4519_test.cmi test/gpr_4519_test.cmj test/gpr_459_test.cmi test/gpr_459_test.cmj test/gpr_4632.cmi test/gpr_4632.cmj test/gpr_4639_test.cmi test/gpr_4639_test.cmj test/gpr_4900_test.cmi test/gpr_4900_test.cmj test/gpr_4924_test.cmi test/gpr_4924_test.cmj test/gpr_4931.cmi test/gpr_4931.cmj test/gpr_4931_allow.cmi test/gpr_4931_allow.cmj test/gpr_5071_test.cmi test/gpr_5071_test.cmj test/gpr_5169_test.cmi test/gpr_5169_test.cmj test/gpr_5218_test.cmi test/gpr_5218_test.cmj test/gpr_5280_optimize_test.cmi test/gpr_5280_optimize_test.cmj test/gpr_5557.cmi test/gpr_5557.cmj test/gpr_5753.cmi test/gpr_5753.cmj test/gpr_658.cmi test/gpr_658.cmj test/gpr_858_test.cmi test/gpr_858_test.cmj test/gpr_858_unit2_test.cmi test/gpr_858_unit2_test.cmj test/gpr_904_test.cmi test/gpr_904_test.cmj test/gpr_974_test.cmi test/gpr_974_test.cmj test/gpr_977_test.cmi test/gpr_977_test.cmj test/gpr_return_type_unused_attribute.cmi test/gpr_return_type_unused_attribute.cmj test/gray_code_test.cmi test/gray_code_test.cmj test/guide_for_ext.cmi test/guide_for_ext.cmj test/hash_collision_test.cmi test/hash_collision_test.cmj test/hash_sugar_desugar.cmi test/hash_sugar_desugar.cmj test/hash_test.cmi test/hash_test.cmj test/hashtbl_test.cmi test/hashtbl_test.cmj test/hello.foo.cmi test/hello.foo.cmj test/hello_res.cmi test/hello_res.cmj test/ignore_test.cmi test/ignore_test.cmj test/ignore_uncurry_attribute.cmi test/ignore_uncurry_attribute.cmj test/imm_map_bench.cmi test/imm_map_bench.cmj test/import2.cmi test/import2.cmj test/import_external.cmi test/import_external.cmj test/import_side_effect.cmi test/import_side_effect.cmj test/import_side_effect_free.cmi test/import_side_effect_free.cmj test/include_side_effect.cmi test/include_side_effect.cmj test/include_side_effect_free.cmi test/include_side_effect_free.cmj test/incomplete_toplevel_test.cmi test/incomplete_toplevel_test.cmj test/infer_type_test.cmi test/infer_type_test.cmj test/inline_condition_with_pattern_matching.cmi test/inline_condition_with_pattern_matching.cmj test/inline_const.cmi test/inline_const.cmj test/inline_const_test.cmi test/inline_const_test.cmj test/inline_edge_cases.cmi test/inline_edge_cases.cmj test/inline_map2_test.cmi test/inline_map2_test.cmj test/inline_map_demo.cmi test/inline_map_demo.cmj test/inline_map_test.cmi test/inline_map_test.cmj test/inline_record_test.cmi test/inline_record_test.cmj test/inline_regression_test.cmi test/inline_regression_test.cmj test/inline_string_test.cmi test/inline_string_test.cmj test/inner_call.cmi test/inner_call.cmj test/inner_define.cmi test/inner_define.cmj test/inner_unused.cmi test/inner_unused.cmj test/installation_test.cmi test/installation_test.cmj test/int32_test.cmi test/int32_test.cmj test/int64_mul_div_test.cmi test/int64_mul_div_test.cmj test/int64_string_bench.cmi test/int64_string_bench.cmj test/int64_string_test.cmi test/int64_string_test.cmj test/int64_test.cmi test/int64_test.cmj test/int_hashtbl_test.cmi test/int_hashtbl_test.cmj test/int_map.cmi test/int_map.cmj test/int_overflow_test.cmi test/int_overflow_test.cmj test/int_poly_var.cmi test/int_poly_var.cmj test/int_switch_test.cmi test/int_switch_test.cmj test/internal_unused_test.cmi test/internal_unused_test.cmj test/io_test.cmi test/io_test.cmj test/js_array_test.cmi test/js_array_test.cmj test/js_bool_test.cmi test/js_bool_test.cmj test/js_cast_test.cmi test/js_cast_test.cmj test/js_date_test.cmi test/js_date_test.cmj test/js_dict_test.cmi test/js_dict_test.cmj test/js_exception_catch_test.cmi test/js_exception_catch_test.cmj test/js_float_test.cmi test/js_float_test.cmj test/js_global_test.cmi test/js_global_test.cmj test/js_int_test.cmi test/js_int_test.cmj test/js_json_test.cmi test/js_json_test.cmj test/js_math_test.cmi test/js_math_test.cmj test/js_null_test.cmi test/js_null_test.cmj test/js_null_undefined_test.cmi test/js_null_undefined_test.cmj test/js_nullable_test.cmi test/js_nullable_test.cmj test/js_obj_test.cmi test/js_obj_test.cmj test/js_option_test.cmi test/js_option_test.cmj test/js_re_test.cmi test/js_re_test.cmj test/js_string_test.cmi test/js_string_test.cmj test/js_undefined_test.cmi test/js_undefined_test.cmj test/js_val.cmi test/js_val.cmj test/jsoo_400_test.cmi test/jsoo_400_test.cmj test/jsoo_485_test.cmi test/jsoo_485_test.cmj test/jsxv4_newtype.cmi test/jsxv4_newtype.cmj test/keep_uncurry_attribute.cmi test/keep_uncurry_attribute.cmj test/key_word_property.cmi test/key_word_property.cmj test/key_word_property2.cmi test/key_word_property2.cmj test/key_word_property_plus_test.cmi test/key_word_property_plus_test.cmj test/label_uncurry.cmi test/label_uncurry.cmj test/large_integer_pat.cmi test/large_integer_pat.cmj test/large_record_duplication_test.cmi test/large_record_duplication_test.cmj test/largest_int_flow.cmi test/largest_int_flow.cmj test/lazy_demo.cmi test/lazy_demo.cmj test/lazy_test.cmi test/lazy_test.cmj test/lib_js_test.cmi test/lib_js_test.cmj test/libarg_test.cmi test/libarg_test.cmj test/libqueue_test.cmi test/libqueue_test.cmj test/limits_test.cmi test/limits_test.cmj test/list_stack.cmi test/list_stack.cmj test/list_test.cmi test/list_test.cmj test/local_exception_test.cmi test/local_exception_test.cmj test/loop_regression_test.cmi test/loop_regression_test.cmj test/map_find_test.cmi test/map_find_test.cmj test/map_test.cmi test/map_test.cmj test/mario_game.cmi test/mario_game.cmj test/marshal.cmi test/marshal.cmj test/meth_annotation.cmi test/meth_annotation.cmj test/method_name_test.cmi test/method_name_test.cmj test/method_string_name.cmi test/method_string_name.cmj test/minimal_test.cmi test/minimal_test.cmj test/miss_colon_test.cmi test/miss_colon_test.cmj test/mock_mt.cmi test/mock_mt.cmj test/module_alias_test.cmi test/module_alias_test.cmj test/module_as_class_ffi.cmi test/module_as_class_ffi.cmj test/module_as_function.cmi test/module_as_function.cmj test/module_missing_conversion.cmi test/module_missing_conversion.cmj test/module_parameter_test.cmi test/module_parameter_test.cmj test/module_splice_test.cmi test/module_splice_test.cmj test/more_poly_variant_test.cmi test/more_poly_variant_test.cmj test/more_uncurry.cmi test/more_uncurry.cmj test/mpr_6033_test.cmi test/mpr_6033_test.cmj test/mt.cmi test/mt.cmj test/mt_global.cmi test/mt_global.cmj test/mutable_obj_test.cmi test/mutable_obj_test.cmj test/mutable_uncurry_test.cmi test/mutable_uncurry_test.cmj test/mutual_non_recursive_type.cmi test/mutual_non_recursive_type.cmj test/name_mangle_test.cmi test/name_mangle_test.cmj test/nested_include.cmi test/nested_include.cmj test/nested_module_alias.cmi test/nested_module_alias.cmj test/nested_obj_literal.cmi test/nested_obj_literal.cmj test/nested_obj_test.cmi test/nested_obj_test.cmj test/nested_pattern_match_test.cmi test/nested_pattern_match_test.cmj test/noassert.cmi test/noassert.cmj test/node_path_test.cmi test/node_path_test.cmj test/number_lexer.cmi test/number_lexer.cmj test/obj_literal_ppx.cmi test/obj_literal_ppx.cmj test/obj_literal_ppx_test.cmi test/obj_literal_ppx_test.cmj test/obj_magic_test.cmi test/obj_magic_test.cmj test/obj_type_test.cmi test/obj_type_test.cmj test/ocaml_re_test.cmi test/ocaml_re_test.cmj test/of_string_test.cmi test/of_string_test.cmj test/offset.cmi test/offset.cmj test/omit_trailing_undefined_in_external_calls.cmi test/omit_trailing_undefined_in_external_calls.cmj test/option_encoding_test.cmi test/option_encoding_test.cmj test/option_repr_test.cmi test/option_repr_test.cmj test/optional_ffi_test.cmi test/optional_ffi_test.cmj test/optional_regression_test.cmi test/optional_regression_test.cmj test/pipe_send_readline.cmi test/pipe_send_readline.cmj test/pipe_syntax.cmi test/pipe_syntax.cmj test/poly_empty_array.cmi test/poly_empty_array.cmj test/poly_variant_test.cmi test/poly_variant_test.cmj test/polymorphic_raw_test.cmi test/polymorphic_raw_test.cmj test/polymorphism_test.cmi test/polymorphism_test.cmj test/polyvar_convert.cmi test/polyvar_convert.cmj test/polyvar_test.cmi test/polyvar_test.cmj test/ppx_apply_test.cmi test/ppx_apply_test.cmj test/pq_test.cmi test/pq_test.cmj test/pr6726.cmi test/pr6726.cmj test/prepend_data_ffi.cmi test/prepend_data_ffi.cmj test/primitive_reg_test.cmi test/primitive_reg_test.cmj test/print_alpha_test.cmi test/print_alpha_test.cmj test/queue_402.cmi test/queue_402.cmj test/queue_test.cmi test/queue_test.cmj test/random_test.cmi test/random_test.cmj test/raw_hash_tbl_bench.cmi test/raw_hash_tbl_bench.cmj test/raw_output_test.cmi test/raw_output_test.cmj test/raw_pure_test.cmi test/raw_pure_test.cmj test/rbset.cmi test/rbset.cmj test/react.cmi test/react.cmj test/reactDOMRe.cmi test/reactDOMRe.cmj test/reactDOMServerRe.cmi test/reactDOMServerRe.cmj test/reactEvent.cmi test/reactEvent.cmj test/reactTestUtils.cmi test/reactTestUtils.cmj test/reasonReact.cmi test/reasonReact.cmj test/reasonReactCompat.cmi test/reasonReactCompat.cmj test/reasonReactOptimizedCreateClass.cmi test/reasonReactOptimizedCreateClass.cmj test/reasonReactRouter.cmi test/reasonReactRouter.cmj test/rebind_module.cmi test/rebind_module.cmj test/rebind_module_test.cmi test/rebind_module_test.cmj test/rec_array_test.cmi test/rec_array_test.cmj test/rec_fun_test.cmi test/rec_fun_test.cmj test/rec_module_opt.cmi test/rec_module_opt.cmj test/rec_module_test.cmi test/rec_module_test.cmj test/recmodule.cmi test/recmodule.cmj test/record_debug_test.cmi test/record_debug_test.cmj test/record_extension_test.cmi test/record_extension_test.cmj test/record_name_test.cmi test/record_name_test.cmj test/record_regression.cmi test/record_regression.cmj test/record_type_spread.cmi test/record_type_spread.cmj test/record_with_test.cmi test/record_with_test.cmj test/recursive_module.cmi test/recursive_module.cmj test/recursive_module_test.cmi test/recursive_module_test.cmj test/recursive_react_component.cmi test/recursive_react_component.cmj test/recursive_records_test.cmi test/recursive_records_test.cmj test/recursive_unbound_module_test.cmi test/recursive_unbound_module_test.cmj test/regression_print.cmi test/regression_print.cmj test/relative_path.cmi test/relative_path.cmj test/res_debug.cmi test/res_debug.cmj test/return_check.cmi test/return_check.cmj test/runtime_encoding_test.cmi test/runtime_encoding_test.cmj test/set_annotation.cmi test/set_annotation.cmj test/set_gen.cmi test/set_gen.cmj test/sexp.cmi test/sexp.cmj test/sexpm.cmi test/sexpm.cmj test/sexpm_test.cmi test/sexpm_test.cmj test/side_effect.cmi test/side_effect.cmj test/side_effect2.cmi test/side_effect2.cmj test/side_effect_free.cmi test/side_effect_free.cmj test/simplify_lambda_632o.cmi test/simplify_lambda_632o.cmj test/single_module_alias.cmi test/single_module_alias.cmj test/singular_unit_test.cmi test/singular_unit_test.cmj test/small_inline_test.cmi test/small_inline_test.cmj test/splice_test.cmi test/splice_test.cmj test/stack_comp_test.cmi test/stack_comp_test.cmj test/stack_test.cmi test/stack_test.cmj test/stream_parser_test.cmi test/stream_parser_test.cmj test/string_bound_get_test.cmi test/string_bound_get_test.cmj test/string_constant_compare.cmi test/string_constant_compare.cmj test/string_get_set_test.cmi test/string_get_set_test.cmj test/string_runtime_test.cmi test/string_runtime_test.cmj test/string_set.cmi test/string_set.cmj test/string_set_test.cmi test/string_set_test.cmj test/string_test.cmi test/string_test.cmj test/string_unicode_test.cmi test/string_unicode_test.cmj test/stringmatch_test.cmi test/stringmatch_test.cmj test/submodule.cmi test/submodule.cmj test/submodule_call.cmi test/submodule_call.cmj test/switch_case_test.cmi test/switch_case_test.cmj test/switch_string.cmi test/switch_string.cmj test/tagged_template_test.cmi test/tagged_template_test.cmj test/tailcall_inline_test.cmi test/tailcall_inline_test.cmj test/template.cmi test/template.cmj test/test2.cmi test/test2.cmj test/test_alias.cmi test/test_alias.cmj test/test_ari.cmi test/test_ari.cmj test/test_array.cmi test/test_array.cmj test/test_array_append.cmi test/test_array_append.cmj test/test_array_primitive.cmi test/test_array_primitive.cmj test/test_bool_equal.cmi test/test_bool_equal.cmj test/test_bs_this.cmi test/test_bs_this.cmj test/test_bug.cmi test/test_bug.cmj test/test_bytes.cmi test/test_bytes.cmj test/test_case_opt_collision.cmi test/test_case_opt_collision.cmj test/test_case_set.cmi test/test_case_set.cmj test/test_char.cmi test/test_char.cmj test/test_closure.cmi test/test_closure.cmj test/test_common.cmi test/test_common.cmj test/test_const_elim.cmi test/test_const_elim.cmj test/test_const_propogate.cmi test/test_const_propogate.cmj test/test_cpp.cmi test/test_cpp.cmj test/test_cps.cmi test/test_cps.cmj test/test_demo.cmi test/test_demo.cmj test/test_dup_param.cmi test/test_dup_param.cmj test/test_eq.cmi test/test_eq.cmj test/test_exception.cmi test/test_exception.cmj test/test_exception_escape.cmi test/test_exception_escape.cmj test/test_export2.cmi test/test_export2.cmj test/test_external.cmi test/test_external.cmj test/test_external_unit.cmi test/test_external_unit.cmj test/test_ffi.cmi test/test_ffi.cmj test/test_fib.cmi test/test_fib.cmj test/test_filename.cmi test/test_filename.cmj test/test_for_loop.cmi test/test_for_loop.cmj test/test_for_map.cmi test/test_for_map.cmj test/test_for_map2.cmi test/test_for_map2.cmj test/test_functor_dead_code.cmi test/test_functor_dead_code.cmj test/test_generative_module.cmi test/test_generative_module.cmj test/test_global_print.cmi test/test_global_print.cmj test/test_google_closure.cmi test/test_google_closure.cmj test/test_include.cmi test/test_include.cmj test/test_incomplete.cmi test/test_incomplete.cmj test/test_incr_ref.cmi test/test_incr_ref.cmj test/test_int_map_find.cmi test/test_int_map_find.cmj test/test_is_js.cmi test/test_is_js.cmj test/test_js_ffi.cmi test/test_js_ffi.cmj test/test_let.cmi test/test_let.cmj test/test_list.cmi test/test_list.cmj test/test_literal.cmi test/test_literal.cmj test/test_literals.cmi test/test_literals.cmj test/test_match_exception.cmi test/test_match_exception.cmj test/test_mutliple.cmi test/test_mutliple.cmj test/test_nat64.cmi test/test_nat64.cmj test/test_nested_let.cmi test/test_nested_let.cmj test/test_nested_print.cmi test/test_nested_print.cmj test/test_non_export.cmi test/test_non_export.cmj test/test_nullary.cmi test/test_nullary.cmj test/test_obj.cmi test/test_obj.cmj test/test_order.cmi test/test_order.cmj test/test_order_tailcall.cmi test/test_order_tailcall.cmj test/test_other_exn.cmi test/test_other_exn.cmj test/test_per.cmi test/test_per.cmj test/test_pervasive.cmi test/test_pervasive.cmj test/test_pervasives2.cmi test/test_pervasives2.cmj test/test_pervasives3.cmi test/test_pervasives3.cmj test/test_primitive.cmi test/test_primitive.cmj test/test_ramification.cmi test/test_ramification.cmj test/test_react.cmi test/test_react.cmj test/test_react_case.cmi test/test_react_case.cmj test/test_regex.cmi test/test_regex.cmj test/test_runtime_encoding.cmi test/test_runtime_encoding.cmj test/test_scope.cmi test/test_scope.cmj test/test_seq.cmi test/test_seq.cmj test/test_set.cmi test/test_set.cmj test/test_side_effect_functor.cmi test/test_side_effect_functor.cmj test/test_simple_include.cmi test/test_simple_include.cmj test/test_simple_pattern_match.cmi test/test_simple_pattern_match.cmj test/test_simple_ref.cmi test/test_simple_ref.cmj test/test_simple_tailcall.cmi test/test_simple_tailcall.cmj test/test_small.cmi test/test_small.cmj test/test_stack.cmi test/test_stack.cmj test/test_static_catch_ident.cmi test/test_static_catch_ident.cmj test/test_string.cmi test/test_string.cmj test/test_string_case.cmi test/test_string_case.cmj test/test_string_const.cmi test/test_string_const.cmj test/test_string_map.cmi test/test_string_map.cmj test/test_string_switch.cmi test/test_string_switch.cmj test/test_switch.cmi test/test_switch.cmj test/test_trywith.cmi test/test_trywith.cmj test/test_tuple.cmi test/test_tuple.cmj test/test_tuple_destructring.cmi test/test_tuple_destructring.cmj test/test_type_based_arity.cmi test/test_type_based_arity.cmj test/test_u.cmi test/test_u.cmj test/test_unknown.cmi test/test_unknown.cmj test/test_unsafe_cmp.cmi test/test_unsafe_cmp.cmj test/test_unsafe_obj_ffi.cmi test/test_unsafe_obj_ffi.cmj test/test_unsafe_obj_ffi_ppx.cmi test/test_unsafe_obj_ffi_ppx.cmj test/test_unsupported_primitive.cmi test/test_unsupported_primitive.cmj test/test_while_closure.cmi test/test_while_closure.cmj test/test_while_side_effect.cmi test/test_while_side_effect.cmj test/test_zero_nullable.cmi test/test_zero_nullable.cmj test/then_mangle_test.cmi test/then_mangle_test.cmj test/ticker.cmi test/ticker.cmj test/to_string_test.cmi test/to_string_test.cmj test/topsort_test.cmi test/topsort_test.cmj test/tramp_fib.cmi test/tramp_fib.cmj test/tuple_alloc.cmi test/tuple_alloc.cmj test/type-coercion-free-vars.cmi test/type-coercion-free-vars.cmj test/type_disambiguate.cmi test/type_disambiguate.cmj test/typeof_test.cmi test/typeof_test.cmj test/unboxed_attribute.cmi test/unboxed_attribute.cmj test/unboxed_attribute_test.cmi test/unboxed_attribute_test.cmj test/unboxed_crash.cmi test/unboxed_crash.cmj test/unboxed_use_case.cmi test/unboxed_use_case.cmj test/uncurried_cast.cmi test/uncurried_cast.cmj test/uncurried_default.args.cmi test/uncurried_default.args.cmj test/uncurried_pipe.cmi test/uncurried_pipe.cmj test/uncurry_external_test.cmi test/uncurry_external_test.cmj test/uncurry_glob_test.cmi test/uncurry_glob_test.cmj test/uncurry_test.cmi test/uncurry_test.cmj test/undef_regression2_test.cmi test/undef_regression2_test.cmj test/undef_regression_test.cmi test/undef_regression_test.cmj test/unit_undefined_test.cmi test/unit_undefined_test.cmj test/unsafe_full_apply_primitive.cmi test/unsafe_full_apply_primitive.cmj test/unsafe_ppx_test.cmi test/unsafe_ppx_test.cmj test/update_record_test.cmi test/update_record_test.cmj test/variant.cmi test/variant.cmj test/variantsMatching.cmi test/variantsMatching.cmj test/webpack_config.cmi test/webpack_config.cmj diff --git a/jscomp/test/fail_comp.js b/jscomp/test/fail_comp.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/fail_comp.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/fail_comp.res b/jscomp/test/fail_comp.res deleted file mode 100644 index 6b36e83875..0000000000 --- a/jscomp/test/fail_comp.res +++ /dev/null @@ -1 +0,0 @@ -/* let v : string = Bytes.create 40 */ diff --git a/jscomp/test/global_mangles.js b/jscomp/test/global_mangles.js index f7c9ff325a..134806694a 100644 --- a/jscomp/test/global_mangles.js +++ b/jscomp/test/global_mangles.js @@ -6,42 +6,12 @@ let $$__dirname = 1; let $$__filename = 2; -let clearImmediate = 3; +let $$exports = 3; -let clearInterval = 4; - -let clearTimeout = 5; - -let console = 6; - -let $$exports = 7; - -let global = 8; - -let _module = 9; - -let process = 10; - -let $$require = 11; - -let setImmediate = 12; - -let setInterval = 13; - -let setTimeout = 14; +let $$require = 4; exports.$$__dirname = $$__dirname; exports.$$__filename = $$__filename; -exports.clearImmediate = clearImmediate; -exports.clearInterval = clearInterval; -exports.clearTimeout = clearTimeout; -exports.console = console; exports.$$exports = $$exports; -exports.global = global; -exports._module = _module; -exports.process = process; exports.$$require = $$require; -exports.setImmediate = setImmediate; -exports.setInterval = setInterval; -exports.setTimeout = setTimeout; /* No side effect */ diff --git a/jscomp/test/global_mangles.res b/jscomp/test/global_mangles.res index 102f8ed2e4..f3b2e30199 100644 --- a/jscomp/test/global_mangles.res +++ b/jscomp/test/global_mangles.res @@ -1,18 +1,8 @@ -/* https://nodejs.org/api/globals.html */ +/* Reserved in CommonJS */ let ( __dirname, __filename, - clearImmediate, - clearInterval, - clearTimeout, - console, exports, - global, - _module, - process, require, - setImmediate, - setInterval, - setTimeout, -) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) +) = (1, 2, 3, 4) diff --git a/jscomp/test/gpr_1150.res b/jscomp/test/gpr_1150.res index 5b6b00750f..e69d358dde 100644 --- a/jscomp/test/gpr_1150.res +++ b/jscomp/test/gpr_1150.res @@ -115,87 +115,3 @@ let f = children => } } } - -/* - match children with - | [] -> [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16|] - | a17::children -> - match children with - | [] -> [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16;a17|] - | a18::children -> - match children with - | [] -> [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16;a17;a18|] - | a19::children -> - match children with - | [] -> [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16;a17;a18;a19|] - | _ -> assert false - -*/ - -/* This function seems to trigger quadratice behavior with the length of [children] - memory consumption is okay - 17 -> 4s - 18 -> 9s - 19 -> 19s - 20 -> 40s - */ -/* -let f children = - match children with - | [] -> [||] - | a::[] -> [|a|] - | a::b::[] -> [|a;b|] - | a::b::c::[] -> [|a;b;c|] - | a::b::c::d::[] -> - [|a;b;c;d|] - | a::b::c::d::e::[] -> - [|a;b;c;d;e|] - | a::b::c::d::e::f::[] -> - [|a;b;c;d;e;f|] - | a::b::c::d::e::f::g::[] -> - [|a;b;c;d;e;f;g|] - | a::b::c::d::e::f::g::h::[] -> - [|a;b;c;d;e;f;g;h|] - | a::b::c::d::e::f::g::h::i::[] -> - [|a;b;c;d;e;f;g;h;i|] - | a::b::c::d::e::f::g::h::i::j::[] -> - [|a;b;c;d;e;f;g;h;i;j|] - | a::b::c::d::e::f::g::h::i::j::k::[] -> - [|a;b;c;d;e;f;g;h;i;j;k|] - | a::b::c::d::e::f::g::h::i::j::k::l::[] -> - - [|a;b;c;d;e;f;g;h;i;j;k;l|] - | a::b::c::d::e::f::g::h::i::j::k::l::m::[] -> - - [|a;b;c;d;e;f;g;h;i;j;k;l;m|] - | a::b::c::d::e::f::g::h::i::j::k::l::m::n::[] -> - - [|a;b;c;d;e;f;g;h;i;j;k;l;m;n|] - | a::b::c::d::e::f::g::h::i::j::k::l::m::n::o::[] -> - - [|a;b;c;d;e;f;g;h;i;j;k;l;m;n;o|] - | a::b::c::d::e::f::g::h::i::j::k::l::m::n::o::p::[] -> - - [|a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p|] - | a::b::c::d::e::f::g::h::i::j::k::l::m::n::o::p::q::[] -> - - [|a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q|] - | a0::a1::a2::a3::a4::a5::a6::a7::a8::a9::a10::a11::a12::a13::a14::a15::a16::a17::[] -> - - [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16;a17|] - | a0::a1::a2::a3::a4::a5::a6::a7::a8::a9::a10::a11::a12::a13::a14::a15::a16::a17::a18::[] -> - - [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16;a17;a18|] - | a0::a1::a2::a3::a4::a5::a6::a7::a8::a9::a10::a11::a12::a13::a14::a15::a16::a17::a18::a19::[] -> - - [|a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;a10;a11;a12;a13;a14;a15;a16;a17;a18;a19|] - - | _ -> - let msg = - "Reason allows up to 17 static children (but dynamic children in an array can be unlimited in size); You have " - ^ - ((string_of_int (List.length children)) ^ - ", please put them in an array and assign key to the elements. Sorry for the inconvenience!") in - raise ((Invalid_argument (msg))[@explicit_arity ]) - -*/ diff --git a/jscomp/test/key_word_property_plus_test.js b/jscomp/test/key_word_property_plus_test.js index 15f26b1b9f..e8ab212a11 100644 --- a/jscomp/test/key_word_property_plus_test.js +++ b/jscomp/test/key_word_property_plus_test.js @@ -33,20 +33,10 @@ eq("File \"key_word_property_plus_test.res\", line 10, characters 2-9", [ 1, 2, 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 + 4 ].reduce((function (prim0, prim1) { return prim0 + prim1 | 0; -}), 0), ((((((((((((Global_mangles.$$__dirname + Global_mangles.$$__filename | 0) + Global_mangles.clearImmediate | 0) + Global_mangles.clearInterval | 0) + Global_mangles.clearTimeout | 0) + Global_mangles.console | 0) + Global_mangles.$$exports | 0) + Global_mangles.global | 0) + Global_mangles._module | 0) + Global_mangles.process | 0) + Global_mangles.$$require | 0) + Global_mangles.setImmediate | 0) + Global_mangles.setInterval | 0) + Global_mangles.setTimeout | 0); +}), 0), ((Global_mangles.$$__dirname + Global_mangles.$$__filename | 0) + Global_mangles.$$exports | 0) + Global_mangles.$$require | 0); Mt.from_pair_suites("Key_word_property_plus_test", suites.contents); diff --git a/jscomp/test/key_word_property_plus_test.res b/jscomp/test/key_word_property_plus_test.res index 9dd9828cd1..c8a3639c40 100644 --- a/jscomp/test/key_word_property_plus_test.res +++ b/jscomp/test/key_word_property_plus_test.res @@ -8,23 +8,13 @@ let eq = (loc, x, y) => { let () = eq( __LOC__, - Js.Array2.reduce([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], \"+", 0), + Js.Array2.reduce([1, 2, 3, 4], \"+", 0), { open Global_mangles __dirname + __filename + - clearImmediate + - clearInterval + - clearTimeout + - console + exports + - global + - _module + - process + - require + - setImmediate + - setInterval + - setTimeout + require }, ) diff --git a/jscomp/test/lam.md b/jscomp/test/lam.md deleted file mode 100644 index b065bfef0e..0000000000 --- a/jscomp/test/lam.md +++ /dev/null @@ -1,16 +0,0 @@ - - -== optimizations done in `Lam.convert` - -1. Specialize `CamlinternalMod`, `Pervasives.(^)` functions for recursive module -2. Alias removing - -[source,ocaml] --------------- -let x = y (x/y) -let u = x (u/x, x/y -> u/y) --------------- - -3. extract `Psj_unsafe_downgrade` - -4. scc for recursive functions \ No newline at end of file diff --git a/jscomp/test/lint.sh b/jscomp/test/lint.sh deleted file mode 100755 index b12866533a..0000000000 --- a/jscomp/test/lint.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -set -e -eslint -f unix . > ./err.compile diff --git a/jscomp/test/loop_suites_test.js b/jscomp/test/loop_suites_test.js deleted file mode 100644 index cb39bae90f..0000000000 --- a/jscomp/test/loop_suites_test.js +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -'use strict'; - -let Mt = require("./mt.js"); -let For_loop_test = require("./for_loop_test.js"); - -Mt.from_pair_suites("for_loop_test", For_loop_test.suites); - -/* Not a pure module */ diff --git a/jscomp/test/loop_suites_test.res b/jscomp/test/loop_suites_test.res deleted file mode 100644 index 04e52dc62e..0000000000 --- a/jscomp/test/loop_suites_test.res +++ /dev/null @@ -1 +0,0 @@ -Mt.from_pair_suites("for_loop_test", For_loop_test.suites) diff --git a/jscomp/test/map_test.js b/jscomp/test/map_test.js index 2b04082cb6..3979650d1f 100644 --- a/jscomp/test/map_test.js +++ b/jscomp/test/map_test.js @@ -4,6 +4,13 @@ let Mt = require("./mt.js"); let Caml = require("../../lib/js/caml.js"); let List = require("../../lib/js/list.js"); +let Caml_option = require("../../lib/js/caml_option.js"); + +let compare = Caml.int_compare; + +let Int = { + compare: compare +}; function height(param) { if (typeof param !== "object") { @@ -26,6 +33,17 @@ function create(l, x, d, r) { }; } +function singleton(x, d) { + return { + TAG: "Node", + l: "Empty", + v: x, + d: d, + r: "Empty", + h: 1 + }; +} + function bal(l, x, d, r) { let hl; hl = typeof l !== "object" ? 0 : l.h; @@ -93,6 +111,14 @@ function bal(l, x, d, r) { }); } +function is_empty(param) { + if (typeof param !== "object") { + return true; + } else { + return false; + } +} + function add(x, data, param) { if (typeof param !== "object") { return { @@ -139,184 +165,959 @@ function add(x, data, param) { } } -function cons_enum(_m, _e) { +function find(x, _param) { while(true) { - let e = _e; - let m = _m; - if (typeof m !== "object") { - return e; + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); } - _e = { - TAG: "More", - _0: m.v, - _1: m.d, - _2: m.r, - _3: e - }; - _m = m.l; + let c = Caml.int_compare(x, param.v); + if (c === 0) { + return param.d; + } + _param = c < 0 ? param.l : param.r; continue; }; } -function compare(cmp, m1, m2) { - let _e1 = cons_enum(m1, "End"); - let _e2 = cons_enum(m2, "End"); +function find_first(f, _param) { while(true) { - let e2 = _e2; - let e1 = _e1; - if (typeof e1 !== "object") { - if (typeof e2 !== "object") { - return 0; - } else { - return -1; - } + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); } - if (typeof e2 !== "object") { - return 1; + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.l; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.l; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.r; + continue; + }; } - let c = Caml.int_compare(e1._0, e2._0); - if (c !== 0) { - return c; + _param = param.r; + continue; + }; +} + +function find_first_opt(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; } - let c$1 = cmp(e1._1, e2._1); - if (c$1 !== 0) { - return c$1; + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.l; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.l; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.r; + continue; + }; } - _e2 = cons_enum(e2._2, e2._3); - _e1 = cons_enum(e1._2, e1._3); + _param = param.r; continue; }; } -function equal(cmp, m1, m2) { - let _e1 = cons_enum(m1, "End"); - let _e2 = cons_enum(m2, "End"); +function find_last(f, _param) { while(true) { - let e2 = _e2; - let e1 = _e1; - if (typeof e1 !== "object") { - if (typeof e2 !== "object") { - return true; - } else { - return false; - } + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); } - if (typeof e2 !== "object") { - return false; + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.r; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.r; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.l; + continue; + }; } - if (e1._0 !== e2._0) { - return false; + _param = param.l; + continue; + }; +} + +function find_last_opt(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; } - if (!cmp(e1._1, e2._1)) { - return false; + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.r; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.r; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.l; + continue; + }; } - _e2 = cons_enum(e2._2, e2._3); - _e1 = cons_enum(e1._2, e1._3); + _param = param.l; continue; }; } -function cardinal(param) { - if (typeof param !== "object") { - return 0; - } else { - return (cardinal(param.l) + 1 | 0) + cardinal(param.r) | 0; - } +function find_opt(x, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let c = Caml.int_compare(x, param.v); + if (c === 0) { + return Caml_option.some(param.d); + } + _param = c < 0 ? param.l : param.r; + continue; + }; } -function height$1(param) { - if (typeof param !== "object") { - return 0; - } else { - return param.h; - } +function mem(x, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return false; + } + let c = Caml.int_compare(x, param.v); + if (c === 0) { + return true; + } + _param = c < 0 ? param.l : param.r; + continue; + }; } -function create$1(l, x, d, r) { - let hl = height$1(l); - let hr = height$1(r); - return { - TAG: "Node", - l: l, - v: x, - d: d, - r: r, - h: hl >= hr ? hl + 1 | 0 : hr + 1 | 0 +function min_binding(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); + } + let l = param.l; + if (typeof l !== "object") { + return [ + param.v, + param.d + ]; + } + _param = l; + continue; }; } -function bal$1(l, x, d, r) { - let hl; - hl = typeof l !== "object" ? 0 : l.h; - let hr; - hr = typeof r !== "object" ? 0 : r.h; - if (hl > (hr + 2 | 0)) { +function min_binding_opt(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let l = param.l; if (typeof l !== "object") { - throw new Error("Invalid_argument", { + return [ + param.v, + param.d + ]; + } + _param = l; + continue; + }; +} + +function max_binding(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { cause: { - RE_EXN_ID: "Invalid_argument", - _1: "Map.bal" + RE_EXN_ID: "Not_found" } }); } - let lr = l.r; - let ld = l.d; - let lv = l.v; - let ll = l.l; - if (height$1(ll) >= height$1(lr)) { - return create$1(ll, lv, ld, create$1(lr, x, d, r)); + let r = param.r; + if (typeof r !== "object") { + return [ + param.v, + param.d + ]; } - if (typeof lr === "object") { - return create$1(create$1(ll, lv, ld, lr.l), lr.v, lr.d, create$1(lr.r, x, d, r)); + _param = r; + continue; + }; +} + +function max_binding_opt(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; } + let r = param.r; + if (typeof r !== "object") { + return [ + param.v, + param.d + ]; + } + _param = r; + continue; + }; +} + +function remove_min_binding(param) { + if (typeof param !== "object") { throw new Error("Invalid_argument", { cause: { RE_EXN_ID: "Invalid_argument", - _1: "Map.bal" + _1: "Map.remove_min_elt" } }); } - if (hr <= (hl + 2 | 0)) { - return { - TAG: "Node", - l: l, - v: x, - d: d, - r: r, - h: hl >= hr ? hl + 1 | 0 : hr + 1 | 0 - }; - } - if (typeof r !== "object") { - throw new Error("Invalid_argument", { - cause: { - RE_EXN_ID: "Invalid_argument", - _1: "Map.bal" - } - }); + let l = param.l; + if (typeof l !== "object") { + return param.r; + } else { + return bal(remove_min_binding(l), param.v, param.d, param.r); } - let rr = r.r; - let rd = r.d; - let rv = r.v; - let rl = r.l; - if (height$1(rr) >= height$1(rl)) { - return create$1(create$1(l, x, d, rl), rv, rd, rr); +} + +function merge(t1, t2) { + if (typeof t1 !== "object") { + return t2; } - if (typeof rl === "object") { - return create$1(create$1(l, x, d, rl.l), rl.v, rl.d, create$1(rl.r, rv, rd, rr)); + if (typeof t2 !== "object") { + return t1; } - throw new Error("Invalid_argument", { - cause: { - RE_EXN_ID: "Invalid_argument", - _1: "Map.bal" - } - }); + let match = min_binding(t2); + return bal(t1, match[0], match[1], remove_min_binding(t2)); } -function add$1(x, data, param) { +function remove(x, param) { if (typeof param !== "object") { - return { - TAG: "Node", - l: "Empty", + return "Empty"; + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let c = Caml.int_compare(x, v); + if (c === 0) { + return merge(l, r); + } + if (c < 0) { + let ll = remove(x, l); + if (l === ll) { + return param; + } else { + return bal(ll, v, d, r); + } + } + let rr = remove(x, r); + if (r === rr) { + return param; + } else { + return bal(l, v, d, rr); + } +} + +function update(x, f, param) { + if (typeof param !== "object") { + let data = f(undefined); + if (data !== undefined) { + return { + TAG: "Node", + l: "Empty", + v: x, + d: Caml_option.valFromOption(data), + r: "Empty", + h: 1 + }; + } else { + return "Empty"; + } + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let c = Caml.int_compare(x, v); + if (c === 0) { + let data$1 = f(Caml_option.some(d)); + if (data$1 === undefined) { + return merge(l, r); + } + let data$2 = Caml_option.valFromOption(data$1); + if (d === data$2) { + return param; + } else { + return { + TAG: "Node", + l: l, + v: x, + d: data$2, + r: r, + h: param.h + }; + } + } + if (c < 0) { + let ll = update(x, f, l); + if (l === ll) { + return param; + } else { + return bal(ll, v, d, r); + } + } + let rr = update(x, f, r); + if (r === rr) { + return param; + } else { + return bal(l, v, d, rr); + } +} + +function iter(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + iter(f, param.l); + f(param.v, param.d); + _param = param.r; + continue; + }; +} + +function map(f, param) { + if (typeof param !== "object") { + return "Empty"; + } + let l$p = map(f, param.l); + let d$p = f(param.d); + let r$p = map(f, param.r); + return { + TAG: "Node", + l: l$p, + v: param.v, + d: d$p, + r: r$p, + h: param.h + }; +} + +function mapi(f, param) { + if (typeof param !== "object") { + return "Empty"; + } + let v = param.v; + let l$p = mapi(f, param.l); + let d$p = f(v, param.d); + let r$p = mapi(f, param.r); + return { + TAG: "Node", + l: l$p, + v: v, + d: d$p, + r: r$p, + h: param.h + }; +} + +function fold(f, _m, _accu) { + while(true) { + let accu = _accu; + let m = _m; + if (typeof m !== "object") { + return accu; + } + _accu = f(m.v, m.d, fold(f, m.l, accu)); + _m = m.r; + continue; + }; +} + +function for_all(p, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return true; + } + if (!p(param.v, param.d)) { + return false; + } + if (!for_all(p, param.l)) { + return false; + } + _param = param.r; + continue; + }; +} + +function exists(p, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return false; + } + if (p(param.v, param.d)) { + return true; + } + if (exists(p, param.l)) { + return true; + } + _param = param.r; + continue; + }; +} + +function add_min_binding(k, x, param) { + if (typeof param !== "object") { + return singleton(k, x); + } else { + return bal(add_min_binding(k, x, param.l), param.v, param.d, param.r); + } +} + +function add_max_binding(k, x, param) { + if (typeof param !== "object") { + return singleton(k, x); + } else { + return bal(param.l, param.v, param.d, add_max_binding(k, x, param.r)); + } +} + +function join(l, v, d, r) { + if (typeof l !== "object") { + return add_min_binding(v, d, r); + } + let lh = l.h; + if (typeof r !== "object") { + return add_max_binding(v, d, l); + } + let rh = r.h; + if (lh > (rh + 2 | 0)) { + return bal(l.l, l.v, l.d, join(l.r, v, d, r)); + } else if (rh > (lh + 2 | 0)) { + return bal(join(l, v, d, r.l), r.v, r.d, r.r); + } else { + return create(l, v, d, r); + } +} + +function concat(t1, t2) { + if (typeof t1 !== "object") { + return t2; + } + if (typeof t2 !== "object") { + return t1; + } + let match = min_binding(t2); + return join(t1, match[0], match[1], remove_min_binding(t2)); +} + +function concat_or_join(t1, v, d, t2) { + if (d !== undefined) { + return join(t1, v, Caml_option.valFromOption(d), t2); + } else { + return concat(t1, t2); + } +} + +function split(x, param) { + if (typeof param !== "object") { + return [ + "Empty", + undefined, + "Empty" + ]; + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let c = Caml.int_compare(x, v); + if (c === 0) { + return [ + l, + Caml_option.some(d), + r + ]; + } + if (c < 0) { + let match = split(x, l); + return [ + match[0], + match[1], + join(match[2], v, d, r) + ]; + } + let match$1 = split(x, r); + return [ + join(l, v, d, match$1[0]), + match$1[1], + match$1[2] + ]; +} + +function merge$1(f, s1, s2) { + if (typeof s1 !== "object") { + if (typeof s2 !== "object") { + return "Empty"; + } + + } else { + let v1 = s1.v; + if (s1.h >= height(s2)) { + let match = split(v1, s2); + return concat_or_join(merge$1(f, s1.l, match[0]), v1, f(v1, Caml_option.some(s1.d), match[1]), merge$1(f, s1.r, match[2])); + } + + } + if (typeof s2 !== "object") { + throw new Error("Assert_failure", { + cause: { + RE_EXN_ID: "Assert_failure", + _1: [ + "map.res", + 552, + 11 + ] + } + }); + } + let v2 = s2.v; + let match$1 = split(v2, s1); + return concat_or_join(merge$1(f, match$1[0], s2.l), v2, f(v2, match$1[1], Caml_option.some(s2.d)), merge$1(f, match$1[2], s2.r)); +} + +function union(f, s1, s2) { + if (typeof s1 !== "object") { + return s2; + } + let d1 = s1.d; + let v1 = s1.v; + if (typeof s2 !== "object") { + return s1; + } + let d2 = s2.d; + let v2 = s2.v; + if (s1.h >= s2.h) { + let match = split(v1, s2); + let d2$1 = match[1]; + let l = union(f, s1.l, match[0]); + let r = union(f, s1.r, match[2]); + if (d2$1 !== undefined) { + return concat_or_join(l, v1, f(v1, d1, Caml_option.valFromOption(d2$1)), r); + } else { + return join(l, v1, d1, r); + } + } + let match$1 = split(v2, s1); + let d1$1 = match$1[1]; + let l$1 = union(f, match$1[0], s2.l); + let r$1 = union(f, match$1[2], s2.r); + if (d1$1 !== undefined) { + return concat_or_join(l$1, v2, f(v2, Caml_option.valFromOption(d1$1), d2), r$1); + } else { + return join(l$1, v2, d2, r$1); + } +} + +function filter(p, param) { + if (typeof param !== "object") { + return "Empty"; + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let l$p = filter(p, l); + let pvd = p(v, d); + let r$p = filter(p, r); + if (pvd) { + if (l === l$p && r === r$p) { + return param; + } else { + return join(l$p, v, d, r$p); + } + } else { + return concat(l$p, r$p); + } +} + +function partition(p, param) { + if (typeof param !== "object") { + return [ + "Empty", + "Empty" + ]; + } + let d = param.d; + let v = param.v; + let match = partition(p, param.l); + let lf = match[1]; + let lt = match[0]; + let pvd = p(v, d); + let match$1 = partition(p, param.r); + let rf = match$1[1]; + let rt = match$1[0]; + if (pvd) { + return [ + join(lt, v, d, rt), + concat(lf, rf) + ]; + } else { + return [ + concat(lt, rt), + join(lf, v, d, rf) + ]; + } +} + +function cons_enum(_m, _e) { + while(true) { + let e = _e; + let m = _m; + if (typeof m !== "object") { + return e; + } + _e = { + TAG: "More", + _0: m.v, + _1: m.d, + _2: m.r, + _3: e + }; + _m = m.l; + continue; + }; +} + +function compare$1(cmp, m1, m2) { + let _e1 = cons_enum(m1, "End"); + let _e2 = cons_enum(m2, "End"); + while(true) { + let e2 = _e2; + let e1 = _e1; + if (typeof e1 !== "object") { + if (typeof e2 !== "object") { + return 0; + } else { + return -1; + } + } + if (typeof e2 !== "object") { + return 1; + } + let c = Caml.int_compare(e1._0, e2._0); + if (c !== 0) { + return c; + } + let c$1 = cmp(e1._1, e2._1); + if (c$1 !== 0) { + return c$1; + } + _e2 = cons_enum(e2._2, e2._3); + _e1 = cons_enum(e1._2, e1._3); + continue; + }; +} + +function equal(cmp, m1, m2) { + let _e1 = cons_enum(m1, "End"); + let _e2 = cons_enum(m2, "End"); + while(true) { + let e2 = _e2; + let e1 = _e1; + if (typeof e1 !== "object") { + if (typeof e2 !== "object") { + return true; + } else { + return false; + } + } + if (typeof e2 !== "object") { + return false; + } + if (e1._0 !== e2._0) { + return false; + } + if (!cmp(e1._1, e2._1)) { + return false; + } + _e2 = cons_enum(e2._2, e2._3); + _e1 = cons_enum(e1._2, e1._3); + continue; + }; +} + +function cardinal(param) { + if (typeof param !== "object") { + return 0; + } else { + return (cardinal(param.l) + 1 | 0) + cardinal(param.r) | 0; + } +} + +function bindings_aux(_accu, _param) { + while(true) { + let param = _param; + let accu = _accu; + if (typeof param !== "object") { + return accu; + } + _param = param.l; + _accu = { + hd: [ + param.v, + param.d + ], + tl: bindings_aux(accu, param.r) + }; + continue; + }; +} + +function bindings(s) { + return bindings_aux(/* [] */0, s); +} + +let Int_map = { + empty: "Empty", + is_empty: is_empty, + mem: mem, + add: add, + update: update, + singleton: singleton, + remove: remove, + merge: merge$1, + union: union, + compare: compare$1, + equal: equal, + iter: iter, + fold: fold, + for_all: for_all, + exists: exists, + filter: filter, + partition: partition, + cardinal: cardinal, + bindings: bindings, + min_binding: min_binding, + min_binding_opt: min_binding_opt, + max_binding: max_binding, + max_binding_opt: max_binding_opt, + choose: min_binding, + choose_opt: min_binding_opt, + split: split, + find: find, + find_opt: find_opt, + find_first: find_first, + find_first_opt: find_first_opt, + find_last: find_last, + find_last_opt: find_last_opt, + map: map, + mapi: mapi +}; + +function height$1(param) { + if (typeof param !== "object") { + return 0; + } else { + return param.h; + } +} + +function create$1(l, x, d, r) { + let hl = height$1(l); + let hr = height$1(r); + return { + TAG: "Node", + l: l, + v: x, + d: d, + r: r, + h: hl >= hr ? hl + 1 | 0 : hr + 1 | 0 + }; +} + +function singleton$1(x, d) { + return { + TAG: "Node", + l: "Empty", + v: x, + d: d, + r: "Empty", + h: 1 + }; +} + +function bal$1(l, x, d, r) { + let hl; + hl = typeof l !== "object" ? 0 : l.h; + let hr; + hr = typeof r !== "object" ? 0 : r.h; + if (hl > (hr + 2 | 0)) { + if (typeof l !== "object") { + throw new Error("Invalid_argument", { + cause: { + RE_EXN_ID: "Invalid_argument", + _1: "Map.bal" + } + }); + } + let lr = l.r; + let ld = l.d; + let lv = l.v; + let ll = l.l; + if (height$1(ll) >= height$1(lr)) { + return create$1(ll, lv, ld, create$1(lr, x, d, r)); + } + if (typeof lr === "object") { + return create$1(create$1(ll, lv, ld, lr.l), lr.v, lr.d, create$1(lr.r, x, d, r)); + } + throw new Error("Invalid_argument", { + cause: { + RE_EXN_ID: "Invalid_argument", + _1: "Map.bal" + } + }); + } + if (hr <= (hl + 2 | 0)) { + return { + TAG: "Node", + l: l, + v: x, + d: d, + r: r, + h: hl >= hr ? hl + 1 | 0 : hr + 1 | 0 + }; + } + if (typeof r !== "object") { + throw new Error("Invalid_argument", { + cause: { + RE_EXN_ID: "Invalid_argument", + _1: "Map.bal" + } + }); + } + let rr = r.r; + let rd = r.d; + let rv = r.v; + let rl = r.l; + if (height$1(rr) >= height$1(rl)) { + return create$1(create$1(l, x, d, rl), rv, rd, rr); + } + if (typeof rl === "object") { + return create$1(create$1(l, x, d, rl.l), rl.v, rl.d, create$1(rl.r, rv, rd, rr)); + } + throw new Error("Invalid_argument", { + cause: { + RE_EXN_ID: "Invalid_argument", + _1: "Map.bal" + } + }); +} + +function is_empty$1(param) { + if (typeof param !== "object") { + return true; + } else { + return false; + } +} + +function add$1(x, data, param) { + if (typeof param !== "object") { + return { + TAG: "Node", + l: "Empty", v: x, d: data, r: "Empty", @@ -329,28 +1130,425 @@ function add$1(x, data, param) { let l = param.l; let c = Caml.string_compare(x, v); if (c === 0) { - if (d === data) { + if (d === data) { + return param; + } else { + return { + TAG: "Node", + l: l, + v: x, + d: data, + r: r, + h: param.h + }; + } + } + if (c < 0) { + let ll = add$1(x, data, l); + if (l === ll) { + return param; + } else { + return bal$1(ll, v, d, r); + } + } + let rr = add$1(x, data, r); + if (r === rr) { + return param; + } else { + return bal$1(l, v, d, rr); + } +} + +function find$1(x, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); + } + let c = Caml.string_compare(x, param.v); + if (c === 0) { + return param.d; + } + _param = c < 0 ? param.l : param.r; + continue; + }; +} + +function find_first$1(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); + } + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.l; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.l; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.r; + continue; + }; + } + _param = param.r; + continue; + }; +} + +function find_first_opt$1(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.l; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.l; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.r; + continue; + }; + } + _param = param.r; + continue; + }; +} + +function find_last$1(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); + } + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.r; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.r; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.l; + continue; + }; + } + _param = param.l; + continue; + }; +} + +function find_last_opt$1(f, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let v = param.v; + if (f(v)) { + let _v0 = v; + let _d0 = param.d; + let _param$1 = param.r; + while(true) { + let param$1 = _param$1; + let d0 = _d0; + let v0 = _v0; + if (typeof param$1 !== "object") { + return [ + v0, + d0 + ]; + } + let v$1 = param$1.v; + if (f(v$1)) { + _param$1 = param$1.r; + _d0 = param$1.d; + _v0 = v$1; + continue; + } + _param$1 = param$1.l; + continue; + }; + } + _param = param.l; + continue; + }; +} + +function find_opt$1(x, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let c = Caml.string_compare(x, param.v); + if (c === 0) { + return Caml_option.some(param.d); + } + _param = c < 0 ? param.l : param.r; + continue; + }; +} + +function mem$1(x, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return false; + } + let c = Caml.string_compare(x, param.v); + if (c === 0) { + return true; + } + _param = c < 0 ? param.l : param.r; + continue; + }; +} + +function min_binding$1(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); + } + let l = param.l; + if (typeof l !== "object") { + return [ + param.v, + param.d + ]; + } + _param = l; + continue; + }; +} + +function min_binding_opt$1(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let l = param.l; + if (typeof l !== "object") { + return [ + param.v, + param.d + ]; + } + _param = l; + continue; + }; +} + +function max_binding$1(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + throw new Error("Not_found", { + cause: { + RE_EXN_ID: "Not_found" + } + }); + } + let r = param.r; + if (typeof r !== "object") { + return [ + param.v, + param.d + ]; + } + _param = r; + continue; + }; +} + +function max_binding_opt$1(_param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return; + } + let r = param.r; + if (typeof r !== "object") { + return [ + param.v, + param.d + ]; + } + _param = r; + continue; + }; +} + +function remove_min_binding$1(param) { + if (typeof param !== "object") { + throw new Error("Invalid_argument", { + cause: { + RE_EXN_ID: "Invalid_argument", + _1: "Map.remove_min_elt" + } + }); + } + let l = param.l; + if (typeof l !== "object") { + return param.r; + } else { + return bal$1(remove_min_binding$1(l), param.v, param.d, param.r); + } +} + +function merge$2(t1, t2) { + if (typeof t1 !== "object") { + return t2; + } + if (typeof t2 !== "object") { + return t1; + } + let match = min_binding$1(t2); + return bal$1(t1, match[0], match[1], remove_min_binding$1(t2)); +} + +function remove$1(x, param) { + if (typeof param !== "object") { + return "Empty"; + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let c = Caml.string_compare(x, v); + if (c === 0) { + return merge$2(l, r); + } + if (c < 0) { + let ll = remove$1(x, l); + if (l === ll) { + return param; + } else { + return bal$1(ll, v, d, r); + } + } + let rr = remove$1(x, r); + if (r === rr) { + return param; + } else { + return bal$1(l, v, d, rr); + } +} + +function update$1(x, f, param) { + if (typeof param !== "object") { + let data = f(undefined); + if (data !== undefined) { + return { + TAG: "Node", + l: "Empty", + v: x, + d: Caml_option.valFromOption(data), + r: "Empty", + h: 1 + }; + } else { + return "Empty"; + } + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let c = Caml.string_compare(x, v); + if (c === 0) { + let data$1 = f(Caml_option.some(d)); + if (data$1 === undefined) { + return merge$2(l, r); + } + let data$2 = Caml_option.valFromOption(data$1); + if (d === data$2) { return param; } else { return { TAG: "Node", l: l, v: x, - d: data, + d: data$2, r: r, h: param.h }; } } if (c < 0) { - let ll = add$1(x, data, l); + let ll = update$1(x, f, l); if (l === ll) { return param; } else { return bal$1(ll, v, d, r); } } - let rr = add$1(x, data, r); + let rr = update$1(x, f, r); if (r === rr) { return param; } else { @@ -358,25 +1556,450 @@ function add$1(x, data, param) { } } -function find(x, _param) { +function iter$1(f, _param) { while(true) { let param = _param; if (typeof param !== "object") { - throw new Error("Not_found", { - cause: { - RE_EXN_ID: "Not_found" - } - }); + return; } - let c = Caml.string_compare(x, param.v); - if (c === 0) { - return param.d; + iter$1(f, param.l); + f(param.v, param.d); + _param = param.r; + continue; + }; +} + +function map$1(f, param) { + if (typeof param !== "object") { + return "Empty"; + } + let l$p = map$1(f, param.l); + let d$p = f(param.d); + let r$p = map$1(f, param.r); + return { + TAG: "Node", + l: l$p, + v: param.v, + d: d$p, + r: r$p, + h: param.h + }; +} + +function mapi$1(f, param) { + if (typeof param !== "object") { + return "Empty"; + } + let v = param.v; + let l$p = mapi$1(f, param.l); + let d$p = f(v, param.d); + let r$p = mapi$1(f, param.r); + return { + TAG: "Node", + l: l$p, + v: v, + d: d$p, + r: r$p, + h: param.h + }; +} + +function fold$1(f, _m, _accu) { + while(true) { + let accu = _accu; + let m = _m; + if (typeof m !== "object") { + return accu; } - _param = c < 0 ? param.l : param.r; + _accu = f(m.v, m.d, fold$1(f, m.l, accu)); + _m = m.r; + continue; + }; +} + +function for_all$1(p, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return true; + } + if (!p(param.v, param.d)) { + return false; + } + if (!for_all$1(p, param.l)) { + return false; + } + _param = param.r; + continue; + }; +} + +function exists$1(p, _param) { + while(true) { + let param = _param; + if (typeof param !== "object") { + return false; + } + if (p(param.v, param.d)) { + return true; + } + if (exists$1(p, param.l)) { + return true; + } + _param = param.r; + continue; + }; +} + +function add_min_binding$1(k, x, param) { + if (typeof param !== "object") { + return singleton$1(k, x); + } else { + return bal$1(add_min_binding$1(k, x, param.l), param.v, param.d, param.r); + } +} + +function add_max_binding$1(k, x, param) { + if (typeof param !== "object") { + return singleton$1(k, x); + } else { + return bal$1(param.l, param.v, param.d, add_max_binding$1(k, x, param.r)); + } +} + +function join$1(l, v, d, r) { + if (typeof l !== "object") { + return add_min_binding$1(v, d, r); + } + let lh = l.h; + if (typeof r !== "object") { + return add_max_binding$1(v, d, l); + } + let rh = r.h; + if (lh > (rh + 2 | 0)) { + return bal$1(l.l, l.v, l.d, join$1(l.r, v, d, r)); + } else if (rh > (lh + 2 | 0)) { + return bal$1(join$1(l, v, d, r.l), r.v, r.d, r.r); + } else { + return create$1(l, v, d, r); + } +} + +function concat$1(t1, t2) { + if (typeof t1 !== "object") { + return t2; + } + if (typeof t2 !== "object") { + return t1; + } + let match = min_binding$1(t2); + return join$1(t1, match[0], match[1], remove_min_binding$1(t2)); +} + +function concat_or_join$1(t1, v, d, t2) { + if (d !== undefined) { + return join$1(t1, v, Caml_option.valFromOption(d), t2); + } else { + return concat$1(t1, t2); + } +} + +function split$1(x, param) { + if (typeof param !== "object") { + return [ + "Empty", + undefined, + "Empty" + ]; + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let c = Caml.string_compare(x, v); + if (c === 0) { + return [ + l, + Caml_option.some(d), + r + ]; + } + if (c < 0) { + let match = split$1(x, l); + return [ + match[0], + match[1], + join$1(match[2], v, d, r) + ]; + } + let match$1 = split$1(x, r); + return [ + join$1(l, v, d, match$1[0]), + match$1[1], + match$1[2] + ]; +} + +function merge$3(f, s1, s2) { + if (typeof s1 !== "object") { + if (typeof s2 !== "object") { + return "Empty"; + } + + } else { + let v1 = s1.v; + if (s1.h >= height$1(s2)) { + let match = split$1(v1, s2); + return concat_or_join$1(merge$3(f, s1.l, match[0]), v1, f(v1, Caml_option.some(s1.d), match[1]), merge$3(f, s1.r, match[2])); + } + + } + if (typeof s2 !== "object") { + throw new Error("Assert_failure", { + cause: { + RE_EXN_ID: "Assert_failure", + _1: [ + "map.res", + 552, + 11 + ] + } + }); + } + let v2 = s2.v; + let match$1 = split$1(v2, s1); + return concat_or_join$1(merge$3(f, match$1[0], s2.l), v2, f(v2, match$1[1], Caml_option.some(s2.d)), merge$3(f, match$1[2], s2.r)); +} + +function union$1(f, s1, s2) { + if (typeof s1 !== "object") { + return s2; + } + let d1 = s1.d; + let v1 = s1.v; + if (typeof s2 !== "object") { + return s1; + } + let d2 = s2.d; + let v2 = s2.v; + if (s1.h >= s2.h) { + let match = split$1(v1, s2); + let d2$1 = match[1]; + let l = union$1(f, s1.l, match[0]); + let r = union$1(f, s1.r, match[2]); + if (d2$1 !== undefined) { + return concat_or_join$1(l, v1, f(v1, d1, Caml_option.valFromOption(d2$1)), r); + } else { + return join$1(l, v1, d1, r); + } + } + let match$1 = split$1(v2, s1); + let d1$1 = match$1[1]; + let l$1 = union$1(f, match$1[0], s2.l); + let r$1 = union$1(f, match$1[2], s2.r); + if (d1$1 !== undefined) { + return concat_or_join$1(l$1, v2, f(v2, Caml_option.valFromOption(d1$1), d2), r$1); + } else { + return join$1(l$1, v2, d2, r$1); + } +} + +function filter$1(p, param) { + if (typeof param !== "object") { + return "Empty"; + } + let r = param.r; + let d = param.d; + let v = param.v; + let l = param.l; + let l$p = filter$1(p, l); + let pvd = p(v, d); + let r$p = filter$1(p, r); + if (pvd) { + if (l === l$p && r === r$p) { + return param; + } else { + return join$1(l$p, v, d, r$p); + } + } else { + return concat$1(l$p, r$p); + } +} + +function partition$1(p, param) { + if (typeof param !== "object") { + return [ + "Empty", + "Empty" + ]; + } + let d = param.d; + let v = param.v; + let match = partition$1(p, param.l); + let lf = match[1]; + let lt = match[0]; + let pvd = p(v, d); + let match$1 = partition$1(p, param.r); + let rf = match$1[1]; + let rt = match$1[0]; + if (pvd) { + return [ + join$1(lt, v, d, rt), + concat$1(lf, rf) + ]; + } else { + return [ + concat$1(lt, rt), + join$1(lf, v, d, rf) + ]; + } +} + +function cons_enum$1(_m, _e) { + while(true) { + let e = _e; + let m = _m; + if (typeof m !== "object") { + return e; + } + _e = { + TAG: "More", + _0: m.v, + _1: m.d, + _2: m.r, + _3: e + }; + _m = m.l; + continue; + }; +} + +function compare$2(cmp, m1, m2) { + let _e1 = cons_enum$1(m1, "End"); + let _e2 = cons_enum$1(m2, "End"); + while(true) { + let e2 = _e2; + let e1 = _e1; + if (typeof e1 !== "object") { + if (typeof e2 !== "object") { + return 0; + } else { + return -1; + } + } + if (typeof e2 !== "object") { + return 1; + } + let c = Caml.string_compare(e1._0, e2._0); + if (c !== 0) { + return c; + } + let c$1 = cmp(e1._1, e2._1); + if (c$1 !== 0) { + return c$1; + } + _e2 = cons_enum$1(e2._2, e2._3); + _e1 = cons_enum$1(e1._2, e1._3); + continue; + }; +} + +function equal$1(cmp, m1, m2) { + let _e1 = cons_enum$1(m1, "End"); + let _e2 = cons_enum$1(m2, "End"); + while(true) { + let e2 = _e2; + let e1 = _e1; + if (typeof e1 !== "object") { + if (typeof e2 !== "object") { + return true; + } else { + return false; + } + } + if (typeof e2 !== "object") { + return false; + } + if (Caml.string_compare(e1._0, e2._0) !== 0) { + return false; + } + if (!cmp(e1._1, e2._1)) { + return false; + } + _e2 = cons_enum$1(e2._2, e2._3); + _e1 = cons_enum$1(e1._2, e1._3); + continue; + }; +} + +function cardinal$1(param) { + if (typeof param !== "object") { + return 0; + } else { + return (cardinal$1(param.l) + 1 | 0) + cardinal$1(param.r) | 0; + } +} + +function bindings_aux$1(_accu, _param) { + while(true) { + let param = _param; + let accu = _accu; + if (typeof param !== "object") { + return accu; + } + _param = param.l; + _accu = { + hd: [ + param.v, + param.d + ], + tl: bindings_aux$1(accu, param.r) + }; continue; }; } +function bindings$1(s) { + return bindings_aux$1(/* [] */0, s); +} + +let String_map = { + empty: "Empty", + is_empty: is_empty$1, + mem: mem$1, + add: add$1, + update: update$1, + singleton: singleton$1, + remove: remove$1, + merge: merge$3, + union: union$1, + compare: compare$2, + equal: equal$1, + iter: iter$1, + fold: fold$1, + for_all: for_all$1, + exists: exists$1, + filter: filter$1, + partition: partition$1, + cardinal: cardinal$1, + bindings: bindings$1, + min_binding: min_binding$1, + min_binding_opt: min_binding_opt$1, + max_binding: max_binding$1, + max_binding_opt: max_binding_opt$1, + choose: min_binding$1, + choose_opt: min_binding_opt$1, + split: split$1, + find: find$1, + find_opt: find_opt$1, + find_first: find_first$1, + find_first_opt: find_first_opt$1, + find_last: find_last$1, + find_last_opt: find_last_opt$1, + map: map$1, + mapi: mapi$1 +}; + function of_list(kvs) { return List.fold_left((function (acc, param) { return add(param[0], param[1], acc); @@ -457,7 +2080,7 @@ let int_map_suites_1 = { }); return { TAG: "Eq", - _0: compare(Caml.int_compare, u, v), + _0: compare$1(Caml.int_compare, u, v), _1: 0 }; }) @@ -523,7 +2146,7 @@ let int_map_suites_1 = { } let v = -1; for(let i$1 = 0; i$1 <= 10000; ++i$1){ - if (find(String(i$1), m) !== String(i$1)) { + if (find$1(String(i$1), m) !== String(i$1)) { v = i$1; } @@ -547,4 +2170,9 @@ let int_map_suites = { Mt.from_pair_suites("Map_test", int_map_suites); +exports.Int = Int; +exports.Int_map = Int_map; +exports.String_map = String_map; +exports.of_list = of_list; +exports.int_map_suites = int_map_suites; /* Not a pure module */ diff --git a/jscomp/test/map_test.resi b/jscomp/test/map_test.resi deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/map_test.resi +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/null_list_test.js b/jscomp/test/null_list_test.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/null_list_test.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/null_list_test.res b/jscomp/test/null_list_test.res deleted file mode 100644 index a3babc6bed..0000000000 --- a/jscomp/test/null_list_test.res +++ /dev/null @@ -1,5 +0,0 @@ -/* https://github.com/ocaml/ocaml/pull/234 */ - -/* This raises in our generated code */ - -/* compile error */ diff --git a/jscomp/test/option_record_none_test.js b/jscomp/test/option_record_none_test.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/option_record_none_test.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/option_record_none_test.res b/jscomp/test/option_record_none_test.res deleted file mode 100644 index 18d670453e..0000000000 --- a/jscomp/test/option_record_none_test.res +++ /dev/null @@ -1,27 +0,0 @@ - - -// type t0 = { -// x : int , -// y : option -// } - -// let h = { x : 3 } -// module N = { -// type c = option -// } - -// module Make = () => { -// type t<'a> = { -// x: int, -// @as("Y") y: option, -// z: option<'a>, -// h: N.c, -// } -// } - -// module N0 = Make() -// open N0 - -// let f = { -// x: 3, -// } diff --git a/jscomp/test/record_regression.res b/jscomp/test/record_regression.res index 44ae1b02b2..31f3345463 100644 --- a/jscomp/test/record_regression.res +++ b/jscomp/test/record_regression.res @@ -1,5 +1,3 @@ -// @@config({flags: ["-bs-diagnose"] }) - type t0 = {x: int, y?: int, yy?: option, z: int} let f1 = {x: 3, z: 2} @@ -126,4 +124,4 @@ let pm4 = inlinedRecord(ir3) type inlinedOptional2 = V0({x?: int}) let ir4 = V0({x: 3}) -let ir5 = V0({}) \ No newline at end of file +let ir5 = V0({}) diff --git a/jscomp/test/run_test.sh b/jscomp/test/run_test.sh deleted file mode 100755 index dc20d04e2e..0000000000 --- a/jscomp/test/run_test.sh +++ /dev/null @@ -1,3 +0,0 @@ -for i in *.js do - echo $i && node $i; -done diff --git a/jscomp/test/test.js b/jscomp/test/test.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/test.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/test.res b/jscomp/test/test.res deleted file mode 100644 index befbb1b7ca..0000000000 --- a/jscomp/test/test.res +++ /dev/null @@ -1,36 +0,0 @@ -/* Js.Undefined.to_opt (if Js.typeof [%raw {|x|}] then - [%raw{|x|}] else Js.Undefined.empty ) */ -/* -let a = - match Js.Undefined.to_opt [%raw {|___undefined_value|}] with - | None -> 1 - | Some _ -> 2 - - -external file : string option = "__filename" -[@@val] [@@return{undefined_to_opt}] - - -let a = - match file with - | None -> 0 - | Some x -> Js.log x ; 1 - -(* -let b = - match [%external __filename] with - | None -> 0 - | Some x -> Js.log x ; 1 -*) - -let c = - let v = - if Js.typeof [%raw {|__filename|} ] == "undefined" then - [%raw {|__filename|} - ] else - Js.undefined in - match Js.Undefined.to_opt v with - | None -> 0 - | Some _ -> 1 -(* let f x = Js.Undefined.test x*) -*/ diff --git a/jscomp/test/test_for_map2.js b/jscomp/test/test_for_map2.js index d856702bfe..ccdd27da39 100644 --- a/jscomp/test/test_for_map2.js +++ b/jscomp/test/test_for_map2.js @@ -1,2 +1,17 @@ // Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ +'use strict'; + +let Int_map = require("./int_map.js"); + +function assertion_test() { + let m = "Empty"; + for(let i = 0; i <= 1000000; ++i){ + m = Int_map.add(i, i, m); + } + for(let i$1 = 0; i$1 <= 1000000; ++i$1){ + Int_map.find(i$1, m); + } +} + +exports.assertion_test = assertion_test; +/* No side effect */ diff --git a/jscomp/test/test_for_map2.resi b/jscomp/test/test_for_map2.resi deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_for_map2.resi +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_format.js b/jscomp/test/test_format.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/test_format.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/test_format.res b/jscomp/test/test_format.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_format.res +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_formatter.js b/jscomp/test/test_formatter.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/test_formatter.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/test_formatter.res b/jscomp/test/test_formatter.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_formatter.res +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_internalOO.js b/jscomp/test/test_internalOO.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/test_internalOO.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/test_internalOO.res b/jscomp/test/test_internalOO.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_internalOO.res +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_is_js.js b/jscomp/test/test_is_js.js index e2787bd5e4..3f7feeca4e 100644 --- a/jscomp/test/test_is_js.js +++ b/jscomp/test/test_is_js.js @@ -11,6 +11,10 @@ let test_id = { contents: 0 }; +function eq(loc, x, y) { + Mt.eq_suites(test_id, suites, loc, x, y); +} + function b(loc, x) { Mt.bool_suites(test_id, suites, loc, x); } @@ -23,4 +27,11 @@ b("File \"test_is_js.res\", line 12, characters 2-9", true); Mt.from_pair_suites("Test_is_js", suites.contents); +let v = true; + +exports.v = v; +exports.suites = suites; +exports.test_id = test_id; +exports.eq = eq; +exports.b = b; /* Not a pure module */ diff --git a/jscomp/test/test_is_js.resi b/jscomp/test/test_is_js.resi deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_is_js.resi +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_pack.js b/jscomp/test/test_pack.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/test_pack.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/test_pack.res b/jscomp/test/test_pack.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_pack.res +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_sprintf.js b/jscomp/test/test_sprintf.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/test_sprintf.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/test_sprintf.res b/jscomp/test/test_sprintf.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/test_sprintf.res +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jscomp/test/test_unsafe_obj_ffi_ppx.res b/jscomp/test/test_unsafe_obj_ffi_ppx.res index 3100760da8..b9053cf5b9 100644 --- a/jscomp/test/test_unsafe_obj_ffi_ppx.res +++ b/jscomp/test/test_unsafe_obj_ffi_ppx.res @@ -1,7 +1,3 @@ - - - - let f = x => x["length"] +. x["width"] let i = () => () diff --git a/jscomp/test/undefine_conditional.js b/jscomp/test/undefine_conditional.js deleted file mode 100644 index 71b40893dd..0000000000 --- a/jscomp/test/undefine_conditional.js +++ /dev/null @@ -1,14 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -'use strict'; - - -let x = 3; - -let y = 6; - -let has_ocaml_version = true; - -exports.x = x; -exports.y = y; -exports.has_ocaml_version = has_ocaml_version; -/* No side effect */ diff --git a/jscomp/test/undefine_conditional.res b/jscomp/test/undefine_conditional.res deleted file mode 100644 index 3ff37fadef..0000000000 --- a/jscomp/test/undefine_conditional.res +++ /dev/null @@ -1,5 +0,0 @@ -let x = 3 - -let y = 6 - -let has_ocaml_version = true diff --git a/jscomp/test/unicode_type_error.js b/jscomp/test/unicode_type_error.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/unicode_type_error.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/unicode_type_error.res b/jscomp/test/unicode_type_error.res deleted file mode 100644 index 4ae3c50e22..0000000000 --- a/jscomp/test/unicode_type_error.res +++ /dev/null @@ -1,5 +0,0 @@ -/* let f () = */ - -/* {j|这是一串很长的中文啊|j} */ - -/* let x = 1 + "x" */ diff --git a/jscomp/test/unitest_string.js b/jscomp/test/unitest_string.js deleted file mode 100644 index d856702bfe..0000000000 --- a/jscomp/test/unitest_string.js +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/jscomp/test/unitest_string.res b/jscomp/test/unitest_string.res deleted file mode 100644 index 8b13789179..0000000000 --- a/jscomp/test/unitest_string.res +++ /dev/null @@ -1 +0,0 @@ -