summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Barnes <nick@tarides.com>2023-05-02 21:16:12 +0100
committerNick Barnes <nick@tarides.com>2023-05-02 21:16:12 +0100
commitd3a5c923939a1fc03cc14c005d61210d8c3bd546 (patch)
tree5459de2b7b6cbaa1167d18224f1ea5d256e2f3f7
parentad111da274b58d82249f92b8c79ee252bf25525b (diff)
parent23dab79a4e42856aa33816b9c79c3d4d79959cb9 (diff)
downloadocaml-d3a5c923939a1fc03cc14c005d61210d8c3bd546.tar.gz
Merge branch 'trunk' into nick-get-copy
-rw-r--r--.depend8
-rw-r--r--.mailmap1
-rw-r--r--Changes140
-rw-r--r--HACKING.adoc8
-rw-r--r--README.adoc10
-rw-r--r--VERSION2
-rw-r--r--api_docgen/ocamldoc/Makefile2
-rw-r--r--asmcomp/afl_instrument.ml12
-rw-r--r--asmcomp/amd64/emit.mlp9
-rw-r--r--asmcomp/amd64/proc.ml8
-rw-r--r--asmcomp/amd64/selection.ml40
-rw-r--r--boot/menhir/parser.ml10003
-rwxr-xr-xboot/ocamlcbin3071019 -> 3048649 bytes
-rwxr-xr-xboot/ocamllexbin391861 -> 391861 bytes
-rw-r--r--build-aux/ocaml_version.m44
-rwxr-xr-xconfigure181
-rw-r--r--configure.ac22
-rw-r--r--debugger/command_line.ml2
-rw-r--r--debugger/debugger_parser.mly70
-rw-r--r--lambda/translcore.ml21
-rw-r--r--lambda/translmod.ml6
-rw-r--r--lex/lexer.mll2
-rw-r--r--lex/parser.mly42
-rw-r--r--manual/src/cmds/intf-c.etex33
-rw-r--r--manual/tests/Makefile4
-rw-r--r--manual/tests/cross_reference_checker.ml47
-rw-r--r--ocaml-variants.opam4
-rw-r--r--ocamldoc/odoc_html.ml2
-rw-r--r--ocamldoc/odoc_parser.mly2
-rw-r--r--ocamldoc/odoc_text_parser.mly2
-rw-r--r--ocamltest/.depend20
-rw-r--r--ocamltest/Makefile3
-rw-r--r--ocamltest/main.ml58
-rw-r--r--ocamltest/ocamltest.org135
-rw-r--r--ocamltest/options.ml16
-rw-r--r--ocamltest/options.mli4
-rw-r--r--ocamltest/tests.ml7
-rw-r--r--ocamltest/tests.mli2
-rw-r--r--ocamltest/translate.ml138
-rw-r--r--ocamltest/translate.mli23
-rw-r--r--ocamltest/tsl_ast.ml2
-rw-r--r--ocamltest/tsl_ast.mli4
-rw-r--r--ocamltest/tsl_lexer.mli3
-rw-r--r--ocamltest/tsl_lexer.mll33
-rw-r--r--ocamltest/tsl_parser.mly67
-rw-r--r--ocamltest/tsl_semantics.ml113
-rw-r--r--ocamltest/tsl_semantics.mli13
-rw-r--r--otherlibs/dynlink/byte/dynlink.ml29
-rw-r--r--otherlibs/dynlink/dynlink_common.ml43
-rw-r--r--otherlibs/dynlink/dynlink_types.ml2
-rw-r--r--otherlibs/dynlink/native/dynlink.ml6
-rw-r--r--otherlibs/runtime_events/runtime_events_consumer.c12
-rw-r--r--otherlibs/systhreads/st_pthreads.h10
-rw-r--r--otherlibs/systhreads/st_stubs.c4
-rw-r--r--otherlibs/unix/symlink_win32.c7
-rw-r--r--otherlibs/unix/unix.mli2
-rw-r--r--otherlibs/unix/unixLabels.mli2
-rw-r--r--otherlibs/unix/unixsupport_unix.c5
-rw-r--r--otherlibs/unix/unixsupport_win32.c5
-rw-r--r--parsing/ast_helper.ml3
-rw-r--r--parsing/ast_helper.mli2
-rw-r--r--parsing/ast_iterator.ml6
-rw-r--r--parsing/ast_mapper.ml9
-rw-r--r--parsing/depend.ml6
-rw-r--r--parsing/location.ml35
-rw-r--r--parsing/location.mli72
-rw-r--r--parsing/parser.mly41
-rw-r--r--parsing/parsetree.mli11
-rw-r--r--parsing/pprintast.ml67
-rw-r--r--parsing/printast.ml10
-rw-r--r--runtime/afl.c37
-rw-r--r--runtime/alloc.c12
-rw-r--r--runtime/amd64.S33
-rw-r--r--runtime/array.c6
-rw-r--r--runtime/callback.c129
-rw-r--r--runtime/caml/atomic_refcount.h2
-rw-r--r--runtime/caml/config.h1
-rw-r--r--runtime/caml/domain.h2
-rw-r--r--runtime/caml/exec.h2
-rw-r--r--runtime/caml/fiber.h4
-rw-r--r--runtime/caml/frame_descriptors.h1
-rw-r--r--runtime/caml/gc_stats.h1
-rw-r--r--runtime/caml/lf_skiplist.h3
-rw-r--r--runtime/caml/misc.h1
-rw-r--r--runtime/caml/platform.h31
-rw-r--r--runtime/codefrag.c6
-rw-r--r--runtime/compare.c364
-rw-r--r--runtime/domain.c66
-rw-r--r--runtime/extern.c64
-rw-r--r--runtime/fail_nat.c4
-rw-r--r--runtime/fiber.c4
-rw-r--r--runtime/gc_ctrl.c5
-rw-r--r--runtime/gc_stats.c4
-rw-r--r--runtime/interp.c6
-rw-r--r--runtime/lf_skiplist.c50
-rw-r--r--runtime/major_gc.c116
-rw-r--r--runtime/memory.c3
-rw-r--r--runtime/minor_gc.c14
-rw-r--r--runtime/misc.c33
-rw-r--r--runtime/obj.c2
-rw-r--r--runtime/platform.c2
-rw-r--r--runtime/runtime_events.c46
-rw-r--r--runtime/shared_heap.c2
-rw-r--r--runtime/signals.c2
-rw-r--r--runtime/sys.c2
-rw-r--r--runtime/unix.c3
-rw-r--r--runtime/weak.c120
-rw-r--r--runtime/win32.c4
-rw-r--r--stdlib/dune22
-rw-r--r--stdlib/format.mli3
-rw-r--r--stdlib/marshal.mli6
-rw-r--r--stdlib/sys.mli9
-rw-r--r--testsuite/HACKING.adoc7
-rw-r--r--testsuite/tests/afl-instrumentation/afl-fuzz-test.ml24
-rw-r--r--testsuite/tests/afl-instrumentation/afl-showmap-test.ml32
-rw-r--r--testsuite/tests/arch-power/exn_raise.ml10
-rw-r--r--testsuite/tests/asmcomp/bind_tuples.ml2
-rw-r--r--testsuite/tests/asmcomp/compare.ml2
-rw-r--r--testsuite/tests/asmcomp/evaluation_order.ml3
-rw-r--r--testsuite/tests/asmcomp/func_sections.ml33
-rw-r--r--testsuite/tests/asmcomp/lift_mutable_let_flambda.ml4
-rw-r--r--testsuite/tests/asmcomp/optargs.ml4
-rw-r--r--testsuite/tests/asmcomp/poll_attr_both.ml34
-rw-r--r--testsuite/tests/asmcomp/poll_attr_inserted.ml20
-rw-r--r--testsuite/tests/asmcomp/poll_attr_prologue.ml34
-rw-r--r--testsuite/tests/asmcomp/poll_attr_user.ml34
-rw-r--r--testsuite/tests/asmcomp/polling_insertion.ml8
-rw-r--r--testsuite/tests/asmcomp/prevent_fma.ml2
-rw-r--r--testsuite/tests/asmcomp/register_typing.ml2
-rw-r--r--testsuite/tests/asmcomp/register_typing_switch.ml2
-rw-r--r--testsuite/tests/asmcomp/select_addr.ml14
-rw-r--r--testsuite/tests/asmcomp/select_addr.reference1
-rw-r--r--testsuite/tests/asmcomp/staticalloc.ml6
-rw-r--r--testsuite/tests/asmcomp/unrolling_flambda.ml4
-rw-r--r--testsuite/tests/asmcomp/unrolling_flambda2.ml4
-rw-r--r--testsuite/tests/asmgen/arith.cmm6
-rw-r--r--testsuite/tests/asmgen/catch-float.cmm6
-rw-r--r--testsuite/tests/asmgen/catch-multiple.cmm6
-rw-r--r--testsuite/tests/asmgen/catch-rec-deadhandler.cmm12
-rw-r--r--testsuite/tests/asmgen/catch-rec.cmm6
-rw-r--r--testsuite/tests/asmgen/catch-try-float.cmm6
-rw-r--r--testsuite/tests/asmgen/catch-try.cmm6
-rw-r--r--testsuite/tests/asmgen/checkbound.cmm6
-rw-r--r--testsuite/tests/asmgen/even-odd-spill-float.cmm6
-rw-r--r--testsuite/tests/asmgen/even-odd-spill.cmm6
-rw-r--r--testsuite/tests/asmgen/even-odd.cmm6
-rw-r--r--testsuite/tests/asmgen/fib.cmm6
-rw-r--r--testsuite/tests/asmgen/immediates.cmm6
-rw-r--r--testsuite/tests/asmgen/integr.cmm10
-rw-r--r--testsuite/tests/asmgen/invariants.cmm8
-rw-r--r--testsuite/tests/asmgen/pgcd.cmm6
-rw-r--r--testsuite/tests/asmgen/quicksort.cmm6
-rw-r--r--testsuite/tests/asmgen/quicksort2.cmm6
-rw-r--r--testsuite/tests/asmgen/soli.cmm6
-rw-r--r--testsuite/tests/asmgen/tagged-fib.cmm6
-rw-r--r--testsuite/tests/asmgen/tagged-integr.cmm6
-rw-r--r--testsuite/tests/asmgen/tagged-quicksort.cmm6
-rw-r--r--testsuite/tests/asmgen/tagged-tak.cmm6
-rw-r--r--testsuite/tests/asmgen/tak.cmm6
-rw-r--r--testsuite/tests/ast-invariants/test.ml10
-rw-r--r--testsuite/tests/backtrace/backtrace.ml4
-rw-r--r--testsuite/tests/backtrace/backtrace2.ml11
-rw-r--r--testsuite/tests/backtrace/backtrace3.ml11
-rw-r--r--testsuite/tests/backtrace/backtrace_bounds_exn.ml11
-rw-r--r--testsuite/tests/backtrace/backtrace_c_exn.ml14
-rw-r--r--testsuite/tests/backtrace/backtrace_deprecated.ml11
-rw-r--r--testsuite/tests/backtrace/backtrace_dynlink.flambda.reference19
-rw-r--r--testsuite/tests/backtrace/backtrace_dynlink.ml90
-rw-r--r--testsuite/tests/backtrace/backtrace_dynlink.reference14
-rw-r--r--testsuite/tests/backtrace/backtrace_effects.ml14
-rw-r--r--testsuite/tests/backtrace/backtrace_effects_nested.ml30
-rw-r--r--testsuite/tests/backtrace/backtrace_or_exception.ml11
-rw-r--r--testsuite/tests/backtrace/backtrace_slots.ml11
-rw-r--r--testsuite/tests/backtrace/backtrace_systhreads.ml26
-rw-r--r--testsuite/tests/backtrace/backtraces_and_finalizers.ml6
-rw-r--r--testsuite/tests/backtrace/callstack.ml26
-rw-r--r--testsuite/tests/backtrace/event_after_prim.ml8
-rw-r--r--testsuite/tests/backtrace/inline_test.ml30
-rw-r--r--testsuite/tests/backtrace/inline_traversal_test.ml30
-rw-r--r--testsuite/tests/backtrace/lazy.ml17
-rw-r--r--testsuite/tests/backtrace/methods.ml8
-rw-r--r--testsuite/tests/backtrace/names.ml10
-rw-r--r--testsuite/tests/backtrace/pr2195.ml52
-rw-r--r--testsuite/tests/backtrace/pr6920_why_at.ml17
-rw-r--r--testsuite/tests/backtrace/pr6920_why_swallow.ml17
-rw-r--r--testsuite/tests/backtrace/raw_backtrace.ml11
-rw-r--r--testsuite/tests/badly-ordered-deps/main.ml35
-rw-r--r--testsuite/tests/basic-io-2/io.ml4
-rw-r--r--testsuite/tests/basic-io/wc.ml2
-rw-r--r--testsuite/tests/basic-manyargs/manyargs.ml2
-rw-r--r--testsuite/tests/basic-modules/anonymous.ml54
-rw-r--r--testsuite/tests/basic-modules/main.ml2
-rw-r--r--testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml2
-rw-r--r--testsuite/tests/basic-more/bounds.ml2
-rw-r--r--testsuite/tests/basic-more/div_by_zero.ml2
-rw-r--r--testsuite/tests/basic-more/function_in_ref.ml2
-rw-r--r--testsuite/tests/basic-more/if_in_if.ml2
-rw-r--r--testsuite/tests/basic-more/morematch.ml8
-rw-r--r--testsuite/tests/basic-more/opaque_prim.ml2
-rw-r--r--testsuite/tests/basic-more/pr10338.ml5
-rw-r--r--testsuite/tests/basic-more/pr1271.ml2
-rw-r--r--testsuite/tests/basic-more/pr2719.ml2
-rw-r--r--testsuite/tests/basic-more/pr6216.ml4
-rw-r--r--testsuite/tests/basic-more/record_evaluation_order.ml2
-rw-r--r--testsuite/tests/basic-more/robustmatch.ml4
-rw-r--r--testsuite/tests/basic-more/safer_matching.ml8
-rw-r--r--testsuite/tests/basic-more/sequential_and_or.ml2
-rw-r--r--testsuite/tests/basic-more/structural_constants.ml2
-rw-r--r--testsuite/tests/basic-more/tbuffer.ml2
-rw-r--r--testsuite/tests/basic-more/top_level_patterns.ml2
-rw-r--r--testsuite/tests/basic-more/tprintf.ml2
-rw-r--r--testsuite/tests/basic-multdef/usemultdef.ml2
-rw-r--r--testsuite/tests/basic-private/tlength.ml2
-rw-r--r--testsuite/tests/basic/constprop.ml.c13
-rw-r--r--testsuite/tests/basic/opt_variants.ml2
-rw-r--r--testsuite/tests/basic/patmatch_for_multiple.ml4
-rw-r--r--testsuite/tests/basic/patmatch_incoherence.ml2
-rw-r--r--testsuite/tests/basic/patmatch_split_no_or.ml6
-rw-r--r--testsuite/tests/basic/unit_naming.ml20
-rw-r--r--testsuite/tests/c-api/alloc_async.ml6
-rw-r--r--testsuite/tests/c-api/test_c_thread_has_lock.ml9
-rw-r--r--testsuite/tests/c-api/test_c_thread_has_lock_systhread.ml13
-rw-r--r--testsuite/tests/callback/callback_effects_gc.ml4
-rw-r--r--testsuite/tests/callback/minor_named.ml13
-rw-r--r--testsuite/tests/callback/nested_fiber.ml13
-rw-r--r--testsuite/tests/callback/signals_alloc.ml13
-rw-r--r--testsuite/tests/callback/stack_overflow.ml13
-rw-r--r--testsuite/tests/callback/test1.ml13
-rw-r--r--testsuite/tests/callback/test2.ml13
-rw-r--r--testsuite/tests/callback/test3.ml13
-rw-r--r--testsuite/tests/callback/test4.ml13
-rw-r--r--testsuite/tests/callback/test5.ml13
-rw-r--r--testsuite/tests/callback/test6.ml13
-rw-r--r--testsuite/tests/callback/test7.ml13
-rw-r--r--testsuite/tests/callback/test_finaliser_gc.ml3
-rw-r--r--testsuite/tests/callback/test_signalhandler.ml13
-rw-r--r--testsuite/tests/compiler-libs/test_longident.ml6
-rw-r--r--testsuite/tests/compiler-libs/test_untypeast.ml7
-rw-r--r--testsuite/tests/effects/backtrace.ml11
-rw-r--r--testsuite/tests/effects/cmphash.ml3
-rw-r--r--testsuite/tests/effects/evenodd.ml3
-rw-r--r--testsuite/tests/effects/issue479.ml2
-rw-r--r--testsuite/tests/effects/manylive.ml3
-rw-r--r--testsuite/tests/effects/marshal.ml3
-rw-r--r--testsuite/tests/effects/overflow.ml3
-rw-r--r--testsuite/tests/effects/partial.ml3
-rw-r--r--testsuite/tests/effects/reperform.ml3
-rw-r--r--testsuite/tests/effects/sched.ml3
-rw-r--r--testsuite/tests/effects/shallow_state.ml3
-rw-r--r--testsuite/tests/effects/shallow_state_io.ml3
-rw-r--r--testsuite/tests/effects/test1.ml3
-rw-r--r--testsuite/tests/effects/test10.ml3
-rw-r--r--testsuite/tests/effects/test11.ml3
-rw-r--r--testsuite/tests/effects/test2.ml3
-rw-r--r--testsuite/tests/effects/test3.ml3
-rw-r--r--testsuite/tests/effects/test4.ml3
-rw-r--r--testsuite/tests/effects/test5.ml3
-rw-r--r--testsuite/tests/effects/test6.ml3
-rw-r--r--testsuite/tests/effects/unhandled_unlinked.ml2
-rw-r--r--testsuite/tests/effects/used_cont.ml3
-rw-r--r--testsuite/tests/embedded/cmcaml.ml2
-rw-r--r--testsuite/tests/ephe-c-api/test.ml6
-rw-r--r--testsuite/tests/exotic-syntax/exotic.ml3
-rw-r--r--testsuite/tests/extension-constructor/test.ml3
-rw-r--r--testsuite/tests/flambda/afl_lazy.ml6
-rw-r--r--testsuite/tests/flambda/approx_meet.ml7
-rw-r--r--testsuite/tests/flambda/gpr2239.ml7
-rw-r--r--testsuite/tests/flambda/gpr998.ml2
-rw-r--r--testsuite/tests/flambda/specialise.ml6
-rw-r--r--testsuite/tests/float-unboxing/float_subst_boxed_number.ml10
-rw-r--r--testsuite/tests/float-unboxing/unbox_under_assign.ml3
-rw-r--r--testsuite/tests/formats-transition/deprecated_unsigned_printers.ml2
-rw-r--r--testsuite/tests/formats-transition/ignored_scan_counters.ml2
-rw-r--r--testsuite/tests/formats-transition/legacy_incompatible_flags.ml4
-rw-r--r--testsuite/tests/formats-transition/legacy_unfinished_modifiers.ml4
-rw-r--r--testsuite/tests/formatting/errors_batch.ml2
-rw-r--r--testsuite/tests/formatting/margins.ml2
-rw-r--r--testsuite/tests/formatting/test_locations.ml45
-rw-r--r--testsuite/tests/frame-pointers/c_call.ml10
-rw-r--r--testsuite/tests/frame-pointers/effects.ml10
-rw-r--r--testsuite/tests/frame-pointers/exception_handler.ml10
-rw-r--r--testsuite/tests/frame-pointers/reperform.ml11
-rw-r--r--testsuite/tests/frame-pointers/stack_realloc.ml11
-rw-r--r--testsuite/tests/frame-pointers/stack_realloc2.ml11
-rw-r--r--testsuite/tests/functors/functors.ml8
-rw-r--r--testsuite/tests/gc-roots/globroots.ml2
-rw-r--r--testsuite/tests/gc-roots/globroots_parallel.ml4
-rw-r--r--testsuite/tests/gc-roots/globroots_parallel_spawn_burn.ml4
-rw-r--r--testsuite/tests/gc-roots/globroots_sequential.ml4
-rw-r--r--testsuite/tests/generalized-open/accepted_expect.ml2
-rw-r--r--testsuite/tests/generalized-open/clambda_optim.ml13
-rw-r--r--testsuite/tests/generalized-open/expansiveness.ml2
-rw-r--r--testsuite/tests/generalized-open/funct_body.ml20
-rw-r--r--testsuite/tests/generalized-open/gpr1506.ml2
-rw-r--r--testsuite/tests/generalized-open/pr10048.ml2
-rw-r--r--testsuite/tests/generalized-open/shadowing.ml11
-rw-r--r--testsuite/tests/generated-parse-errors/errors.ml2
-rw-r--r--testsuite/tests/int64-unboxing/test.ml4
-rw-r--r--testsuite/tests/lazy/lazy1.ml2
-rw-r--r--testsuite/tests/lazy/lazy2.ml2
-rw-r--r--testsuite/tests/lazy/lazy3.ml2
-rw-r--r--testsuite/tests/lazy/lazy4.ml2
-rw-r--r--testsuite/tests/lazy/lazy5.ml2
-rw-r--r--testsuite/tests/lazy/lazy6.ml2
-rw-r--r--testsuite/tests/lazy/lazy7.ml2
-rw-r--r--testsuite/tests/lazy/lazy8.ml2
-rw-r--r--testsuite/tests/lazy/minor_major_force.ml2
-rw-r--r--testsuite/tests/let-syntax/let_syntax.ml2
-rw-r--r--testsuite/tests/letrec-check/basic.ml2
-rw-r--r--testsuite/tests/letrec-check/extension_constructor.ml2
-rw-r--r--testsuite/tests/letrec-check/flat_float_array.ml4
-rw-r--r--testsuite/tests/letrec-check/float_unboxing.ml2
-rw-r--r--testsuite/tests/letrec-check/labels.ml2
-rw-r--r--testsuite/tests/letrec-check/lazy_.ml2
-rw-r--r--testsuite/tests/letrec-check/modules.ml2
-rw-r--r--testsuite/tests/letrec-check/no_flat_float_array.ml4
-rw-r--r--testsuite/tests/letrec-check/objects.ml2
-rw-r--r--testsuite/tests/letrec-check/pr7215.ml2
-rw-r--r--testsuite/tests/letrec-check/pr7231.ml8
-rw-r--r--testsuite/tests/letrec-check/pr7706.ml8
-rw-r--r--testsuite/tests/letrec-check/records.ml2
-rw-r--r--testsuite/tests/letrec-check/unboxed.ml2
-rw-r--r--testsuite/tests/letrec-compilation/pr12153_miscompilation_of_recursive_atoms.ml11
-rw-r--r--testsuite/tests/lexing/comments.ml2
-rw-r--r--testsuite/tests/lexing/escape.ml8
-rw-r--r--testsuite/tests/lexing/uchar_esc.ml2
-rw-r--r--testsuite/tests/lf_skiplist/stubs.c3
-rw-r--r--testsuite/tests/lf_skiplist/test.ml2
-rw-r--r--testsuite/tests/lf_skiplist/test_parallel.ml2
-rw-r--r--testsuite/tests/lib-arg/test_rest_all.ml2
-rw-r--r--testsuite/tests/lib-arg/testerror.ml2
-rw-r--r--testsuite/tests/lib-array/test_array.ml2
-rw-r--r--testsuite/tests/lib-bigarray-2/bigarrcml.ml4
-rw-r--r--testsuite/tests/lib-bigarray-2/bigarrfml.ml52
-rw-r--r--testsuite/tests/lib-bigarray-file/mapfile.ml6
-rw-r--r--testsuite/tests/lib-bigarray/bigarrays.ml3
-rw-r--r--testsuite/tests/lib-bigarray/fftba.ml3
-rw-r--r--testsuite/tests/lib-bigarray/pr5115.ml3
-rw-r--r--testsuite/tests/lib-bigarray/weak_bigarray.ml3
-rw-r--r--testsuite/tests/lib-bool/test.ml3
-rw-r--r--testsuite/tests/lib-buffer/test.ml3
-rw-r--r--testsuite/tests/lib-bytes-utf/test.ml3
-rw-r--r--testsuite/tests/lib-bytes/binary.ml3
-rw-r--r--testsuite/tests/lib-bytes/test_bytes.ml2
-rw-r--r--testsuite/tests/lib-channels/input_all.ml15
-rw-r--r--testsuite/tests/lib-channels/input_lines.ml4
-rw-r--r--testsuite/tests/lib-channels/refcounting.ml2
-rw-r--r--testsuite/tests/lib-digest/md5.ml2
-rw-r--r--testsuite/tests/lib-dynlink-bytecode/main.ml103
-rw-r--r--testsuite/tests/lib-dynlink-csharp/main.ml155
-rw-r--r--testsuite/tests/lib-dynlink-domains/main.ml336
-rw-r--r--testsuite/tests/lib-dynlink-init-info/test.ml2
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference6
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test10_main.ml123
-rwxr-xr-xtestsuite/tests/lib-dynlink-initializers/test10_main.native.reference8
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test1_main.ml80
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test2_main.ml80
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test3_main.ml94
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test4_main.ml94
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test5_main.ml108
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test6_main.ml84
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test7_main.ml80
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test8_main.ml104
-rw-r--r--testsuite/tests/lib-dynlink-initializers/test9_main.ml94
-rw-r--r--testsuite/tests/lib-dynlink-native/main.ml394
-rw-r--r--testsuite/tests/lib-dynlink-packed/loader.ml123
-rw-r--r--testsuite/tests/lib-dynlink-pr4229/main.ml146
-rw-r--r--testsuite/tests/lib-dynlink-pr4839/test.ml524
-rw-r--r--testsuite/tests/lib-dynlink-pr6950/loader.ml86
-rw-r--r--testsuite/tests/lib-dynlink-pr9209/dyn.ml114
-rw-r--r--testsuite/tests/lib-dynlink-private/test.ml331
-rw-r--r--testsuite/tests/lib-either/test.ml2
-rw-r--r--testsuite/tests/lib-filename/extension.ml3
-rw-r--r--testsuite/tests/lib-filename/null.ml3
-rw-r--r--testsuite/tests/lib-filename/quotecommand.ml53
-rw-r--r--testsuite/tests/lib-filename/suffix.ml3
-rw-r--r--testsuite/tests/lib-filename/temp.ml3
-rw-r--r--testsuite/tests/lib-float/test.ml3
-rw-r--r--testsuite/tests/lib-floatarray/floatarray.ml3
-rw-r--r--testsuite/tests/lib-format/pr6824.ml2
-rw-r--r--testsuite/tests/lib-format/print_array.ml2
-rw-r--r--testsuite/tests/lib-format/print_seq.ml2
-rw-r--r--testsuite/tests/lib-format/tformat.ml4
-rw-r--r--testsuite/tests/lib-fun/test.ml3
-rw-r--r--testsuite/tests/lib-hashtbl/compatibility.ml3
-rw-r--r--testsuite/tests/lib-hashtbl/hfun.ml3
-rw-r--r--testsuite/tests/lib-hashtbl/htbl.ml3
-rw-r--r--testsuite/tests/lib-int/test.ml3
-rw-r--r--testsuite/tests/lib-int64/issue9460.ml3
-rw-r--r--testsuite/tests/lib-int64/test.ml3
-rw-r--r--testsuite/tests/lib-internalformat/test.ml2
-rw-r--r--testsuite/tests/lib-lazy/test.ml2
-rw-r--r--testsuite/tests/lib-list/test.ml3
-rw-r--r--testsuite/tests/lib-marshal/intext.ml2
-rw-r--r--testsuite/tests/lib-marshal/intext_par.ml2
-rw-r--r--testsuite/tests/lib-obj/new_obj.ml3
-rw-r--r--testsuite/tests/lib-obj/reachable_words.ml3
-rw-r--r--testsuite/tests/lib-obj/reachable_words_bug.ml3
-rw-r--r--testsuite/tests/lib-obj/with_tag.ml3
-rw-r--r--testsuite/tests/lib-option/test.ml3
-rw-r--r--testsuite/tests/lib-printf/pr6534.ml4
-rw-r--r--testsuite/tests/lib-printf/pr6938.ml4
-rw-r--r--testsuite/tests/lib-printf/tprintf.ml4
-rw-r--r--testsuite/tests/lib-queue/test.ml3
-rw-r--r--testsuite/tests/lib-random/chi2.ml3
-rw-r--r--testsuite/tests/lib-random/defaultinit.ml2
-rw-r--r--testsuite/tests/lib-random/parallel.ml13
-rw-r--r--testsuite/tests/lib-random/selfinit.ml3
-rw-r--r--testsuite/tests/lib-random/testvectors.ml3
-rw-r--r--testsuite/tests/lib-result/test.ml3
-rw-r--r--testsuite/tests/lib-runtime-events/test.ml4
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_counters.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_exception.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_parallel.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_reentry.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_runparams.ml4
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_dropped_events.ml15
-rw-r--r--testsuite/tests/lib-runtime-events/test_env_start.ml4
-rw-r--r--testsuite/tests/lib-runtime-events/test_external.ml14
-rw-r--r--testsuite/tests/lib-runtime-events/test_external_preserve.ml16
-rw-r--r--testsuite/tests/lib-runtime-events/test_fork.ml14
-rw-r--r--testsuite/tests/lib-runtime-events/test_instrumented.ml9
-rw-r--r--testsuite/tests/lib-runtime-events/test_user_event.ml2
-rw-r--r--testsuite/tests/lib-runtime-events/test_user_event_unknown.ml15
-rw-r--r--testsuite/tests/lib-scanf-2/tscanf2_master.ml87
-rw-r--r--testsuite/tests/lib-scanf/tscanf.ml2
-rw-r--r--testsuite/tests/lib-seq/test.ml3
-rw-r--r--testsuite/tests/lib-set/testmap.ml3
-rw-r--r--testsuite/tests/lib-set/testset.ml3
-rw-r--r--testsuite/tests/lib-stack/test.ml3
-rw-r--r--testsuite/tests/lib-stdlabels/test_stdlabels.ml2
-rw-r--r--testsuite/tests/lib-str/parallel.ml11
-rw-r--r--testsuite/tests/lib-str/t01.ml11
-rw-r--r--testsuite/tests/lib-string/binary.ml3
-rw-r--r--testsuite/tests/lib-string/test_string.ml3
-rw-r--r--testsuite/tests/lib-sync/prodcons.ml3
-rw-r--r--testsuite/tests/lib-sync/trylock.ml3
-rw-r--r--testsuite/tests/lib-sync/trylock2.ml3
-rw-r--r--testsuite/tests/lib-sys/immediate64.ml3
-rw-r--r--testsuite/tests/lib-sys/rename.ml35
-rw-r--r--testsuite/tests/lib-sys/rename.reference3
-rw-r--r--testsuite/tests/lib-systhreads/boundscheck.ml13
-rw-r--r--testsuite/tests/lib-systhreads/eintr.ml14
-rw-r--r--testsuite/tests/lib-systhreads/multicore_lifecycle.ml11
-rw-r--r--testsuite/tests/lib-systhreads/test_c_thread_register.ml15
-rw-r--r--testsuite/tests/lib-systhreads/testfork.ml15
-rw-r--r--testsuite/tests/lib-systhreads/testfork2.ml15
-rw-r--r--testsuite/tests/lib-systhreads/testpreempt.ml13
-rw-r--r--testsuite/tests/lib-systhreads/testyield.ml16
-rw-r--r--testsuite/tests/lib-systhreads/threadsigmask.ml14
-rw-r--r--testsuite/tests/lib-threads/backtrace_threads.ml13
-rw-r--r--testsuite/tests/lib-threads/bank.ml13
-rw-r--r--testsuite/tests/lib-threads/beat.ml20
-rw-r--r--testsuite/tests/lib-threads/bufchan.ml13
-rw-r--r--testsuite/tests/lib-threads/close.ml13
-rw-r--r--testsuite/tests/lib-threads/delayintr.ml73
-rw-r--r--testsuite/tests/lib-threads/fileio.ml13
-rw-r--r--testsuite/tests/lib-threads/mutex_errors.ml13
-rw-r--r--testsuite/tests/lib-threads/pr4466.ml7
-rw-r--r--testsuite/tests/lib-threads/pr5325.ml13
-rw-r--r--testsuite/tests/lib-threads/pr7638.ml16
-rw-r--r--testsuite/tests/lib-threads/pr8857.ml13
-rw-r--r--testsuite/tests/lib-threads/prodcons.ml13
-rw-r--r--testsuite/tests/lib-threads/prodcons2.ml13
-rw-r--r--testsuite/tests/lib-threads/sieve.ml26
-rw-r--r--testsuite/tests/lib-threads/signal.ml73
-rw-r--r--testsuite/tests/lib-threads/sockets.ml16
-rw-r--r--testsuite/tests/lib-threads/swapchan.ml13
-rw-r--r--testsuite/tests/lib-threads/tls.ml13
-rw-r--r--testsuite/tests/lib-threads/torture.ml13
-rw-r--r--testsuite/tests/lib-threads/uncaught_exception_handler.ml26
-rw-r--r--testsuite/tests/lib-uchar/test.ml3
-rw-r--r--testsuite/tests/lib-unix/common/channel_of.ml11
-rw-r--r--testsuite/tests/lib-unix/common/cloexec.ml83
-rw-r--r--testsuite/tests/lib-unix/common/dup.ml11
-rw-r--r--testsuite/tests/lib-unix/common/dup2.ml13
-rw-r--r--testsuite/tests/lib-unix/common/fork_cleanup.ml13
-rw-r--r--testsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml13
-rw-r--r--testsuite/tests/lib-unix/common/getaddrinfo.ml11
-rw-r--r--testsuite/tests/lib-unix/common/gethostbyaddr.ml11
-rw-r--r--testsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml13
-rw-r--r--testsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml13
-rw-r--r--testsuite/tests/lib-unix/common/pipe_eof.ml11
-rw-r--r--testsuite/tests/lib-unix/common/process_pid.ml11
-rw-r--r--testsuite/tests/lib-unix/common/redirections.ml61
-rw-r--r--testsuite/tests/lib-unix/common/rename.ml11
-rw-r--r--testsuite/tests/lib-unix/common/test_unix_cmdline.ml59
-rw-r--r--testsuite/tests/lib-unix/common/test_unixlabels.ml13
-rw-r--r--testsuite/tests/lib-unix/common/truncate.ml11
-rw-r--r--testsuite/tests/lib-unix/common/uexit.ml11
-rw-r--r--testsuite/tests/lib-unix/common/utimes.ml13
-rw-r--r--testsuite/tests/lib-unix/common/wait_nohang.ml59
-rw-r--r--testsuite/tests/lib-unix/isatty/isatty_std.ml15
-rw-r--r--testsuite/tests/lib-unix/isatty/isatty_tty.ml13
-rw-r--r--testsuite/tests/lib-unix/kill/unix_kill.ml11
-rw-r--r--testsuite/tests/lib-unix/realpath/test.ml11
-rw-r--r--testsuite/tests/lib-unix/unix-execvpe/exec.ml17
-rw-r--r--testsuite/tests/lib-unix/unix-socket/recvfrom_linux.ml17
-rw-r--r--testsuite/tests/lib-unix/unix-socket/recvfrom_unix.ml15
-rw-r--r--testsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml13
-rw-r--r--testsuite/tests/lib-unix/win-createprocess/test.ml13
-rw-r--r--testsuite/tests/lib-unix/win-env/test_env.ml19
-rw-r--r--testsuite/tests/lib-unix/win-socketpair/test.ml29
-rw-r--r--testsuite/tests/lib-unix/win-stat/test.ml13
-rw-r--r--testsuite/tests/lib-unix/win-symlink/parallel_symlink.ml13
-rw-r--r--testsuite/tests/lib-unix/win-symlink/test.ml15
-rw-r--r--testsuite/tests/link-test/empty.ml56
-rw-r--r--testsuite/tests/link-test/test.ml158
-rw-r--r--testsuite/tests/load_path/test.ml12
-rw-r--r--testsuite/tests/local-functions/non_local.ml5
-rw-r--r--testsuite/tests/local-functions/tupled.ml3
-rw-r--r--testsuite/tests/local-functions/tupled2.ml3
-rw-r--r--testsuite/tests/locale/test.ml2
-rw-r--r--testsuite/tests/manual-intf-c/prog.ml19
-rw-r--r--testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml2
-rw-r--r--testsuite/tests/match-exception-warnings/no_mixing_under_guard.ml2
-rw-r--r--testsuite/tests/match-exception-warnings/no_value_clauses.ml2
-rw-r--r--testsuite/tests/match-exception-warnings/placement.ml2
-rw-r--r--testsuite/tests/match-exception-warnings/pr7083.ml2
-rw-r--r--testsuite/tests/match-exception-warnings/reachability.ml2
-rw-r--r--testsuite/tests/match-exception/allocation.ml3
-rw-r--r--testsuite/tests/match-exception/exception_propagation.ml3
-rw-r--r--testsuite/tests/match-exception/identifier_sharing.ml3
-rw-r--r--testsuite/tests/match-exception/match_failure.ml3
-rw-r--r--testsuite/tests/match-exception/nested_handlers.ml3
-rw-r--r--testsuite/tests/match-exception/raise_from_success_continuation.ml3
-rw-r--r--testsuite/tests/match-exception/streams.ml3
-rw-r--r--testsuite/tests/match-exception/tail_calls.ml3
-rw-r--r--testsuite/tests/memory-model/forbidden.ml11
-rw-r--r--testsuite/tests/memory-model/publish.ml13
-rw-r--r--testsuite/tests/messages/highlight_tabs.ml2
-rw-r--r--testsuite/tests/messages/precise_locations.ml2
-rw-r--r--testsuite/tests/messages/spellcheck.ml2
-rw-r--r--testsuite/tests/misc-kb/kbmain.ml2
-rw-r--r--testsuite/tests/misc-unsafe/almabench.ml2
-rw-r--r--testsuite/tests/misc-unsafe/fft.ml2
-rw-r--r--testsuite/tests/misc-unsafe/quicksort.ml2
-rw-r--r--testsuite/tests/misc-unsafe/soli.ml2
-rw-r--r--testsuite/tests/misc/bdd.ml3
-rw-r--r--testsuite/tests/misc/boyer.ml3
-rw-r--r--testsuite/tests/misc/exotic.ml4
-rw-r--r--testsuite/tests/misc/fib.ml3
-rw-r--r--testsuite/tests/misc/gc_mark_stack_overflow.ml3
-rw-r--r--testsuite/tests/misc/gcwords.ml3
-rw-r--r--testsuite/tests/misc/gpr1370.ml3
-rw-r--r--testsuite/tests/misc/hamming.ml3
-rw-r--r--testsuite/tests/misc/nucleic.ml3
-rw-r--r--testsuite/tests/misc/pr7168.ml3
-rw-r--r--testsuite/tests/misc/sieve.ml3
-rw-r--r--testsuite/tests/misc/sorts.ml3
-rw-r--r--testsuite/tests/misc/takc.ml3
-rw-r--r--testsuite/tests/misc/taku.ml3
-rw-r--r--testsuite/tests/no-alias-deps/aliases.ml44
-rw-r--r--testsuite/tests/no-alias-deps/gpr2235.ml38
-rw-r--r--testsuite/tests/opaque/test.ml113
-rw-r--r--testsuite/tests/output-complete-obj/github9344.ml18
-rw-r--r--testsuite/tests/output-complete-obj/test.ml54
-rw-r--r--testsuite/tests/output-complete-obj/test2.ml26
-rw-r--r--testsuite/tests/parallel/atomics.ml3
-rw-r--r--testsuite/tests/parallel/backup_thread.ml11
-rw-r--r--testsuite/tests/parallel/backup_thread_pipe.ml11
-rw-r--r--testsuite/tests/parallel/constpromote.ml3
-rw-r--r--testsuite/tests/parallel/deadcont.ml3
-rw-r--r--testsuite/tests/parallel/domain_dls.ml3
-rw-r--r--testsuite/tests/parallel/domain_dls2.ml3
-rw-r--r--testsuite/tests/parallel/domain_id.ml3
-rw-r--r--testsuite/tests/parallel/domain_parallel_spawn_burn.ml3
-rw-r--r--testsuite/tests/parallel/domain_parallel_spawn_burn_gc_set.ml3
-rw-r--r--testsuite/tests/parallel/domain_serial_spawn_burn.ml11
-rw-r--r--testsuite/tests/parallel/fib_threads.ml11
-rw-r--r--testsuite/tests/parallel/join.ml3
-rw-r--r--testsuite/tests/parallel/major_gc_wait_backup.ml11
-rw-r--r--testsuite/tests/parallel/mctest.ml11
-rw-r--r--testsuite/tests/parallel/multicore_systhreads.ml11
-rw-r--r--testsuite/tests/parallel/pingpong.ml3
-rw-r--r--testsuite/tests/parallel/poll.ml11
-rw-r--r--testsuite/tests/parallel/prodcons_domains.ml3
-rw-r--r--testsuite/tests/parallel/recommended_domain_count.ml2
-rw-r--r--testsuite/tests/parallel/recommended_domain_count_unix.ml11
-rw-r--r--testsuite/tests/parallel/tak.ml3
-rw-r--r--testsuite/tests/parallel/test_c_thread_register.ml13
-rw-r--r--testsuite/tests/parallel/test_issue_11094.ml7
-rw-r--r--testsuite/tests/parse-errors/escape_error.ml8
-rw-r--r--testsuite/tests/parse-errors/expecting.ml8
-rw-r--r--testsuite/tests/parse-errors/mismatch_struct_sig.ml8
-rw-r--r--testsuite/tests/parse-errors/pr7847.ml17
-rw-r--r--testsuite/tests/parse-errors/unclosed_class_signature.mli8
-rw-r--r--testsuite/tests/parse-errors/unclosed_class_simpl_expr1.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_class_simpl_expr2.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_class_simpl_expr3.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_object.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_paren_module_expr1.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_paren_module_expr2.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_paren_module_expr3.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_paren_module_expr4.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_paren_module_expr5.ml8
-rw-r--r--testsuite/tests/parse-errors/unclosed_paren_module_type.mli8
-rw-r--r--testsuite/tests/parse-errors/unclosed_sig.mli8
-rw-r--r--testsuite/tests/parse-errors/unclosed_simple_expr.ml2
-rw-r--r--testsuite/tests/parse-errors/unclosed_simple_pattern.ml2
-rw-r--r--testsuite/tests/parse-errors/unclosed_struct.ml8
-rw-r--r--testsuite/tests/parsetree/locations_test.compilers.reference77
-rw-r--r--testsuite/tests/parsetree/locations_test.ml11
-rw-r--r--testsuite/tests/parsetree/test.ml4
-rw-r--r--testsuite/tests/parsing/anonymous_class_parameter.ml8
-rw-r--r--testsuite/tests/parsing/arrow_ambiguity.ml8
-rw-r--r--testsuite/tests/parsing/assert_location.ml8
-rw-r--r--testsuite/tests/parsing/attributes.compilers.reference18
-rw-r--r--testsuite/tests/parsing/attributes.ml17
-rw-r--r--testsuite/tests/parsing/broken_invariants.ml29
-rw-r--r--testsuite/tests/parsing/change_start_loc.ml4
-rw-r--r--testsuite/tests/parsing/constructor_declarations.ml17
-rw-r--r--testsuite/tests/parsing/docstrings.ml4
-rw-r--r--testsuite/tests/parsing/extended_indexoperators.ml4
-rw-r--r--testsuite/tests/parsing/extension_operators.ml2
-rw-r--r--testsuite/tests/parsing/extensions.compilers.reference308
-rw-r--r--testsuite/tests/parsing/extensions.ml20
-rw-r--r--testsuite/tests/parsing/hash_ambiguity.ml17
-rw-r--r--testsuite/tests/parsing/int_and_float_with_modifier.ml20
-rw-r--r--testsuite/tests/parsing/multi_indices.ml4
-rw-r--r--testsuite/tests/parsing/pr10468.ml4
-rw-r--r--testsuite/tests/parsing/pr6604.ml20
-rw-r--r--testsuite/tests/parsing/pr6604_2.ml20
-rw-r--r--testsuite/tests/parsing/pr6604_3.ml8
-rw-r--r--testsuite/tests/parsing/pr6865.ml20
-rw-r--r--testsuite/tests/parsing/pr7165.ml20
-rw-r--r--testsuite/tests/parsing/quotedextensions.compilers.reference68
-rw-r--r--testsuite/tests/parsing/quotedextensions.ml20
-rw-r--r--testsuite/tests/parsing/reloc.ml6
-rw-r--r--testsuite/tests/parsing/shortcut_ext_attr.ml20
-rw-r--r--testsuite/tests/ppx-attributes/inline.ml4
-rw-r--r--testsuite/tests/ppx-attributes/warning.ml3
-rw-r--r--testsuite/tests/ppx-contexts/test.ml36
-rw-r--r--testsuite/tests/prim-bigstring/bigstring_access.ml3
-rw-r--r--testsuite/tests/prim-bigstring/string_access.ml3
-rw-r--r--testsuite/tests/prim-bswap/bswap.ml3
-rw-r--r--testsuite/tests/prim-revapply/apply.ml2
-rw-r--r--testsuite/tests/prim-revapply/revapply.ml2
-rw-r--r--testsuite/tests/printing-types/disambiguation.ml2
-rw-r--r--testsuite/tests/printing-types/pr248.ml2
-rw-r--r--testsuite/tests/raise-counts/main.ml2
-rw-r--r--testsuite/tests/regression/gpr1623/gpr1623.ml4
-rw-r--r--testsuite/tests/regression/missing_set_of_closures/missing_set_of_closures.ml36
-rw-r--r--testsuite/tests/regression/pr11887/pr11887.ml4
-rw-r--r--testsuite/tests/regression/pr3612/pr3612.ml2
-rw-r--r--testsuite/tests/regression/pr7798/pr7798.ml12
-rw-r--r--testsuite/tests/regression/pr8769/pr8769.ml70
-rw-r--r--testsuite/tests/regression/pr9326/gc_set.ml3
-rw-r--r--testsuite/tests/reproducibility/cmis_on_file_system.ml36
-rw-r--r--testsuite/tests/required-external/main.ml72
-rw-r--r--testsuite/tests/runtime-C-exceptions/test.ml2
-rw-r--r--testsuite/tests/runtime-errors/stackoverflow.ml4
-rw-r--r--testsuite/tests/runtime-errors/syserror.ml55
-rw-r--r--testsuite/tests/self-contained-toplevel/main.ml34
-rw-r--r--testsuite/tests/shadow_include/artificial.ml4
-rw-r--r--testsuite/tests/shadow_include/cannot_shadow_error.ml20
-rw-r--r--testsuite/tests/shadow_include/ghosts.ml2
-rw-r--r--testsuite/tests/shadow_include/shadow_all.ml4
-rw-r--r--testsuite/tests/shapes/comp_units.ml4
-rw-r--r--testsuite/tests/shapes/functors.ml4
-rw-r--r--testsuite/tests/shapes/incl_md_typeof.ml4
-rw-r--r--testsuite/tests/shapes/open_arg.ml4
-rw-r--r--testsuite/tests/shapes/open_struct.ml4
-rw-r--r--testsuite/tests/shapes/recmodules.ml4
-rw-r--r--testsuite/tests/shapes/rotor_example.ml4
-rw-r--r--testsuite/tests/shapes/simple.ml4
-rw-r--r--testsuite/tests/shapes/typeof_include.ml4
-rw-r--r--testsuite/tests/statmemprof/alloc_counts.ml4
-rw-r--r--testsuite/tests/statmemprof/arrays_in_major.ml6
-rw-r--r--testsuite/tests/statmemprof/arrays_in_minor.ml6
-rw-r--r--testsuite/tests/statmemprof/blocking_in_callback.ml18
-rw-r--r--testsuite/tests/statmemprof/callstacks.ml39
-rw-r--r--testsuite/tests/statmemprof/comballoc.ml17
-rw-r--r--testsuite/tests/statmemprof/custom.ml4
-rw-r--r--testsuite/tests/statmemprof/exception_callback.ml6
-rw-r--r--testsuite/tests/statmemprof/exception_callback_minor.ml6
-rw-r--r--testsuite/tests/statmemprof/intern.ml6
-rw-r--r--testsuite/tests/statmemprof/lists_in_minor.ml6
-rw-r--r--testsuite/tests/statmemprof/minor_no_postpone.ml6
-rw-r--r--testsuite/tests/statmemprof/moved_while_blocking.ml18
-rw-r--r--testsuite/tests/statmemprof/thread_exit_in_callback.ml18
-rw-r--r--testsuite/tests/tmc/ambiguities.ml3
-rw-r--r--testsuite/tests/tmc/other_features.ml3
-rw-r--r--testsuite/tests/tmc/partial_application.ml14
-rw-r--r--testsuite/tests/tmc/readable_output.ml5
-rw-r--r--testsuite/tests/tmc/semantic.ml2
-rw-r--r--testsuite/tests/tmc/stack_space.ml18
-rw-r--r--testsuite/tests/tmc/tupled_function.ml7
-rw-r--r--testsuite/tests/tmc/tupled_function_calls.ml14
-rw-r--r--testsuite/tests/tmc/usage_warnings.ml3
-rw-r--r--testsuite/tests/tool-caml-tex/ellipses.ml21
-rw-r--r--testsuite/tests/tool-caml-tex/redirections.ml33
-rw-r--r--testsuite/tests/tool-command-line/test-o-one-c-file.ml20
-rw-r--r--testsuite/tests/tool-command-line/test-o-several-files.ml14
-rw-r--r--testsuite/tests/tool-command-line/test-unknown-file.ml53
-rw-r--r--testsuite/tests/tool-debugger/basic/debuggee.ml20
-rw-r--r--testsuite/tests/tool-debugger/dynlink/host.ml59
-rw-r--r--testsuite/tests/tool-debugger/find-artifacts/debuggee.ml42
-rw-r--r--testsuite/tests/tool-debugger/module_named_main/main.ml32
-rw-r--r--testsuite/tests/tool-debugger/no_debug_event/noev.ml48
-rw-r--r--testsuite/tests/tool-debugger/printer/debuggee.ml47
-rw-r--r--testsuite/tests/tool-dumpobj/test.ml12
-rw-r--r--testsuite/tests/tool-expect-test/clean_typer.ml2
-rw-r--r--testsuite/tests/tool-lexyacc/calc.ml10
-rw-r--r--testsuite/tests/tool-lexyacc/chars.mll2
-rw-r--r--testsuite/tests/tool-lexyacc/csets.mll2
-rw-r--r--testsuite/tests/tool-lexyacc/mpr7760.mll2
-rw-r--r--testsuite/tests/tool-lexyacc/parsecheck.mly2
-rw-r--r--testsuite/tests/tool-ocaml-annot/failure.ml26
-rw-r--r--testsuite/tests/tool-ocaml-annot/success.ml22
-rw-r--r--testsuite/tests/tool-ocaml-annot/typeonly.ml24
-rw-r--r--testsuite/tests/tool-ocaml/directive_failure.ml8
-rw-r--r--testsuite/tests/tool-ocaml/t000.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t010-const0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t010-const1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t010-const2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t010-const3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t011-constint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t020.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t021-pushconst1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t021-pushconst2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t021-pushconst3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t022-pushconstint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t040-makeblock1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t040-makeblock2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t040-makeblock3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t041-makeblock.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t050-getglobal.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t050-pushgetglobal.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t051-getglobalfield.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t051-pushgetglobalfield.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t060-raise.ml12
-rw-r--r--testsuite/tests/tool-ocaml/t070-branch.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t070-branchif.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t070-branchifnot.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t071-boolnot.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t080-eq.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t080-geint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t080-gtint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t080-leint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t080-ltint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t080-neq.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc5.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc6.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t090-acc7.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t091-acc.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc5.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc6.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t092-pushacc7.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t093-pushacc.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t100-pushtrap.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t101-poptrap.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-addint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-andint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-asrint-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-asrint-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-divint-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-divint-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-divint-3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-lslint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-lsrint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-modint-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-modint-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-mulint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-negint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-offsetint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-orint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-subint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t110-xorint.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t120-getstringchar.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t121-setstringchar.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t130-getvectitem.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t130-vectlength.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t131-setvectitem.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t140-switch-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t140-switch-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t140-switch-3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t140-switch-4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t141-switch-5.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t141-switch-6.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t141-switch-7.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t142-switch-8.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t142-switch-9.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t142-switch-A.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t150-push-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t150-push-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t160-closure.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t161-apply1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t162-return.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t163.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t164-apply2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t164-apply3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t165-apply.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t170-envacc2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t170-envacc3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t170-envacc4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t171-envacc.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t172-pushenvacc1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t172-pushenvacc2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t172-pushenvacc3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t172-pushenvacc4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t173-pushenvacc.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t180-appterm1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t180-appterm2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t180-appterm3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t181-appterm.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t190-makefloatblock-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t190-makefloatblock-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t190-makefloatblock-3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t191-vectlength.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t192-getfloatfield-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t192-getfloatfield-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t193-setfloatfield-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t193-setfloatfield-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t200-getfield0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t200-getfield1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t200-getfield2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t200-getfield3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t201-getfield.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t210-setfield0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t210-setfield1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t210-setfield2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t210-setfield3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t211-setfield.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t220-assign.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t230-check_signals.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t240-c_call1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t240-c_call2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t240-c_call3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t240-c_call4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t240-c_call5.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t250-closurerec-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t250-closurerec-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t251-pushoffsetclosure0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t251-pushoffsetclosure2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t251-pushoffsetclosurem2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t252-pushoffsetclosure.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t253-offsetclosure0.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t253-offsetclosure2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t253-offsetclosurem2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t254-offsetclosure.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t260-offsetref.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t270-push_retaddr.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t300-getmethod.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t301-object.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t310-alloc-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t310-alloc-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t320-gc-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t320-gc-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t320-gc-3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t330-compact-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t330-compact-2.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t330-compact-3.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t330-compact-4.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t340-weak.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t350-heapcheck.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t360-stacks-1.ml10
-rw-r--r--testsuite/tests/tool-ocaml/t360-stacks-2.ml12
-rw-r--r--testsuite/tests/tool-ocamlc-compat32/compat32.ml50
-rw-r--r--testsuite/tests/tool-ocamlc-error-cleanup/test.ml16
-rw-r--r--testsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.ml10
-rw-r--r--testsuite/tests/tool-ocamlc-open/tool-ocamlc-open.ml16
-rw-r--r--testsuite/tests/tool-ocamlc-stop-after/stop_after_lambda.ml10
-rw-r--r--testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml20
-rw-r--r--testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli20
-rw-r--r--testsuite/tests/tool-ocamlc-stop-after/stop_after_scheduling.ml20
-rw-r--r--testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml20
-rw-r--r--testsuite/tests/tool-ocamldep-modalias/main.ml263
-rw-r--r--testsuite/tests/tool-ocamldep-shadowing/a.ml14
-rw-r--r--testsuite/tests/tool-ocamldoc-open/main.ml8
-rw-r--r--testsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alert_toplevel.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alert_toplevel2.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alerts.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alerts.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alerts_impl.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Alerts_impl.ml4
-rw-r--r--testsuite/tests/tool-ocamldoc/Documentation_tags.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Documentation_tags.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Entities.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Entities.ml2
-rw-r--r--testsuite/tests/tool-ocamldoc/Extensible_variant.ml2
-rw-r--r--testsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Include_module_type_of.mli7
-rw-r--r--testsuite/tests/tool-ocamldoc/Inline_records.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Inline_records.mli10
-rw-r--r--testsuite/tests/tool-ocamldoc/Inline_records_bis.ml2
-rw-r--r--testsuite/tests/tool-ocamldoc/Item_ids.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Item_ids.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Level_0.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Linebreaks.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Linebreaks.mli8
-rw-r--r--testsuite/tests/tool-ocamldoc/Loop.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Loop.ml7
-rw-r--r--testsuite/tests/tool-ocamldoc/Module_whitespace.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Module_whitespace.ml2
-rw-r--r--testsuite/tests/tool-ocamldoc/No_preamble.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/No_preamble.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Paragraph.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Paragraph.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Short_description.latex.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Short_description.txt2
-rw-r--r--testsuite/tests/tool-ocamldoc/Test.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/Variants.html.reference2
-rw-r--r--testsuite/tests/tool-ocamldoc/Variants.mli7
-rw-r--r--testsuite/tests/tool-ocamldoc/latex_ref.mli2
-rw-r--r--testsuite/tests/tool-ocamldoc/t01.ml6
-rw-r--r--testsuite/tests/tool-ocamldoc/t02.ml6
-rw-r--r--testsuite/tests/tool-ocamldoc/t03.ml6
-rw-r--r--testsuite/tests/tool-ocamldoc/t04.ml6
-rw-r--r--testsuite/tests/tool-ocamldoc/t05.ml6
-rw-r--r--testsuite/tests/tool-ocamlobjinfo/question.ml18
-rw-r--r--testsuite/tests/tool-ocamlopt-save-ir/check_for_pack.ml24
-rw-r--r--testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_scheduling.ml14
-rw-r--r--testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_typing.ml25
-rw-r--r--testsuite/tests/tool-ocamlopt-save-ir/start_from_emit.ml49
-rw-r--r--testsuite/tests/tool-ocamlopt-stop-after/stop_after_lambda.ml12
-rw-r--r--testsuite/tests/tool-ocamlopt-stop-after/stop_after_scheduling.ml16
-rw-r--r--testsuite/tests/tool-ocamltest/norm1.ml3
-rw-r--r--testsuite/tests/tool-ocamltest/norm2.ml3
-rw-r--r--testsuite/tests/tool-ocamltest/norm3.ml3
-rw-r--r--testsuite/tests/tool-ocamltest/norm4.ml3
-rw-r--r--testsuite/tests/tool-toplevel-invocation/test.ml90
-rw-r--r--testsuite/tests/tool-toplevel/error_highlighting.ml17
-rw-r--r--testsuite/tests/tool-toplevel/exotic_lists.ml2
-rw-r--r--testsuite/tests/tool-toplevel/install_printer.ml2
-rw-r--r--testsuite/tests/tool-toplevel/known-bugs/broken_rec_in_show.ml2
-rw-r--r--testsuite/tests/tool-toplevel/mod_use.ml4
-rw-r--r--testsuite/tests/tool-toplevel/pr6468.ml2
-rw-r--r--testsuite/tests/tool-toplevel/pr7060.ml2
-rw-r--r--testsuite/tests/tool-toplevel/pr7751.ml4
-rw-r--r--testsuite/tests/tool-toplevel/pr9701.ml10
-rw-r--r--testsuite/tests/tool-toplevel/printval.ml2
-rw-r--r--testsuite/tests/tool-toplevel/redefinition_hints.ml2
-rw-r--r--testsuite/tests/tool-toplevel/show.ml2
-rw-r--r--testsuite/tests/tool-toplevel/show_short_paths.ml4
-rw-r--r--testsuite/tests/tool-toplevel/strings.ml2
-rw-r--r--testsuite/tests/tool-toplevel/topeval.ml7
-rw-r--r--testsuite/tests/tool-toplevel/tracing.ml2
-rw-r--r--testsuite/tests/tool-toplevel/uncaught_exceptions.ml2
-rw-r--r--testsuite/tests/tool-toplevel/use_command.ml2
-rw-r--r--testsuite/tests/translprim/array_spec.ml23
-rw-r--r--testsuite/tests/translprim/comparison_table.ml8
-rw-r--r--testsuite/tests/translprim/locs.ml5
-rw-r--r--testsuite/tests/translprim/module_coercion.ml23
-rw-r--r--testsuite/tests/translprim/ref_spec.ml8
-rw-r--r--testsuite/tests/typing-core-bugs/const_int_hint.ml2
-rw-r--r--testsuite/tests/typing-core-bugs/missing_rec_hint.ml2
-rw-r--r--testsuite/tests/typing-core-bugs/repeated_did_you_mean.ml2
-rw-r--r--testsuite/tests/typing-core-bugs/type_expected_explanation.ml4
-rw-r--r--testsuite/tests/typing-core-bugs/unit_fun_hints.ml4
-rw-r--r--testsuite/tests/typing-deprecated/alerts.ml2
-rw-r--r--testsuite/tests/typing-deprecated/deprecated.ml2
-rw-r--r--testsuite/tests/typing-extension-constructor/test.ml2
-rw-r--r--testsuite/tests/typing-extensions/cast.ml2
-rw-r--r--testsuite/tests/typing-extensions/disambiguation.ml2
-rw-r--r--testsuite/tests/typing-extensions/extensions.ml2
-rw-r--r--testsuite/tests/typing-extensions/msg.ml2
-rw-r--r--testsuite/tests/typing-extensions/open_types.ml2
-rw-r--r--testsuite/tests/typing-external/pr11392.ml2
-rw-r--r--testsuite/tests/typing-fstclassmod/aliases.ml2
-rw-r--r--testsuite/tests/typing-fstclassmod/fstclassmod.ml2
-rw-r--r--testsuite/tests/typing-fstclassmod/nondep_instance.ml3
-rw-r--r--testsuite/tests/typing-fstclassmod/scope_escape.ml137
-rw-r--r--testsuite/tests/typing-gadts/ambiguity.ml2
-rw-r--r--testsuite/tests/typing-gadts/ambivalent_apply.ml2
-rw-r--r--testsuite/tests/typing-gadts/didier.ml2
-rw-r--r--testsuite/tests/typing-gadts/dynamic_frisch.ml2
-rw-r--r--testsuite/tests/typing-gadts/gadthead.ml2
-rw-r--r--testsuite/tests/typing-gadts/name_existentials.ml2
-rw-r--r--testsuite/tests/typing-gadts/nested_equations.ml2
-rw-r--r--testsuite/tests/typing-gadts/omega07.ml2
-rw-r--r--testsuite/tests/typing-gadts/or_patterns.ml2
-rw-r--r--testsuite/tests/typing-gadts/packed-module-recasting.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr10189.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr10271.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr10348.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr10735.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr10907.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr11888.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5332.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5689.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5785.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5848.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5906.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5948.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5981.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5985.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5989.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr5997.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6158.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6163.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6174.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6241.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6690.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6817.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6934.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6980.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr6993_bad.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7016.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7160.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7214.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7222.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7230.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7234.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7260.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7269.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7298.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7374.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7378.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7381.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7390.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7391.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7397.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7421.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7432.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7520.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7618.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7747.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr7902.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr9019.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr9759.ml2
-rw-r--r--testsuite/tests/typing-gadts/pr9799.ml2
-rw-r--r--testsuite/tests/typing-gadts/principality-and-gadts.ml3
-rw-r--r--testsuite/tests/typing-gadts/return_type.ml2
-rw-r--r--testsuite/tests/typing-gadts/term-conv.ml2
-rw-r--r--testsuite/tests/typing-gadts/test.ml8
-rw-r--r--testsuite/tests/typing-gadts/unexpected_existentials.ml2
-rw-r--r--testsuite/tests/typing-gadts/unify_mb.ml2
-rw-r--r--testsuite/tests/typing-gadts/variables_in_mcomp.ml2
-rw-r--r--testsuite/tests/typing-gadts/yallop_bugs.ml2
-rw-r--r--testsuite/tests/typing-immediate/immediate.ml2
-rw-r--r--testsuite/tests/typing-implicit_unpack/implicit_unpack.ml2
-rw-r--r--testsuite/tests/typing-kind/kind_mismatch.ml2
-rw-r--r--testsuite/tests/typing-misc-bugs/core_array_reduced_ok.ml8
-rw-r--r--testsuite/tests/typing-misc-bugs/gadt_declaration_check.ml2
-rw-r--r--testsuite/tests/typing-misc-bugs/pr6303_bad.ml20
-rw-r--r--testsuite/tests/typing-misc-bugs/pr6946_bad.ml20
-rw-r--r--testsuite/tests/typing-misc/apply_non_function.ml59
-rw-r--r--testsuite/tests/typing-misc/build_as_type.ml2
-rw-r--r--testsuite/tests/typing-misc/constraints.ml2
-rw-r--r--testsuite/tests/typing-misc/deep.ml2
-rw-r--r--testsuite/tests/typing-misc/disambiguate_principality.ml2
-rw-r--r--testsuite/tests/typing-misc/distant_errors.ml2
-rw-r--r--testsuite/tests/typing-misc/empty_variant.ml2
-rw-r--r--testsuite/tests/typing-misc/enrich_typedecl.ml2
-rw-r--r--testsuite/tests/typing-misc/exotic_unifications.ml2
-rw-r--r--testsuite/tests/typing-misc/external_arity.ml2
-rw-r--r--testsuite/tests/typing-misc/filter_params.ml2
-rw-r--r--testsuite/tests/typing-misc/gpr2277.ml2
-rw-r--r--testsuite/tests/typing-misc/includeclass_errors.ml2
-rw-r--r--testsuite/tests/typing-misc/injectivity.ml2
-rw-r--r--testsuite/tests/typing-misc/inside_out.ml2
-rw-r--r--testsuite/tests/typing-misc/is_expansive.ml3
-rw-r--r--testsuite/tests/typing-misc/labels.ml2
-rw-r--r--testsuite/tests/typing-misc/normalize_type.ml2
-rw-r--r--testsuite/tests/typing-misc/occur_check.ml2
-rw-r--r--testsuite/tests/typing-misc/optbinders.ml2
-rw-r--r--testsuite/tests/typing-misc/pat_type_sharing.ml2
-rw-r--r--testsuite/tests/typing-misc/pattern_open.ml2
-rw-r--r--testsuite/tests/typing-misc/polyvars.ml2
-rw-r--r--testsuite/tests/typing-misc/pr6416.ml4
-rw-r--r--testsuite/tests/typing-misc/pr6634.ml4
-rw-r--r--testsuite/tests/typing-misc/pr6939-flat-float-array.ml4
-rw-r--r--testsuite/tests/typing-misc/pr6939-no-flat-float-array.ml6
-rw-r--r--testsuite/tests/typing-misc/pr7103.ml2
-rw-r--r--testsuite/tests/typing-misc/pr7228.ml2
-rw-r--r--testsuite/tests/typing-misc/pr7668_bad.ml2
-rw-r--r--testsuite/tests/typing-misc/pr7712.ml2
-rw-r--r--testsuite/tests/typing-misc/pr7937.ml2
-rw-r--r--testsuite/tests/typing-misc/pr8548.ml3
-rw-r--r--testsuite/tests/typing-misc/pr8548_split.ml42
-rw-r--r--testsuite/tests/typing-misc/printing.ml2
-rw-r--r--testsuite/tests/typing-misc/records.ml2
-rw-r--r--testsuite/tests/typing-misc/scope_escape.ml2
-rw-r--r--testsuite/tests/typing-misc/typecore_empty_polyvariant_error.ml16
-rw-r--r--testsuite/tests/typing-misc/typecore_errors.ml2
-rw-r--r--testsuite/tests/typing-misc/typecore_nolabel_errors.ml4
-rw-r--r--testsuite/tests/typing-misc/typetexp_errors.ml25
-rw-r--r--testsuite/tests/typing-misc/unbound_type_variables.ml2
-rw-r--r--testsuite/tests/typing-misc/unique_names_in_unification.ml4
-rw-r--r--testsuite/tests/typing-misc/variance.ml2
-rw-r--r--testsuite/tests/typing-misc/variant.ml2
-rw-r--r--testsuite/tests/typing-misc/wellfounded.ml2
-rw-r--r--testsuite/tests/typing-misc/wrong_kind.ml2
-rw-r--r--testsuite/tests/typing-missing-cmi-2/test.ml26
-rw-r--r--testsuite/tests/typing-missing-cmi-3/user.ml19
-rw-r--r--testsuite/tests/typing-missing-cmi/test.ml38
-rw-r--r--testsuite/tests/typing-modules-bugs/gatien_baron_20131019_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr10661_ok.ml6
-rw-r--r--testsuite/tests/typing-modules-bugs/pr10693_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr5164_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr51_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr5663_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr5914_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6240_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6293_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6427_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6485_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6513_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6572_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6651_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6752_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6752_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference3
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6899_first_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6899_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference3
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6899_second_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6944_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6954_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6981_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6982_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6985_extended.ml2
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6985_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr6992_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7036_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7082_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7112_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7112_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7152_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7182_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7305_principal.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7321_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7414_2_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7414_bad.ml20
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7519_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7601_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr7601a_ok.ml8
-rw-r--r--testsuite/tests/typing-modules-bugs/pr9695_bad.ml20
-rw-r--r--testsuite/tests/typing-modules/Test.ml2
-rw-r--r--testsuite/tests/typing-modules/aliases.ml2
-rw-r--r--testsuite/tests/typing-modules/anonymous.ml2
-rw-r--r--testsuite/tests/typing-modules/applicative_functor_type.ml2
-rw-r--r--testsuite/tests/typing-modules/extension_constructors_errors_test.ml2
-rw-r--r--testsuite/tests/typing-modules/firstclass.ml2
-rw-r--r--testsuite/tests/typing-modules/functors.ml2
-rw-r--r--testsuite/tests/typing-modules/generative.ml2
-rw-r--r--testsuite/tests/typing-modules/illegal_permutation.ml2
-rw-r--r--testsuite/tests/typing-modules/inclusion_errors.ml2
-rw-r--r--testsuite/tests/typing-modules/inclusion_errors_elision.ml6
-rw-r--r--testsuite/tests/typing-modules/merge_constraint.ml5
-rw-r--r--testsuite/tests/typing-modules/module_type_substitution.ml2
-rw-r--r--testsuite/tests/typing-modules/nondep.ml2
-rw-r--r--testsuite/tests/typing-modules/nondep_private_abbrev.ml2
-rw-r--r--testsuite/tests/typing-modules/nongen.ml23
-rw-r--r--testsuite/tests/typing-modules/normalize_path.ml2
-rw-r--r--testsuite/tests/typing-modules/packed_module_levels.ml2
-rw-r--r--testsuite/tests/typing-modules/pr10298.ml2
-rw-r--r--testsuite/tests/typing-modules/pr10399.ml2
-rw-r--r--testsuite/tests/typing-modules/pr5911.ml2
-rw-r--r--testsuite/tests/typing-modules/pr6394.ml2
-rw-r--r--testsuite/tests/typing-modules/pr6633.ml2
-rw-r--r--testsuite/tests/typing-modules/pr7207.ml2
-rw-r--r--testsuite/tests/typing-modules/pr7348.ml2
-rw-r--r--testsuite/tests/typing-modules/pr7726.ml2
-rw-r--r--testsuite/tests/typing-modules/pr7787.ml2
-rw-r--r--testsuite/tests/typing-modules/pr7818.ml2
-rw-r--r--testsuite/tests/typing-modules/pr7851.ml2
-rw-r--r--testsuite/tests/typing-modules/pr8810.ml8
-rw-r--r--testsuite/tests/typing-modules/pr9384.ml2
-rw-r--r--testsuite/tests/typing-modules/pr9695.ml2
-rw-r--r--testsuite/tests/typing-modules/printing.ml2
-rw-r--r--testsuite/tests/typing-modules/private.ml4
-rw-r--r--testsuite/tests/typing-modules/records_errors_test.ml2
-rw-r--r--testsuite/tests/typing-modules/recursive.ml2
-rw-r--r--testsuite/tests/typing-modules/struct_include_optimisation.ml3
-rw-r--r--testsuite/tests/typing-modules/unroll_private_abbrev.ml2
-rw-r--r--testsuite/tests/typing-modules/variants_errors_test.ml4
-rw-r--r--testsuite/tests/typing-modules/with_ghosts.ml2
-rw-r--r--testsuite/tests/typing-multifile/pr6372.ml14
-rw-r--r--testsuite/tests/typing-multifile/pr7325.ml22
-rw-r--r--testsuite/tests/typing-multifile/pr7563.ml2
-rw-r--r--testsuite/tests/typing-multifile/pr9218.ml6
-rw-r--r--testsuite/tests/typing-objects-bugs/pr3968_bad.ml20
-rw-r--r--testsuite/tests/typing-objects-bugs/pr4018_bad.ml20
-rw-r--r--testsuite/tests/typing-objects-bugs/pr4435_bad.ml20
-rw-r--r--testsuite/tests/typing-objects-bugs/pr4766_ok.ml8
-rw-r--r--testsuite/tests/typing-objects-bugs/pr4824_ok.ml8
-rw-r--r--testsuite/tests/typing-objects-bugs/pr4824a_bad.ml20
-rw-r--r--testsuite/tests/typing-objects-bugs/pr5156_ok.ml8
-rw-r--r--testsuite/tests/typing-objects-bugs/pr7284_bad.ml20
-rw-r--r--testsuite/tests/typing-objects-bugs/pr7293_ok.ml8
-rw-r--r--testsuite/tests/typing-objects-bugs/woodyatt_ok.ml8
-rw-r--r--testsuite/tests/typing-objects-bugs/yamagata021012_ok.ml8
-rw-r--r--testsuite/tests/typing-objects/Exemples.ml2
-rw-r--r--testsuite/tests/typing-objects/Tests.ml5
-rw-r--r--testsuite/tests/typing-objects/abstract_rows.ml2
-rw-r--r--testsuite/tests/typing-objects/class_2.ml2
-rw-r--r--testsuite/tests/typing-objects/dummy.ml2
-rw-r--r--testsuite/tests/typing-objects/errors.ml2
-rw-r--r--testsuite/tests/typing-objects/field_kind.ml2
-rw-r--r--testsuite/tests/typing-objects/nongen.ml23
-rw-r--r--testsuite/tests/typing-objects/open_in_classes.ml2
-rw-r--r--testsuite/tests/typing-objects/pr11569.ml2
-rw-r--r--testsuite/tests/typing-objects/pr5545.ml2
-rw-r--r--testsuite/tests/typing-objects/pr5619_bad.ml2
-rw-r--r--testsuite/tests/typing-objects/pr5858.ml2
-rw-r--r--testsuite/tests/typing-objects/pr6123_bad.ml2
-rw-r--r--testsuite/tests/typing-objects/pr6383.ml2
-rw-r--r--testsuite/tests/typing-objects/pr6907_bad.ml2
-rw-r--r--testsuite/tests/typing-objects/pr7711_ok.ml2
-rw-r--r--testsuite/tests/typing-objects/self_cannot_be_closed.ml4
-rw-r--r--testsuite/tests/typing-objects/self_cannot_escape_pr7865.ml2
-rw-r--r--testsuite/tests/typing-objects/unbound-type-var.ml2
-rw-r--r--testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.ml17
-rw-r--r--testsuite/tests/typing-ocamlc-i/pr4791.ml17
-rw-r--r--testsuite/tests/typing-ocamlc-i/pr6323.ml17
-rw-r--r--testsuite/tests/typing-ocamlc-i/pr7402.ml17
-rw-r--r--testsuite/tests/typing-ocamlc-i/pr7620_bad.ml20
-rw-r--r--testsuite/tests/typing-poly-bugs/pr5322_ok.ml8
-rw-r--r--testsuite/tests/typing-poly-bugs/pr5673_ok.ml8
-rw-r--r--testsuite/tests/typing-poly-bugs/pr6922_ok.ml8
-rw-r--r--testsuite/tests/typing-poly/error_messages.ml2
-rw-r--r--testsuite/tests/typing-poly/poly.ml5
-rw-r--r--testsuite/tests/typing-poly/pr7636.ml2
-rw-r--r--testsuite/tests/typing-poly/pr9603.ml2
-rw-r--r--testsuite/tests/typing-polyvariants-bugs-2/pr3918c.ml44
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr10664.ml3
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr10664a.ml2
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr4775_ok.ml8
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr4933_ok.ml8
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml8
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml20
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr7199_ok.ml8
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr7817_bad.ml2
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr7824.ml2
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/pr8575.ml2
-rw-r--r--testsuite/tests/typing-polyvariants-bugs/privrowsabate_ok.ml8
-rw-r--r--testsuite/tests/typing-private-bugs/pr5026_bad.ml20
-rw-r--r--testsuite/tests/typing-private-bugs/pr5469_ok.ml8
-rw-r--r--testsuite/tests/typing-private/invalid_private_row.ml2
-rw-r--r--testsuite/tests/typing-private/private.ml7
-rw-r--r--testsuite/tests/typing-recmod/gpr1626.ml2
-rw-r--r--testsuite/tests/typing-recmod/pr6491.ml2
-rw-r--r--testsuite/tests/typing-recmod/pr9494.ml7
-rw-r--r--testsuite/tests/typing-recmod/t01bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t02bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t03ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t04bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t05bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t06ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t07bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t08bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t09bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t10ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t11bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t12bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t13ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t14bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t15bad.ml20
-rw-r--r--testsuite/tests/typing-recmod/t16ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t17ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t18ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t20ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t21ok.ml8
-rw-r--r--testsuite/tests/typing-recmod/t22ok.ml8
-rw-r--r--testsuite/tests/typing-recordarg/recordarg.ml2
-rw-r--r--testsuite/tests/typing-rectypes-bugs/pr5343_bad.ml20
-rw-r--r--testsuite/tests/typing-rectypes-bugs/pr6174_bad.ml20
-rw-r--r--testsuite/tests/typing-rectypes-bugs/pr6870_bad.ml20
-rw-r--r--testsuite/tests/typing-safe-linking/b_bad.ml32
-rw-r--r--testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile.ml2
-rw-r--r--testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile_top.ml22
-rw-r--r--testsuite/tests/typing-short-paths/errors.ml4
-rw-r--r--testsuite/tests/typing-short-paths/gpr1223.ml6
-rw-r--r--testsuite/tests/typing-short-paths/pr5918.ml11
-rw-r--r--testsuite/tests/typing-short-paths/pr6836.ml4
-rw-r--r--testsuite/tests/typing-short-paths/pr7543.ml4
-rw-r--r--testsuite/tests/typing-short-paths/short-paths.ml4
-rw-r--r--testsuite/tests/typing-signatures/els.ml2
-rw-r--r--testsuite/tests/typing-signatures/nondep_regression.ml2
-rw-r--r--testsuite/tests/typing-signatures/pr6371.ml2
-rw-r--r--testsuite/tests/typing-signatures/pr6672.ml2
-rw-r--r--testsuite/tests/typing-sigsubst/sig_local_aliases.ml2
-rw-r--r--testsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.ml8
-rw-r--r--testsuite/tests/typing-sigsubst/sigsubst.ml2
-rw-r--r--testsuite/tests/typing-sigsubst/test_locations.ml57
-rw-r--r--testsuite/tests/typing-typeparam/newtype.ml2
-rw-r--r--testsuite/tests/typing-unboxed-types/test.ml2
-rw-r--r--testsuite/tests/typing-unboxed-types/test_flat.ml4
-rw-r--r--testsuite/tests/typing-unboxed-types/test_no_flat.ml4
-rw-r--r--testsuite/tests/typing-unboxed/test.ml4
-rw-r--r--testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml30
-rw-r--r--testsuite/tests/typing-warnings/application.ml50
-rw-r--r--testsuite/tests/typing-warnings/coercions.ml4
-rw-r--r--testsuite/tests/typing-warnings/disable_warnings_classes.ml4
-rw-r--r--testsuite/tests/typing-warnings/exhaustiveness.ml4
-rw-r--r--testsuite/tests/typing-warnings/never_returns.ml4
-rw-r--r--testsuite/tests/typing-warnings/open_warnings.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr5892.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr6587.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr6872.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr7085.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr7115.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr7261.ml11
-rw-r--r--testsuite/tests/typing-warnings/pr7297.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr7553.ml4
-rw-r--r--testsuite/tests/typing-warnings/pr9244.ml4
-rw-r--r--testsuite/tests/typing-warnings/records.ml4
-rw-r--r--testsuite/tests/typing-warnings/unused_functor_parameter.ml4
-rw-r--r--testsuite/tests/typing-warnings/unused_rec.ml2
-rw-r--r--testsuite/tests/typing-warnings/unused_recmodule.ml2
-rw-r--r--testsuite/tests/typing-warnings/unused_types.ml4
-rw-r--r--testsuite/tests/typing-warnings/warning16.ml2
-rw-r--r--testsuite/tests/unboxed-primitive-args/test.ml31
-rw-r--r--testsuite/tests/unwind/driver.ml41
-rw-r--r--testsuite/tests/utils/edit_distance.ml8
-rw-r--r--testsuite/tests/utils/find_first_mono.ml8
-rw-r--r--testsuite/tests/utils/magic_number.ml6
-rw-r--r--testsuite/tests/utils/overflow_detection.ml8
-rw-r--r--testsuite/tests/utils/test_strongly_connected_components.ml10
-rw-r--r--testsuite/tests/warnings/deprecated_module.ml11
-rw-r--r--testsuite/tests/warnings/deprecated_module_assigment.ml11
-rw-r--r--testsuite/tests/warnings/deprecated_module_use.ml38
-rw-r--r--testsuite/tests/warnings/deprecated_mutable.ml11
-rw-r--r--testsuite/tests/warnings/deprecated_warning_specs.ml2
-rw-r--r--testsuite/tests/warnings/mnemonics.mll4
-rw-r--r--testsuite/tests/warnings/w01.ml20
-rw-r--r--testsuite/tests/warnings/w03.ml20
-rw-r--r--testsuite/tests/warnings/w04.ml20
-rw-r--r--testsuite/tests/warnings/w04_failure.ml20
-rw-r--r--testsuite/tests/warnings/w06.ml20
-rw-r--r--testsuite/tests/warnings/w32.ml26
-rw-r--r--testsuite/tests/warnings/w32b.ml20
-rw-r--r--testsuite/tests/warnings/w33.ml20
-rw-r--r--testsuite/tests/warnings/w45.ml20
-rw-r--r--testsuite/tests/warnings/w47_inline.ml20
-rw-r--r--testsuite/tests/warnings/w50.ml20
-rw-r--r--testsuite/tests/warnings/w51.ml4
-rw-r--r--testsuite/tests/warnings/w51_bis.ml20
-rw-r--r--testsuite/tests/warnings/w52.ml16
-rw-r--r--testsuite/tests/warnings/w53.ml20
-rw-r--r--testsuite/tests/warnings/w54.ml20
-rw-r--r--testsuite/tests/warnings/w55.ml51
-rw-r--r--testsuite/tests/warnings/w58.ml35
-rw-r--r--testsuite/tests/warnings/w59.ml54
-rw-r--r--testsuite/tests/warnings/w60.ml20
-rw-r--r--testsuite/tests/warnings/w68.ml23
-rw-r--r--testsuite/tests/weak-ephe-final/ephetest.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/ephetest2.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/ephetest3.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/finaliser.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/pr12001.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/weaklifetime.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/weaklifetime2.ml3
-rw-r--r--testsuite/tests/weak-ephe-final/weaktest.ml3
-rw-r--r--testsuite/tests/win-unicode/mltest.ml8
-rw-r--r--testsuite/tools/parsecmm.mly44
-rw-r--r--tools/gdb-macros447
-rw-r--r--tools/gdb_ocamlrun.py2
-rwxr-xr-xtools/translate-all-tests1412
-rw-r--r--typing/ctype.ml190
-rw-r--r--typing/ctype.mli12
-rw-r--r--typing/parmatch.ml43
-rw-r--r--typing/printtyp.ml6
-rw-r--r--typing/printtyp.mli1
-rw-r--r--typing/typeclass.ml26
-rw-r--r--typing/typeclass.mli6
-rw-r--r--typing/typecore.ml492
-rw-r--r--typing/typecore.mli7
-rw-r--r--typing/typedtree.mli2
-rw-r--r--typing/typemod.ml75
-rw-r--r--typing/typemod.mli5
-rw-r--r--typing/typetexp.ml6
-rw-r--r--typing/typetexp.mli1
-rw-r--r--utils/build_path_prefix_map.ml29
-rw-r--r--utils/build_path_prefix_map.mli18
-rw-r--r--utils/config.common.ml26
-rw-r--r--utils/misc.ml6
-rw-r--r--utils/misc.mli3
-rw-r--r--utils/warnings.ml19
1387 files changed, 17901 insertions, 13544 deletions
diff --git a/.depend b/.depend
index 5439e23dae..e32fed24b2 100644
--- a/.depend
+++ b/.depend
@@ -438,14 +438,12 @@ parsing/pprintast.cmo : \
parsing/longident.cmi \
parsing/location.cmi \
parsing/asttypes.cmi \
- parsing/ast_helper.cmi \
parsing/pprintast.cmi
parsing/pprintast.cmx : \
parsing/parsetree.cmi \
parsing/longident.cmx \
parsing/location.cmx \
parsing/asttypes.cmi \
- parsing/ast_helper.cmx \
parsing/pprintast.cmi
parsing/pprintast.cmi : \
parsing/parsetree.cmi \
@@ -910,7 +908,6 @@ typing/parmatch.cmo : \
typing/predef.cmi \
typing/patterns.cmi \
typing/path.cmi \
- parsing/parsetree.cmi \
utils/misc.cmi \
parsing/longident.cmi \
parsing/location.cmi \
@@ -930,7 +927,6 @@ typing/parmatch.cmx : \
typing/predef.cmx \
typing/patterns.cmx \
typing/path.cmx \
- parsing/parsetree.cmi \
utils/misc.cmx \
parsing/longident.cmx \
parsing/location.cmx \
@@ -1318,6 +1314,7 @@ typing/typeclass.cmo : \
typing/path.cmi \
parsing/parsetree.cmi \
typing/oprint.cmi \
+ utils/misc.cmi \
parsing/longident.cmi \
parsing/location.cmi \
typing/includeclass.cmi \
@@ -1346,6 +1343,7 @@ typing/typeclass.cmx : \
typing/path.cmx \
parsing/parsetree.cmi \
typing/oprint.cmx \
+ utils/misc.cmx \
parsing/longident.cmx \
parsing/location.cmx \
typing/includeclass.cmx \
@@ -3105,6 +3103,7 @@ asmcomp/selection.cmo : \
asmcomp/selectgen.cmi \
asmcomp/reg.cmi \
asmcomp/proc.cmi \
+ utils/misc.cmi \
asmcomp/mach.cmi \
asmcomp/cmm.cmi \
utils/clflags.cmi \
@@ -3114,6 +3113,7 @@ asmcomp/selection.cmx : \
asmcomp/selectgen.cmx \
asmcomp/reg.cmx \
asmcomp/proc.cmx \
+ utils/misc.cmx \
asmcomp/mach.cmx \
asmcomp/cmm.cmx \
utils/clflags.cmx \
diff --git a/.mailmap b/.mailmap
index 342212bd9b..242dcc6419 100644
--- a/.mailmap
+++ b/.mailmap
@@ -137,6 +137,7 @@ Eduardo Rafael <EduardoRFS@github>
Runhang Li <objmagic@github>
Dmitrii Kosarev <Kakadu@github>
Samuel Hym <shym@github>
+B. Szilvasy <eutro@github>
# These contributors prefer to be referred to pseudonymously
whitequark <whitequark@whitequark.org>
diff --git a/Changes b/Changes
index 6631f6d832..165becfeb1 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,44 @@ Working version
### Language features:
+### Runtime system:
+
+- #10403, #12202: introduce `caml_ext_table_add_noexc` that does not
+ raise `Out_of_memory` exceptions and use it inside the blocking sections
+ of `caml_read_directory`. Also, check for overflows in ext table sizes.
+ (Xavier Leroy, report by Arseniy Alekseyev, review by Gabriel Scherer)
+
+### Code generation and optimizations:
+
+### Standard library:
+
+### Other libraries:
+
+- #12213: Dynlink library, improve legibility of error messages
+ (Samuel Hym, review by Gabriel Scherer and Nicolás Ojeda Bär)
+
+### Tools:
+
+- #12185: New script language for ocamltest.
+ (Damien Doligez with Florian Angeletti, Sébastien Hinderer, Gabriel Scherer,
+ review by Sébastien Hinderer and Gabriel Scherer)
+
+### Manual and documentation:
+
+### Compiler user-interface and warnings:
+
+### Internal/compiler-libs changes:
+
+### Build system:
+
+### Bug fixes:
+
+
+OCaml 5.1.0
+---------------
+
+### Language features:
+
- #9975, #11365: Make empty types (`type t = |`) immediate.
(Antal Spector-Zabusky, review by Gabriel Scherer)
@@ -29,6 +67,22 @@ Working version
### Runtime system:
+* #11865, #11868, #11876: Clarify that the operations of a custom
+ block must never access the OCaml runtime. The previous
+ documentation only mentioned the main illicit usages. In particular,
+ since OCaml 5.0, it is no longer safe to call
+ `caml_remove_global_root` or `caml_remove_generational_global_root`
+ from within the C finalizer of a custom block, or within the
+ finalization function passed to `caml_alloc_final`. As a workaround,
+ such a finalization operation can be registered with `Gc.finalize`
+ instead, which guarantees to run the finalizer at a safe point.
+ (Report by Timothy Bourke, discussion by Yotam Barnoy, Timothy
+ Bourke, Sadiq Jaffer, Xavier Leroy, Guillaume Munch-Maccagnoni, and
+ Gabriel Scherer)
+
+- #12130: Fix multicore crashes with weak hash sets. Fixes #11934.
+ (Nick Barnes, review by François Bobot)
+
- #12099: Add ocamlrund option, -events, to produce a trace of
debug events during bytecode interpretation. Fixes #12098.
(Richard L Ford, review by Gabriel Scherer)
@@ -105,6 +159,21 @@ Working version
- #12062: fix runtime events consumer: when events are dropped they shouldn't be
parsed. (Lucas Pluvinage)
+- #12121: unrooted implementations of caml_callback*_exn
+ (Gabriel Scherer, review by KC Sivaramakrishnan and Xavier Leroy)
+
+- #12132: Fix overcounting of minor collections in GC stats.
+ (Damien Doligez, review by Gabriel Scherer)
+
+- #3921, #12039, #12128: poll for signals in long-running polymorphic
+ comparisons.
+ (B. Szilvasy, Gabriel Scherer and Xavier Leroy, review by
+ Stefan Muenzel, Guillaume Munch-Maccagnoni and Damien Doligez)
+
+- #12037: get_extern_state potential NULL dereference.
+ (Alexander Skvortsov, report by Török Edwin,
+ design by Gabriel Scherer, Xavier Leroy)
+
### Type system:
- #6941, #11187: prohibit using classes through recursive modules
@@ -310,8 +379,14 @@ Working version
type
(Samuel Hym, review by David Allsopp)
+- #12072: Document and test that Sys.rename works over directories too
+ (Jan Midtgaard, review by Anil Madhavapeddy and Xavier Leroy)
+
### Tools:
+- #11787: Fix GDB scripts to work with OCaml 5's heap layout. (Nick
+ Barnes)
+
- #1172: fix ocamlyacc's handling of raw string literals
(Demi Marie Obenour)
@@ -323,6 +398,9 @@ Working version
used in any context where a character set is expected.
(Nicolás Ojeda Bär, Martin Jambon, review by Sébastien Hinderer)
+- #12147: ocamllex: Allow carriage returns at the end of line directives.
+ (SeungCheol Jung, review by Nicolás Ojeda Bär)
+
- #11718: ocamlyacc: OCaml-style comments are now supported, in addition to
the C-style comments already supported. The syntax is the same as that used
in OCaml code.
@@ -362,6 +440,9 @@ Working version
reduction in size.
(Xavier Leroy, review by Edwin Török and Gabriel Scherer)
+- #12165: ocamldoc, use standard doctype to avoid quirk mode.
+ (Florian Angeletti, review by Gabriel Scherer)
+
### Manual and documentation:
- #12095, #12097: Put the sample code of the user's manual and reference
@@ -383,6 +464,9 @@ Working version
### Compiler user-interface and warnings:
+- #12116: Don't suggest to insert a semicolon when the type is not unit
+ (Jules Aguillon, review by Florian Angeletti)
+
- #11679: Improve the error message about too many arguments to a function
(Jules Aguillon, review by Gabriel Scherer and Florian Angeletti)
@@ -454,13 +538,23 @@ Working version
- #12024: insert a blank line between separate compiler messages
(Gabriel Scherer, review by Florian Angeletti, report by David Wong)
+- #12088, #9265, #11949: ocamldebug: fix confusing repeating behavior
+ on blank lines within source scripts
+ (Damien Doligez, review by Gabriel Scherer, report by Gaëtan Gilbert)
+
- #12107: use aliases to mark weak row variables: `_[< ... ]`, `< _..>`, `_#ct`
are now rendered as `[< ...] as '_weak1`, `< .. > as '_weak1`,
and `#ct as '_weak1`.
(Florian Angeletti, suggestion by Stefan Muenzel, review by Gabriel Scherer)
+- #12051: Improve the error messages when type variables cannot be generalized
+ (Stefan Muenzel, review by Florian Angeletti)
+
### Internal/compiler-libs changes:
+- #12138: Generalize interface for BUILD_PATH_PREFIX_MAP mapping.
+ (Richard L Ford, suggestions and review by Gabriel Scherer)
+
- #10512: explain the compilation strategy for switches on constructors
(Gabriel Scherer, review by Vincent Laviron)
@@ -543,6 +637,9 @@ Working version
(Sébastien Hinderer, review by Xavier Leroy, Nicolás Ojeda Bär and
Hugo Heuzard)
+- #12011: remove Ctype.reified_var_counter
+ (Takafumi Saikawa and Jacques Garrigue, review by Gabriel Scherer)
+
- #12012: move calls to Typetexp.TyVarEnv.reset inside with_local_level etc.
(Jacques Garrigue and Takafumi Saikawa, review by Gabriel Scherer)
@@ -552,10 +649,27 @@ Working version
- #12092: remove Lev_module_definition from lambda
(Nick Roberts, review by Gabriel Scherer)
+- #12117: Remove arity-interrupting elaboration of module unpacks
+ (Nick Roberts, review by Richard Eisenberg and Jacques Garrigue)
+
- #12118: stop storing names of predefined exceptions in the
cu_required_globals field of compilation unit descriptors.
(Sébastien Hinderer, review by Vincent Laviron)
+- #12119: mirror type constraints on value binding in the parsetree:
+ the constraint `typ` in `let pat : typ = exp` is now directly stored
+ in the value binding node in the parsetree.
+ (Florian Angeletti, review by Richard Eisenberg)
+
+- #12125: Add Misc.print_see_manual and modify [@manual_ref] to accept
+ lists for simpler printing of manual references
+ (Stefan Muenzel, review by Florian Angeletti)
+
+* #12094: Trigger warning 5 (ignored-partial-application) when the scrutinee of
+ a pattern matching is of arrow type and all cases match wildcard or exception
+ patterns.
+ (Nicolás Ojeda Bär, review by Gabriel Scherer)
+
### Build system:
- #11590: Allow installing to a destination path containing spaces.
@@ -645,6 +759,14 @@ Working version
(Jérôme Vouillon, review by Nicolás Ojeda Bär, Stephen Dolan and
Hugo Heuzard)
+- #11846: Mark rbx as destroyed at C call for Win64 (mingw-w64 and Cygwin64).
+ Reserve the shadow store for the ABI in the c_stack_link struct instead of
+ explictly when calling C functions. This simultaneously reduces the number of
+ stack pointer manipulations and also fixes a bug when calling noalloc
+ functions where the shadow store was not being reserved.
+ (David Allsopp, report by Vesa Karvonen, review by Xavier Leroy and
+ KC Sivaramakrishnan)
+
- #11850: When stopping before the `emit` phase (using `-stop-after`), an empty
temporary assembly file is no longer left in the file system.
(Nicolás Ojeda Bär, review by Gabriel Scherer and Xavier Leroy)
@@ -679,6 +801,24 @@ Working version
- #12112: Fix caml_callback{2,3}_exn when used with effect handlers.
(Lucas Pluvinage, review by Gabriel Scherer, David Allsopp and Xavier Leroy)
+- #12134: Use ghost location for nodes created when handling defaults in
+ optional arguments.
+ (Paul-Elliot Anglès d'Auriac, review by Gabriel Scherer)
+
+- #12153: Fix segfault in bytecode programs involving recursive value
+ definitions of values of size 0
+ (Vincent Laviron, Xavier Leroy, Gabriel Scherer,
+ review by Xavier Leroy, report by Nick Roberts)
+
+- #12162: Fix miscompilation on amd64 backends involving integer overflows
+ (Vincent Laviron and Greta Yorsh, review by Stefan Muenzel)
+
+- #12170: fix pthread_geaffinity_np configure check for android
+ (David Allsopp, review by Sébastien Hinderer)
+
+- #12178: Fix runtime events consumer poll function returning an invalid value
+ instead of an OCaml integer value. (Lucas Pluvinage)
+
OCaml 5.0.0 (15 December 2022)
------------------------------
diff --git a/HACKING.adoc b/HACKING.adoc
index d751186899..b774f3d722 100644
--- a/HACKING.adoc
+++ b/HACKING.adoc
@@ -27,7 +27,7 @@ not have this which causes some important development things to be disabled
+
----
./configure
-make
+make -j 4
----
If you are on a release build and need development options, you can add
`--enable-ocamltest` (to allow running the testsuite) and `--enable-warn-error`
@@ -392,7 +392,7 @@ You can also run `make install` manually, which will not trigger a
recompilation, but will not remove the previous version either and can
mess with `opam`'s tracking of installed files.
-=== Useful Makefile targets
+=== Useful Makefile targets and options
Besides the targets listed in link:INSTALL.adoc[] for build and
installation, the following targets may be of use:
@@ -407,6 +407,10 @@ installation, the following targets may be of use:
`make -C testsuite parallel`:: see link:testsuite/HACKING.adoc[]
+You can use `make foo V=1` to build the target foo and show full
+commands instead of abbreviated names like OCAMLC, etc. This can be
+useful to know the flags to use to manually rebuild a file.
+
Additionally, there are some developer specific targets in link:Makefile.dev[].
These targets are automatically available when working in a Git clone of the
repository, but are not available from a tarball.
diff --git a/README.adoc b/README.adoc
index 8f4ca17835..c7a91297bf 100644
--- a/README.adoc
+++ b/README.adoc
@@ -17,7 +17,7 @@ systems will be added back in later releases. On 32-bit systems, only the
bytecode compiler will be supported.
|=====
-| Branch `trunk` | Branch `5.0` | Branch `4.14` | Branch `4.13`
+| Branch `trunk` | Branch `5.1` | Branch `5.0` | Branch `4.14`
| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=trunk["Github CI Build Status (trunk branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
@@ -25,6 +25,10 @@ bytecode compiler will be supported.
link="https://github.com/ocaml/ocaml/actions?query=workflow%3AHygiene"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=trunk&svg=true["AppVeyor Build Status (trunk branch)",
link="https://ci.appveyor.com/project/avsm/ocaml"]
+| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=5.1["Github CI Build Status (5.1 branch)",
+ link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
+ image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=5.1&svg=true["AppVeyor Build Status (5.1 branch)",
+ link="https://ci.appveyor.com/project/avsm/ocaml"]
| image:https://github.com/ocaml/ocaml/workflows/Build/badge.svg?branch=5.0["Github CI Build Status (5.0 branch)",
link="https://github.com/ocaml/ocaml/actions?query=workflow%3ABuild"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=5.0&svg=true["AppVeyor Build Status (5.0 branch)",
@@ -33,10 +37,6 @@ bytecode compiler will be supported.
link="https://github.com/ocaml/ocaml/actions?query=workflow%3Amain"]
image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=4.14&svg=true["AppVeyor Build Status (4.14 branch)",
link="https://ci.appveyor.com/project/avsm/ocaml"]
-| image:https://travis-ci.org/ocaml/ocaml.svg?branch=4.13["TravisCI Build Status (4.13 branch)",
- link="https://travis-ci.org/ocaml/ocaml"]
- image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=4.13&svg=true["AppVeyor Build Status (4.13 branch)",
- link="https://ci.appveyor.com/project/avsm/ocaml"]
|=====
= README =
diff --git a/VERSION b/VERSION
index 1443e92a84..4f107dd8d1 100644
--- a/VERSION
+++ b/VERSION
@@ -1,4 +1,4 @@
-5.1.0+dev1-2022-06-09
+5.2.0+dev0-2023-04-11
# Starting with OCaml 4.14, although the version string that appears above is
# still correct and this file can thus still be used to figure it out,
diff --git a/api_docgen/ocamldoc/Makefile b/api_docgen/ocamldoc/Makefile
index 1d3ba9a4bb..8d25c0b944 100644
--- a/api_docgen/ocamldoc/Makefile
+++ b/api_docgen/ocamldoc/Makefile
@@ -44,7 +44,7 @@ $(libref:%=build/libref/%.odoc): build/libref/%.odoc: %.mli | build/libref
$(V_OCAMLDOC)$(OCAMLDOC_RUN) -nostdlib -hide Stdlib -lib Stdlib \
-pp \
"$(AWK) -v ocamldoc=true -f ../../stdlib/expand_module_aliases.awk" \
- $(DOC_STDLIB_INCLUDES) -hide-warnings $< -dump $@
+ $(DOC_STDLIB_INCLUDES) -hide-warnings -alert -all $< -dump $@
$(compilerlibref:%=build/compilerlibref/%.odoc):\
build/compilerlibref/%.odoc: %.mli | build/compilerlibref
diff --git a/asmcomp/afl_instrument.ml b/asmcomp/afl_instrument.ml
index 3cd716fa64..7782bc26f9 100644
--- a/asmcomp/afl_instrument.ml
+++ b/asmcomp/afl_instrument.ml
@@ -107,10 +107,8 @@ let instrument_initialiser c dbg =
(* Each instrumented module calls caml_setup_afl at
initialisation, which is a no-op on the second and subsequent
calls *)
- with_afl_logging
- (Csequence
- (Cop (Cextcall ("caml_setup_afl", typ_int, [], false),
- [Cconst_int (0, dbg ())],
- dbg ()),
- c))
- (dbg ())
+ Csequence
+ (Cop (Cextcall ("caml_setup_afl", typ_int, [], false),
+ [Cconst_int (0, dbg ())],
+ dbg ()),
+ with_afl_logging c (dbg ()))
diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
index e2da778605..7efbe75aa6 100644
--- a/asmcomp/amd64/emit.mlp
+++ b/asmcomp/amd64/emit.mlp
@@ -537,13 +537,8 @@ let emit_instr env fallthrough i =
end
| Lop(Iextcall { func; alloc; stack_ofs }) ->
add_used_symbol func;
- let base_stack_size =
- if Arch.win64 then
- 32 (* Windows x64 rcx+rdx+r8+r9 shadow stack *)
- else
- 0 in
- if stack_ofs > base_stack_size then begin
- I.lea (mem64 QWORD base_stack_size RSP) r13;
+ if stack_ofs > 0 then begin
+ I.mov rsp r13;
I.lea (mem64 QWORD stack_ofs RSP) r12;
load_symbol_addr func rax;
emit_call "caml_c_call_stack_args";
diff --git a/asmcomp/amd64/proc.ml b/asmcomp/amd64/proc.ml
index 56377b322c..cd50cba52b 100644
--- a/asmcomp/amd64/proc.ml
+++ b/asmcomp/amd64/proc.ml
@@ -235,7 +235,7 @@ let win64_float_external_arguments =
let win64_loc_external_arguments arg =
let loc = Array.make (Array.length arg) Reg.dummy in
let reg = ref 0
- and ofs = ref 32 in
+ and ofs = ref 0 in
for i = 0 to Array.length arg - 1 do
match arg.(i) with
| Val | Int | Addr as ty ->
@@ -291,12 +291,12 @@ let destroyed_at_c_call =
by the code sequence used for C calls in emit.mlp, so it
is marked as destroyed. *)
if win64 then
- (* Win64: rbx, rsi, rdi, r12-r15, xmm6-xmm15 preserved *)
+ (* Win64: rsi, rdi, r12-r15, xmm6-xmm15 preserved *)
Array.of_list(List.map phys_reg
- [0;4;5;6;7;10;11;12;
+ [0;1;4;5;6;7;10;11;12;
100;101;102;103;104;105])
else
- (* Unix: rbx, r12-r15 preserved *)
+ (* Unix: r12-r15 preserved *)
Array.of_list(List.map phys_reg
[0;1;2;3;4;5;6;7;10;11;
100;101;102;103;104;105;106;107;
diff --git a/asmcomp/amd64/selection.ml b/asmcomp/amd64/selection.ml
index 1f973450ec..aff9c4e1a1 100644
--- a/asmcomp/amd64/selection.ml
+++ b/asmcomp/amd64/selection.ml
@@ -31,38 +31,39 @@ type addressing_expr =
| Ascaledadd of expression * expression * int
let rec select_addr exp =
+ let default = (Alinear exp, 0) in
match exp with
Cconst_symbol (s, _) when not !Clflags.dlcode ->
(Asymbol s, 0)
- | Cop((Caddi | Caddv | Cadda), [arg; Cconst_int (m, _)], _) ->
- let (a, n) = select_addr arg in (a, n + m)
- | Cop(Csubi, [arg; Cconst_int (m, _)], _) ->
- let (a, n) = select_addr arg in (a, n - m)
+ | Cop((Caddi | Caddv | Cadda), [arg; Cconst_int (m, _)], _)
| Cop((Caddi | Caddv | Cadda), [Cconst_int (m, _); arg], _) ->
- let (a, n) = select_addr arg in (a, n + m)
+ let (a, n) = select_addr arg in
+ if Misc.no_overflow_add n m then (a, n + m) else default
+ | Cop(Csubi, [arg; Cconst_int (m, _)], _) ->
+ let (a, n) = select_addr arg in
+ if Misc.no_overflow_sub n m then (a, n - m) else default
| Cop(Clsl, [arg; Cconst_int((1|2|3 as shift), _)], _) ->
begin match select_addr arg with
- (Alinear e, n) -> (Ascale(e, 1 lsl shift), n lsl shift)
- | _ -> (Alinear exp, 0)
- end
- | Cop(Cmuli, [arg; Cconst_int((2|4|8 as mult), _)], _) ->
- begin match select_addr arg with
- (Alinear e, n) -> (Ascale(e, mult), n * mult)
- | _ -> (Alinear exp, 0)
+ | (Alinear e, n) when Misc.no_overflow_lsl n shift ->
+ (Ascale(e, 1 lsl shift), n lsl shift)
+ | _ -> default
end
+ | Cop(Cmuli, [arg; Cconst_int((2|4|8 as mult), _)], _)
| Cop(Cmuli, [Cconst_int((2|4|8 as mult), _); arg], _) ->
begin match select_addr arg with
- (Alinear e, n) -> (Ascale(e, mult), n * mult)
- | _ -> (Alinear exp, 0)
+ | (Alinear e, n) when Misc.no_overflow_mul n mult ->
+ (Ascale(e, mult), n * mult)
+ | _ -> default
end
| Cop((Caddi | Caddv | Cadda), [arg1; arg2], _) ->
begin match (select_addr arg1, select_addr arg2) with
- ((Alinear e1, n1), (Alinear e2, n2)) ->
+ ((Alinear e1, n1), (Alinear e2, n2))
+ when Misc.no_overflow_add n1 n2 ->
(Aadd(e1, e2), n1 + n2)
- | ((Alinear e1, n1), (Ascale(e2, scale), n2)) ->
+ | ((Alinear e1, n1), (Ascale(e2, scale), n2))
+ | ((Ascale(e2, scale), n2), (Alinear e1, n1))
+ when Misc.no_overflow_add n1 n2 ->
(Ascaledadd(e1, e2, scale), n1 + n2)
- | ((Ascale(e1, scale), n1), (Alinear e2, n2)) ->
- (Ascaledadd(e2, e1, scale), n1 + n2)
| (_, (Ascale(e2, scale), n2)) ->
(Ascaledadd(arg1, e2, scale), n2)
| ((Ascale(e1, scale), n1), _) ->
@@ -70,8 +71,7 @@ let rec select_addr exp =
| _ ->
(Aadd(arg1, arg2), 0)
end
- | arg ->
- (Alinear arg, 0)
+ | _ -> default
(* Special constraints on operand and result registers *)
diff --git a/boot/menhir/parser.ml b/boot/menhir/parser.ml
index 7a9c0a2119..b664469b98 100644
--- a/boot/menhir/parser.ml
+++ b/boot/menhir/parser.ml
@@ -16,7 +16,7 @@ module MenhirBasics = struct
| VAL
| UNDERSCORE
| UIDENT of (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
# 22 "parsing/parser.ml"
)
@@ -28,7 +28,7 @@ module MenhirBasics = struct
| THEN
| STRUCT
| STRING of (
-# 748 "parsing/parser.mly"
+# 750 "parsing/parser.mly"
(string * Location.t * string option)
# 34 "parsing/parser.ml"
)
@@ -41,12 +41,12 @@ module MenhirBasics = struct
| RBRACKET
| RBRACE
| QUOTED_STRING_ITEM of (
-# 752 "parsing/parser.mly"
+# 754 "parsing/parser.mly"
(string * Location.t * string * Location.t * string option)
# 47 "parsing/parser.ml"
)
| QUOTED_STRING_EXPR of (
-# 750 "parsing/parser.mly"
+# 752 "parsing/parser.mly"
(string * Location.t * string * Location.t * string option)
# 52 "parsing/parser.ml"
)
@@ -54,7 +54,7 @@ module MenhirBasics = struct
| QUESTION
| PRIVATE
| PREFIXOP of (
-# 734 "parsing/parser.mly"
+# 736 "parsing/parser.mly"
(string)
# 60 "parsing/parser.ml"
)
@@ -64,7 +64,7 @@ module MenhirBasics = struct
| PERCENT
| OR
| OPTLABEL of (
-# 727 "parsing/parser.mly"
+# 729 "parsing/parser.mly"
(string)
# 70 "parsing/parser.ml"
)
@@ -82,12 +82,12 @@ module MenhirBasics = struct
| MATCH
| LPAREN
| LIDENT of (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
# 88 "parsing/parser.ml"
)
| LETOP of (
-# 692 "parsing/parser.mly"
+# 694 "parsing/parser.mly"
(string)
# 93 "parsing/parser.ml"
)
@@ -107,39 +107,39 @@ module MenhirBasics = struct
| LBRACE
| LAZY
| LABEL of (
-# 697 "parsing/parser.mly"
+# 699 "parsing/parser.mly"
(string)
# 113 "parsing/parser.ml"
)
| INT of (
-# 696 "parsing/parser.mly"
+# 698 "parsing/parser.mly"
(string * char option)
# 118 "parsing/parser.ml"
)
| INITIALIZER
| INHERIT
| INFIXOP4 of (
-# 690 "parsing/parser.mly"
+# 692 "parsing/parser.mly"
(string)
# 125 "parsing/parser.ml"
)
| INFIXOP3 of (
-# 689 "parsing/parser.mly"
+# 691 "parsing/parser.mly"
(string)
# 130 "parsing/parser.ml"
)
| INFIXOP2 of (
-# 688 "parsing/parser.mly"
+# 690 "parsing/parser.mly"
(string)
# 135 "parsing/parser.ml"
)
| INFIXOP1 of (
-# 687 "parsing/parser.mly"
+# 689 "parsing/parser.mly"
(string)
# 140 "parsing/parser.ml"
)
| INFIXOP0 of (
-# 686 "parsing/parser.mly"
+# 688 "parsing/parser.mly"
(string)
# 145 "parsing/parser.ml"
)
@@ -147,7 +147,7 @@ module MenhirBasics = struct
| IN
| IF
| HASHOP of (
-# 745 "parsing/parser.mly"
+# 747 "parsing/parser.mly"
(string)
# 153 "parsing/parser.ml"
)
@@ -160,7 +160,7 @@ module MenhirBasics = struct
| FUN
| FOR
| FLOAT of (
-# 675 "parsing/parser.mly"
+# 677 "parsing/parser.mly"
(string * char option)
# 166 "parsing/parser.ml"
)
@@ -174,7 +174,7 @@ module MenhirBasics = struct
| ELSE
| DOWNTO
| DOTOP of (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
# 180 "parsing/parser.ml"
)
@@ -182,14 +182,14 @@ module MenhirBasics = struct
| DOT
| DONE
| DOCSTRING of (
-# 769 "parsing/parser.mly"
+# 771 "parsing/parser.mly"
(Docstrings.docstring)
# 188 "parsing/parser.ml"
)
| DO
| CONSTRAINT
| COMMENT of (
-# 768 "parsing/parser.mly"
+# 770 "parsing/parser.mly"
(string * Location.t)
# 195 "parsing/parser.ml"
)
@@ -200,7 +200,7 @@ module MenhirBasics = struct
| COLON
| CLASS
| CHAR of (
-# 655 "parsing/parser.mly"
+# 657 "parsing/parser.mly"
(char)
# 206 "parsing/parser.ml"
)
@@ -213,7 +213,7 @@ module MenhirBasics = struct
| ASSERT
| AS
| ANDOP of (
-# 693 "parsing/parser.mly"
+# 695 "parsing/parser.mly"
(string)
# 219 "parsing/parser.ml"
)
@@ -713,6 +713,7 @@ let extra_rhs_core_type ct ~pos =
type let_binding =
{ lb_pattern: pattern;
lb_expression: expression;
+ lb_constraint: poly_constraint option;
lb_is_pun: bool;
lb_attributes: attributes;
lb_docs: docs Lazy.t;
@@ -724,10 +725,11 @@ type let_bindings =
lbs_rec: rec_flag;
lbs_extension: string Asttypes.loc option }
-let mklb first ~loc (p, e, is_pun) attrs =
+let mklb first ~loc (p, e, typ, is_pun) attrs =
{
lb_pattern = p;
lb_expression = e;
+ lb_constraint=typ;
lb_is_pun = is_pun;
lb_attributes = attrs;
lb_docs = symbol_docs_lazy loc;
@@ -755,7 +757,7 @@ let val_of_let_bindings ~loc lbs =
Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
~docs:(Lazy.force lb.lb_docs)
~text:(Lazy.force lb.lb_text)
- lb.lb_pattern lb.lb_expression)
+ ?typ:lb.lb_constraint lb.lb_pattern lb.lb_expression)
lbs.lbs_bindings
in
let str = mkstr ~loc (Pstr_value(lbs.lbs_rec, List.rev bindings)) in
@@ -768,7 +770,7 @@ let expr_of_let_bindings ~loc lbs body =
List.map
(fun lb ->
Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
- lb.lb_pattern lb.lb_expression)
+ ?typ:lb.lb_constraint lb.lb_pattern lb.lb_expression)
lbs.lbs_bindings
in
mkexp_attrs ~loc (Pexp_let(lbs.lbs_rec, List.rev bindings, body))
@@ -779,7 +781,7 @@ let class_of_let_bindings ~loc lbs body =
List.map
(fun lb ->
Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
- lb.lb_pattern lb.lb_expression)
+ ?typ:lb.lb_constraint lb.lb_pattern lb.lb_expression)
lbs.lbs_bindings
in
(* Our use of let_bindings(no_ext) guarantees the following: *)
@@ -836,7 +838,7 @@ let mk_directive ~loc name arg =
}
-# 840 "parsing/parser.ml"
+# 842 "parsing/parser.ml"
module Tables = struct
@@ -1379,9 +1381,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3783 "parsing/parser.mly"
+# 3778 "parsing/parser.mly"
( "+" )
-# 1385 "parsing/parser.ml"
+# 1387 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1404,9 +1406,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3784 "parsing/parser.mly"
+# 3779 "parsing/parser.mly"
( "+." )
-# 1410 "parsing/parser.ml"
+# 1412 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1429,9 +1431,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) =
-# 3336 "parsing/parser.mly"
+# 3331 "parsing/parser.mly"
( _1 )
-# 1435 "parsing/parser.ml"
+# 1437 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1476,24 +1478,24 @@ module Tables = struct
let _endpos = _endpos_tyvar_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3339 "parsing/parser.mly"
+# 3334 "parsing/parser.mly"
( Ptyp_alias(ty, tyvar) )
-# 1482 "parsing/parser.ml"
+# 1484 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_tyvar_, _startpos_ty_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 1491 "parsing/parser.ml"
+# 1493 "parsing/parser.ml"
in
-# 3341 "parsing/parser.mly"
+# 3336 "parsing/parser.mly"
( _1 )
-# 1497 "parsing/parser.ml"
+# 1499 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1530,7 +1532,8 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
- let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in
+ let body : (Parsetree.pattern * Parsetree.expression *
+ Parsetree.poly_constraint option * bool) = Obj.magic body in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -1539,30 +1542,30 @@ module Tables = struct
let _v : (let_binding) = let attrs2 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 1545 "parsing/parser.ml"
+# 1548 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined2_ in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 1554 "parsing/parser.ml"
+# 1557 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2587 "parsing/parser.mly"
+# 2582 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
mklb ~loc:_sloc false body attrs
)
-# 1566 "parsing/parser.ml"
+# 1569 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1585,9 +1588,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3667 "parsing/parser.mly"
+# 3662 "parsing/parser.mly"
( _1 )
-# 1591 "parsing/parser.ml"
+# 1594 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1610,9 +1613,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3668 "parsing/parser.mly"
+# 3663 "parsing/parser.mly"
( Lident _1 )
-# 1616 "parsing/parser.ml"
+# 1619 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1649,9 +1652,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.core_type) =
-# 3397 "parsing/parser.mly"
+# 3392 "parsing/parser.mly"
( _2 )
-# 1655 "parsing/parser.ml"
+# 1658 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1714,11 +1717,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 1722 "parsing/parser.ml"
+# 1725 "parsing/parser.ml"
in
let _3 =
@@ -1726,24 +1729,24 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 1732 "parsing/parser.ml"
+# 1735 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 1738 "parsing/parser.ml"
+# 1741 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3399 "parsing/parser.mly"
+# 3394 "parsing/parser.mly"
( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc _4) _3 )
-# 1747 "parsing/parser.ml"
+# 1750 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1774,24 +1777,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3402 "parsing/parser.mly"
+# 3397 "parsing/parser.mly"
( Ptyp_var _2 )
-# 1780 "parsing/parser.ml"
+# 1783 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 1789 "parsing/parser.ml"
+# 1792 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 1795 "parsing/parser.ml"
+# 1798 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1815,23 +1818,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3404 "parsing/parser.mly"
+# 3399 "parsing/parser.mly"
( Ptyp_any )
-# 1821 "parsing/parser.ml"
+# 1824 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 1829 "parsing/parser.ml"
+# 1832 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 1835 "parsing/parser.ml"
+# 1838 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1860,35 +1863,35 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 1866 "parsing/parser.ml"
+# 1869 "parsing/parser.ml"
in
let tys =
-# 3449 "parsing/parser.mly"
+# 3444 "parsing/parser.mly"
( [] )
-# 1872 "parsing/parser.ml"
+# 1875 "parsing/parser.ml"
in
-# 3407 "parsing/parser.mly"
+# 3402 "parsing/parser.mly"
( Ptyp_constr(tid, tys) )
-# 1877 "parsing/parser.ml"
+# 1880 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 1886 "parsing/parser.ml"
+# 1889 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 1892 "parsing/parser.ml"
+# 1895 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -1924,20 +1927,20 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 1930 "parsing/parser.ml"
+# 1933 "parsing/parser.ml"
in
let tys =
-# 3451 "parsing/parser.mly"
+# 3446 "parsing/parser.mly"
( [ty] )
-# 1936 "parsing/parser.ml"
+# 1939 "parsing/parser.ml"
in
-# 3407 "parsing/parser.mly"
+# 3402 "parsing/parser.mly"
( Ptyp_constr(tid, tys) )
-# 1941 "parsing/parser.ml"
+# 1944 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_ty_ in
@@ -1945,15 +1948,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 1951 "parsing/parser.ml"
+# 1954 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 1957 "parsing/parser.ml"
+# 1960 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2004,9 +2007,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 2010 "parsing/parser.ml"
+# 2013 "parsing/parser.ml"
in
let tys =
@@ -2014,24 +2017,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2018 "parsing/parser.ml"
+# 2021 "parsing/parser.ml"
in
-# 1054 "parsing/parser.mly"
+# 1056 "parsing/parser.mly"
( xs )
-# 2023 "parsing/parser.ml"
+# 2026 "parsing/parser.ml"
in
-# 3453 "parsing/parser.mly"
+# 3448 "parsing/parser.mly"
( tys )
-# 2029 "parsing/parser.ml"
+# 2032 "parsing/parser.ml"
in
-# 3407 "parsing/parser.mly"
+# 3402 "parsing/parser.mly"
( Ptyp_constr(tid, tys) )
-# 2035 "parsing/parser.ml"
+# 2038 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -2039,15 +2042,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2045 "parsing/parser.ml"
+# 2048 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2051 "parsing/parser.ml"
+# 2054 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2085,24 +2088,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3409 "parsing/parser.mly"
+# 3404 "parsing/parser.mly"
( let (f, c) = _2 in Ptyp_object (f, c) )
-# 2091 "parsing/parser.ml"
+# 2094 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2100 "parsing/parser.ml"
+# 2103 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2106 "parsing/parser.ml"
+# 2109 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2133,24 +2136,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3411 "parsing/parser.mly"
+# 3406 "parsing/parser.mly"
( Ptyp_object ([], Closed) )
-# 2139 "parsing/parser.ml"
+# 2142 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2148 "parsing/parser.ml"
+# 2151 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2154 "parsing/parser.ml"
+# 2157 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2186,20 +2189,20 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 2192 "parsing/parser.ml"
+# 2195 "parsing/parser.ml"
in
let tys =
-# 3449 "parsing/parser.mly"
+# 3444 "parsing/parser.mly"
( [] )
-# 2198 "parsing/parser.ml"
+# 2201 "parsing/parser.ml"
in
-# 3415 "parsing/parser.mly"
+# 3410 "parsing/parser.mly"
( Ptyp_class(cid, tys) )
-# 2203 "parsing/parser.ml"
+# 2206 "parsing/parser.ml"
in
let _startpos__1_ = _startpos__2_ in
@@ -2207,15 +2210,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2213 "parsing/parser.ml"
+# 2216 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2219 "parsing/parser.ml"
+# 2222 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2258,20 +2261,20 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 2264 "parsing/parser.ml"
+# 2267 "parsing/parser.ml"
in
let tys =
-# 3451 "parsing/parser.mly"
+# 3446 "parsing/parser.mly"
( [ty] )
-# 2270 "parsing/parser.ml"
+# 2273 "parsing/parser.ml"
in
-# 3415 "parsing/parser.mly"
+# 3410 "parsing/parser.mly"
( Ptyp_class(cid, tys) )
-# 2275 "parsing/parser.ml"
+# 2278 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_ty_ in
@@ -2279,15 +2282,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2285 "parsing/parser.ml"
+# 2288 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2291 "parsing/parser.ml"
+# 2294 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2345,9 +2348,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 2351 "parsing/parser.ml"
+# 2354 "parsing/parser.ml"
in
let tys =
@@ -2355,24 +2358,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2359 "parsing/parser.ml"
+# 2362 "parsing/parser.ml"
in
-# 1054 "parsing/parser.mly"
+# 1056 "parsing/parser.mly"
( xs )
-# 2364 "parsing/parser.ml"
+# 2367 "parsing/parser.ml"
in
-# 3453 "parsing/parser.mly"
+# 3448 "parsing/parser.mly"
( tys )
-# 2370 "parsing/parser.ml"
+# 2373 "parsing/parser.ml"
in
-# 3415 "parsing/parser.mly"
+# 3410 "parsing/parser.mly"
( Ptyp_class(cid, tys) )
-# 2376 "parsing/parser.ml"
+# 2379 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -2380,15 +2383,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2386 "parsing/parser.ml"
+# 2389 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2392 "parsing/parser.ml"
+# 2395 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2426,24 +2429,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3418 "parsing/parser.mly"
+# 3413 "parsing/parser.mly"
( Ptyp_variant([_2], Closed, None) )
-# 2432 "parsing/parser.ml"
+# 2435 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2441 "parsing/parser.ml"
+# 2444 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2447 "parsing/parser.ml"
+# 2450 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2493,24 +2496,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2497 "parsing/parser.ml"
+# 2500 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 2502 "parsing/parser.ml"
+# 2505 "parsing/parser.ml"
in
-# 3463 "parsing/parser.mly"
+# 3458 "parsing/parser.mly"
( _1 )
-# 2508 "parsing/parser.ml"
+# 2511 "parsing/parser.ml"
in
-# 3420 "parsing/parser.mly"
+# 3415 "parsing/parser.mly"
( Ptyp_variant(_3, Closed, None) )
-# 2514 "parsing/parser.ml"
+# 2517 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -2518,15 +2521,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2524 "parsing/parser.ml"
+# 2527 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2530 "parsing/parser.ml"
+# 2533 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2583,24 +2586,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2587 "parsing/parser.ml"
+# 2590 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 2592 "parsing/parser.ml"
+# 2595 "parsing/parser.ml"
in
-# 3463 "parsing/parser.mly"
+# 3458 "parsing/parser.mly"
( _1 )
-# 2598 "parsing/parser.ml"
+# 2601 "parsing/parser.ml"
in
-# 3422 "parsing/parser.mly"
+# 3417 "parsing/parser.mly"
( Ptyp_variant(_2 :: _4, Closed, None) )
-# 2604 "parsing/parser.ml"
+# 2607 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -2608,15 +2611,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2614 "parsing/parser.ml"
+# 2617 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2620 "parsing/parser.ml"
+# 2623 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2666,24 +2669,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2670 "parsing/parser.ml"
+# 2673 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 2675 "parsing/parser.ml"
+# 2678 "parsing/parser.ml"
in
-# 3463 "parsing/parser.mly"
+# 3458 "parsing/parser.mly"
( _1 )
-# 2681 "parsing/parser.ml"
+# 2684 "parsing/parser.ml"
in
-# 3424 "parsing/parser.mly"
+# 3419 "parsing/parser.mly"
( Ptyp_variant(_3, Open, None) )
-# 2687 "parsing/parser.ml"
+# 2690 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -2691,15 +2694,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2697 "parsing/parser.ml"
+# 2700 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2703 "parsing/parser.ml"
+# 2706 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2730,24 +2733,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3426 "parsing/parser.mly"
+# 3421 "parsing/parser.mly"
( Ptyp_variant([], Open, None) )
-# 2736 "parsing/parser.ml"
+# 2739 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2745 "parsing/parser.ml"
+# 2748 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2751 "parsing/parser.ml"
+# 2754 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2797,24 +2800,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2801 "parsing/parser.ml"
+# 2804 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 2806 "parsing/parser.ml"
+# 2809 "parsing/parser.ml"
in
-# 3463 "parsing/parser.mly"
+# 3458 "parsing/parser.mly"
( _1 )
-# 2812 "parsing/parser.ml"
+# 2815 "parsing/parser.ml"
in
-# 3428 "parsing/parser.mly"
+# 3423 "parsing/parser.mly"
( Ptyp_variant(_3, Closed, Some []) )
-# 2818 "parsing/parser.ml"
+# 2821 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -2822,15 +2825,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2828 "parsing/parser.ml"
+# 2831 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2834 "parsing/parser.ml"
+# 2837 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2895,18 +2898,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2899 "parsing/parser.ml"
+# 2902 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 2904 "parsing/parser.ml"
+# 2907 "parsing/parser.ml"
in
-# 3491 "parsing/parser.mly"
+# 3486 "parsing/parser.mly"
( _1 )
-# 2910 "parsing/parser.ml"
+# 2913 "parsing/parser.ml"
in
let _3 =
@@ -2914,24 +2917,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 2918 "parsing/parser.ml"
+# 2921 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 2923 "parsing/parser.ml"
+# 2926 "parsing/parser.ml"
in
-# 3463 "parsing/parser.mly"
+# 3458 "parsing/parser.mly"
( _1 )
-# 2929 "parsing/parser.ml"
+# 2932 "parsing/parser.ml"
in
-# 3430 "parsing/parser.mly"
+# 3425 "parsing/parser.mly"
( Ptyp_variant(_3, Closed, Some _5) )
-# 2935 "parsing/parser.ml"
+# 2938 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__6_ in
@@ -2939,15 +2942,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2945 "parsing/parser.ml"
+# 2948 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2951 "parsing/parser.ml"
+# 2954 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -2971,23 +2974,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3432 "parsing/parser.mly"
+# 3427 "parsing/parser.mly"
( Ptyp_extension _1 )
-# 2977 "parsing/parser.ml"
+# 2980 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 2985 "parsing/parser.ml"
+# 2988 "parsing/parser.ml"
in
-# 3434 "parsing/parser.mly"
+# 3429 "parsing/parser.mly"
( _1 )
-# 2991 "parsing/parser.ml"
+# 2994 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3011,23 +3014,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (string Asttypes.loc) = let _1 =
let _1 =
-# 3850 "parsing/parser.mly"
+# 3845 "parsing/parser.mly"
( _1 )
-# 3017 "parsing/parser.ml"
+# 3020 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 922 "parsing/parser.mly"
+# 924 "parsing/parser.mly"
( mkloc _1 (make_loc _sloc) )
-# 3025 "parsing/parser.ml"
+# 3028 "parsing/parser.ml"
in
-# 3852 "parsing/parser.mly"
+# 3847 "parsing/parser.mly"
( _1 )
-# 3031 "parsing/parser.ml"
+# 3034 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3065,24 +3068,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (string Asttypes.loc) = let _1 =
let _1 =
-# 3851 "parsing/parser.mly"
+# 3846 "parsing/parser.mly"
( _1 ^ "." ^ _3.txt )
-# 3071 "parsing/parser.ml"
+# 3074 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 922 "parsing/parser.mly"
+# 924 "parsing/parser.mly"
( mkloc _1 (make_loc _sloc) )
-# 3080 "parsing/parser.ml"
+# 3083 "parsing/parser.ml"
in
-# 3852 "parsing/parser.mly"
+# 3847 "parsing/parser.mly"
( _1 )
-# 3086 "parsing/parser.ml"
+# 3089 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3129,9 +3132,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3856 "parsing/parser.mly"
+# 3851 "parsing/parser.mly"
( Attr.mk ~loc:(make_loc _sloc) _2 _3 )
-# 3135 "parsing/parser.ml"
+# 3138 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3154,9 +3157,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.class_expr) =
-# 1886 "parsing/parser.mly"
+# 1888 "parsing/parser.mly"
( _1 )
-# 3160 "parsing/parser.ml"
+# 3163 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3195,18 +3198,18 @@ module Tables = struct
let _v : (Parsetree.class_expr) = let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3201 "parsing/parser.ml"
+# 3204 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1888 "parsing/parser.mly"
+# 1890 "parsing/parser.mly"
( wrap_class_attrs ~loc:_sloc _3 _2 )
-# 3210 "parsing/parser.ml"
+# 3213 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3246,9 +3249,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1890 "parsing/parser.mly"
+# 1892 "parsing/parser.mly"
( class_of_let_bindings ~loc:_sloc _1 _3 )
-# 3252 "parsing/parser.ml"
+# 3255 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3311,34 +3314,34 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 3317 "parsing/parser.ml"
+# 3320 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined2_ in
let _4 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3326 "parsing/parser.ml"
+# 3329 "parsing/parser.ml"
in
let _3 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 3332 "parsing/parser.ml"
+# 3335 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1892 "parsing/parser.mly"
+# 1894 "parsing/parser.mly"
( let loc = (_startpos__2_, _endpos__5_) in
let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) )
-# 3342 "parsing/parser.ml"
+# 3345 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3408,34 +3411,34 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 3414 "parsing/parser.ml"
+# 3417 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined3_ in
let _4 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3423 "parsing/parser.ml"
+# 3426 "parsing/parser.ml"
in
let _3 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 3429 "parsing/parser.ml"
+# 3432 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1892 "parsing/parser.mly"
+# 1894 "parsing/parser.mly"
( let loc = (_startpos__2_, _endpos__5_) in
let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) )
-# 3439 "parsing/parser.ml"
+# 3442 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3465,9 +3468,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.class_expr) =
-# 1896 "parsing/parser.mly"
+# 1898 "parsing/parser.mly"
( Cl.attr _1 _2 )
-# 3471 "parsing/parser.ml"
+# 3474 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3502,18 +3505,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 3506 "parsing/parser.ml"
+# 3509 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 3511 "parsing/parser.ml"
+# 3514 "parsing/parser.ml"
in
-# 1899 "parsing/parser.mly"
+# 1901 "parsing/parser.mly"
( Pcl_apply(_1, _2) )
-# 3517 "parsing/parser.ml"
+# 3520 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_xs_ in
@@ -3521,15 +3524,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 3527 "parsing/parser.ml"
+# 3530 "parsing/parser.ml"
in
-# 1902 "parsing/parser.mly"
+# 1904 "parsing/parser.mly"
( _1 )
-# 3533 "parsing/parser.ml"
+# 3536 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3553,23 +3556,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.class_expr) = let _1 =
let _1 =
-# 1901 "parsing/parser.mly"
+# 1903 "parsing/parser.mly"
( Pcl_extension _1 )
-# 3559 "parsing/parser.ml"
+# 3562 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 3567 "parsing/parser.ml"
+# 3570 "parsing/parser.ml"
in
-# 1902 "parsing/parser.mly"
+# 1904 "parsing/parser.mly"
( _1 )
-# 3573 "parsing/parser.ml"
+# 3576 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3622,33 +3625,33 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _6 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 3628 "parsing/parser.ml"
+# 3631 "parsing/parser.ml"
in
let _endpos__6_ = _endpos__1_inlined2_ in
let _3 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3637 "parsing/parser.ml"
+# 3640 "parsing/parser.ml"
in
let _2 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 3643 "parsing/parser.ml"
+# 3646 "parsing/parser.ml"
in
let _endpos = _endpos__6_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1951 "parsing/parser.mly"
+# 1953 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs )
-# 3652 "parsing/parser.ml"
+# 3655 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3708,33 +3711,33 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _6 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 3714 "parsing/parser.ml"
+# 3717 "parsing/parser.ml"
in
let _endpos__6_ = _endpos__1_inlined3_ in
let _3 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3723 "parsing/parser.ml"
+# 3726 "parsing/parser.ml"
in
let _2 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 3729 "parsing/parser.ml"
+# 3732 "parsing/parser.ml"
in
let _endpos = _endpos__6_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1951 "parsing/parser.mly"
+# 1953 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs )
-# 3738 "parsing/parser.ml"
+# 3741 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3775,9 +3778,9 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _3 =
let _1 = _1_inlined1 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 3781 "parsing/parser.ml"
+# 3784 "parsing/parser.ml"
in
let _endpos__3_ = _endpos__1_inlined1_ in
@@ -3785,11 +3788,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1954 "parsing/parser.mly"
+# 1956 "parsing/parser.mly"
( let v, attrs = _2 in
let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs )
-# 3793 "parsing/parser.ml"
+# 3796 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3830,9 +3833,9 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _3 =
let _1 = _1_inlined1 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 3836 "parsing/parser.ml"
+# 3839 "parsing/parser.ml"
in
let _endpos__3_ = _endpos__1_inlined1_ in
@@ -3840,11 +3843,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1958 "parsing/parser.mly"
+# 1960 "parsing/parser.mly"
( let meth, attrs = _2 in
let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs )
-# 3848 "parsing/parser.ml"
+# 3851 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3890,28 +3893,28 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _4 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 3896 "parsing/parser.ml"
+# 3899 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3905 "parsing/parser.ml"
+# 3908 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1962 "parsing/parser.mly"
+# 1964 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs )
-# 3915 "parsing/parser.ml"
+# 3918 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -3957,28 +3960,28 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _4 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 3963 "parsing/parser.ml"
+# 3966 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 3972 "parsing/parser.ml"
+# 3975 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1965 "parsing/parser.mly"
+# 1967 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs )
-# 3982 "parsing/parser.ml"
+# 3985 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4010,9 +4013,9 @@ module Tables = struct
let _v : (Parsetree.class_field) = let _2 =
let _1 = _1_inlined1 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 4016 "parsing/parser.ml"
+# 4019 "parsing/parser.ml"
in
let _endpos__2_ = _endpos__1_inlined1_ in
@@ -4020,10 +4023,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1968 "parsing/parser.mly"
+# 1970 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs )
-# 4027 "parsing/parser.ml"
+# 4030 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4047,23 +4050,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.class_field) = let _1 =
let _1 =
-# 1971 "parsing/parser.mly"
+# 1973 "parsing/parser.mly"
( Pcf_attribute _1 )
-# 4053 "parsing/parser.ml"
+# 4056 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 943 "parsing/parser.mly"
+# 945 "parsing/parser.mly"
( mkcf ~loc:_sloc _1 )
-# 4061 "parsing/parser.ml"
+# 4064 "parsing/parser.ml"
in
-# 1972 "parsing/parser.mly"
+# 1974 "parsing/parser.mly"
( _1 )
-# 4067 "parsing/parser.ml"
+# 4070 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4093,9 +4096,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.class_expr) =
-# 1866 "parsing/parser.mly"
+# 1868 "parsing/parser.mly"
( _2 )
-# 4099 "parsing/parser.ml"
+# 4102 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4140,24 +4143,24 @@ module Tables = struct
let _endpos = _endpos__4_ in
let _v : (Parsetree.class_expr) = let _1 =
let _1 =
-# 1869 "parsing/parser.mly"
+# 1871 "parsing/parser.mly"
( Pcl_constraint(_4, _2) )
-# 4146 "parsing/parser.ml"
+# 4149 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 4155 "parsing/parser.ml"
+# 4158 "parsing/parser.ml"
in
-# 1872 "parsing/parser.mly"
+# 1874 "parsing/parser.mly"
( _1 )
-# 4161 "parsing/parser.ml"
+# 4164 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4188,24 +4191,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.class_expr) = let _1 =
let _1 =
-# 1871 "parsing/parser.mly"
+# 1873 "parsing/parser.mly"
( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) )
-# 4194 "parsing/parser.ml"
+# 4197 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 4203 "parsing/parser.ml"
+# 4206 "parsing/parser.ml"
in
-# 1872 "parsing/parser.mly"
+# 1874 "parsing/parser.mly"
( _1 )
-# 4209 "parsing/parser.ml"
+# 4212 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4243,24 +4246,24 @@ module Tables = struct
let _endpos = _endpos_e_ in
let _v : (Parsetree.class_expr) = let _1 =
let _1 =
-# 1927 "parsing/parser.mly"
+# 1929 "parsing/parser.mly"
( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) )
-# 4249 "parsing/parser.ml"
+# 4252 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_e_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 4258 "parsing/parser.ml"
+# 4261 "parsing/parser.ml"
in
-# 1928 "parsing/parser.mly"
+# 1930 "parsing/parser.mly"
( _1 )
-# 4264 "parsing/parser.ml"
+# 4267 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4291,24 +4294,24 @@ module Tables = struct
let _endpos = _endpos_e_ in
let _v : (Parsetree.class_expr) = let _1 =
let _1 =
-# 1927 "parsing/parser.mly"
+# 1929 "parsing/parser.mly"
( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) )
-# 4297 "parsing/parser.ml"
+# 4300 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_e_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 4306 "parsing/parser.ml"
+# 4309 "parsing/parser.ml"
in
-# 1928 "parsing/parser.mly"
+# 1930 "parsing/parser.mly"
( _1 )
-# 4312 "parsing/parser.ml"
+# 4315 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4331,9 +4334,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3657 "parsing/parser.mly"
+# 3652 "parsing/parser.mly"
( _1 )
-# 4337 "parsing/parser.ml"
+# 4340 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4373,9 +4376,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1936 "parsing/parser.mly"
+# 1938 "parsing/parser.mly"
( reloc_pat ~loc:_sloc _2 )
-# 4379 "parsing/parser.ml"
+# 4382 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4427,24 +4430,24 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 1938 "parsing/parser.mly"
+# 1940 "parsing/parser.mly"
( Ppat_constraint(_2, _4) )
-# 4433 "parsing/parser.ml"
+# 4436 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 4442 "parsing/parser.ml"
+# 4445 "parsing/parser.ml"
in
-# 1939 "parsing/parser.mly"
+# 1941 "parsing/parser.mly"
( _1 )
-# 4448 "parsing/parser.ml"
+# 4451 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4463,9 +4466,9 @@ module Tables = struct
let _symbolstartpos = _endpos in
let _sloc = (_symbolstartpos, _endpos) in
-# 1941 "parsing/parser.mly"
+# 1943 "parsing/parser.mly"
( ghpat ~loc:_sloc Ppat_any )
-# 4469 "parsing/parser.ml"
+# 4472 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4502,9 +4505,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.core_type) =
-# 2066 "parsing/parser.mly"
+# 2068 "parsing/parser.mly"
( _2 )
-# 4508 "parsing/parser.ml"
+# 4511 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4521,24 +4524,24 @@ module Tables = struct
let _endpos = _startpos in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 2067 "parsing/parser.mly"
+# 2069 "parsing/parser.mly"
( Ptyp_any )
-# 4527 "parsing/parser.ml"
+# 4530 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__0_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _endpos in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 4536 "parsing/parser.ml"
+# 4539 "parsing/parser.ml"
in
-# 2068 "parsing/parser.mly"
+# 2070 "parsing/parser.mly"
( _1 )
-# 4542 "parsing/parser.ml"
+# 4545 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4584,28 +4587,28 @@ module Tables = struct
let _v : (Parsetree.class_type_field) = let _4 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 4590 "parsing/parser.ml"
+# 4593 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 4599 "parsing/parser.ml"
+# 4602 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2076 "parsing/parser.mly"
+# 2078 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs )
-# 4609 "parsing/parser.ml"
+# 4612 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4663,9 +4666,9 @@ module Tables = struct
let ty : (Parsetree.core_type) = Obj.magic ty in
let _3 : unit = Obj.magic _3 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 4669 "parsing/parser.ml"
+# 4672 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -4676,9 +4679,9 @@ module Tables = struct
let _v : (Parsetree.class_type_field) = let _4 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 4682 "parsing/parser.ml"
+# 4685 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined3_ in
@@ -4686,44 +4689,44 @@ module Tables = struct
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let label =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 4692 "parsing/parser.ml"
+# 4695 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 4700 "parsing/parser.ml"
+# 4703 "parsing/parser.ml"
in
-# 2101 "parsing/parser.mly"
+# 2103 "parsing/parser.mly"
(
let mut, virt = flags in
label, mut, virt, ty
)
-# 4709 "parsing/parser.ml"
+# 4712 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 4717 "parsing/parser.ml"
+# 4720 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2079 "parsing/parser.mly"
+# 2081 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs )
-# 4727 "parsing/parser.ml"
+# 4730 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4781,9 +4784,9 @@ module Tables = struct
let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in
let _5 : unit = Obj.magic _5 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 4787 "parsing/parser.ml"
+# 4790 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -4794,53 +4797,53 @@ module Tables = struct
let _v : (Parsetree.class_type_field) = let _7 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 4800 "parsing/parser.ml"
+# 4803 "parsing/parser.ml"
in
let _endpos__7_ = _endpos__1_inlined4_ in
let _6 =
let _1 = _1_inlined3 in
-# 3302 "parsing/parser.mly"
+# 3297 "parsing/parser.mly"
( _1 )
-# 4809 "parsing/parser.ml"
+# 4812 "parsing/parser.ml"
in
let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 4817 "parsing/parser.ml"
+# 4820 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 4825 "parsing/parser.ml"
+# 4828 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 4833 "parsing/parser.ml"
+# 4836 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2083 "parsing/parser.mly"
+# 2085 "parsing/parser.mly"
( let (p, v) = _3 in
let docs = symbol_docs _sloc in
mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs )
-# 4844 "parsing/parser.ml"
+# 4847 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4886,28 +4889,28 @@ module Tables = struct
let _v : (Parsetree.class_type_field) = let _4 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 4892 "parsing/parser.ml"
+# 4895 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 4901 "parsing/parser.ml"
+# 4904 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2087 "parsing/parser.mly"
+# 2089 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs )
-# 4911 "parsing/parser.ml"
+# 4914 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4939,9 +4942,9 @@ module Tables = struct
let _v : (Parsetree.class_type_field) = let _2 =
let _1 = _1_inlined1 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 4945 "parsing/parser.ml"
+# 4948 "parsing/parser.ml"
in
let _endpos__2_ = _endpos__1_inlined1_ in
@@ -4949,10 +4952,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2090 "parsing/parser.mly"
+# 2092 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs )
-# 4956 "parsing/parser.ml"
+# 4959 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -4976,23 +4979,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.class_type_field) = let _1 =
let _1 =
-# 2093 "parsing/parser.mly"
+# 2095 "parsing/parser.mly"
( Pctf_attribute _1 )
-# 4982 "parsing/parser.ml"
+# 4985 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 941 "parsing/parser.mly"
+# 943 "parsing/parser.mly"
( mkctf ~loc:_sloc _1 )
-# 4990 "parsing/parser.ml"
+# 4993 "parsing/parser.ml"
in
-# 2094 "parsing/parser.mly"
+# 2096 "parsing/parser.mly"
( _1 )
-# 4996 "parsing/parser.ml"
+# 4999 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5021,42 +5024,42 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 5027 "parsing/parser.ml"
+# 5030 "parsing/parser.ml"
in
let tys =
let tys =
-# 2052 "parsing/parser.mly"
+# 2054 "parsing/parser.mly"
( [] )
-# 5034 "parsing/parser.ml"
+# 5037 "parsing/parser.ml"
in
-# 2058 "parsing/parser.mly"
+# 2060 "parsing/parser.mly"
( tys )
-# 5039 "parsing/parser.ml"
+# 5042 "parsing/parser.ml"
in
-# 2035 "parsing/parser.mly"
+# 2037 "parsing/parser.mly"
( Pcty_constr (cid, tys) )
-# 5045 "parsing/parser.ml"
+# 5048 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 939 "parsing/parser.mly"
+# 941 "parsing/parser.mly"
( mkcty ~loc:_sloc _1 )
-# 5054 "parsing/parser.ml"
+# 5057 "parsing/parser.ml"
in
-# 2038 "parsing/parser.mly"
+# 2040 "parsing/parser.mly"
( _1 )
-# 5060 "parsing/parser.ml"
+# 5063 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5107,9 +5110,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 5113 "parsing/parser.ml"
+# 5116 "parsing/parser.ml"
in
let tys =
@@ -5118,30 +5121,30 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 5122 "parsing/parser.ml"
+# 5125 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 5127 "parsing/parser.ml"
+# 5130 "parsing/parser.ml"
in
-# 2054 "parsing/parser.mly"
+# 2056 "parsing/parser.mly"
( params )
-# 5133 "parsing/parser.ml"
+# 5136 "parsing/parser.ml"
in
-# 2058 "parsing/parser.mly"
+# 2060 "parsing/parser.mly"
( tys )
-# 5139 "parsing/parser.ml"
+# 5142 "parsing/parser.ml"
in
-# 2035 "parsing/parser.mly"
+# 2037 "parsing/parser.mly"
( Pcty_constr (cid, tys) )
-# 5145 "parsing/parser.ml"
+# 5148 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -5149,15 +5152,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 939 "parsing/parser.mly"
+# 941 "parsing/parser.mly"
( mkcty ~loc:_sloc _1 )
-# 5155 "parsing/parser.ml"
+# 5158 "parsing/parser.ml"
in
-# 2038 "parsing/parser.mly"
+# 2040 "parsing/parser.mly"
( _1 )
-# 5161 "parsing/parser.ml"
+# 5164 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5181,23 +5184,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.class_type) = let _1 =
let _1 =
-# 2037 "parsing/parser.mly"
+# 2039 "parsing/parser.mly"
( Pcty_extension _1 )
-# 5187 "parsing/parser.ml"
+# 5190 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 939 "parsing/parser.mly"
+# 941 "parsing/parser.mly"
( mkcty ~loc:_sloc _1 )
-# 5195 "parsing/parser.ml"
+# 5198 "parsing/parser.ml"
in
-# 2038 "parsing/parser.mly"
+# 2040 "parsing/parser.mly"
( _1 )
-# 5201 "parsing/parser.ml"
+# 5204 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5254,44 +5257,44 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 5258 "parsing/parser.ml"
+# 5261 "parsing/parser.ml"
in
-# 2072 "parsing/parser.mly"
+# 2074 "parsing/parser.mly"
( _1 )
-# 5263 "parsing/parser.ml"
+# 5266 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 887 "parsing/parser.mly"
+# 889 "parsing/parser.mly"
( extra_csig _startpos _endpos _1 )
-# 5272 "parsing/parser.ml"
+# 5275 "parsing/parser.ml"
in
-# 2062 "parsing/parser.mly"
+# 2064 "parsing/parser.mly"
( Csig.mk _1 _2 )
-# 5278 "parsing/parser.ml"
+# 5281 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 5286 "parsing/parser.ml"
+# 5289 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2040 "parsing/parser.mly"
+# 2042 "parsing/parser.mly"
( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) )
-# 5295 "parsing/parser.ml"
+# 5298 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5348,43 +5351,43 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 5352 "parsing/parser.ml"
+# 5355 "parsing/parser.ml"
in
-# 2072 "parsing/parser.mly"
+# 2074 "parsing/parser.mly"
( _1 )
-# 5357 "parsing/parser.ml"
+# 5360 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 887 "parsing/parser.mly"
+# 889 "parsing/parser.mly"
( extra_csig _startpos _endpos _1 )
-# 5366 "parsing/parser.ml"
+# 5369 "parsing/parser.ml"
in
-# 2062 "parsing/parser.mly"
+# 2064 "parsing/parser.mly"
( Csig.mk _1 _2 )
-# 5372 "parsing/parser.ml"
+# 5375 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 5380 "parsing/parser.ml"
+# 5383 "parsing/parser.ml"
in
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2042 "parsing/parser.mly"
+# 2044 "parsing/parser.mly"
( unclosed "object" _loc__1_ "end" _loc__4_ )
-# 5388 "parsing/parser.ml"
+# 5391 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5414,9 +5417,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.class_type) =
-# 2044 "parsing/parser.mly"
+# 2046 "parsing/parser.mly"
( Cty.attr _1 _2 )
-# 5420 "parsing/parser.ml"
+# 5423 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5479,34 +5482,34 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 5485 "parsing/parser.ml"
+# 5488 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined2_ in
let _4 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 5494 "parsing/parser.ml"
+# 5497 "parsing/parser.ml"
in
let _3 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 5500 "parsing/parser.ml"
+# 5503 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2046 "parsing/parser.mly"
+# 2048 "parsing/parser.mly"
( let loc = (_startpos__2_, _endpos__5_) in
let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) )
-# 5510 "parsing/parser.ml"
+# 5513 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5576,34 +5579,34 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 5582 "parsing/parser.ml"
+# 5585 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined3_ in
let _4 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 5591 "parsing/parser.ml"
+# 5594 "parsing/parser.ml"
in
let _3 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 5597 "parsing/parser.ml"
+# 5600 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2046 "parsing/parser.mly"
+# 2048 "parsing/parser.mly"
( let loc = (_startpos__2_, _endpos__5_) in
let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) )
-# 5607 "parsing/parser.ml"
+# 5610 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5640,9 +5643,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.class_expr) =
-# 1906 "parsing/parser.mly"
+# 1908 "parsing/parser.mly"
( _2 )
-# 5646 "parsing/parser.ml"
+# 5649 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5681,9 +5684,9 @@ module Tables = struct
let _v : (Parsetree.class_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1908 "parsing/parser.mly"
+# 1910 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__3_ )
-# 5687 "parsing/parser.ml"
+# 5690 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5712,42 +5715,42 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 5718 "parsing/parser.ml"
+# 5721 "parsing/parser.ml"
in
let tys =
let tys =
-# 2052 "parsing/parser.mly"
+# 2054 "parsing/parser.mly"
( [] )
-# 5725 "parsing/parser.ml"
+# 5728 "parsing/parser.ml"
in
-# 2058 "parsing/parser.mly"
+# 2060 "parsing/parser.mly"
( tys )
-# 5730 "parsing/parser.ml"
+# 5733 "parsing/parser.ml"
in
-# 1911 "parsing/parser.mly"
+# 1913 "parsing/parser.mly"
( Pcl_constr(cid, tys) )
-# 5736 "parsing/parser.ml"
+# 5739 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 5745 "parsing/parser.ml"
+# 5748 "parsing/parser.ml"
in
-# 1918 "parsing/parser.mly"
+# 1920 "parsing/parser.mly"
( _1 )
-# 5751 "parsing/parser.ml"
+# 5754 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5798,9 +5801,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 5804 "parsing/parser.ml"
+# 5807 "parsing/parser.ml"
in
let tys =
@@ -5809,30 +5812,30 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 5813 "parsing/parser.ml"
+# 5816 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 5818 "parsing/parser.ml"
+# 5821 "parsing/parser.ml"
in
-# 2054 "parsing/parser.mly"
+# 2056 "parsing/parser.mly"
( params )
-# 5824 "parsing/parser.ml"
+# 5827 "parsing/parser.ml"
in
-# 2058 "parsing/parser.mly"
+# 2060 "parsing/parser.mly"
( tys )
-# 5830 "parsing/parser.ml"
+# 5833 "parsing/parser.ml"
in
-# 1911 "parsing/parser.mly"
+# 1913 "parsing/parser.mly"
( Pcl_constr(cid, tys) )
-# 5836 "parsing/parser.ml"
+# 5839 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -5840,15 +5843,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 5846 "parsing/parser.ml"
+# 5849 "parsing/parser.ml"
in
-# 1918 "parsing/parser.mly"
+# 1920 "parsing/parser.mly"
( _1 )
-# 5852 "parsing/parser.ml"
+# 5855 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -5907,43 +5910,43 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 5911 "parsing/parser.ml"
+# 5914 "parsing/parser.ml"
in
-# 1945 "parsing/parser.mly"
+# 1947 "parsing/parser.mly"
( _1 )
-# 5916 "parsing/parser.ml"
+# 5919 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 886 "parsing/parser.mly"
+# 888 "parsing/parser.mly"
( extra_cstr _startpos _endpos _1 )
-# 5925 "parsing/parser.ml"
+# 5928 "parsing/parser.ml"
in
-# 1932 "parsing/parser.mly"
+# 1934 "parsing/parser.mly"
( Cstr.mk _1 _2 )
-# 5931 "parsing/parser.ml"
+# 5934 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 5939 "parsing/parser.ml"
+# 5942 "parsing/parser.ml"
in
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1913 "parsing/parser.mly"
+# 1915 "parsing/parser.mly"
( unclosed "object" _loc__1_ "end" _loc__4_ )
-# 5947 "parsing/parser.ml"
+# 5950 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -5951,15 +5954,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 5957 "parsing/parser.ml"
+# 5960 "parsing/parser.ml"
in
-# 1918 "parsing/parser.mly"
+# 1920 "parsing/parser.mly"
( _1 )
-# 5963 "parsing/parser.ml"
+# 5966 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6011,24 +6014,24 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.class_expr) = let _1 =
let _1 =
-# 1915 "parsing/parser.mly"
+# 1917 "parsing/parser.mly"
( Pcl_constraint(_2, _4) )
-# 6017 "parsing/parser.ml"
+# 6020 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 6026 "parsing/parser.ml"
+# 6029 "parsing/parser.ml"
in
-# 1918 "parsing/parser.mly"
+# 1920 "parsing/parser.mly"
( _1 )
-# 6032 "parsing/parser.ml"
+# 6035 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6083,9 +6086,9 @@ module Tables = struct
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1917 "parsing/parser.mly"
+# 1919 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__5_ )
-# 6089 "parsing/parser.ml"
+# 6092 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -6093,15 +6096,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 945 "parsing/parser.mly"
+# 947 "parsing/parser.mly"
( mkclass ~loc:_sloc _1 )
-# 6099 "parsing/parser.ml"
+# 6102 "parsing/parser.ml"
in
-# 1918 "parsing/parser.mly"
+# 1920 "parsing/parser.mly"
( _1 )
-# 6105 "parsing/parser.ml"
+# 6108 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6158,44 +6161,44 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 6162 "parsing/parser.ml"
+# 6165 "parsing/parser.ml"
in
-# 1945 "parsing/parser.mly"
+# 1947 "parsing/parser.mly"
( _1 )
-# 6167 "parsing/parser.ml"
+# 6170 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 886 "parsing/parser.mly"
+# 888 "parsing/parser.mly"
( extra_cstr _startpos _endpos _1 )
-# 6176 "parsing/parser.ml"
+# 6179 "parsing/parser.ml"
in
-# 1932 "parsing/parser.mly"
+# 1934 "parsing/parser.mly"
( Cstr.mk _1 _2 )
-# 6182 "parsing/parser.ml"
+# 6185 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 6190 "parsing/parser.ml"
+# 6193 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1920 "parsing/parser.mly"
+# 1922 "parsing/parser.mly"
( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) )
-# 6199 "parsing/parser.ml"
+# 6202 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6218,9 +6221,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.class_type) =
-# 2023 "parsing/parser.mly"
+# 2025 "parsing/parser.mly"
( _1 )
-# 6224 "parsing/parser.ml"
+# 6227 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6266,14 +6269,14 @@ module Tables = struct
let _v : (Parsetree.class_type) = let _1 =
let _1 =
let label =
-# 3365 "parsing/parser.mly"
+# 3360 "parsing/parser.mly"
( Optional label )
-# 6272 "parsing/parser.ml"
+# 6275 "parsing/parser.ml"
in
-# 2029 "parsing/parser.mly"
+# 2031 "parsing/parser.mly"
( Pcty_arrow(label, domain, codomain) )
-# 6277 "parsing/parser.ml"
+# 6280 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
@@ -6281,15 +6284,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 939 "parsing/parser.mly"
+# 941 "parsing/parser.mly"
( mkcty ~loc:_sloc _1 )
-# 6287 "parsing/parser.ml"
+# 6290 "parsing/parser.ml"
in
-# 2030 "parsing/parser.mly"
+# 2032 "parsing/parser.mly"
( _1 )
-# 6293 "parsing/parser.ml"
+# 6296 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6336,9 +6339,9 @@ module Tables = struct
let domain : (Parsetree.core_type) = Obj.magic domain in
let _2 : unit = Obj.magic _2 in
let label : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 6342 "parsing/parser.ml"
+# 6345 "parsing/parser.ml"
) = Obj.magic label in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_label_ in
@@ -6346,14 +6349,14 @@ module Tables = struct
let _v : (Parsetree.class_type) = let _1 =
let _1 =
let label =
-# 3367 "parsing/parser.mly"
+# 3362 "parsing/parser.mly"
( Labelled label )
-# 6352 "parsing/parser.ml"
+# 6355 "parsing/parser.ml"
in
-# 2029 "parsing/parser.mly"
+# 2031 "parsing/parser.mly"
( Pcty_arrow(label, domain, codomain) )
-# 6357 "parsing/parser.ml"
+# 6360 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
@@ -6361,15 +6364,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 939 "parsing/parser.mly"
+# 941 "parsing/parser.mly"
( mkcty ~loc:_sloc _1 )
-# 6367 "parsing/parser.ml"
+# 6370 "parsing/parser.ml"
in
-# 2030 "parsing/parser.mly"
+# 2032 "parsing/parser.mly"
( _1 )
-# 6373 "parsing/parser.ml"
+# 6376 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6408,14 +6411,14 @@ module Tables = struct
let _v : (Parsetree.class_type) = let _1 =
let _1 =
let label =
-# 3369 "parsing/parser.mly"
+# 3364 "parsing/parser.mly"
( Nolabel )
-# 6414 "parsing/parser.ml"
+# 6417 "parsing/parser.ml"
in
-# 2029 "parsing/parser.mly"
+# 2031 "parsing/parser.mly"
( Pcty_arrow(label, domain, codomain) )
-# 6419 "parsing/parser.ml"
+# 6422 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in
@@ -6423,15 +6426,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 939 "parsing/parser.mly"
+# 941 "parsing/parser.mly"
( mkcty ~loc:_sloc _1 )
-# 6429 "parsing/parser.ml"
+# 6432 "parsing/parser.ml"
in
-# 2030 "parsing/parser.mly"
+# 2032 "parsing/parser.mly"
( _1 )
-# 6435 "parsing/parser.ml"
+# 6438 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6514,9 +6517,9 @@ module Tables = struct
let csig : (Parsetree.class_type) = Obj.magic csig in
let _8 : unit = Obj.magic _8 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 6520 "parsing/parser.ml"
+# 6523 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let virt : (Asttypes.virtual_flag) = Obj.magic virt in
@@ -6532,9 +6535,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 6538 "parsing/parser.ml"
+# 6541 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -6544,24 +6547,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 6550 "parsing/parser.ml"
+# 6553 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 6558 "parsing/parser.ml"
+# 6561 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2168 "parsing/parser.mly"
+# 2170 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
@@ -6569,19 +6572,19 @@ module Tables = struct
ext,
Ci.mk id csig ~virt ~params ~attrs ~loc ~docs
)
-# 6573 "parsing/parser.ml"
+# 6576 "parsing/parser.ml"
in
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 6579 "parsing/parser.ml"
+# 6582 "parsing/parser.ml"
in
-# 2156 "parsing/parser.mly"
+# 2158 "parsing/parser.mly"
( _1 )
-# 6585 "parsing/parser.ml"
+# 6588 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6604,9 +6607,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3654 "parsing/parser.mly"
+# 3649 "parsing/parser.mly"
( _1 )
-# 6610 "parsing/parser.ml"
+# 6613 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6625,17 +6628,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 696 "parsing/parser.mly"
+# 698 "parsing/parser.mly"
(string * char option)
-# 6631 "parsing/parser.ml"
+# 6634 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.constant) =
-# 3537 "parsing/parser.mly"
+# 3532 "parsing/parser.mly"
( let (n, m) = _1 in Pconst_integer (n, m) )
-# 6639 "parsing/parser.ml"
+# 6642 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6654,17 +6657,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 655 "parsing/parser.mly"
+# 657 "parsing/parser.mly"
(char)
-# 6660 "parsing/parser.ml"
+# 6663 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.constant) =
-# 3538 "parsing/parser.mly"
+# 3533 "parsing/parser.mly"
( Pconst_char _1 )
-# 6668 "parsing/parser.ml"
+# 6671 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6683,17 +6686,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 748 "parsing/parser.mly"
+# 750 "parsing/parser.mly"
(string * Location.t * string option)
-# 6689 "parsing/parser.ml"
+# 6692 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.constant) =
-# 3539 "parsing/parser.mly"
+# 3534 "parsing/parser.mly"
( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) )
-# 6697 "parsing/parser.ml"
+# 6700 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6712,17 +6715,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 675 "parsing/parser.mly"
+# 677 "parsing/parser.mly"
(string * char option)
-# 6718 "parsing/parser.ml"
+# 6721 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.constant) =
-# 3540 "parsing/parser.mly"
+# 3535 "parsing/parser.mly"
( let (f, m) = _1 in Pconst_float (f, m) )
-# 6726 "parsing/parser.ml"
+# 6729 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6752,9 +6755,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.label) =
-# 3611 "parsing/parser.mly"
+# 3606 "parsing/parser.mly"
( "[]" )
-# 6758 "parsing/parser.ml"
+# 6761 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6784,9 +6787,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.label) =
-# 3612 "parsing/parser.mly"
+# 3607 "parsing/parser.mly"
( "()" )
-# 6790 "parsing/parser.ml"
+# 6793 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6809,9 +6812,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3613 "parsing/parser.mly"
+# 3608 "parsing/parser.mly"
( "false" )
-# 6815 "parsing/parser.ml"
+# 6818 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6834,9 +6837,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3614 "parsing/parser.mly"
+# 3609 "parsing/parser.mly"
( "true" )
-# 6840 "parsing/parser.ml"
+# 6843 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6855,17 +6858,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 6861 "parsing/parser.ml"
+# 6864 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3617 "parsing/parser.mly"
+# 3612 "parsing/parser.mly"
( _1 )
-# 6869 "parsing/parser.ml"
+# 6872 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6902,14 +6905,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Asttypes.label) = let _1 =
-# 3608 "parsing/parser.mly"
+# 3603 "parsing/parser.mly"
( "::" )
-# 6908 "parsing/parser.ml"
+# 6911 "parsing/parser.ml"
in
-# 3618 "parsing/parser.mly"
+# 3613 "parsing/parser.mly"
( _1 )
-# 6913 "parsing/parser.ml"
+# 6916 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6932,9 +6935,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3619 "parsing/parser.mly"
+# 3614 "parsing/parser.mly"
( _1 )
-# 6938 "parsing/parser.ml"
+# 6941 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -6957,9 +6960,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3622 "parsing/parser.mly"
+# 3617 "parsing/parser.mly"
( _1 )
-# 6963 "parsing/parser.ml"
+# 6966 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7010,14 +7013,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) = let _3 =
-# 3608 "parsing/parser.mly"
+# 3603 "parsing/parser.mly"
( "::" )
-# 7016 "parsing/parser.ml"
+# 7019 "parsing/parser.ml"
in
-# 3623 "parsing/parser.mly"
+# 3618 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 7021 "parsing/parser.ml"
+# 7024 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7054,14 +7057,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) = let _1 =
-# 3608 "parsing/parser.mly"
+# 3603 "parsing/parser.mly"
( "::" )
-# 7060 "parsing/parser.ml"
+# 7063 "parsing/parser.ml"
in
-# 3624 "parsing/parser.mly"
+# 3619 "parsing/parser.mly"
( Lident _1 )
-# 7065 "parsing/parser.ml"
+# 7068 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7084,9 +7087,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3625 "parsing/parser.mly"
+# 3620 "parsing/parser.mly"
( Lident _1 )
-# 7090 "parsing/parser.ml"
+# 7093 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7123,9 +7126,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.core_type * Parsetree.core_type) =
-# 2112 "parsing/parser.mly"
+# 2114 "parsing/parser.mly"
( _1, _3 )
-# 7129 "parsing/parser.ml"
+# 7132 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7150,26 +7153,26 @@ module Tables = struct
let _v : (Parsetree.constructor_arguments) = let tys =
let xs =
let xs =
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 7156 "parsing/parser.ml"
+# 7159 "parsing/parser.ml"
in
# 253 "<standard.mly>"
( List.rev xs )
-# 7161 "parsing/parser.ml"
+# 7164 "parsing/parser.ml"
in
-# 1030 "parsing/parser.mly"
+# 1032 "parsing/parser.mly"
( xs )
-# 7167 "parsing/parser.ml"
+# 7170 "parsing/parser.ml"
in
-# 3168 "parsing/parser.mly"
+# 3163 "parsing/parser.mly"
( Pcstr_tuple tys )
-# 7173 "parsing/parser.ml"
+# 7176 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7208,26 +7211,26 @@ module Tables = struct
let _v : (Parsetree.constructor_arguments) = let tys =
let xs =
let xs =
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 7214 "parsing/parser.ml"
+# 7217 "parsing/parser.ml"
in
# 253 "<standard.mly>"
( List.rev xs )
-# 7219 "parsing/parser.ml"
+# 7222 "parsing/parser.ml"
in
-# 1030 "parsing/parser.mly"
+# 1032 "parsing/parser.mly"
( xs )
-# 7225 "parsing/parser.ml"
+# 7228 "parsing/parser.ml"
in
-# 3168 "parsing/parser.mly"
+# 3163 "parsing/parser.mly"
( Pcstr_tuple tys )
-# 7231 "parsing/parser.ml"
+# 7234 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7264,9 +7267,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.constructor_arguments) =
-# 3170 "parsing/parser.mly"
+# 3165 "parsing/parser.mly"
( Pcstr_record _2 )
-# 7270 "parsing/parser.ml"
+# 7273 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7289,9 +7292,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.constructor_declaration list) =
-# 3084 "parsing/parser.mly"
+# 3079 "parsing/parser.mly"
( [] )
-# 7295 "parsing/parser.ml"
+# 7298 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7314,14 +7317,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_xs_ in
let _v : (Parsetree.constructor_declaration list) = let cs =
-# 1115 "parsing/parser.mly"
+# 1117 "parsing/parser.mly"
( List.rev xs )
-# 7320 "parsing/parser.ml"
+# 7323 "parsing/parser.ml"
in
-# 3086 "parsing/parser.mly"
+# 3081 "parsing/parser.mly"
( cs )
-# 7325 "parsing/parser.ml"
+# 7328 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7344,14 +7347,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) = let _1 =
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 7350 "parsing/parser.ml"
+# 7353 "parsing/parser.ml"
in
-# 3317 "parsing/parser.mly"
+# 3312 "parsing/parser.mly"
( _1 )
-# 7355 "parsing/parser.ml"
+# 7358 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7381,9 +7384,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type) =
-# 3319 "parsing/parser.mly"
+# 3314 "parsing/parser.mly"
( Typ.attr _1 _2 )
-# 7387 "parsing/parser.ml"
+# 7390 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7406,9 +7409,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.direction_flag) =
-# 3720 "parsing/parser.mly"
+# 3715 "parsing/parser.mly"
( Upto )
-# 7412 "parsing/parser.ml"
+# 7415 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7431,9 +7434,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.direction_flag) =
-# 3721 "parsing/parser.mly"
+# 3716 "parsing/parser.mly"
( Downto )
-# 7437 "parsing/parser.ml"
+# 7440 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7456,9 +7459,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) =
-# 2279 "parsing/parser.mly"
+# 2281 "parsing/parser.mly"
( _1 )
-# 7462 "parsing/parser.ml"
+# 7465 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7536,9 +7539,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 7542 "parsing/parser.ml"
+# 7545 "parsing/parser.ml"
in
let _3 =
@@ -7546,21 +7549,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 7552 "parsing/parser.ml"
+# 7555 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 7558 "parsing/parser.ml"
+# 7561 "parsing/parser.ml"
in
-# 2312 "parsing/parser.mly"
+# 2314 "parsing/parser.mly"
( Pexp_letmodule(_4, _5, _7), _3 )
-# 7564 "parsing/parser.ml"
+# 7567 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -7568,10 +7571,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 7575 "parsing/parser.ml"
+# 7578 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7656,9 +7659,9 @@ module Tables = struct
let _3 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 7662 "parsing/parser.ml"
+# 7665 "parsing/parser.ml"
in
let _endpos__3_ = _endpos__1_inlined1_ in
@@ -7667,19 +7670,19 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 7673 "parsing/parser.ml"
+# 7676 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3148 "parsing/parser.mly"
+# 3143 "parsing/parser.mly"
( let vars, args, res = _2 in
Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) )
-# 7683 "parsing/parser.ml"
+# 7686 "parsing/parser.ml"
in
let _3 =
@@ -7687,21 +7690,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 7693 "parsing/parser.ml"
+# 7696 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 7699 "parsing/parser.ml"
+# 7702 "parsing/parser.ml"
in
-# 2314 "parsing/parser.mly"
+# 2316 "parsing/parser.mly"
( Pexp_letexception(_4, _6), _3 )
-# 7705 "parsing/parser.ml"
+# 7708 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__6_ in
@@ -7709,10 +7712,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 7716 "parsing/parser.ml"
+# 7719 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7782,28 +7785,28 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 7788 "parsing/parser.ml"
+# 7791 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 7794 "parsing/parser.ml"
+# 7797 "parsing/parser.ml"
in
let _3 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 7800 "parsing/parser.ml"
+# 7803 "parsing/parser.ml"
in
-# 2316 "parsing/parser.mly"
+# 2318 "parsing/parser.mly"
( let open_loc = make_loc (_startpos__2_, _endpos__5_) in
let od = Opn.mk _5 ~override:_3 ~loc:open_loc in
Pexp_open(od, _7), _4 )
-# 7807 "parsing/parser.ml"
+# 7810 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -7811,10 +7814,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 7818 "parsing/parser.ml"
+# 7821 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7891,28 +7894,28 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 7897 "parsing/parser.ml"
+# 7900 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 7903 "parsing/parser.ml"
+# 7906 "parsing/parser.ml"
in
let _3 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 7909 "parsing/parser.ml"
+# 7912 "parsing/parser.ml"
in
-# 2316 "parsing/parser.mly"
+# 2318 "parsing/parser.mly"
( let open_loc = make_loc (_startpos__2_, _endpos__5_) in
let od = Opn.mk _5 ~override:_3 ~loc:open_loc in
Pexp_open(od, _7), _4 )
-# 7916 "parsing/parser.ml"
+# 7919 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -7920,10 +7923,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 7927 "parsing/parser.ml"
+# 7930 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -7972,18 +7975,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 7976 "parsing/parser.ml"
+# 7979 "parsing/parser.ml"
in
-# 1087 "parsing/parser.mly"
+# 1089 "parsing/parser.mly"
( xs )
-# 7981 "parsing/parser.ml"
+# 7984 "parsing/parser.ml"
in
-# 2631 "parsing/parser.mly"
+# 2626 "parsing/parser.mly"
( xs )
-# 7987 "parsing/parser.ml"
+# 7990 "parsing/parser.ml"
in
let _2 =
@@ -7991,21 +7994,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 7997 "parsing/parser.ml"
+# 8000 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8003 "parsing/parser.ml"
+# 8006 "parsing/parser.ml"
in
-# 2320 "parsing/parser.mly"
+# 2322 "parsing/parser.mly"
( Pexp_function _3, _2 )
-# 8009 "parsing/parser.ml"
+# 8012 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_xs_ in
@@ -8013,10 +8016,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8020 "parsing/parser.ml"
+# 8023 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8072,22 +8075,22 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8078 "parsing/parser.ml"
+# 8081 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8084 "parsing/parser.ml"
+# 8087 "parsing/parser.ml"
in
-# 2322 "parsing/parser.mly"
+# 2324 "parsing/parser.mly"
( let (l,o,p) = _3 in
Pexp_fun(l, o, p, _4), _2 )
-# 8091 "parsing/parser.ml"
+# 8094 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -8095,10 +8098,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8102 "parsing/parser.ml"
+# 8105 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8171,33 +8174,33 @@ module Tables = struct
let _endpos = _endpos__7_ in
let _v : (Parsetree.expression) = let _1 =
let _5 =
-# 2515 "parsing/parser.mly"
+# 2517 "parsing/parser.mly"
( xs )
-# 8177 "parsing/parser.ml"
+# 8180 "parsing/parser.ml"
in
let _2 =
let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8186 "parsing/parser.ml"
+# 8189 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8192 "parsing/parser.ml"
+# 8195 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2325 "parsing/parser.mly"
+# 2327 "parsing/parser.mly"
( (mk_newtypes ~loc:_sloc _5 _7).pexp_desc, _2 )
-# 8201 "parsing/parser.ml"
+# 8204 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -8205,10 +8208,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8212 "parsing/parser.ml"
+# 8215 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8271,18 +8274,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 8275 "parsing/parser.ml"
+# 8278 "parsing/parser.ml"
in
-# 1087 "parsing/parser.mly"
+# 1089 "parsing/parser.mly"
( xs )
-# 8280 "parsing/parser.ml"
+# 8283 "parsing/parser.ml"
in
-# 2631 "parsing/parser.mly"
+# 2626 "parsing/parser.mly"
( xs )
-# 8286 "parsing/parser.ml"
+# 8289 "parsing/parser.ml"
in
let _2 =
@@ -8290,21 +8293,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8296 "parsing/parser.ml"
+# 8299 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8302 "parsing/parser.ml"
+# 8305 "parsing/parser.ml"
in
-# 2327 "parsing/parser.mly"
+# 2329 "parsing/parser.mly"
( Pexp_match(_3, _5), _2 )
-# 8308 "parsing/parser.ml"
+# 8311 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_xs_ in
@@ -8312,10 +8315,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8319 "parsing/parser.ml"
+# 8322 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8378,18 +8381,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 8382 "parsing/parser.ml"
+# 8385 "parsing/parser.ml"
in
-# 1087 "parsing/parser.mly"
+# 1089 "parsing/parser.mly"
( xs )
-# 8387 "parsing/parser.ml"
+# 8390 "parsing/parser.ml"
in
-# 2631 "parsing/parser.mly"
+# 2626 "parsing/parser.mly"
( xs )
-# 8393 "parsing/parser.ml"
+# 8396 "parsing/parser.ml"
in
let _2 =
@@ -8397,21 +8400,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8403 "parsing/parser.ml"
+# 8406 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8409 "parsing/parser.ml"
+# 8412 "parsing/parser.ml"
in
-# 2329 "parsing/parser.mly"
+# 2331 "parsing/parser.mly"
( Pexp_try(_3, _5), _2 )
-# 8415 "parsing/parser.ml"
+# 8418 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_xs_ in
@@ -8419,10 +8422,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8426 "parsing/parser.ml"
+# 8429 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8485,21 +8488,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8491 "parsing/parser.ml"
+# 8494 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8497 "parsing/parser.ml"
+# 8500 "parsing/parser.ml"
in
-# 2331 "parsing/parser.mly"
+# 2333 "parsing/parser.mly"
( syntax_error() )
-# 8503 "parsing/parser.ml"
+# 8506 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -8507,10 +8510,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8514 "parsing/parser.ml"
+# 8517 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8587,21 +8590,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8593 "parsing/parser.ml"
+# 8596 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8599 "parsing/parser.ml"
+# 8602 "parsing/parser.ml"
in
-# 2333 "parsing/parser.mly"
+# 2335 "parsing/parser.mly"
( Pexp_ifthenelse(_3, _5, Some _7), _2 )
-# 8605 "parsing/parser.ml"
+# 8608 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -8609,10 +8612,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8616 "parsing/parser.ml"
+# 8619 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8675,21 +8678,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8681 "parsing/parser.ml"
+# 8684 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8687 "parsing/parser.ml"
+# 8690 "parsing/parser.ml"
in
-# 2335 "parsing/parser.mly"
+# 2337 "parsing/parser.mly"
( Pexp_ifthenelse(_3, _5, None), _2 )
-# 8693 "parsing/parser.ml"
+# 8696 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -8697,10 +8700,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8704 "parsing/parser.ml"
+# 8707 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8766,30 +8769,30 @@ module Tables = struct
let _endpos = _endpos__3_inlined1_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2348 "parsing/parser.mly"
+# 2350 "parsing/parser.mly"
( e )
-# 8772 "parsing/parser.ml"
+# 8775 "parsing/parser.ml"
in
let _2 =
let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8781 "parsing/parser.ml"
+# 8784 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8787 "parsing/parser.ml"
+# 8790 "parsing/parser.ml"
in
-# 2337 "parsing/parser.mly"
+# 2339 "parsing/parser.mly"
( Pexp_while(_3, _4), _2 )
-# 8793 "parsing/parser.ml"
+# 8796 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_inlined1_ in
@@ -8797,10 +8800,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8804 "parsing/parser.ml"
+# 8807 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8870,9 +8873,9 @@ module Tables = struct
let _loc__2_ = (_startpos__2_, _endpos__2_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2350 "parsing/parser.mly"
+# 2352 "parsing/parser.mly"
( unclosed "do" _loc__1_ "done" _loc__2_ )
-# 8876 "parsing/parser.ml"
+# 8879 "parsing/parser.ml"
in
let _2 =
@@ -8880,21 +8883,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 8886 "parsing/parser.ml"
+# 8889 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 8892 "parsing/parser.ml"
+# 8895 "parsing/parser.ml"
in
-# 2337 "parsing/parser.mly"
+# 2339 "parsing/parser.mly"
( Pexp_while(_3, _4), _2 )
-# 8898 "parsing/parser.ml"
+# 8901 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_inlined1_ in
@@ -8902,10 +8905,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 8909 "parsing/parser.ml"
+# 8912 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -8999,30 +9002,30 @@ module Tables = struct
let _endpos = _endpos__3_inlined1_ in
let _v : (Parsetree.expression) = let _1 =
let _8 =
-# 2348 "parsing/parser.mly"
+# 2350 "parsing/parser.mly"
( e )
-# 9005 "parsing/parser.ml"
+# 9008 "parsing/parser.ml"
in
let _2 =
let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 9014 "parsing/parser.ml"
+# 9017 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 9020 "parsing/parser.ml"
+# 9023 "parsing/parser.ml"
in
-# 2340 "parsing/parser.mly"
+# 2342 "parsing/parser.mly"
( Pexp_for(_3, _5, _7, _6, _8), _2 )
-# 9026 "parsing/parser.ml"
+# 9029 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_inlined1_ in
@@ -9030,10 +9033,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 9037 "parsing/parser.ml"
+# 9040 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9131,9 +9134,9 @@ module Tables = struct
let _loc__2_ = (_startpos__2_, _endpos__2_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2350 "parsing/parser.mly"
+# 2352 "parsing/parser.mly"
( unclosed "do" _loc__1_ "done" _loc__2_ )
-# 9137 "parsing/parser.ml"
+# 9140 "parsing/parser.ml"
in
let _2 =
@@ -9141,21 +9144,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 9147 "parsing/parser.ml"
+# 9150 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 9153 "parsing/parser.ml"
+# 9156 "parsing/parser.ml"
in
-# 2340 "parsing/parser.mly"
+# 2342 "parsing/parser.mly"
( Pexp_for(_3, _5, _7, _6, _8), _2 )
-# 9159 "parsing/parser.ml"
+# 9162 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_inlined1_ in
@@ -9163,10 +9166,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 9170 "parsing/parser.ml"
+# 9173 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9215,21 +9218,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 9221 "parsing/parser.ml"
+# 9224 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 9227 "parsing/parser.ml"
+# 9230 "parsing/parser.ml"
in
-# 2342 "parsing/parser.mly"
+# 2344 "parsing/parser.mly"
( Pexp_assert _3, _2 )
-# 9233 "parsing/parser.ml"
+# 9236 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -9237,10 +9240,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 9244 "parsing/parser.ml"
+# 9247 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9289,21 +9292,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 9295 "parsing/parser.ml"
+# 9298 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 9301 "parsing/parser.ml"
+# 9304 "parsing/parser.ml"
in
-# 2344 "parsing/parser.mly"
+# 2346 "parsing/parser.mly"
( Pexp_lazy _3, _2 )
-# 9307 "parsing/parser.ml"
+# 9310 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -9311,10 +9314,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2281 "parsing/parser.mly"
+# 2283 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 9318 "parsing/parser.ml"
+# 9321 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9349,18 +9352,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 9353 "parsing/parser.ml"
+# 9356 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 9358 "parsing/parser.ml"
+# 9361 "parsing/parser.ml"
in
-# 2354 "parsing/parser.mly"
+# 2356 "parsing/parser.mly"
( Pexp_apply(_1, _2) )
-# 9364 "parsing/parser.ml"
+# 9367 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_xs_ in
@@ -9368,15 +9371,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9374 "parsing/parser.ml"
+# 9377 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9380 "parsing/parser.ml"
+# 9383 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9405,24 +9408,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 9409 "parsing/parser.ml"
+# 9412 "parsing/parser.ml"
in
-# 1054 "parsing/parser.mly"
+# 1056 "parsing/parser.mly"
( xs )
-# 9414 "parsing/parser.ml"
+# 9417 "parsing/parser.ml"
in
-# 2658 "parsing/parser.mly"
+# 2653 "parsing/parser.mly"
( es )
-# 9420 "parsing/parser.ml"
+# 9423 "parsing/parser.ml"
in
-# 2356 "parsing/parser.mly"
+# 2358 "parsing/parser.mly"
( Pexp_tuple(_1) )
-# 9426 "parsing/parser.ml"
+# 9429 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in
@@ -9430,15 +9433,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9436 "parsing/parser.ml"
+# 9439 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9442 "parsing/parser.ml"
+# 9445 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9474,15 +9477,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 9480 "parsing/parser.ml"
+# 9483 "parsing/parser.ml"
in
-# 2358 "parsing/parser.mly"
+# 2360 "parsing/parser.mly"
( Pexp_construct(_1, Some _2) )
-# 9486 "parsing/parser.ml"
+# 9489 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
@@ -9490,15 +9493,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9496 "parsing/parser.ml"
+# 9499 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9502 "parsing/parser.ml"
+# 9505 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9529,24 +9532,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2360 "parsing/parser.mly"
+# 2362 "parsing/parser.mly"
( Pexp_variant(_1, Some _2) )
-# 9535 "parsing/parser.ml"
+# 9538 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9544 "parsing/parser.ml"
+# 9547 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9550 "parsing/parser.ml"
+# 9553 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9578,9 +9581,9 @@ module Tables = struct
} = _menhir_stack in
let e2 : (Parsetree.expression) = Obj.magic e2 in
let op : (
-# 686 "parsing/parser.mly"
+# 688 "parsing/parser.mly"
(string)
-# 9584 "parsing/parser.ml"
+# 9587 "parsing/parser.ml"
) = Obj.magic op in
let e1 : (Parsetree.expression) = Obj.magic e1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -9590,24 +9593,24 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3581 "parsing/parser.mly"
+# 3576 "parsing/parser.mly"
( op )
-# 9596 "parsing/parser.ml"
+# 9599 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 9605 "parsing/parser.ml"
+# 9608 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 9611 "parsing/parser.ml"
+# 9614 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -9615,15 +9618,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9621 "parsing/parser.ml"
+# 9624 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9627 "parsing/parser.ml"
+# 9630 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9655,9 +9658,9 @@ module Tables = struct
} = _menhir_stack in
let e2 : (Parsetree.expression) = Obj.magic e2 in
let op : (
-# 687 "parsing/parser.mly"
+# 689 "parsing/parser.mly"
(string)
-# 9661 "parsing/parser.ml"
+# 9664 "parsing/parser.ml"
) = Obj.magic op in
let e1 : (Parsetree.expression) = Obj.magic e1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -9667,24 +9670,24 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3582 "parsing/parser.mly"
+# 3577 "parsing/parser.mly"
( op )
-# 9673 "parsing/parser.ml"
+# 9676 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 9682 "parsing/parser.ml"
+# 9685 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 9688 "parsing/parser.ml"
+# 9691 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -9692,15 +9695,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9698 "parsing/parser.ml"
+# 9701 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9704 "parsing/parser.ml"
+# 9707 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9732,9 +9735,9 @@ module Tables = struct
} = _menhir_stack in
let e2 : (Parsetree.expression) = Obj.magic e2 in
let op : (
-# 688 "parsing/parser.mly"
+# 690 "parsing/parser.mly"
(string)
-# 9738 "parsing/parser.ml"
+# 9741 "parsing/parser.ml"
) = Obj.magic op in
let e1 : (Parsetree.expression) = Obj.magic e1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -9744,24 +9747,24 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3583 "parsing/parser.mly"
+# 3578 "parsing/parser.mly"
( op )
-# 9750 "parsing/parser.ml"
+# 9753 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 9759 "parsing/parser.ml"
+# 9762 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 9765 "parsing/parser.ml"
+# 9768 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -9769,15 +9772,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9775 "parsing/parser.ml"
+# 9778 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9781 "parsing/parser.ml"
+# 9784 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9809,9 +9812,9 @@ module Tables = struct
} = _menhir_stack in
let e2 : (Parsetree.expression) = Obj.magic e2 in
let op : (
-# 689 "parsing/parser.mly"
+# 691 "parsing/parser.mly"
(string)
-# 9815 "parsing/parser.ml"
+# 9818 "parsing/parser.ml"
) = Obj.magic op in
let e1 : (Parsetree.expression) = Obj.magic e1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -9821,24 +9824,24 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3584 "parsing/parser.mly"
+# 3579 "parsing/parser.mly"
( op )
-# 9827 "parsing/parser.ml"
+# 9830 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 9836 "parsing/parser.ml"
+# 9839 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 9842 "parsing/parser.ml"
+# 9845 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -9846,15 +9849,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9852 "parsing/parser.ml"
+# 9855 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9858 "parsing/parser.ml"
+# 9861 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9886,9 +9889,9 @@ module Tables = struct
} = _menhir_stack in
let e2 : (Parsetree.expression) = Obj.magic e2 in
let op : (
-# 690 "parsing/parser.mly"
+# 692 "parsing/parser.mly"
(string)
-# 9892 "parsing/parser.ml"
+# 9895 "parsing/parser.ml"
) = Obj.magic op in
let e1 : (Parsetree.expression) = Obj.magic e1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -9898,24 +9901,24 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3585 "parsing/parser.mly"
+# 3580 "parsing/parser.mly"
( op )
-# 9904 "parsing/parser.ml"
+# 9907 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 9913 "parsing/parser.ml"
+# 9916 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 9919 "parsing/parser.ml"
+# 9922 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -9923,15 +9926,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 9929 "parsing/parser.ml"
+# 9932 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 9935 "parsing/parser.ml"
+# 9938 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -9971,23 +9974,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3586 "parsing/parser.mly"
+# 3581 "parsing/parser.mly"
("+")
-# 9977 "parsing/parser.ml"
+# 9980 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 9985 "parsing/parser.ml"
+# 9988 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 9991 "parsing/parser.ml"
+# 9994 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -9995,15 +9998,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10001 "parsing/parser.ml"
+# 10004 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10007 "parsing/parser.ml"
+# 10010 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10043,23 +10046,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3587 "parsing/parser.mly"
+# 3582 "parsing/parser.mly"
("+.")
-# 10049 "parsing/parser.ml"
+# 10052 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10057 "parsing/parser.ml"
+# 10060 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10063 "parsing/parser.ml"
+# 10066 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10067,15 +10070,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10073 "parsing/parser.ml"
+# 10076 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10079 "parsing/parser.ml"
+# 10082 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10115,23 +10118,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3588 "parsing/parser.mly"
+# 3583 "parsing/parser.mly"
("+=")
-# 10121 "parsing/parser.ml"
+# 10124 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10129 "parsing/parser.ml"
+# 10132 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10135 "parsing/parser.ml"
+# 10138 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10139,15 +10142,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10145 "parsing/parser.ml"
+# 10148 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10151 "parsing/parser.ml"
+# 10154 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10187,23 +10190,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3589 "parsing/parser.mly"
+# 3584 "parsing/parser.mly"
("-")
-# 10193 "parsing/parser.ml"
+# 10196 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10201 "parsing/parser.ml"
+# 10204 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10207 "parsing/parser.ml"
+# 10210 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10211,15 +10214,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10217 "parsing/parser.ml"
+# 10220 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10223 "parsing/parser.ml"
+# 10226 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10259,23 +10262,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3590 "parsing/parser.mly"
+# 3585 "parsing/parser.mly"
("-.")
-# 10265 "parsing/parser.ml"
+# 10268 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10273 "parsing/parser.ml"
+# 10276 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10279 "parsing/parser.ml"
+# 10282 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10283,15 +10286,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10289 "parsing/parser.ml"
+# 10292 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10295 "parsing/parser.ml"
+# 10298 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10331,23 +10334,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3591 "parsing/parser.mly"
+# 3586 "parsing/parser.mly"
("*")
-# 10337 "parsing/parser.ml"
+# 10340 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10345 "parsing/parser.ml"
+# 10348 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10351 "parsing/parser.ml"
+# 10354 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10355,15 +10358,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10361 "parsing/parser.ml"
+# 10364 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10367 "parsing/parser.ml"
+# 10370 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10403,23 +10406,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3592 "parsing/parser.mly"
+# 3587 "parsing/parser.mly"
("%")
-# 10409 "parsing/parser.ml"
+# 10412 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10417 "parsing/parser.ml"
+# 10420 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10423 "parsing/parser.ml"
+# 10426 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10427,15 +10430,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10433 "parsing/parser.ml"
+# 10436 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10439 "parsing/parser.ml"
+# 10442 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10475,23 +10478,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3593 "parsing/parser.mly"
+# 3588 "parsing/parser.mly"
("=")
-# 10481 "parsing/parser.ml"
+# 10484 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10489 "parsing/parser.ml"
+# 10492 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10495 "parsing/parser.ml"
+# 10498 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10499,15 +10502,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10505 "parsing/parser.ml"
+# 10508 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10511 "parsing/parser.ml"
+# 10514 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10547,23 +10550,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3594 "parsing/parser.mly"
+# 3589 "parsing/parser.mly"
("<")
-# 10553 "parsing/parser.ml"
+# 10556 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10561 "parsing/parser.ml"
+# 10564 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10567 "parsing/parser.ml"
+# 10570 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10571,15 +10574,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10577 "parsing/parser.ml"
+# 10580 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10583 "parsing/parser.ml"
+# 10586 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10619,23 +10622,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3595 "parsing/parser.mly"
+# 3590 "parsing/parser.mly"
(">")
-# 10625 "parsing/parser.ml"
+# 10628 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10633 "parsing/parser.ml"
+# 10636 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10639 "parsing/parser.ml"
+# 10642 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10643,15 +10646,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10649 "parsing/parser.ml"
+# 10652 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10655 "parsing/parser.ml"
+# 10658 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10691,23 +10694,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3596 "parsing/parser.mly"
+# 3591 "parsing/parser.mly"
("or")
-# 10697 "parsing/parser.ml"
+# 10700 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10705 "parsing/parser.ml"
+# 10708 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10711 "parsing/parser.ml"
+# 10714 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10715,15 +10718,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10721 "parsing/parser.ml"
+# 10724 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10727 "parsing/parser.ml"
+# 10730 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10763,23 +10766,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3597 "parsing/parser.mly"
+# 3592 "parsing/parser.mly"
("||")
-# 10769 "parsing/parser.ml"
+# 10772 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10777 "parsing/parser.ml"
+# 10780 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10783 "parsing/parser.ml"
+# 10786 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10787,15 +10790,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10793 "parsing/parser.ml"
+# 10796 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10799 "parsing/parser.ml"
+# 10802 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10835,23 +10838,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3598 "parsing/parser.mly"
+# 3593 "parsing/parser.mly"
("&")
-# 10841 "parsing/parser.ml"
+# 10844 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10849 "parsing/parser.ml"
+# 10852 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10855 "parsing/parser.ml"
+# 10858 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10859,15 +10862,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10865 "parsing/parser.ml"
+# 10868 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10871 "parsing/parser.ml"
+# 10874 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10907,23 +10910,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3599 "parsing/parser.mly"
+# 3594 "parsing/parser.mly"
("&&")
-# 10913 "parsing/parser.ml"
+# 10916 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10921 "parsing/parser.ml"
+# 10924 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10927 "parsing/parser.ml"
+# 10930 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -10931,15 +10934,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 10937 "parsing/parser.ml"
+# 10940 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 10943 "parsing/parser.ml"
+# 10946 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -10979,23 +10982,23 @@ module Tables = struct
let _1 =
let op =
let _1 =
-# 3600 "parsing/parser.mly"
+# 3595 "parsing/parser.mly"
(":=")
-# 10985 "parsing/parser.ml"
+# 10988 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 10993 "parsing/parser.ml"
+# 10996 "parsing/parser.ml"
in
-# 2362 "parsing/parser.mly"
+# 2364 "parsing/parser.mly"
( mkinfix e1 op e2 )
-# 10999 "parsing/parser.ml"
+# 11002 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in
@@ -11003,15 +11006,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 11009 "parsing/parser.ml"
+# 11012 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 11015 "parsing/parser.ml"
+# 11018 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11044,9 +11047,9 @@ module Tables = struct
let _1 =
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2364 "parsing/parser.mly"
+# 2366 "parsing/parser.mly"
( mkuminus ~oploc:_loc__1_ _1 _2 )
-# 11050 "parsing/parser.ml"
+# 11053 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
@@ -11054,15 +11057,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 11060 "parsing/parser.ml"
+# 11063 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 11066 "parsing/parser.ml"
+# 11069 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11095,9 +11098,9 @@ module Tables = struct
let _1 =
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2366 "parsing/parser.mly"
+# 2368 "parsing/parser.mly"
( mkuplus ~oploc:_loc__1_ _1 _2 )
-# 11101 "parsing/parser.ml"
+# 11104 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
@@ -11105,15 +11108,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 11111 "parsing/parser.ml"
+# 11114 "parsing/parser.ml"
in
-# 2284 "parsing/parser.mly"
+# 2286 "parsing/parser.mly"
( _1 )
-# 11117 "parsing/parser.ml"
+# 11120 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11153,9 +11156,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2286 "parsing/parser.mly"
+# 2288 "parsing/parser.mly"
( expr_of_let_bindings ~loc:_sloc _1 _3 )
-# 11159 "parsing/parser.ml"
+# 11162 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11195,9 +11198,9 @@ module Tables = struct
let _3 : unit = Obj.magic _3 in
let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in
let _1 : (
-# 692 "parsing/parser.mly"
+# 694 "parsing/parser.mly"
(string)
-# 11201 "parsing/parser.ml"
+# 11204 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -11207,9 +11210,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 11213 "parsing/parser.ml"
+# 11216 "parsing/parser.ml"
in
let _startpos_pbop_op_ = _startpos__1_ in
@@ -11217,13 +11220,13 @@ module Tables = struct
let _symbolstartpos = _startpos_pbop_op_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2288 "parsing/parser.mly"
+# 2290 "parsing/parser.mly"
( let (pbop_pat, pbop_exp, rev_ands) = bindings in
let ands = List.rev rev_ands in
let pbop_loc = make_loc _sloc in
let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in
mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) )
-# 11227 "parsing/parser.ml"
+# 11230 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11264,9 +11267,9 @@ module Tables = struct
let _loc__2_ = (_startpos__2_, _endpos__2_) in
let _sloc = (_symbolstartpos, _endpos) in
-# 2294 "parsing/parser.mly"
+# 2296 "parsing/parser.mly"
( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[_1;_3])) )
-# 11270 "parsing/parser.ml"
+# 11273 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11299,35 +11302,35 @@ module Tables = struct
let _3 : (Parsetree.expression) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 11305 "parsing/parser.ml"
+# 11308 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 11314 "parsing/parser.ml"
+# 11317 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 11322 "parsing/parser.ml"
+# 11325 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2296 "parsing/parser.mly"
+# 2298 "parsing/parser.mly"
( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) )
-# 11331 "parsing/parser.ml"
+# 11334 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11383,18 +11386,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 11389 "parsing/parser.ml"
+# 11392 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2298 "parsing/parser.mly"
+# 2300 "parsing/parser.mly"
( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) )
-# 11398 "parsing/parser.ml"
+# 11401 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11460,14 +11463,14 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2299 "parsing/parser.mly"
+# 2301 "parsing/parser.mly"
(Some v)
-# 11466 "parsing/parser.ml"
+# 11469 "parsing/parser.ml"
in
-# 2259 "parsing/parser.mly"
+# 2261 "parsing/parser.mly"
( array, d, Paren, i, r )
-# 11471 "parsing/parser.ml"
+# 11474 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -11475,9 +11478,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2300 "parsing/parser.mly"
+# 2302 "parsing/parser.mly"
( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
-# 11481 "parsing/parser.ml"
+# 11484 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11543,14 +11546,14 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2299 "parsing/parser.mly"
+# 2301 "parsing/parser.mly"
(Some v)
-# 11549 "parsing/parser.ml"
+# 11552 "parsing/parser.ml"
in
-# 2261 "parsing/parser.mly"
+# 2263 "parsing/parser.mly"
( array, d, Brace, i, r )
-# 11554 "parsing/parser.ml"
+# 11557 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -11558,9 +11561,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2300 "parsing/parser.mly"
+# 2302 "parsing/parser.mly"
( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
-# 11564 "parsing/parser.ml"
+# 11567 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11626,14 +11629,14 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2299 "parsing/parser.mly"
+# 2301 "parsing/parser.mly"
(Some v)
-# 11632 "parsing/parser.ml"
+# 11635 "parsing/parser.ml"
in
-# 2263 "parsing/parser.mly"
+# 2265 "parsing/parser.mly"
( array, d, Bracket, i, r )
-# 11637 "parsing/parser.ml"
+# 11640 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -11641,9 +11644,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2300 "parsing/parser.mly"
+# 2302 "parsing/parser.mly"
( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
-# 11647 "parsing/parser.ml"
+# 11650 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11703,9 +11706,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 11709 "parsing/parser.ml"
+# 11712 "parsing/parser.ml"
) = Obj.magic _2 in
let array : (Parsetree.expression) = Obj.magic array in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -11713,31 +11716,31 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2301 "parsing/parser.mly"
+# 2303 "parsing/parser.mly"
(Some v)
-# 11719 "parsing/parser.ml"
+# 11722 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 11724 "parsing/parser.ml"
+# 11727 "parsing/parser.ml"
in
let d =
let _1 =
# 124 "<standard.mly>"
( None )
-# 11730 "parsing/parser.ml"
+# 11733 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 11735 "parsing/parser.ml"
+# 11738 "parsing/parser.ml"
in
-# 2259 "parsing/parser.mly"
+# 2261 "parsing/parser.mly"
( array, d, Paren, i, r )
-# 11741 "parsing/parser.ml"
+# 11744 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -11745,9 +11748,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2302 "parsing/parser.mly"
+# 2304 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 11751 "parsing/parser.ml"
+# 11754 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11819,9 +11822,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 11825 "parsing/parser.ml"
+# 11828 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -11831,39 +11834,39 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2301 "parsing/parser.mly"
+# 2303 "parsing/parser.mly"
(Some v)
-# 11837 "parsing/parser.ml"
+# 11840 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 11842 "parsing/parser.ml"
+# 11845 "parsing/parser.ml"
in
let d =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 11850 "parsing/parser.ml"
+# 11853 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 11855 "parsing/parser.ml"
+# 11858 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 11861 "parsing/parser.ml"
+# 11864 "parsing/parser.ml"
in
-# 2259 "parsing/parser.mly"
+# 2261 "parsing/parser.mly"
( array, d, Paren, i, r )
-# 11867 "parsing/parser.ml"
+# 11870 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -11871,9 +11874,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2302 "parsing/parser.mly"
+# 2304 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 11877 "parsing/parser.ml"
+# 11880 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -11933,9 +11936,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 11939 "parsing/parser.ml"
+# 11942 "parsing/parser.ml"
) = Obj.magic _2 in
let array : (Parsetree.expression) = Obj.magic array in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -11943,31 +11946,31 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2301 "parsing/parser.mly"
+# 2303 "parsing/parser.mly"
(Some v)
-# 11949 "parsing/parser.ml"
+# 11952 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 11954 "parsing/parser.ml"
+# 11957 "parsing/parser.ml"
in
let d =
let _1 =
# 124 "<standard.mly>"
( None )
-# 11960 "parsing/parser.ml"
+# 11963 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 11965 "parsing/parser.ml"
+# 11968 "parsing/parser.ml"
in
-# 2261 "parsing/parser.mly"
+# 2263 "parsing/parser.mly"
( array, d, Brace, i, r )
-# 11971 "parsing/parser.ml"
+# 11974 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -11975,9 +11978,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2302 "parsing/parser.mly"
+# 2304 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 11981 "parsing/parser.ml"
+# 11984 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12049,9 +12052,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 12055 "parsing/parser.ml"
+# 12058 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -12061,39 +12064,39 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2301 "parsing/parser.mly"
+# 2303 "parsing/parser.mly"
(Some v)
-# 12067 "parsing/parser.ml"
+# 12070 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 12072 "parsing/parser.ml"
+# 12075 "parsing/parser.ml"
in
let d =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 12080 "parsing/parser.ml"
+# 12083 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 12085 "parsing/parser.ml"
+# 12088 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 12091 "parsing/parser.ml"
+# 12094 "parsing/parser.ml"
in
-# 2261 "parsing/parser.mly"
+# 2263 "parsing/parser.mly"
( array, d, Brace, i, r )
-# 12097 "parsing/parser.ml"
+# 12100 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -12101,9 +12104,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2302 "parsing/parser.mly"
+# 2304 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 12107 "parsing/parser.ml"
+# 12110 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12163,9 +12166,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 12169 "parsing/parser.ml"
+# 12172 "parsing/parser.ml"
) = Obj.magic _2 in
let array : (Parsetree.expression) = Obj.magic array in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -12173,31 +12176,31 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2301 "parsing/parser.mly"
+# 2303 "parsing/parser.mly"
(Some v)
-# 12179 "parsing/parser.ml"
+# 12182 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 12184 "parsing/parser.ml"
+# 12187 "parsing/parser.ml"
in
let d =
let _1 =
# 124 "<standard.mly>"
( None )
-# 12190 "parsing/parser.ml"
+# 12193 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 12195 "parsing/parser.ml"
+# 12198 "parsing/parser.ml"
in
-# 2263 "parsing/parser.mly"
+# 2265 "parsing/parser.mly"
( array, d, Bracket, i, r )
-# 12201 "parsing/parser.ml"
+# 12204 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -12205,9 +12208,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2302 "parsing/parser.mly"
+# 2304 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 12211 "parsing/parser.ml"
+# 12214 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12279,9 +12282,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 12285 "parsing/parser.ml"
+# 12288 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -12291,39 +12294,39 @@ module Tables = struct
let _endpos = _endpos_v_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2301 "parsing/parser.mly"
+# 2303 "parsing/parser.mly"
(Some v)
-# 12297 "parsing/parser.ml"
+# 12300 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 12302 "parsing/parser.ml"
+# 12305 "parsing/parser.ml"
in
let d =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 12310 "parsing/parser.ml"
+# 12313 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 12315 "parsing/parser.ml"
+# 12318 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 12321 "parsing/parser.ml"
+# 12324 "parsing/parser.ml"
in
-# 2263 "parsing/parser.mly"
+# 2265 "parsing/parser.mly"
( array, d, Bracket, i, r )
-# 12327 "parsing/parser.ml"
+# 12330 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in
@@ -12331,9 +12334,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2302 "parsing/parser.mly"
+# 2304 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 12337 "parsing/parser.ml"
+# 12340 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12363,9 +12366,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) =
-# 2304 "parsing/parser.mly"
+# 2306 "parsing/parser.mly"
( Exp.attr _1 _2 )
-# 12369 "parsing/parser.ml"
+# 12372 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12389,9 +12392,9 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2307 "parsing/parser.mly"
+# 2309 "parsing/parser.mly"
( not_expecting _loc__1_ "wildcard \"_\"" )
-# 12395 "parsing/parser.ml"
+# 12398 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12407,9 +12410,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (string Asttypes.loc option) =
-# 3876 "parsing/parser.mly"
+# 3871 "parsing/parser.mly"
( None )
-# 12413 "parsing/parser.ml"
+# 12416 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12439,9 +12442,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (string Asttypes.loc option) =
-# 3877 "parsing/parser.mly"
+# 3872 "parsing/parser.mly"
( Some _2 )
-# 12445 "parsing/parser.ml"
+# 12448 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12485,9 +12488,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Parsetree.extension) =
-# 3889 "parsing/parser.mly"
+# 3884 "parsing/parser.mly"
( (_2, _3) )
-# 12491 "parsing/parser.ml"
+# 12494 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12506,9 +12509,9 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 750 "parsing/parser.mly"
+# 752 "parsing/parser.mly"
(string * Location.t * string * Location.t * string option)
-# 12512 "parsing/parser.ml"
+# 12515 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -12517,9 +12520,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3891 "parsing/parser.mly"
+# 3886 "parsing/parser.mly"
( mk_quotedext ~loc:_sloc _1 )
-# 12523 "parsing/parser.ml"
+# 12526 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12572,9 +12575,9 @@ module Tables = struct
let _v : (Parsetree.extension_constructor) = let attrs =
let _1 = _1_inlined3 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 12578 "parsing/parser.ml"
+# 12581 "parsing/parser.ml"
in
let _endpos_attrs_ = _endpos__1_inlined3_ in
@@ -12584,9 +12587,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 12590 "parsing/parser.ml"
+# 12593 "parsing/parser.ml"
in
let cid =
@@ -12595,19 +12598,19 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 12601 "parsing/parser.ml"
+# 12604 "parsing/parser.ml"
in
let _endpos = _endpos_attrs_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3237 "parsing/parser.mly"
+# 3232 "parsing/parser.mly"
( let info = symbol_info _endpos in
Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info )
-# 12611 "parsing/parser.ml"
+# 12614 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12653,9 +12656,9 @@ module Tables = struct
let _v : (Parsetree.extension_constructor) = let attrs =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 12659 "parsing/parser.ml"
+# 12662 "parsing/parser.ml"
in
let _endpos_attrs_ = _endpos__1_inlined2_ in
@@ -12665,9 +12668,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 12671 "parsing/parser.ml"
+# 12674 "parsing/parser.ml"
in
let cid =
@@ -12675,25 +12678,25 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 12681 "parsing/parser.ml"
+# 12684 "parsing/parser.ml"
in
let _startpos_cid_ = _startpos__1_ in
let _1 =
-# 3694 "parsing/parser.mly"
+# 3689 "parsing/parser.mly"
( () )
-# 12688 "parsing/parser.ml"
+# 12691 "parsing/parser.ml"
in
let _endpos = _endpos_attrs_ in
let _symbolstartpos = _startpos_cid_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3237 "parsing/parser.mly"
+# 3232 "parsing/parser.mly"
( let info = symbol_info _endpos in
Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info )
-# 12697 "parsing/parser.ml"
+# 12700 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12740,10 +12743,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3864 "parsing/parser.mly"
+# 3859 "parsing/parser.mly"
( mark_symbol_docs _sloc;
Attr.mk ~loc:(make_loc _sloc) _2 _3 )
-# 12747 "parsing/parser.ml"
+# 12750 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12759,14 +12762,14 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params =
-# 2052 "parsing/parser.mly"
+# 2054 "parsing/parser.mly"
( [] )
-# 12765 "parsing/parser.ml"
+# 12768 "parsing/parser.ml"
in
-# 1877 "parsing/parser.mly"
+# 1879 "parsing/parser.mly"
( params )
-# 12770 "parsing/parser.ml"
+# 12773 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12807,24 +12810,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 12811 "parsing/parser.ml"
+# 12814 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 12816 "parsing/parser.ml"
+# 12819 "parsing/parser.ml"
in
-# 2054 "parsing/parser.mly"
+# 2056 "parsing/parser.mly"
( params )
-# 12822 "parsing/parser.ml"
+# 12825 "parsing/parser.ml"
in
-# 1877 "parsing/parser.mly"
+# 1879 "parsing/parser.mly"
( params )
-# 12828 "parsing/parser.ml"
+# 12831 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12847,9 +12850,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) =
-# 2617 "parsing/parser.mly"
+# 2612 "parsing/parser.mly"
( _1 )
-# 12853 "parsing/parser.ml"
+# 12856 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12889,9 +12892,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2619 "parsing/parser.mly"
+# 2614 "parsing/parser.mly"
( mkexp_constraint ~loc:_sloc _3 _1 )
-# 12895 "parsing/parser.ml"
+# 12898 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12921,9 +12924,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) =
-# 2643 "parsing/parser.mly"
+# 2638 "parsing/parser.mly"
( _2 )
-# 12927 "parsing/parser.ml"
+# 12930 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -12968,24 +12971,24 @@ module Tables = struct
let _endpos = _endpos__4_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2645 "parsing/parser.mly"
+# 2640 "parsing/parser.mly"
( Pexp_constraint (_4, _2) )
-# 12974 "parsing/parser.ml"
+# 12977 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 12983 "parsing/parser.ml"
+# 12986 "parsing/parser.ml"
in
-# 2646 "parsing/parser.mly"
+# 2641 "parsing/parser.mly"
( _1 )
-# 12989 "parsing/parser.ml"
+# 12992 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13018,12 +13021,12 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2649 "parsing/parser.mly"
+# 2644 "parsing/parser.mly"
(
let (l,o,p) = _1 in
ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2))
)
-# 13027 "parsing/parser.ml"
+# 13030 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13074,17 +13077,17 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _3 =
-# 2515 "parsing/parser.mly"
+# 2517 "parsing/parser.mly"
( xs )
-# 13080 "parsing/parser.ml"
+# 13083 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2654 "parsing/parser.mly"
+# 2649 "parsing/parser.mly"
( mk_newtypes ~loc:_sloc _3 _5 )
-# 13088 "parsing/parser.ml"
+# 13091 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13107,9 +13110,9 @@ module Tables = struct
let _startpos = _startpos_ty_ in
let _endpos = _endpos_ty_ in
let _v : (Parsetree.core_type) =
-# 3353 "parsing/parser.mly"
+# 3348 "parsing/parser.mly"
( ty )
-# 13113 "parsing/parser.ml"
+# 13116 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13155,19 +13158,19 @@ module Tables = struct
let _v : (Parsetree.core_type) = let _1 =
let _1 =
let domain =
-# 890 "parsing/parser.mly"
+# 892 "parsing/parser.mly"
( extra_rhs_core_type _1 ~pos:_endpos__1_ )
-# 13161 "parsing/parser.ml"
+# 13164 "parsing/parser.ml"
in
let label =
-# 3365 "parsing/parser.mly"
+# 3360 "parsing/parser.mly"
( Optional label )
-# 13166 "parsing/parser.ml"
+# 13169 "parsing/parser.ml"
in
-# 3359 "parsing/parser.mly"
+# 3354 "parsing/parser.mly"
( Ptyp_arrow(label, domain, codomain) )
-# 13171 "parsing/parser.ml"
+# 13174 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
@@ -13175,15 +13178,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 13181 "parsing/parser.ml"
+# 13184 "parsing/parser.ml"
in
-# 3361 "parsing/parser.mly"
+# 3356 "parsing/parser.mly"
( _1 )
-# 13187 "parsing/parser.ml"
+# 13190 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13230,9 +13233,9 @@ module Tables = struct
let _1 : (Parsetree.core_type) = Obj.magic _1 in
let _2 : unit = Obj.magic _2 in
let label : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 13236 "parsing/parser.ml"
+# 13239 "parsing/parser.ml"
) = Obj.magic label in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_label_ in
@@ -13240,19 +13243,19 @@ module Tables = struct
let _v : (Parsetree.core_type) = let _1 =
let _1 =
let domain =
-# 890 "parsing/parser.mly"
+# 892 "parsing/parser.mly"
( extra_rhs_core_type _1 ~pos:_endpos__1_ )
-# 13246 "parsing/parser.ml"
+# 13249 "parsing/parser.ml"
in
let label =
-# 3367 "parsing/parser.mly"
+# 3362 "parsing/parser.mly"
( Labelled label )
-# 13251 "parsing/parser.ml"
+# 13254 "parsing/parser.ml"
in
-# 3359 "parsing/parser.mly"
+# 3354 "parsing/parser.mly"
( Ptyp_arrow(label, domain, codomain) )
-# 13256 "parsing/parser.ml"
+# 13259 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
@@ -13260,15 +13263,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 13266 "parsing/parser.ml"
+# 13269 "parsing/parser.ml"
in
-# 3361 "parsing/parser.mly"
+# 3356 "parsing/parser.mly"
( _1 )
-# 13272 "parsing/parser.ml"
+# 13275 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13307,19 +13310,19 @@ module Tables = struct
let _v : (Parsetree.core_type) = let _1 =
let _1 =
let domain =
-# 890 "parsing/parser.mly"
+# 892 "parsing/parser.mly"
( extra_rhs_core_type _1 ~pos:_endpos__1_ )
-# 13313 "parsing/parser.ml"
+# 13316 "parsing/parser.ml"
in
let label =
-# 3369 "parsing/parser.mly"
+# 3364 "parsing/parser.mly"
( Nolabel )
-# 13318 "parsing/parser.ml"
+# 13321 "parsing/parser.ml"
in
-# 3359 "parsing/parser.mly"
+# 3354 "parsing/parser.mly"
( Ptyp_arrow(label, domain, codomain) )
-# 13323 "parsing/parser.ml"
+# 13326 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_codomain_ in
@@ -13327,15 +13330,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 13333 "parsing/parser.ml"
+# 13336 "parsing/parser.ml"
in
-# 3361 "parsing/parser.mly"
+# 3356 "parsing/parser.mly"
( _1 )
-# 13339 "parsing/parser.ml"
+# 13342 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13366,9 +13369,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in
-# 1280 "parsing/parser.mly"
+# 1282 "parsing/parser.mly"
( _startpos, Unit )
-# 13372 "parsing/parser.ml"
+# 13375 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13424,16 +13427,16 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 13430 "parsing/parser.ml"
+# 13433 "parsing/parser.ml"
in
let _startpos = _startpos__1_ in
-# 1283 "parsing/parser.mly"
+# 1285 "parsing/parser.mly"
( _startpos, Named (x, mty) )
-# 13437 "parsing/parser.ml"
+# 13440 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13450,9 +13453,9 @@ module Tables = struct
let _endpos = _startpos in
let _v : (Ast_helper.str list * Parsetree.constructor_arguments *
Parsetree.core_type option) =
-# 3152 "parsing/parser.mly"
+# 3147 "parsing/parser.mly"
( ([],Pcstr_tuple [],None) )
-# 13456 "parsing/parser.ml"
+# 13459 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13483,9 +13486,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Ast_helper.str list * Parsetree.constructor_arguments *
Parsetree.core_type option) =
-# 3153 "parsing/parser.mly"
+# 3148 "parsing/parser.mly"
( ([],_2,None) )
-# 13489 "parsing/parser.ml"
+# 13492 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13530,9 +13533,9 @@ module Tables = struct
let _endpos = _endpos__4_ in
let _v : (Ast_helper.str list * Parsetree.constructor_arguments *
Parsetree.core_type option) =
-# 3155 "parsing/parser.mly"
+# 3150 "parsing/parser.mly"
( ([],_2,Some _4) )
-# 13536 "parsing/parser.ml"
+# 13539 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13595,24 +13598,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 13599 "parsing/parser.ml"
+# 13602 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 13604 "parsing/parser.ml"
+# 13607 "parsing/parser.ml"
in
-# 3288 "parsing/parser.mly"
+# 3283 "parsing/parser.mly"
( _1 )
-# 13610 "parsing/parser.ml"
+# 13613 "parsing/parser.ml"
in
-# 3158 "parsing/parser.mly"
+# 3153 "parsing/parser.mly"
( (_2,_4,Some _6) )
-# 13616 "parsing/parser.ml"
+# 13619 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13643,9 +13646,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Ast_helper.str list * Parsetree.constructor_arguments *
Parsetree.core_type option) =
-# 3160 "parsing/parser.mly"
+# 3155 "parsing/parser.mly"
( ([],Pcstr_tuple [],Some _2) )
-# 13649 "parsing/parser.ml"
+# 13652 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13694,24 +13697,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 13698 "parsing/parser.ml"
+# 13701 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 13703 "parsing/parser.ml"
+# 13706 "parsing/parser.ml"
in
-# 3288 "parsing/parser.mly"
+# 3283 "parsing/parser.mly"
( _1 )
-# 13709 "parsing/parser.ml"
+# 13712 "parsing/parser.ml"
in
-# 3162 "parsing/parser.mly"
+# 3157 "parsing/parser.mly"
( (_2,Pcstr_tuple [],Some _4) )
-# 13715 "parsing/parser.ml"
+# 13718 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13760,9 +13763,9 @@ module Tables = struct
Docstrings.info) = let attrs =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 13766 "parsing/parser.ml"
+# 13769 "parsing/parser.ml"
in
let _endpos_attrs_ = _endpos__1_inlined2_ in
@@ -13772,23 +13775,23 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 13778 "parsing/parser.ml"
+# 13781 "parsing/parser.ml"
in
let _endpos = _endpos_attrs_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3100 "parsing/parser.mly"
+# 3095 "parsing/parser.mly"
(
let vars, args, res = vars_args_res in
let info = symbol_info _endpos in
let loc = make_loc _sloc in
cid, vars, args, res, attrs, loc, info
)
-# 13792 "parsing/parser.ml"
+# 13795 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13830,9 +13833,9 @@ module Tables = struct
Docstrings.info) = let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 13836 "parsing/parser.ml"
+# 13839 "parsing/parser.ml"
in
let _endpos_attrs_ = _endpos__1_inlined1_ in
@@ -13841,29 +13844,29 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 13847 "parsing/parser.ml"
+# 13850 "parsing/parser.ml"
in
let _startpos_cid_ = _startpos__1_ in
let _1 =
-# 3694 "parsing/parser.mly"
+# 3689 "parsing/parser.mly"
( () )
-# 13854 "parsing/parser.ml"
+# 13857 "parsing/parser.ml"
in
let _endpos = _endpos_attrs_ in
let _symbolstartpos = _startpos_cid_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3100 "parsing/parser.mly"
+# 3095 "parsing/parser.mly"
(
let vars, args, res = vars_args_res in
let info = symbol_info _endpos in
let loc = make_loc _sloc in
cid, vars, args, res, attrs, loc, info
)
-# 13867 "parsing/parser.ml"
+# 13870 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -13934,9 +13937,9 @@ module Tables = struct
let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in
let _1_inlined3 : unit = Obj.magic _1_inlined3 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 13940 "parsing/parser.ml"
+# 13943 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -13949,9 +13952,9 @@ module Tables = struct
Parsetree.type_declaration) = let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 13955 "parsing/parser.ml"
+# 13958 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
@@ -13960,24 +13963,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 13964 "parsing/parser.ml"
+# 13967 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 13969 "parsing/parser.ml"
+# 13972 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 13975 "parsing/parser.ml"
+# 13978 "parsing/parser.ml"
in
let kind_priv_manifest =
-# 3040 "parsing/parser.mly"
+# 3035 "parsing/parser.mly"
( _2 )
-# 13981 "parsing/parser.ml"
+# 13984 "parsing/parser.ml"
in
let id =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
@@ -13985,29 +13988,29 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 13991 "parsing/parser.ml"
+# 13994 "parsing/parser.ml"
in
let flag =
-# 3714 "parsing/parser.mly"
+# 3709 "parsing/parser.mly"
( Recursive )
-# 13997 "parsing/parser.ml"
+# 14000 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14004 "parsing/parser.ml"
+# 14007 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2977 "parsing/parser.mly"
+# 2972 "parsing/parser.mly"
(
let (kind, priv, manifest) = kind_priv_manifest in
let docs = symbol_docs _sloc in
@@ -14016,7 +14019,7 @@ module Tables = struct
(flag, ext),
Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
)
-# 14020 "parsing/parser.ml"
+# 14023 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14093,9 +14096,9 @@ module Tables = struct
let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in
let _1_inlined4 : unit = Obj.magic _1_inlined4 in
let _1_inlined3 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 14099 "parsing/parser.ml"
+# 14102 "parsing/parser.ml"
) = Obj.magic _1_inlined3 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let _1_inlined2 : unit = Obj.magic _1_inlined2 in
@@ -14109,9 +14112,9 @@ module Tables = struct
Parsetree.type_declaration) = let attrs2 =
let _1 = _1_inlined5 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 14115 "parsing/parser.ml"
+# 14118 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined5_ in
@@ -14120,24 +14123,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 14124 "parsing/parser.ml"
+# 14127 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 14129 "parsing/parser.ml"
+# 14132 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 14135 "parsing/parser.ml"
+# 14138 "parsing/parser.ml"
in
let kind_priv_manifest =
-# 3040 "parsing/parser.mly"
+# 3035 "parsing/parser.mly"
( _2 )
-# 14141 "parsing/parser.ml"
+# 14144 "parsing/parser.ml"
in
let id =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
@@ -14145,9 +14148,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 14151 "parsing/parser.ml"
+# 14154 "parsing/parser.ml"
in
let flag =
@@ -14156,24 +14159,24 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _loc = (_startpos, _endpos) in
-# 3716 "parsing/parser.mly"
+# 3711 "parsing/parser.mly"
( not_expecting _loc "nonrec flag" )
-# 14162 "parsing/parser.ml"
+# 14165 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14170 "parsing/parser.ml"
+# 14173 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2977 "parsing/parser.mly"
+# 2972 "parsing/parser.mly"
(
let (kind, priv, manifest) = kind_priv_manifest in
let docs = symbol_docs _sloc in
@@ -14182,7 +14185,7 @@ module Tables = struct
(flag, ext),
Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
)
-# 14186 "parsing/parser.ml"
+# 14189 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14246,9 +14249,9 @@ module Tables = struct
let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 14252 "parsing/parser.ml"
+# 14255 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -14261,9 +14264,9 @@ module Tables = struct
Parsetree.type_declaration) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 14267 "parsing/parser.ml"
+# 14270 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -14272,18 +14275,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 14276 "parsing/parser.ml"
+# 14279 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 14281 "parsing/parser.ml"
+# 14284 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 14287 "parsing/parser.ml"
+# 14290 "parsing/parser.ml"
in
let id =
@@ -14292,29 +14295,29 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 14298 "parsing/parser.ml"
+# 14301 "parsing/parser.ml"
in
let flag =
-# 3710 "parsing/parser.mly"
+# 3705 "parsing/parser.mly"
( Recursive )
-# 14304 "parsing/parser.ml"
+# 14307 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14311 "parsing/parser.ml"
+# 14314 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2977 "parsing/parser.mly"
+# 2972 "parsing/parser.mly"
(
let (kind, priv, manifest) = kind_priv_manifest in
let docs = symbol_docs _sloc in
@@ -14323,7 +14326,7 @@ module Tables = struct
(flag, ext),
Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
)
-# 14327 "parsing/parser.ml"
+# 14330 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14393,9 +14396,9 @@ module Tables = struct
let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in
let _1_inlined3 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 14399 "parsing/parser.ml"
+# 14402 "parsing/parser.ml"
) = Obj.magic _1_inlined3 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let _1_inlined2 : unit = Obj.magic _1_inlined2 in
@@ -14409,9 +14412,9 @@ module Tables = struct
Parsetree.type_declaration) = let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 14415 "parsing/parser.ml"
+# 14418 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
@@ -14420,18 +14423,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 14424 "parsing/parser.ml"
+# 14427 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 14429 "parsing/parser.ml"
+# 14432 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 14435 "parsing/parser.ml"
+# 14438 "parsing/parser.ml"
in
let id =
@@ -14440,29 +14443,29 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 14446 "parsing/parser.ml"
+# 14449 "parsing/parser.ml"
in
let flag =
-# 3711 "parsing/parser.mly"
+# 3706 "parsing/parser.mly"
( Nonrecursive )
-# 14452 "parsing/parser.ml"
+# 14455 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14459 "parsing/parser.ml"
+# 14462 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2977 "parsing/parser.mly"
+# 2972 "parsing/parser.mly"
(
let (kind, priv, manifest) = kind_priv_manifest in
let docs = symbol_docs _sloc in
@@ -14471,7 +14474,7 @@ module Tables = struct
(flag, ext),
Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
)
-# 14475 "parsing/parser.ml"
+# 14478 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14490,17 +14493,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 14496 "parsing/parser.ml"
+# 14499 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3553 "parsing/parser.mly"
+# 3548 "parsing/parser.mly"
( _1 )
-# 14504 "parsing/parser.ml"
+# 14507 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14519,17 +14522,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 14525 "parsing/parser.ml"
+# 14528 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3554 "parsing/parser.mly"
+# 3549 "parsing/parser.mly"
( _1 )
-# 14533 "parsing/parser.ml"
+# 14536 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14559,9 +14562,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.structure) =
-# 1147 "parsing/parser.mly"
+# 1149 "parsing/parser.mly"
( _1 )
-# 14565 "parsing/parser.ml"
+# 14568 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14577,9 +14580,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (string) =
-# 3603 "parsing/parser.mly"
+# 3598 "parsing/parser.mly"
( "" )
-# 14583 "parsing/parser.ml"
+# 14586 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14609,9 +14612,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (string) =
-# 3604 "parsing/parser.mly"
+# 3599 "parsing/parser.mly"
( ";.." )
-# 14615 "parsing/parser.ml"
+# 14618 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14641,9 +14644,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.signature) =
-# 1154 "parsing/parser.mly"
+# 1156 "parsing/parser.mly"
( _1 )
-# 14647 "parsing/parser.ml"
+# 14650 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14687,9 +14690,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Parsetree.extension) =
-# 3894 "parsing/parser.mly"
+# 3889 "parsing/parser.mly"
( (_2, _3) )
-# 14693 "parsing/parser.ml"
+# 14696 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14708,9 +14711,9 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 752 "parsing/parser.mly"
+# 754 "parsing/parser.mly"
(string * Location.t * string * Location.t * string option)
-# 14714 "parsing/parser.ml"
+# 14717 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -14719,9 +14722,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3896 "parsing/parser.mly"
+# 3891 "parsing/parser.mly"
( mk_quotedext ~loc:_sloc _1 )
-# 14725 "parsing/parser.ml"
+# 14728 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14767,9 +14770,9 @@ module Tables = struct
let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
let _3 : unit = Obj.magic _3 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 14773 "parsing/parser.ml"
+# 14776 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _1 : (Asttypes.mutable_flag) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -14778,34 +14781,34 @@ module Tables = struct
let _v : (Parsetree.label_declaration) = let _5 =
let _1 = _1_inlined3 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14784 "parsing/parser.ml"
+# 14787 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined3_ in
let _4 =
let _1 = _1_inlined2 in
-# 3306 "parsing/parser.mly"
+# 3301 "parsing/parser.mly"
( _1 )
-# 14793 "parsing/parser.ml"
+# 14796 "parsing/parser.ml"
in
let _2 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 14801 "parsing/parser.ml"
+# 14804 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 14809 "parsing/parser.ml"
+# 14812 "parsing/parser.ml"
in
let _startpos__2_ = _startpos__1_inlined1_ in
@@ -14816,10 +14819,10 @@ module Tables = struct
_startpos__2_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3179 "parsing/parser.mly"
+# 3174 "parsing/parser.mly"
( let info = symbol_info _endpos in
Type.field _2 _4 ~mut:_1 ~attrs:_5 ~loc:(make_loc _sloc) ~info )
-# 14823 "parsing/parser.ml"
+# 14826 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14879,9 +14882,9 @@ module Tables = struct
let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
let _3 : unit = Obj.magic _3 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 14885 "parsing/parser.ml"
+# 14888 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _1 : (Asttypes.mutable_flag) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -14890,43 +14893,43 @@ module Tables = struct
let _v : (Parsetree.label_declaration) = let _7 =
let _1 = _1_inlined4 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14896 "parsing/parser.ml"
+# 14899 "parsing/parser.ml"
in
let _endpos__7_ = _endpos__1_inlined4_ in
let _5 =
let _1 = _1_inlined3 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 14905 "parsing/parser.ml"
+# 14908 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined3_ in
let _4 =
let _1 = _1_inlined2 in
-# 3306 "parsing/parser.mly"
+# 3301 "parsing/parser.mly"
( _1 )
-# 14914 "parsing/parser.ml"
+# 14917 "parsing/parser.ml"
in
let _2 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 14922 "parsing/parser.ml"
+# 14925 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 14930 "parsing/parser.ml"
+# 14933 "parsing/parser.ml"
in
let _startpos__2_ = _startpos__1_inlined1_ in
@@ -14937,14 +14940,14 @@ module Tables = struct
_startpos__2_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3184 "parsing/parser.mly"
+# 3179 "parsing/parser.mly"
( let info =
match rhs_info _endpos__5_ with
| Some _ as info_before_semi -> info_before_semi
| None -> symbol_info _endpos
in
Type.field _2 _4 ~mut:_1 ~attrs:(_5 @ _7) ~loc:(make_loc _sloc) ~info )
-# 14948 "parsing/parser.ml"
+# 14951 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14967,9 +14970,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.label_declaration list) =
-# 3173 "parsing/parser.mly"
+# 3168 "parsing/parser.mly"
( [_1] )
-# 14973 "parsing/parser.ml"
+# 14976 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -14992,9 +14995,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.label_declaration list) =
-# 3174 "parsing/parser.mly"
+# 3169 "parsing/parser.mly"
( [_1] )
-# 14998 "parsing/parser.ml"
+# 15001 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15024,9 +15027,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.label_declaration list) =
-# 3175 "parsing/parser.mly"
+# 3170 "parsing/parser.mly"
( _1 :: _2 )
-# 15030 "parsing/parser.ml"
+# 15033 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15045,9 +15048,9 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15051 "parsing/parser.ml"
+# 15054 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -15058,24 +15061,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 15064 "parsing/parser.ml"
+# 15067 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2247 "parsing/parser.mly"
+# 2249 "parsing/parser.mly"
( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
-# 15073 "parsing/parser.ml"
+# 15076 "parsing/parser.ml"
in
-# 2239 "parsing/parser.mly"
+# 2241 "parsing/parser.mly"
( x )
-# 15079 "parsing/parser.ml"
+# 15082 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15108,9 +15111,9 @@ module Tables = struct
let cty : (Parsetree.core_type) = Obj.magic cty in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15114 "parsing/parser.ml"
+# 15117 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -15121,18 +15124,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 15127 "parsing/parser.ml"
+# 15130 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2247 "parsing/parser.mly"
+# 2249 "parsing/parser.mly"
( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
-# 15136 "parsing/parser.ml"
+# 15139 "parsing/parser.ml"
in
let _startpos_x_ = _startpos__1_ in
@@ -15140,11 +15143,11 @@ module Tables = struct
let _symbolstartpos = _startpos_x_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2241 "parsing/parser.mly"
+# 2243 "parsing/parser.mly"
( let lab, pat = x in
lab,
mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) )
-# 15148 "parsing/parser.ml"
+# 15151 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15167,9 +15170,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3635 "parsing/parser.mly"
+# 3630 "parsing/parser.mly"
( _1 )
-# 15173 "parsing/parser.ml"
+# 15176 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15192,9 +15195,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.arg_label * Parsetree.expression) =
-# 2498 "parsing/parser.mly"
+# 2500 "parsing/parser.mly"
( (Nolabel, _1) )
-# 15198 "parsing/parser.ml"
+# 15201 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15220,17 +15223,17 @@ module Tables = struct
} = _menhir_stack in
let _2 : (Parsetree.expression) = Obj.magic _2 in
let _1 : (
-# 697 "parsing/parser.mly"
+# 699 "parsing/parser.mly"
(string)
-# 15226 "parsing/parser.ml"
+# 15229 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.arg_label * Parsetree.expression) =
-# 2500 "parsing/parser.mly"
+# 2502 "parsing/parser.mly"
( (Labelled _1, _2) )
-# 15234 "parsing/parser.ml"
+# 15237 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15255,9 +15258,9 @@ module Tables = struct
};
} = _menhir_stack in
let label : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15261 "parsing/parser.ml"
+# 15264 "parsing/parser.ml"
) = Obj.magic label in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -15265,10 +15268,10 @@ module Tables = struct
let _endpos = _endpos_label_ in
let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in
-# 2502 "parsing/parser.mly"
+# 2504 "parsing/parser.mly"
( let loc = _loc_label_ in
(Labelled label, mkexpvar ~loc label) )
-# 15272 "parsing/parser.ml"
+# 15275 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15313,9 +15316,9 @@ module Tables = struct
let _5 : unit = Obj.magic _5 in
let ty : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic ty in
let label : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15319 "parsing/parser.ml"
+# 15322 "parsing/parser.ml"
) = Obj.magic label in
let _2 : unit = Obj.magic _2 in
let _1 : unit = Obj.magic _1 in
@@ -15325,10 +15328,10 @@ module Tables = struct
let _v : (Asttypes.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in
let _loc_label_ = (_startpos_label_, _endpos_label_) in
-# 2505 "parsing/parser.mly"
+# 2507 "parsing/parser.mly"
( (Labelled label, mkexp_constraint ~loc:(_startpos__2_, _endpos)
(mkexpvar ~loc:_loc_label_ label) ty) )
-# 15332 "parsing/parser.ml"
+# 15335 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15353,9 +15356,9 @@ module Tables = struct
};
} = _menhir_stack in
let label : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15359 "parsing/parser.ml"
+# 15362 "parsing/parser.ml"
) = Obj.magic label in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -15363,10 +15366,10 @@ module Tables = struct
let _endpos = _endpos_label_ in
let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in
-# 2508 "parsing/parser.mly"
+# 2510 "parsing/parser.mly"
( let loc = _loc_label_ in
(Optional label, mkexpvar ~loc label) )
-# 15370 "parsing/parser.ml"
+# 15373 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15392,17 +15395,17 @@ module Tables = struct
} = _menhir_stack in
let _2 : (Parsetree.expression) = Obj.magic _2 in
let _1 : (
-# 727 "parsing/parser.mly"
+# 729 "parsing/parser.mly"
(string)
-# 15398 "parsing/parser.ml"
+# 15401 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.arg_label * Parsetree.expression) =
-# 2511 "parsing/parser.mly"
+# 2513 "parsing/parser.mly"
( (Optional _1, _2) )
-# 15406 "parsing/parser.ml"
+# 15409 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15455,15 +15458,15 @@ module Tables = struct
let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _4 =
let _1 = _1_inlined1 in
-# 2235 "parsing/parser.mly"
+# 2237 "parsing/parser.mly"
( _1 )
-# 15461 "parsing/parser.ml"
+# 15464 "parsing/parser.ml"
in
-# 2209 "parsing/parser.mly"
+# 2211 "parsing/parser.mly"
( (Optional (fst _3), _4, snd _3) )
-# 15467 "parsing/parser.ml"
+# 15470 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15488,9 +15491,9 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15494 "parsing/parser.ml"
+# 15497 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -15503,24 +15506,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 15509 "parsing/parser.ml"
+# 15512 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2247 "parsing/parser.mly"
+# 2249 "parsing/parser.mly"
( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
-# 15518 "parsing/parser.ml"
+# 15521 "parsing/parser.ml"
in
-# 2211 "parsing/parser.mly"
+# 2213 "parsing/parser.mly"
( (Optional (fst _2), None, snd _2) )
-# 15524 "parsing/parser.ml"
+# 15527 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15567,9 +15570,9 @@ module Tables = struct
let _3 : (Parsetree.pattern) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 727 "parsing/parser.mly"
+# 729 "parsing/parser.mly"
(string)
-# 15573 "parsing/parser.ml"
+# 15576 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -15577,15 +15580,15 @@ module Tables = struct
let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _4 =
let _1 = _1_inlined1 in
-# 2235 "parsing/parser.mly"
+# 2237 "parsing/parser.mly"
( _1 )
-# 15583 "parsing/parser.ml"
+# 15586 "parsing/parser.ml"
in
-# 2213 "parsing/parser.mly"
+# 2215 "parsing/parser.mly"
( (Optional _1, _4, _3) )
-# 15589 "parsing/parser.ml"
+# 15592 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15611,17 +15614,17 @@ module Tables = struct
} = _menhir_stack in
let _2 : (Parsetree.pattern) = Obj.magic _2 in
let _1 : (
-# 727 "parsing/parser.mly"
+# 729 "parsing/parser.mly"
(string)
-# 15617 "parsing/parser.ml"
+# 15620 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) =
-# 2215 "parsing/parser.mly"
+# 2217 "parsing/parser.mly"
( (Optional _1, None, _2) )
-# 15625 "parsing/parser.ml"
+# 15628 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15665,9 +15668,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) =
-# 2217 "parsing/parser.mly"
+# 2219 "parsing/parser.mly"
( (Labelled (fst _3), None, snd _3) )
-# 15671 "parsing/parser.ml"
+# 15674 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15692,9 +15695,9 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 15698 "parsing/parser.ml"
+# 15701 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -15707,24 +15710,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 15713 "parsing/parser.ml"
+# 15716 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2247 "parsing/parser.mly"
+# 2249 "parsing/parser.mly"
( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
-# 15722 "parsing/parser.ml"
+# 15725 "parsing/parser.ml"
in
-# 2219 "parsing/parser.mly"
+# 2221 "parsing/parser.mly"
( (Labelled (fst _2), None, snd _2) )
-# 15728 "parsing/parser.ml"
+# 15731 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15750,17 +15753,17 @@ module Tables = struct
} = _menhir_stack in
let _2 : (Parsetree.pattern) = Obj.magic _2 in
let _1 : (
-# 697 "parsing/parser.mly"
+# 699 "parsing/parser.mly"
(string)
-# 15756 "parsing/parser.ml"
+# 15759 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) =
-# 2221 "parsing/parser.mly"
+# 2223 "parsing/parser.mly"
( (Labelled _1, None, _2) )
-# 15764 "parsing/parser.ml"
+# 15767 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15783,9 +15786,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) =
-# 2223 "parsing/parser.mly"
+# 2225 "parsing/parser.mly"
( (Nolabel, None, _1) )
-# 15789 "parsing/parser.ml"
+# 15792 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15803,14 +15806,15 @@ module Tables = struct
MenhirLib.EngineTypes.endp = _endpos__1_;
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
- let _1 : (Parsetree.pattern * Parsetree.expression) = Obj.magic _1 in
+ let _1 : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
- let _v : (Parsetree.pattern * Parsetree.expression * bool) =
-# 2554 "parsing/parser.mly"
- ( let p,e = _1 in (p,e,false) )
-# 15814 "parsing/parser.ml"
+ let _v : (Parsetree.pattern * Parsetree.expression *
+ Parsetree.poly_constraint option * bool) =
+# 2549 "parsing/parser.mly"
+ ( let p,e,c = _1 in (p,e,c,false) )
+# 15818 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15832,13 +15836,14 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
- let _v : (Parsetree.pattern * Parsetree.expression * bool) = let _endpos = _endpos__1_ in
+ let _v : (Parsetree.pattern * Parsetree.expression *
+ Parsetree.poly_constraint option * bool) = let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
let _loc = (_startpos, _endpos) in
-# 2557 "parsing/parser.mly"
- ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1, true) )
-# 15842 "parsing/parser.ml"
+# 2552 "parsing/parser.mly"
+ ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1, None, true) )
+# 15847 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15867,20 +15872,20 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
- let _v : (Parsetree.pattern * Parsetree.expression) = let _1 =
+ let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) = let _1 =
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2518 "parsing/parser.mly"
+# 2520 "parsing/parser.mly"
( mkpatvar ~loc:_sloc _1 )
-# 15878 "parsing/parser.ml"
+# 15883 "parsing/parser.ml"
in
-# 2522 "parsing/parser.mly"
- ( (_1, _2) )
-# 15884 "parsing/parser.ml"
+# 2524 "parsing/parser.mly"
+ ( (_1, _2, None) )
+# 15889 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -15923,21 +15928,18 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
- let _v : (Parsetree.pattern * Parsetree.expression) = let _1 =
+ let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) = let _1 =
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2518 "parsing/parser.mly"
+# 2520 "parsing/parser.mly"
( mkpatvar ~loc:_sloc _1 )
-# 15934 "parsing/parser.ml"
+# 15939 "parsing/parser.ml"
in
- let _endpos = _endpos__4_ in
- let _symbolstartpos = _startpos__1_ in
- let _sloc = (_symbolstartpos, _endpos) in
-# 2524 "parsing/parser.mly"
+# 2526 "parsing/parser.mly"
( let v = _1 in (* PR#7344 *)
let t =
match _2 with
@@ -15945,12 +15947,9 @@ module Tables = struct
| _, Some t -> t
| _ -> assert false
in
- let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in
- let typ = ghtyp ~loc (Ptyp_poly([],t)) in
- let patloc = (_startpos__1_, _endpos__2_) in
- (ghpat ~loc:patloc (Ppat_constraint(v, typ)),
- mkexp_constraint ~loc:_sloc _4 _2) )
-# 15954 "parsing/parser.ml"
+ (v, _4, Some {locally_abstract_univars=[]; typ=t})
+ )
+# 15953 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16014,30 +16013,30 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
- let _v : (Parsetree.pattern * Parsetree.expression) = let _3 =
+ let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) = let _3 =
let _1 =
let _1 =
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 16024 "parsing/parser.ml"
+# 16023 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 16029 "parsing/parser.ml"
+# 16028 "parsing/parser.ml"
in
-# 3288 "parsing/parser.mly"
+# 3283 "parsing/parser.mly"
( _1 )
-# 16035 "parsing/parser.ml"
+# 16034 "parsing/parser.ml"
in
-# 3292 "parsing/parser.mly"
+# 3287 "parsing/parser.mly"
( Ptyp_poly(_1, _3) )
-# 16041 "parsing/parser.ml"
+# 16040 "parsing/parser.ml"
in
let _startpos__3_ = _startpos_xs_ in
@@ -16046,19 +16045,19 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2518 "parsing/parser.mly"
+# 2520 "parsing/parser.mly"
( mkpatvar ~loc:_sloc _1 )
-# 16052 "parsing/parser.ml"
+# 16051 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2537 "parsing/parser.mly"
- ( let patloc = (_startpos__1_, _endpos__3_) in
- (ghpat ~loc:patloc
- (Ppat_constraint(_1, ghtyp ~loc:(_loc__3_) _3)),
- _5) )
-# 16062 "parsing/parser.ml"
+# 2536 "parsing/parser.mly"
+ (
+ let t = ghtyp ~loc:(_loc__3_) _3 in
+ (_1, _5, Some { locally_abstract_univars = []; typ = t})
+ )
+# 16061 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16129,31 +16128,25 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__8_ in
- let _v : (Parsetree.pattern * Parsetree.expression) = let _4 =
-# 2515 "parsing/parser.mly"
+ let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) = let _4 =
+# 2517 "parsing/parser.mly"
( xs )
-# 16136 "parsing/parser.ml"
+# 16135 "parsing/parser.ml"
in
let _1 =
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2518 "parsing/parser.mly"
+# 2520 "parsing/parser.mly"
( mkpatvar ~loc:_sloc _1 )
-# 16145 "parsing/parser.ml"
+# 16144 "parsing/parser.ml"
in
- let _endpos = _endpos__8_ in
- let _symbolstartpos = _startpos__1_ in
- let _sloc = (_symbolstartpos, _endpos) in
-# 2542 "parsing/parser.mly"
- ( let exp, poly =
- wrap_type_annotation ~loc:_sloc _4 _6 _8 in
- let loc = (_startpos__1_, _endpos__6_) in
- (ghpat ~loc (Ppat_constraint(_1, poly)), exp) )
-# 16157 "parsing/parser.ml"
+# 2541 "parsing/parser.mly"
+ ( (_1, _8, Some { locally_abstract_univars = _4; typ = _6}) )
+# 16150 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16189,10 +16182,10 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
- let _v : (Parsetree.pattern * Parsetree.expression) =
-# 2547 "parsing/parser.mly"
- ( (_1, _3) )
-# 16196 "parsing/parser.ml"
+ let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) =
+# 2543 "parsing/parser.mly"
+ ( (_1, _3, None) )
+# 16189 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16242,11 +16235,10 @@ module Tables = struct
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
- let _v : (Parsetree.pattern * Parsetree.expression) =
-# 2549 "parsing/parser.mly"
- ( let loc = (_startpos__1_, _endpos__3_) in
- (ghpat ~loc (Ppat_constraint(_1, _3)), _5) )
-# 16250 "parsing/parser.ml"
+ let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.poly_constraint option) =
+# 2545 "parsing/parser.mly"
+ ( (_1, _5, Some { locally_abstract_univars = []; typ=_3}) )
+# 16242 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16295,7 +16287,8 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
- let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in
+ let body : (Parsetree.pattern * Parsetree.expression *
+ Parsetree.poly_constraint option * bool) = Obj.magic body in
let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
let ext : (string Asttypes.loc option) = Obj.magic ext in
@@ -16307,36 +16300,36 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 16313 "parsing/parser.ml"
+# 16306 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined2_ in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 16322 "parsing/parser.ml"
+# 16315 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2577 "parsing/parser.mly"
+# 2572 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
mklbs ext rec_flag (mklb ~loc:_sloc true body attrs)
)
-# 16334 "parsing/parser.ml"
+# 16327 "parsing/parser.ml"
in
-# 2567 "parsing/parser.mly"
+# 2562 "parsing/parser.mly"
( _1 )
-# 16340 "parsing/parser.ml"
+# 16333 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16366,9 +16359,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (let_bindings) =
-# 2568 "parsing/parser.mly"
+# 2563 "parsing/parser.mly"
( addlb _1 _2 )
-# 16372 "parsing/parser.ml"
+# 16365 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16411,7 +16404,8 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
- let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in
+ let body : (Parsetree.pattern * Parsetree.expression *
+ Parsetree.poly_constraint option * bool) = Obj.magic body in
let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -16422,41 +16416,41 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 16428 "parsing/parser.ml"
+# 16422 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined2_ in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 16437 "parsing/parser.ml"
+# 16431 "parsing/parser.ml"
in
let ext =
-# 3880 "parsing/parser.mly"
+# 3875 "parsing/parser.mly"
( None )
-# 16443 "parsing/parser.ml"
+# 16437 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2577 "parsing/parser.mly"
+# 2572 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
mklbs ext rec_flag (mklb ~loc:_sloc true body attrs)
)
-# 16454 "parsing/parser.ml"
+# 16448 "parsing/parser.ml"
in
-# 2567 "parsing/parser.mly"
+# 2562 "parsing/parser.mly"
( _1 )
-# 16460 "parsing/parser.ml"
+# 16454 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16511,7 +16505,8 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
- let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in
+ let body : (Parsetree.pattern * Parsetree.expression *
+ Parsetree.poly_constraint option * bool) = Obj.magic body in
let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in
let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
let _2 : (string Asttypes.loc) = Obj.magic _2 in
@@ -16524,18 +16519,18 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 16530 "parsing/parser.ml"
+# 16525 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
let attrs1 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 16539 "parsing/parser.ml"
+# 16534 "parsing/parser.ml"
in
let ext =
@@ -16544,27 +16539,27 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _loc = (_startpos, _endpos) in
-# 3882 "parsing/parser.mly"
+# 3877 "parsing/parser.mly"
( not_expecting _loc "extension" )
-# 16550 "parsing/parser.ml"
+# 16545 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2577 "parsing/parser.mly"
+# 2572 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
mklbs ext rec_flag (mklb ~loc:_sloc true body attrs)
)
-# 16562 "parsing/parser.ml"
+# 16557 "parsing/parser.ml"
in
-# 2567 "parsing/parser.mly"
+# 2562 "parsing/parser.mly"
( _1 )
-# 16568 "parsing/parser.ml"
+# 16563 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16594,9 +16589,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (let_bindings) =
-# 2568 "parsing/parser.mly"
+# 2563 "parsing/parser.mly"
( addlb _1 _2 )
-# 16600 "parsing/parser.ml"
+# 16595 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16619,9 +16614,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) =
-# 2251 "parsing/parser.mly"
+# 2253 "parsing/parser.mly"
( _1 )
-# 16625 "parsing/parser.ml"
+# 16620 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16659,24 +16654,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2253 "parsing/parser.mly"
+# 2255 "parsing/parser.mly"
( Ppat_constraint(_1, _3) )
-# 16665 "parsing/parser.ml"
+# 16660 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 16674 "parsing/parser.ml"
+# 16669 "parsing/parser.ml"
in
-# 2254 "parsing/parser.mly"
+# 2256 "parsing/parser.mly"
( _1 )
-# 16680 "parsing/parser.ml"
+# 16675 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16710,15 +16705,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2518 "parsing/parser.mly"
+# 2520 "parsing/parser.mly"
( mkpatvar ~loc:_sloc _1 )
-# 16716 "parsing/parser.ml"
+# 16711 "parsing/parser.ml"
in
-# 2594 "parsing/parser.mly"
+# 2589 "parsing/parser.mly"
( (pat, exp) )
-# 16722 "parsing/parser.ml"
+# 16717 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16744,9 +16739,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _loc = (_startpos, _endpos) in
-# 2597 "parsing/parser.mly"
+# 2592 "parsing/parser.mly"
( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1) )
-# 16750 "parsing/parser.ml"
+# 16745 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16797,10 +16792,10 @@ module Tables = struct
let _startpos = _startpos_pat_ in
let _endpos = _endpos_exp_ in
let _v : (Parsetree.pattern * Parsetree.expression) =
-# 2599 "parsing/parser.mly"
+# 2594 "parsing/parser.mly"
( let loc = (_startpos_pat_, _endpos_typ_) in
(ghpat ~loc (Ppat_constraint(pat, typ)), exp) )
-# 16804 "parsing/parser.ml"
+# 16799 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16837,9 +16832,9 @@ module Tables = struct
let _startpos = _startpos_pat_ in
let _endpos = _endpos_exp_ in
let _v : (Parsetree.pattern * Parsetree.expression) =
-# 2602 "parsing/parser.mly"
+# 2597 "parsing/parser.mly"
( (pat, exp) )
-# 16843 "parsing/parser.ml"
+# 16838 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16862,10 +16857,10 @@ module Tables = struct
let _startpos = _startpos_body_ in
let _endpos = _endpos_body_ in
let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) =
-# 2606 "parsing/parser.mly"
+# 2601 "parsing/parser.mly"
( let let_pat, let_exp = body in
let_pat, let_exp, [] )
-# 16869 "parsing/parser.ml"
+# 16864 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16897,9 +16892,9 @@ module Tables = struct
} = _menhir_stack in
let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in
let _1 : (
-# 693 "parsing/parser.mly"
+# 695 "parsing/parser.mly"
(string)
-# 16903 "parsing/parser.ml"
+# 16898 "parsing/parser.ml"
) = Obj.magic _1 in
let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -16910,22 +16905,22 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 16916 "parsing/parser.ml"
+# 16911 "parsing/parser.ml"
in
let _endpos = _endpos_body_ in
let _symbolstartpos = _startpos_bindings_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2609 "parsing/parser.mly"
+# 2604 "parsing/parser.mly"
( let let_pat, let_exp, rev_ands = bindings in
let pbop_pat, pbop_exp = body in
let pbop_loc = make_loc _sloc in
let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in
let_pat, let_exp, and_ :: rev_ands )
-# 16929 "parsing/parser.ml"
+# 16924 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -16943,7 +16938,7 @@ module Tables = struct
let _v : (Parsetree.class_declaration list) =
# 211 "<standard.mly>"
( [] )
-# 16947 "parsing/parser.ml"
+# 16942 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17007,9 +17002,9 @@ module Tables = struct
let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
let body : (Parsetree.class_expr) = Obj.magic body in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 17013 "parsing/parser.ml"
+# 17008 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let virt : (Asttypes.virtual_flag) = Obj.magic virt in
@@ -17022,9 +17017,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17028 "parsing/parser.ml"
+# 17023 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -17034,24 +17029,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17040 "parsing/parser.ml"
+# 17035 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17048 "parsing/parser.ml"
+# 17043 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1855 "parsing/parser.mly"
+# 1857 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
@@ -17059,13 +17054,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs
)
-# 17063 "parsing/parser.ml"
+# 17058 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17069 "parsing/parser.ml"
+# 17064 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17083,7 +17078,7 @@ module Tables = struct
let _v : (Parsetree.class_description list) =
# 211 "<standard.mly>"
( [] )
-# 17087 "parsing/parser.ml"
+# 17082 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17154,9 +17149,9 @@ module Tables = struct
let cty : (Parsetree.class_type) = Obj.magic cty in
let _6 : unit = Obj.magic _6 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 17160 "parsing/parser.ml"
+# 17155 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let virt : (Asttypes.virtual_flag) = Obj.magic virt in
@@ -17169,9 +17164,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17175 "parsing/parser.ml"
+# 17170 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -17181,24 +17176,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17187 "parsing/parser.ml"
+# 17182 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17195 "parsing/parser.ml"
+# 17190 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2146 "parsing/parser.mly"
+# 2148 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
@@ -17206,13 +17201,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs
)
-# 17210 "parsing/parser.ml"
+# 17205 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17216 "parsing/parser.ml"
+# 17211 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17230,7 +17225,7 @@ module Tables = struct
let _v : (Parsetree.class_type_declaration list) =
# 211 "<standard.mly>"
( [] )
-# 17234 "parsing/parser.ml"
+# 17229 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17301,9 +17296,9 @@ module Tables = struct
let csig : (Parsetree.class_type) = Obj.magic csig in
let _6 : unit = Obj.magic _6 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 17307 "parsing/parser.ml"
+# 17302 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let virt : (Asttypes.virtual_flag) = Obj.magic virt in
@@ -17316,9 +17311,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17322 "parsing/parser.ml"
+# 17317 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -17328,24 +17323,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17334 "parsing/parser.ml"
+# 17329 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17342 "parsing/parser.ml"
+# 17337 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2185 "parsing/parser.mly"
+# 2187 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
@@ -17353,13 +17348,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs
)
-# 17357 "parsing/parser.ml"
+# 17352 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17363 "parsing/parser.ml"
+# 17358 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17377,7 +17372,7 @@ module Tables = struct
let _v : (Parsetree.module_binding list) =
# 211 "<standard.mly>"
( [] )
-# 17381 "parsing/parser.ml"
+# 17376 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17438,9 +17433,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17444 "parsing/parser.ml"
+# 17439 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -17450,24 +17445,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17456 "parsing/parser.ml"
+# 17451 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17464 "parsing/parser.ml"
+# 17459 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1511 "parsing/parser.mly"
+# 1513 "parsing/parser.mly"
(
let loc = make_loc _sloc in
let attrs = attrs1 @ attrs2 in
@@ -17475,13 +17470,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Mb.mk name body ~attrs ~loc ~text ~docs
)
-# 17479 "parsing/parser.ml"
+# 17474 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17485 "parsing/parser.ml"
+# 17480 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17499,7 +17494,7 @@ module Tables = struct
let _v : (Parsetree.module_declaration list) =
# 211 "<standard.mly>"
( [] )
-# 17503 "parsing/parser.ml"
+# 17498 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17567,9 +17562,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17573 "parsing/parser.ml"
+# 17568 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -17579,24 +17574,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17585 "parsing/parser.ml"
+# 17580 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17593 "parsing/parser.ml"
+# 17588 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1796 "parsing/parser.mly"
+# 1798 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let docs = symbol_docs _sloc in
@@ -17604,13 +17599,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Md.mk name mty ~attrs ~loc ~text ~docs
)
-# 17608 "parsing/parser.ml"
+# 17603 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17614 "parsing/parser.ml"
+# 17609 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17628,7 +17623,7 @@ module Tables = struct
let _v : (Parsetree.attributes) =
# 211 "<standard.mly>"
( [] )
-# 17632 "parsing/parser.ml"
+# 17627 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17660,7 +17655,7 @@ module Tables = struct
let _v : (Parsetree.attributes) =
# 213 "<standard.mly>"
( x :: xs )
-# 17664 "parsing/parser.ml"
+# 17659 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17678,7 +17673,7 @@ module Tables = struct
let _v : (Parsetree.type_declaration list) =
# 211 "<standard.mly>"
( [] )
-# 17682 "parsing/parser.ml"
+# 17677 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17743,9 +17738,9 @@ module Tables = struct
let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in
let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 17749 "parsing/parser.ml"
+# 17744 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -17758,9 +17753,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17764 "parsing/parser.ml"
+# 17759 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -17769,18 +17764,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 17773 "parsing/parser.ml"
+# 17768 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 17778 "parsing/parser.ml"
+# 17773 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 17784 "parsing/parser.ml"
+# 17779 "parsing/parser.ml"
in
let id =
@@ -17789,24 +17784,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17795 "parsing/parser.ml"
+# 17790 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17803 "parsing/parser.ml"
+# 17798 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2994 "parsing/parser.mly"
+# 2989 "parsing/parser.mly"
(
let (kind, priv, manifest) = kind_priv_manifest in
let docs = symbol_docs _sloc in
@@ -17815,13 +17810,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text
)
-# 17819 "parsing/parser.ml"
+# 17814 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17825 "parsing/parser.ml"
+# 17820 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17839,7 +17834,7 @@ module Tables = struct
let _v : (Parsetree.type_declaration list) =
# 211 "<standard.mly>"
( [] )
-# 17843 "parsing/parser.ml"
+# 17838 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -17911,9 +17906,9 @@ module Tables = struct
let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in
let _1_inlined3 : unit = Obj.magic _1_inlined3 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 17917 "parsing/parser.ml"
+# 17912 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -17926,9 +17921,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 17932 "parsing/parser.ml"
+# 17927 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
@@ -17937,24 +17932,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 17941 "parsing/parser.ml"
+# 17936 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 17946 "parsing/parser.ml"
+# 17941 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 17952 "parsing/parser.ml"
+# 17947 "parsing/parser.ml"
in
let kind_priv_manifest =
-# 3040 "parsing/parser.mly"
+# 3035 "parsing/parser.mly"
( _2 )
-# 17958 "parsing/parser.ml"
+# 17953 "parsing/parser.ml"
in
let id =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
@@ -17962,24 +17957,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 17968 "parsing/parser.ml"
+# 17963 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 17976 "parsing/parser.ml"
+# 17971 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2994 "parsing/parser.mly"
+# 2989 "parsing/parser.mly"
(
let (kind, priv, manifest) = kind_priv_manifest in
let docs = symbol_docs _sloc in
@@ -17988,13 +17983,13 @@ module Tables = struct
let text = symbol_text _symbolstartpos in
Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text
)
-# 17992 "parsing/parser.ml"
+# 17987 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 17998 "parsing/parser.ml"
+# 17993 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18012,7 +18007,7 @@ module Tables = struct
let _v : (Parsetree.attributes) =
# 211 "<standard.mly>"
( [] )
-# 18016 "parsing/parser.ml"
+# 18011 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18044,7 +18039,7 @@ module Tables = struct
let _v : (Parsetree.attributes) =
# 213 "<standard.mly>"
( x :: xs )
-# 18048 "parsing/parser.ml"
+# 18043 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18062,7 +18057,7 @@ module Tables = struct
let _v : (Parsetree.signature_item list list) =
# 211 "<standard.mly>"
( [] )
-# 18066 "parsing/parser.ml"
+# 18061 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18095,21 +18090,21 @@ module Tables = struct
let _1 =
let _startpos = _startpos__1_ in
-# 902 "parsing/parser.mly"
+# 904 "parsing/parser.mly"
( text_sig _startpos )
-# 18101 "parsing/parser.ml"
+# 18096 "parsing/parser.ml"
in
-# 1653 "parsing/parser.mly"
+# 1655 "parsing/parser.mly"
( _1 )
-# 18107 "parsing/parser.ml"
+# 18102 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18113 "parsing/parser.ml"
+# 18108 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18142,21 +18137,21 @@ module Tables = struct
let _1 =
let _startpos = _startpos__1_ in
-# 900 "parsing/parser.mly"
+# 902 "parsing/parser.mly"
( text_sig _startpos @ [_1] )
-# 18148 "parsing/parser.ml"
+# 18143 "parsing/parser.ml"
in
-# 1653 "parsing/parser.mly"
+# 1655 "parsing/parser.mly"
( _1 )
-# 18154 "parsing/parser.ml"
+# 18149 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18160 "parsing/parser.ml"
+# 18155 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18174,7 +18169,7 @@ module Tables = struct
let _v : (Parsetree.structure_item list list) =
# 211 "<standard.mly>"
( [] )
-# 18178 "parsing/parser.ml"
+# 18173 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18207,40 +18202,40 @@ module Tables = struct
let _1 =
let ys =
let items =
-# 962 "parsing/parser.mly"
+# 964 "parsing/parser.mly"
( [] )
-# 18213 "parsing/parser.ml"
+# 18208 "parsing/parser.ml"
in
-# 1392 "parsing/parser.mly"
+# 1394 "parsing/parser.mly"
( items )
-# 18218 "parsing/parser.ml"
+# 18213 "parsing/parser.ml"
in
let xs =
let _startpos = _startpos__1_ in
-# 898 "parsing/parser.mly"
+# 900 "parsing/parser.mly"
( text_str _startpos )
-# 18226 "parsing/parser.ml"
+# 18221 "parsing/parser.ml"
in
# 267 "<standard.mly>"
( xs @ ys )
-# 18232 "parsing/parser.ml"
+# 18227 "parsing/parser.ml"
in
-# 1408 "parsing/parser.mly"
+# 1410 "parsing/parser.mly"
( _1 )
-# 18238 "parsing/parser.ml"
+# 18233 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18244 "parsing/parser.ml"
+# 18239 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18292,70 +18287,70 @@ module Tables = struct
let _1 =
let _1 =
let attrs =
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 18298 "parsing/parser.ml"
+# 18293 "parsing/parser.ml"
in
-# 1399 "parsing/parser.mly"
+# 1401 "parsing/parser.mly"
( mkstrexp e attrs )
-# 18303 "parsing/parser.ml"
+# 18298 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _startpos = _startpos__1_ in
-# 896 "parsing/parser.mly"
+# 898 "parsing/parser.mly"
( text_str _startpos @ [_1] )
-# 18311 "parsing/parser.ml"
+# 18306 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 915 "parsing/parser.mly"
+# 917 "parsing/parser.mly"
( mark_rhs_docs _startpos _endpos;
_1 )
-# 18321 "parsing/parser.ml"
+# 18316 "parsing/parser.ml"
in
-# 964 "parsing/parser.mly"
+# 966 "parsing/parser.mly"
( x )
-# 18327 "parsing/parser.ml"
+# 18322 "parsing/parser.ml"
in
-# 1392 "parsing/parser.mly"
+# 1394 "parsing/parser.mly"
( items )
-# 18333 "parsing/parser.ml"
+# 18328 "parsing/parser.ml"
in
let xs =
let _startpos = _startpos__1_ in
-# 898 "parsing/parser.mly"
+# 900 "parsing/parser.mly"
( text_str _startpos )
-# 18341 "parsing/parser.ml"
+# 18336 "parsing/parser.ml"
in
# 267 "<standard.mly>"
( xs @ ys )
-# 18347 "parsing/parser.ml"
+# 18342 "parsing/parser.ml"
in
-# 1408 "parsing/parser.mly"
+# 1410 "parsing/parser.mly"
( _1 )
-# 18353 "parsing/parser.ml"
+# 18348 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18359 "parsing/parser.ml"
+# 18354 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18388,21 +18383,21 @@ module Tables = struct
let _1 =
let _startpos = _startpos__1_ in
-# 896 "parsing/parser.mly"
+# 898 "parsing/parser.mly"
( text_str _startpos @ [_1] )
-# 18394 "parsing/parser.ml"
+# 18389 "parsing/parser.ml"
in
-# 1408 "parsing/parser.mly"
+# 1410 "parsing/parser.mly"
( _1 )
-# 18400 "parsing/parser.ml"
+# 18395 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18406 "parsing/parser.ml"
+# 18401 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18420,7 +18415,7 @@ module Tables = struct
let _v : (Parsetree.class_type_field list list) =
# 211 "<standard.mly>"
( [] )
-# 18424 "parsing/parser.ml"
+# 18419 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18452,15 +18447,15 @@ module Tables = struct
let _v : (Parsetree.class_type_field list list) = let x =
let _startpos = _startpos__1_ in
-# 910 "parsing/parser.mly"
+# 912 "parsing/parser.mly"
( text_csig _startpos @ [_1] )
-# 18458 "parsing/parser.ml"
+# 18453 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18464 "parsing/parser.ml"
+# 18459 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18478,7 +18473,7 @@ module Tables = struct
let _v : (Parsetree.class_field list list) =
# 211 "<standard.mly>"
( [] )
-# 18482 "parsing/parser.ml"
+# 18477 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18510,15 +18505,15 @@ module Tables = struct
let _v : (Parsetree.class_field list list) = let x =
let _startpos = _startpos__1_ in
-# 908 "parsing/parser.mly"
+# 910 "parsing/parser.mly"
( text_cstr _startpos @ [_1] )
-# 18516 "parsing/parser.ml"
+# 18511 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18522 "parsing/parser.ml"
+# 18517 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18536,7 +18531,7 @@ module Tables = struct
let _v : (Parsetree.structure_item list list) =
# 211 "<standard.mly>"
( [] )
-# 18540 "parsing/parser.ml"
+# 18535 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18568,15 +18563,15 @@ module Tables = struct
let _v : (Parsetree.structure_item list list) = let x =
let _startpos = _startpos__1_ in
-# 896 "parsing/parser.mly"
+# 898 "parsing/parser.mly"
( text_str _startpos @ [_1] )
-# 18574 "parsing/parser.ml"
+# 18569 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18580 "parsing/parser.ml"
+# 18575 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18594,7 +18589,7 @@ module Tables = struct
let _v : (Parsetree.toplevel_phrase list list) =
# 211 "<standard.mly>"
( [] )
-# 18598 "parsing/parser.ml"
+# 18593 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18627,32 +18622,32 @@ module Tables = struct
let _1 =
let x =
let _1 =
-# 962 "parsing/parser.mly"
+# 964 "parsing/parser.mly"
( [] )
-# 18633 "parsing/parser.ml"
+# 18628 "parsing/parser.ml"
in
-# 1194 "parsing/parser.mly"
+# 1196 "parsing/parser.mly"
( _1 )
-# 18638 "parsing/parser.ml"
+# 18633 "parsing/parser.ml"
in
# 183 "<standard.mly>"
( x )
-# 18644 "parsing/parser.ml"
+# 18639 "parsing/parser.ml"
in
-# 1206 "parsing/parser.mly"
+# 1208 "parsing/parser.mly"
( _1 )
-# 18650 "parsing/parser.ml"
+# 18645 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18656 "parsing/parser.ml"
+# 18651 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18704,58 +18699,58 @@ module Tables = struct
let _1 =
let _1 =
let attrs =
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 18710 "parsing/parser.ml"
+# 18705 "parsing/parser.ml"
in
-# 1399 "parsing/parser.mly"
+# 1401 "parsing/parser.mly"
( mkstrexp e attrs )
-# 18715 "parsing/parser.ml"
+# 18710 "parsing/parser.ml"
in
-# 906 "parsing/parser.mly"
+# 908 "parsing/parser.mly"
( Ptop_def [_1] )
-# 18721 "parsing/parser.ml"
+# 18716 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _startpos = _startpos__1_ in
-# 904 "parsing/parser.mly"
+# 906 "parsing/parser.mly"
( text_def _startpos @ [_1] )
-# 18729 "parsing/parser.ml"
+# 18724 "parsing/parser.ml"
in
-# 964 "parsing/parser.mly"
+# 966 "parsing/parser.mly"
( x )
-# 18735 "parsing/parser.ml"
+# 18730 "parsing/parser.ml"
in
-# 1194 "parsing/parser.mly"
+# 1196 "parsing/parser.mly"
( _1 )
-# 18741 "parsing/parser.ml"
+# 18736 "parsing/parser.ml"
in
# 183 "<standard.mly>"
( x )
-# 18747 "parsing/parser.ml"
+# 18742 "parsing/parser.ml"
in
-# 1206 "parsing/parser.mly"
+# 1208 "parsing/parser.mly"
( _1 )
-# 18753 "parsing/parser.ml"
+# 18748 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18759 "parsing/parser.ml"
+# 18754 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18787,27 +18782,27 @@ module Tables = struct
let _v : (Parsetree.toplevel_phrase list list) = let x =
let _1 =
let _1 =
-# 906 "parsing/parser.mly"
+# 908 "parsing/parser.mly"
( Ptop_def [_1] )
-# 18793 "parsing/parser.ml"
+# 18788 "parsing/parser.ml"
in
let _startpos = _startpos__1_ in
-# 904 "parsing/parser.mly"
+# 906 "parsing/parser.mly"
( text_def _startpos @ [_1] )
-# 18799 "parsing/parser.ml"
+# 18794 "parsing/parser.ml"
in
-# 1206 "parsing/parser.mly"
+# 1208 "parsing/parser.mly"
( _1 )
-# 18805 "parsing/parser.ml"
+# 18800 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18811 "parsing/parser.ml"
+# 18806 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18842,29 +18837,29 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 915 "parsing/parser.mly"
+# 917 "parsing/parser.mly"
( mark_rhs_docs _startpos _endpos;
_1 )
-# 18849 "parsing/parser.ml"
+# 18844 "parsing/parser.ml"
in
let _startpos = _startpos__1_ in
-# 904 "parsing/parser.mly"
+# 906 "parsing/parser.mly"
( text_def _startpos @ [_1] )
-# 18856 "parsing/parser.ml"
+# 18851 "parsing/parser.ml"
in
-# 1206 "parsing/parser.mly"
+# 1208 "parsing/parser.mly"
( _1 )
-# 18862 "parsing/parser.ml"
+# 18857 "parsing/parser.ml"
in
# 213 "<standard.mly>"
( x :: xs )
-# 18868 "parsing/parser.ml"
+# 18863 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18903,7 +18898,7 @@ module Tables = struct
let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 =
# 124 "<standard.mly>"
( None )
-# 18907 "parsing/parser.ml"
+# 18902 "parsing/parser.ml"
in
let x =
let label =
@@ -18911,9 +18906,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 18917 "parsing/parser.ml"
+# 18912 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -18921,7 +18916,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2880 "parsing/parser.mly"
+# 2875 "parsing/parser.mly"
( let constraint_loc, label, pat =
match opat with
| None ->
@@ -18935,13 +18930,13 @@ module Tables = struct
in
label, mkpat_opt_constraint ~loc:constraint_loc pat octy
)
-# 18939 "parsing/parser.ml"
+# 18934 "parsing/parser.ml"
in
-# 1131 "parsing/parser.mly"
+# 1133 "parsing/parser.mly"
( [x], None )
-# 18945 "parsing/parser.ml"
+# 18940 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -18987,7 +18982,7 @@ module Tables = struct
let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 =
# 126 "<standard.mly>"
( Some x )
-# 18991 "parsing/parser.ml"
+# 18986 "parsing/parser.ml"
in
let x =
let label =
@@ -18995,9 +18990,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19001 "parsing/parser.ml"
+# 18996 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -19005,7 +19000,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2880 "parsing/parser.mly"
+# 2875 "parsing/parser.mly"
( let constraint_loc, label, pat =
match opat with
| None ->
@@ -19019,13 +19014,13 @@ module Tables = struct
in
label, mkpat_opt_constraint ~loc:constraint_loc pat octy
)
-# 19023 "parsing/parser.ml"
+# 19018 "parsing/parser.ml"
in
-# 1131 "parsing/parser.mly"
+# 1133 "parsing/parser.mly"
( [x], None )
-# 19029 "parsing/parser.ml"
+# 19024 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19088,9 +19083,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19094 "parsing/parser.ml"
+# 19089 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -19098,7 +19093,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2880 "parsing/parser.mly"
+# 2875 "parsing/parser.mly"
( let constraint_loc, label, pat =
match opat with
| None ->
@@ -19112,13 +19107,13 @@ module Tables = struct
in
label, mkpat_opt_constraint ~loc:constraint_loc pat octy
)
-# 19116 "parsing/parser.ml"
+# 19111 "parsing/parser.ml"
in
-# 1133 "parsing/parser.mly"
+# 1135 "parsing/parser.mly"
( [x], Some y )
-# 19122 "parsing/parser.ml"
+# 19117 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19174,9 +19169,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19180 "parsing/parser.ml"
+# 19175 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -19184,7 +19179,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2880 "parsing/parser.mly"
+# 2875 "parsing/parser.mly"
( let constraint_loc, label, pat =
match opat with
| None ->
@@ -19198,14 +19193,14 @@ module Tables = struct
in
label, mkpat_opt_constraint ~loc:constraint_loc pat octy
)
-# 19202 "parsing/parser.ml"
+# 19197 "parsing/parser.ml"
in
-# 1137 "parsing/parser.mly"
+# 1139 "parsing/parser.mly"
( let xs, y = tail in
x :: xs, y )
-# 19209 "parsing/parser.ml"
+# 19204 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19242,9 +19237,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.case) =
-# 2635 "parsing/parser.mly"
+# 2630 "parsing/parser.mly"
( Exp.case _1 _3 )
-# 19248 "parsing/parser.ml"
+# 19243 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19295,9 +19290,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.case) =
-# 2637 "parsing/parser.mly"
+# 2632 "parsing/parser.mly"
( Exp.case _1 ~guard:_3 _5 )
-# 19301 "parsing/parser.ml"
+# 19296 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19335,9 +19330,9 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2639 "parsing/parser.mly"
+# 2634 "parsing/parser.mly"
( Exp.case _1 (Exp.unreachable ~loc:(make_loc _loc__3_) ()) )
-# 19341 "parsing/parser.ml"
+# 19336 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19398,9 +19393,9 @@ module Tables = struct
let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 19404 "parsing/parser.ml"
+# 19399 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -19409,49 +19404,49 @@ module Tables = struct
let _6 =
let _1 = _1_inlined3 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19415 "parsing/parser.ml"
+# 19410 "parsing/parser.ml"
in
let _endpos__6_ = _endpos__1_inlined3_ in
let _4 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19424 "parsing/parser.ml"
+# 19419 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _3 =
let _1 = _1_inlined1 in
-# 3306 "parsing/parser.mly"
+# 3301 "parsing/parser.mly"
( _1 )
-# 19433 "parsing/parser.ml"
+# 19428 "parsing/parser.ml"
in
let _1 =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 19440 "parsing/parser.ml"
+# 19435 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19448 "parsing/parser.ml"
+# 19443 "parsing/parser.ml"
in
let _endpos = _endpos__6_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3516 "parsing/parser.mly"
+# 3511 "parsing/parser.mly"
( let info =
match rhs_info _endpos__4_ with
| Some _ as info_before_semi -> info_before_semi
@@ -19459,13 +19454,13 @@ module Tables = struct
in
let attrs = add_info_attrs info (_4 @ _6) in
Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 )
-# 19463 "parsing/parser.ml"
+# 19458 "parsing/parser.ml"
in
-# 3497 "parsing/parser.mly"
+# 3492 "parsing/parser.mly"
( let (f, c) = tail in (head :: f, c) )
-# 19469 "parsing/parser.ml"
+# 19464 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19506,15 +19501,15 @@ module Tables = struct
let _symbolstartpos = _startpos_ty_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3527 "parsing/parser.mly"
+# 3522 "parsing/parser.mly"
( Of.inherit_ ~loc:(make_loc _sloc) ty )
-# 19512 "parsing/parser.ml"
+# 19507 "parsing/parser.ml"
in
-# 3497 "parsing/parser.mly"
+# 3492 "parsing/parser.mly"
( let (f, c) = tail in (head :: f, c) )
-# 19518 "parsing/parser.ml"
+# 19513 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19568,9 +19563,9 @@ module Tables = struct
let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 19574 "parsing/parser.ml"
+# 19569 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -19579,49 +19574,49 @@ module Tables = struct
let _6 =
let _1 = _1_inlined3 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19585 "parsing/parser.ml"
+# 19580 "parsing/parser.ml"
in
let _endpos__6_ = _endpos__1_inlined3_ in
let _4 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19594 "parsing/parser.ml"
+# 19589 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _3 =
let _1 = _1_inlined1 in
-# 3306 "parsing/parser.mly"
+# 3301 "parsing/parser.mly"
( _1 )
-# 19603 "parsing/parser.ml"
+# 19598 "parsing/parser.ml"
in
let _1 =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 19610 "parsing/parser.ml"
+# 19605 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19618 "parsing/parser.ml"
+# 19613 "parsing/parser.ml"
in
let _endpos = _endpos__6_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3516 "parsing/parser.mly"
+# 3511 "parsing/parser.mly"
( let info =
match rhs_info _endpos__4_ with
| Some _ as info_before_semi -> info_before_semi
@@ -19629,13 +19624,13 @@ module Tables = struct
in
let attrs = add_info_attrs info (_4 @ _6) in
Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 )
-# 19633 "parsing/parser.ml"
+# 19628 "parsing/parser.ml"
in
-# 3500 "parsing/parser.mly"
+# 3495 "parsing/parser.mly"
( [head], Closed )
-# 19639 "parsing/parser.ml"
+# 19634 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19669,15 +19664,15 @@ module Tables = struct
let _symbolstartpos = _startpos_ty_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3527 "parsing/parser.mly"
+# 3522 "parsing/parser.mly"
( Of.inherit_ ~loc:(make_loc _sloc) ty )
-# 19675 "parsing/parser.ml"
+# 19670 "parsing/parser.ml"
in
-# 3500 "parsing/parser.mly"
+# 3495 "parsing/parser.mly"
( [head], Closed )
-# 19681 "parsing/parser.ml"
+# 19676 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19717,9 +19712,9 @@ module Tables = struct
let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 19723 "parsing/parser.ml"
+# 19718 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -19728,50 +19723,50 @@ module Tables = struct
let _4 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19734 "parsing/parser.ml"
+# 19729 "parsing/parser.ml"
in
let _endpos__4_ = _endpos__1_inlined2_ in
let _3 =
let _1 = _1_inlined1 in
-# 3306 "parsing/parser.mly"
+# 3301 "parsing/parser.mly"
( _1 )
-# 19743 "parsing/parser.ml"
+# 19738 "parsing/parser.ml"
in
let _1 =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 19750 "parsing/parser.ml"
+# 19745 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19758 "parsing/parser.ml"
+# 19753 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3509 "parsing/parser.mly"
+# 3504 "parsing/parser.mly"
( let info = symbol_info _endpos in
let attrs = add_info_attrs info _4 in
Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 )
-# 19769 "parsing/parser.ml"
+# 19764 "parsing/parser.ml"
in
-# 3503 "parsing/parser.mly"
+# 3498 "parsing/parser.mly"
( [head], Closed )
-# 19775 "parsing/parser.ml"
+# 19770 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19798,15 +19793,15 @@ module Tables = struct
let _symbolstartpos = _startpos_ty_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3527 "parsing/parser.mly"
+# 3522 "parsing/parser.mly"
( Of.inherit_ ~loc:(make_loc _sloc) ty )
-# 19804 "parsing/parser.ml"
+# 19799 "parsing/parser.ml"
in
-# 3503 "parsing/parser.mly"
+# 3498 "parsing/parser.mly"
( [head], Closed )
-# 19810 "parsing/parser.ml"
+# 19805 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19829,9 +19824,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.object_field list * Asttypes.closed_flag) =
-# 3505 "parsing/parser.mly"
+# 3500 "parsing/parser.mly"
( [], Open )
-# 19835 "parsing/parser.ml"
+# 19830 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19876,9 +19871,9 @@ module Tables = struct
let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
let _5 : unit = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 19882 "parsing/parser.ml"
+# 19877 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let private_ : (Asttypes.private_flag) = Obj.magic private_ in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -19890,41 +19885,41 @@ module Tables = struct
Parsetree.attributes) = let ty =
let _1 = _1_inlined2 in
-# 3302 "parsing/parser.mly"
+# 3297 "parsing/parser.mly"
( _1 )
-# 19896 "parsing/parser.ml"
+# 19891 "parsing/parser.ml"
in
let label =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 19904 "parsing/parser.ml"
+# 19899 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19912 "parsing/parser.ml"
+# 19907 "parsing/parser.ml"
in
let attrs =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19918 "parsing/parser.ml"
+# 19913 "parsing/parser.ml"
in
let _1 =
-# 3772 "parsing/parser.mly"
+# 3767 "parsing/parser.mly"
( Fresh )
-# 19923 "parsing/parser.ml"
+# 19918 "parsing/parser.ml"
in
-# 1993 "parsing/parser.mly"
+# 1995 "parsing/parser.mly"
( (label, private_, Cfk_virtual ty), attrs )
-# 19928 "parsing/parser.ml"
+# 19923 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -19962,9 +19957,9 @@ module Tables = struct
} = _menhir_stack in
let _5 : (Parsetree.expression) = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 19968 "parsing/parser.ml"
+# 19963 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _3 : (Asttypes.private_flag) = Obj.magic _3 in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -19976,36 +19971,36 @@ module Tables = struct
Parsetree.attributes) = let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 19982 "parsing/parser.ml"
+# 19977 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 19990 "parsing/parser.ml"
+# 19985 "parsing/parser.ml"
in
let _2 =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 19996 "parsing/parser.ml"
+# 19991 "parsing/parser.ml"
in
let _1 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 20001 "parsing/parser.ml"
+# 19996 "parsing/parser.ml"
in
-# 1995 "parsing/parser.mly"
+# 1997 "parsing/parser.mly"
( let e = _5 in
let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in
(_4, _3,
Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 )
-# 20009 "parsing/parser.ml"
+# 20004 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20049,9 +20044,9 @@ module Tables = struct
} = _menhir_stack in
let _5 : (Parsetree.expression) = Obj.magic _5 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20055 "parsing/parser.ml"
+# 20050 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _3 : (Asttypes.private_flag) = Obj.magic _3 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -20064,39 +20059,39 @@ module Tables = struct
Parsetree.attributes) = let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 20070 "parsing/parser.ml"
+# 20065 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 20078 "parsing/parser.ml"
+# 20073 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 20086 "parsing/parser.ml"
+# 20081 "parsing/parser.ml"
in
let _1 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 20092 "parsing/parser.ml"
+# 20087 "parsing/parser.ml"
in
-# 1995 "parsing/parser.mly"
+# 1997 "parsing/parser.mly"
( let e = _5 in
let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in
(_4, _3,
Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 )
-# 20100 "parsing/parser.ml"
+# 20095 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20155,9 +20150,9 @@ module Tables = struct
let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
let _5 : unit = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20161 "parsing/parser.ml"
+# 20156 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _3 : (Asttypes.private_flag) = Obj.magic _3 in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -20169,45 +20164,45 @@ module Tables = struct
Parsetree.attributes) = let _6 =
let _1 = _1_inlined2 in
-# 3302 "parsing/parser.mly"
+# 3297 "parsing/parser.mly"
( _1 )
-# 20175 "parsing/parser.ml"
+# 20170 "parsing/parser.ml"
in
let _startpos__6_ = _startpos__1_inlined2_ in
let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 20184 "parsing/parser.ml"
+# 20179 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 20192 "parsing/parser.ml"
+# 20187 "parsing/parser.ml"
in
let _2 =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 20198 "parsing/parser.ml"
+# 20193 "parsing/parser.ml"
in
let _1 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 20203 "parsing/parser.ml"
+# 20198 "parsing/parser.ml"
in
-# 2001 "parsing/parser.mly"
+# 2003 "parsing/parser.mly"
( let poly_exp =
let loc = (_startpos__6_, _endpos__8_) in
ghexp ~loc (Pexp_poly(_8, Some _6)) in
(_4, _3, Cfk_concrete (_1, poly_exp)), _2 )
-# 20211 "parsing/parser.ml"
+# 20206 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20272,9 +20267,9 @@ module Tables = struct
let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in
let _5 : unit = Obj.magic _5 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20278 "parsing/parser.ml"
+# 20273 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _3 : (Asttypes.private_flag) = Obj.magic _3 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -20287,48 +20282,48 @@ module Tables = struct
Parsetree.attributes) = let _6 =
let _1 = _1_inlined3 in
-# 3302 "parsing/parser.mly"
+# 3297 "parsing/parser.mly"
( _1 )
-# 20293 "parsing/parser.ml"
+# 20288 "parsing/parser.ml"
in
let _startpos__6_ = _startpos__1_inlined3_ in
let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 20302 "parsing/parser.ml"
+# 20297 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 20310 "parsing/parser.ml"
+# 20305 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 20318 "parsing/parser.ml"
+# 20313 "parsing/parser.ml"
in
let _1 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 20324 "parsing/parser.ml"
+# 20319 "parsing/parser.ml"
in
-# 2001 "parsing/parser.mly"
+# 2003 "parsing/parser.mly"
( let poly_exp =
let loc = (_startpos__6_, _endpos__8_) in
ghexp ~loc (Pexp_poly(_8, Some _6)) in
(_4, _3, Cfk_concrete (_1, poly_exp)), _2 )
-# 20332 "parsing/parser.ml"
+# 20327 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20408,9 +20403,9 @@ module Tables = struct
let _6 : unit = Obj.magic _6 in
let _5 : unit = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20414 "parsing/parser.ml"
+# 20409 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _3 : (Asttypes.private_flag) = Obj.magic _3 in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -20420,38 +20415,38 @@ module Tables = struct
let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
Parsetree.class_field_kind) *
Parsetree.attributes) = let _7 =
-# 2515 "parsing/parser.mly"
+# 2517 "parsing/parser.mly"
( xs )
-# 20426 "parsing/parser.ml"
+# 20421 "parsing/parser.ml"
in
let _startpos__7_ = _startpos_xs_ in
let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 20434 "parsing/parser.ml"
+# 20429 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 20442 "parsing/parser.ml"
+# 20437 "parsing/parser.ml"
in
let _startpos__4_ = _startpos__1_inlined1_ in
let _2 =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 20449 "parsing/parser.ml"
+# 20444 "parsing/parser.ml"
in
let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in
let _1 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 20455 "parsing/parser.ml"
+# 20450 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
let _endpos = _endpos__11_ in
@@ -20467,7 +20462,7 @@ module Tables = struct
_startpos__4_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2007 "parsing/parser.mly"
+# 2009 "parsing/parser.mly"
( let poly_exp_loc = (_startpos__7_, _endpos__11_) in
let poly_exp =
let exp, poly =
@@ -20478,7 +20473,7 @@ module Tables = struct
ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in
(_4, _3,
Cfk_concrete (_1, poly_exp)), _2 )
-# 20482 "parsing/parser.ml"
+# 20477 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20564,9 +20559,9 @@ module Tables = struct
let _6 : unit = Obj.magic _6 in
let _5 : unit = Obj.magic _5 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20570 "parsing/parser.ml"
+# 20565 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _3 : (Asttypes.private_flag) = Obj.magic _3 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -20577,41 +20572,41 @@ module Tables = struct
let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
Parsetree.class_field_kind) *
Parsetree.attributes) = let _7 =
-# 2515 "parsing/parser.mly"
+# 2517 "parsing/parser.mly"
( xs )
-# 20583 "parsing/parser.ml"
+# 20578 "parsing/parser.ml"
in
let _startpos__7_ = _startpos_xs_ in
let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 20591 "parsing/parser.ml"
+# 20586 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 20599 "parsing/parser.ml"
+# 20594 "parsing/parser.ml"
in
let _startpos__4_ = _startpos__1_inlined2_ in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 20608 "parsing/parser.ml"
+# 20603 "parsing/parser.ml"
in
let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
let _1 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 20615 "parsing/parser.ml"
+# 20610 "parsing/parser.ml"
in
let _endpos = _endpos__11_ in
let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
@@ -20626,7 +20621,7 @@ module Tables = struct
_startpos__4_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2007 "parsing/parser.mly"
+# 2009 "parsing/parser.mly"
( let poly_exp_loc = (_startpos__7_, _endpos__11_) in
let poly_exp =
let exp, poly =
@@ -20637,7 +20632,7 @@ module Tables = struct
ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in
(_4, _3,
Cfk_concrete (_1, poly_exp)), _2 )
-# 20641 "parsing/parser.ml"
+# 20636 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20656,17 +20651,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20662 "parsing/parser.ml"
+# 20657 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 20670 "parsing/parser.ml"
+# 20665 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20697,9 +20692,9 @@ module Tables = struct
};
} = _menhir_stack in
let _3 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 20703 "parsing/parser.ml"
+# 20698 "parsing/parser.ml"
) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (Longident.t) = Obj.magic _1 in
@@ -20707,9 +20702,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) =
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 20713 "parsing/parser.ml"
+# 20708 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20728,17 +20723,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 20734 "parsing/parser.ml"
+# 20729 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 20742 "parsing/parser.ml"
+# 20737 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20769,9 +20764,9 @@ module Tables = struct
};
} = _menhir_stack in
let _3 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 20775 "parsing/parser.ml"
+# 20770 "parsing/parser.ml"
) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (Longident.t) = Obj.magic _1 in
@@ -20779,9 +20774,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) =
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 20785 "parsing/parser.ml"
+# 20780 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20804,14 +20799,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) = let _1 =
-# 3666 "parsing/parser.mly"
+# 3661 "parsing/parser.mly"
( _1 )
-# 20810 "parsing/parser.ml"
+# 20805 "parsing/parser.ml"
in
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 20815 "parsing/parser.ml"
+# 20810 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20849,20 +20844,20 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Longident.t) = let _1 =
let _1 =
-# 3608 "parsing/parser.mly"
+# 3603 "parsing/parser.mly"
( "::" )
-# 20855 "parsing/parser.ml"
+# 20850 "parsing/parser.ml"
in
-# 3666 "parsing/parser.mly"
+# 3661 "parsing/parser.mly"
( _1 )
-# 20860 "parsing/parser.ml"
+# 20855 "parsing/parser.ml"
in
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 20866 "parsing/parser.ml"
+# 20861 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20885,14 +20880,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) = let _1 =
-# 3666 "parsing/parser.mly"
+# 3661 "parsing/parser.mly"
( _1 )
-# 20891 "parsing/parser.ml"
+# 20886 "parsing/parser.ml"
in
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 20896 "parsing/parser.ml"
+# 20891 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20931,15 +20926,15 @@ module Tables = struct
let _v : (Longident.t) = let _3 =
let _1 = _1_inlined1 in
-# 3666 "parsing/parser.mly"
+# 3661 "parsing/parser.mly"
( _1 )
-# 20937 "parsing/parser.ml"
+# 20932 "parsing/parser.ml"
in
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 20943 "parsing/parser.ml"
+# 20938 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -20991,20 +20986,20 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Longident.t) = let _3 =
let _1 =
-# 3608 "parsing/parser.mly"
+# 3603 "parsing/parser.mly"
( "::" )
-# 20997 "parsing/parser.ml"
+# 20992 "parsing/parser.ml"
in
-# 3666 "parsing/parser.mly"
+# 3661 "parsing/parser.mly"
( _1 )
-# 21002 "parsing/parser.ml"
+# 20997 "parsing/parser.ml"
in
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 21008 "parsing/parser.ml"
+# 21003 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21043,15 +21038,15 @@ module Tables = struct
let _v : (Longident.t) = let _3 =
let _1 = _1_inlined1 in
-# 3666 "parsing/parser.mly"
+# 3661 "parsing/parser.mly"
( _1 )
-# 21049 "parsing/parser.ml"
+# 21044 "parsing/parser.ml"
in
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 21055 "parsing/parser.ml"
+# 21050 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21074,9 +21069,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 21080 "parsing/parser.ml"
+# 21075 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21113,9 +21108,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) =
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 21119 "parsing/parser.ml"
+# 21114 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21134,17 +21129,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 21140 "parsing/parser.ml"
+# 21135 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 21148 "parsing/parser.ml"
+# 21143 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21175,9 +21170,9 @@ module Tables = struct
};
} = _menhir_stack in
let _3 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 21181 "parsing/parser.ml"
+# 21176 "parsing/parser.ml"
) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (Longident.t) = Obj.magic _1 in
@@ -21185,9 +21180,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) =
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 21191 "parsing/parser.ml"
+# 21186 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21206,17 +21201,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 21212 "parsing/parser.ml"
+# 21207 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 21220 "parsing/parser.ml"
+# 21215 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21247,9 +21242,9 @@ module Tables = struct
};
} = _menhir_stack in
let _3 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 21253 "parsing/parser.ml"
+# 21248 "parsing/parser.ml"
) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (Longident.t) = Obj.magic _1 in
@@ -21257,9 +21252,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) =
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 21263 "parsing/parser.ml"
+# 21258 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21282,9 +21277,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3628 "parsing/parser.mly"
+# 3623 "parsing/parser.mly"
( Lident _1 )
-# 21288 "parsing/parser.ml"
+# 21283 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21321,9 +21316,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Longident.t) =
-# 3629 "parsing/parser.mly"
+# 3624 "parsing/parser.mly"
( Ldot(_1,_3) )
-# 21327 "parsing/parser.ml"
+# 21322 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21346,9 +21341,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3644 "parsing/parser.mly"
+# 3639 "parsing/parser.mly"
( _1 )
-# 21352 "parsing/parser.ml"
+# 21347 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21395,9 +21390,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3646 "parsing/parser.mly"
+# 3641 "parsing/parser.mly"
( lapply ~loc:_sloc _1 _3 )
-# 21401 "parsing/parser.ml"
+# 21396 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21435,9 +21430,9 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Longident.t) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 3648 "parsing/parser.mly"
+# 3643 "parsing/parser.mly"
( expecting _loc__3_ "module path" )
-# 21441 "parsing/parser.ml"
+# 21436 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21460,9 +21455,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3641 "parsing/parser.mly"
+# 3636 "parsing/parser.mly"
( _1 )
-# 21466 "parsing/parser.ml"
+# 21461 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21492,9 +21487,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos_me_ in
let _v : (Parsetree.module_expr) =
-# 1468 "parsing/parser.mly"
+# 1470 "parsing/parser.mly"
( me )
-# 21498 "parsing/parser.ml"
+# 21493 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21525,9 +21520,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_expr) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1470 "parsing/parser.mly"
+# 1472 "parsing/parser.mly"
( expecting _loc__1_ "=" )
-# 21531 "parsing/parser.ml"
+# 21526 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21572,24 +21567,24 @@ module Tables = struct
let _endpos = _endpos_me_ in
let _v : (Parsetree.module_expr) = let _1 =
let _1 =
-# 1473 "parsing/parser.mly"
+# 1475 "parsing/parser.mly"
( Pmod_constraint(me, mty) )
-# 21578 "parsing/parser.ml"
+# 21573 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_me_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 935 "parsing/parser.mly"
+# 937 "parsing/parser.mly"
( mkmod ~loc:_sloc _1 )
-# 21587 "parsing/parser.ml"
+# 21582 "parsing/parser.ml"
in
-# 1477 "parsing/parser.mly"
+# 1479 "parsing/parser.mly"
( _1 )
-# 21593 "parsing/parser.ml"
+# 21588 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21620,25 +21615,25 @@ module Tables = struct
let _endpos = _endpos_body_ in
let _v : (Parsetree.module_expr) = let _1 =
let _1 =
-# 1475 "parsing/parser.mly"
+# 1477 "parsing/parser.mly"
( let (_, arg) = arg_and_pos in
Pmod_functor(arg, body) )
-# 21627 "parsing/parser.ml"
+# 21622 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 935 "parsing/parser.mly"
+# 937 "parsing/parser.mly"
( mkmod ~loc:_sloc _1 )
-# 21636 "parsing/parser.ml"
+# 21631 "parsing/parser.ml"
in
-# 1477 "parsing/parser.mly"
+# 1479 "parsing/parser.mly"
( _1 )
-# 21642 "parsing/parser.ml"
+# 21637 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21668,9 +21663,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos_mty_ in
let _v : (Parsetree.module_type) =
-# 1720 "parsing/parser.mly"
+# 1722 "parsing/parser.mly"
( mty )
-# 21674 "parsing/parser.ml"
+# 21669 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21701,9 +21696,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_type) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1722 "parsing/parser.mly"
+# 1724 "parsing/parser.mly"
( expecting _loc__1_ ":" )
-# 21707 "parsing/parser.ml"
+# 21702 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21734,25 +21729,25 @@ module Tables = struct
let _endpos = _endpos_body_ in
let _v : (Parsetree.module_type) = let _1 =
let _1 =
-# 1725 "parsing/parser.mly"
+# 1727 "parsing/parser.mly"
( let (_, arg) = arg_and_pos in
Pmty_functor(arg, body) )
-# 21741 "parsing/parser.ml"
+# 21736 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 937 "parsing/parser.mly"
+# 939 "parsing/parser.mly"
( mkmty ~loc:_sloc _1 )
-# 21750 "parsing/parser.ml"
+# 21745 "parsing/parser.ml"
in
-# 1728 "parsing/parser.mly"
+# 1730 "parsing/parser.mly"
( _1 )
-# 21756 "parsing/parser.ml"
+# 21751 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21798,18 +21793,18 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 21804 "parsing/parser.ml"
+# 21799 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1306 "parsing/parser.mly"
+# 1308 "parsing/parser.mly"
( mkmod ~loc:_sloc ~attrs (Pmod_structure s) )
-# 21813 "parsing/parser.ml"
+# 21808 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21855,17 +21850,17 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 21861 "parsing/parser.ml"
+# 21856 "parsing/parser.ml"
in
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1308 "parsing/parser.mly"
+# 1310 "parsing/parser.mly"
( unclosed "struct" _loc__1_ "end" _loc__4_ )
-# 21869 "parsing/parser.ml"
+# 21864 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21896,9 +21891,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_expr) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1310 "parsing/parser.mly"
+# 1312 "parsing/parser.mly"
( expecting _loc__1_ "struct" )
-# 21902 "parsing/parser.ml"
+# 21897 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21951,30 +21946,30 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let args =
let _1 = _1_inlined2 in
-# 1272 "parsing/parser.mly"
+# 1274 "parsing/parser.mly"
( _1 )
-# 21957 "parsing/parser.ml"
+# 21952 "parsing/parser.ml"
in
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 21965 "parsing/parser.ml"
+# 21960 "parsing/parser.ml"
in
let _endpos = _endpos_me_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1312 "parsing/parser.mly"
+# 1314 "parsing/parser.mly"
( wrap_mod_attrs ~loc:_sloc attrs (
List.fold_left (fun acc (startpos, arg) ->
mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc))
) me args
) )
-# 21978 "parsing/parser.ml"
+# 21973 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -21997,9 +21992,9 @@ module Tables = struct
let _startpos = _startpos_me_ in
let _endpos = _endpos_me_ in
let _v : (Parsetree.module_expr) =
-# 1318 "parsing/parser.mly"
+# 1320 "parsing/parser.mly"
( me )
-# 22003 "parsing/parser.ml"
+# 21998 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22029,9 +22024,9 @@ module Tables = struct
let _startpos = _startpos_me_ in
let _endpos = _endpos_attr_ in
let _v : (Parsetree.module_expr) =
-# 1320 "parsing/parser.mly"
+# 1322 "parsing/parser.mly"
( Mod.attr me attr )
-# 22035 "parsing/parser.ml"
+# 22030 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22060,30 +22055,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 22066 "parsing/parser.ml"
+# 22061 "parsing/parser.ml"
in
-# 1324 "parsing/parser.mly"
+# 1326 "parsing/parser.mly"
( Pmod_ident x )
-# 22072 "parsing/parser.ml"
+# 22067 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 935 "parsing/parser.mly"
+# 937 "parsing/parser.mly"
( mkmod ~loc:_sloc _1 )
-# 22081 "parsing/parser.ml"
+# 22076 "parsing/parser.ml"
in
-# 1335 "parsing/parser.mly"
+# 1337 "parsing/parser.mly"
( _1 )
-# 22087 "parsing/parser.ml"
+# 22082 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22114,24 +22109,24 @@ module Tables = struct
let _endpos = _endpos_me2_ in
let _v : (Parsetree.module_expr) = let _1 =
let _1 =
-# 1327 "parsing/parser.mly"
+# 1329 "parsing/parser.mly"
( Pmod_apply(me1, me2) )
-# 22120 "parsing/parser.ml"
+# 22115 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 935 "parsing/parser.mly"
+# 937 "parsing/parser.mly"
( mkmod ~loc:_sloc _1 )
-# 22129 "parsing/parser.ml"
+# 22124 "parsing/parser.ml"
in
-# 1335 "parsing/parser.mly"
+# 1337 "parsing/parser.mly"
( _1 )
-# 22135 "parsing/parser.ml"
+# 22130 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22169,24 +22164,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.module_expr) = let _1 =
let _1 =
-# 1330 "parsing/parser.mly"
+# 1332 "parsing/parser.mly"
( Pmod_apply_unit me )
-# 22175 "parsing/parser.ml"
+# 22170 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 935 "parsing/parser.mly"
+# 937 "parsing/parser.mly"
( mkmod ~loc:_sloc _1 )
-# 22184 "parsing/parser.ml"
+# 22179 "parsing/parser.ml"
in
-# 1335 "parsing/parser.mly"
+# 1337 "parsing/parser.mly"
( _1 )
-# 22190 "parsing/parser.ml"
+# 22185 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22210,24 +22205,24 @@ module Tables = struct
let _endpos = _endpos_ex_ in
let _v : (Parsetree.module_expr) = let _1 =
let _1 =
-# 1333 "parsing/parser.mly"
+# 1335 "parsing/parser.mly"
( Pmod_extension ex )
-# 22216 "parsing/parser.ml"
+# 22211 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 935 "parsing/parser.mly"
+# 937 "parsing/parser.mly"
( mkmod ~loc:_sloc _1 )
-# 22225 "parsing/parser.ml"
+# 22220 "parsing/parser.ml"
in
-# 1335 "parsing/parser.mly"
+# 1337 "parsing/parser.mly"
( _1 )
-# 22231 "parsing/parser.ml"
+# 22226 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22246,17 +22241,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let x : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 22252 "parsing/parser.ml"
+# 22247 "parsing/parser.ml"
) = Obj.magic x in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : (string option) =
-# 1289 "parsing/parser.mly"
+# 1291 "parsing/parser.mly"
( Some x )
-# 22260 "parsing/parser.ml"
+# 22255 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22279,9 +22274,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string option) =
-# 1292 "parsing/parser.mly"
+# 1294 "parsing/parser.mly"
( None )
-# 22285 "parsing/parser.ml"
+# 22280 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22339,9 +22334,9 @@ module Tables = struct
let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
let _5 : unit = Obj.magic _5 in
let _1_inlined2 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 22345 "parsing/parser.ml"
+# 22340 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
let ext : (string Asttypes.loc option) = Obj.magic ext in
@@ -22352,9 +22347,9 @@ module Tables = struct
let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 22358 "parsing/parser.ml"
+# 22353 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
@@ -22364,9 +22359,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 22370 "parsing/parser.ml"
+# 22365 "parsing/parser.ml"
in
let uid =
@@ -22375,31 +22370,31 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 22381 "parsing/parser.ml"
+# 22376 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 22389 "parsing/parser.ml"
+# 22384 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1758 "parsing/parser.mly"
+# 1760 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Ms.mk uid body ~attrs ~loc ~docs, ext
)
-# 22403 "parsing/parser.ml"
+# 22398 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22450,9 +22445,9 @@ module Tables = struct
let _6 : unit = Obj.magic _6 in
let _5 : unit = Obj.magic _5 in
let _1_inlined2 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 22456 "parsing/parser.ml"
+# 22451 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
let _2 : (string Asttypes.loc option) = Obj.magic _2 in
@@ -22466,24 +22461,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 22472 "parsing/parser.ml"
+# 22467 "parsing/parser.ml"
in
let _3 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 22480 "parsing/parser.ml"
+# 22475 "parsing/parser.ml"
in
let _loc__6_ = (_startpos__6_, _endpos__6_) in
-# 1765 "parsing/parser.mly"
+# 1767 "parsing/parser.mly"
( expecting _loc__6_ "module path" )
-# 22487 "parsing/parser.ml"
+# 22482 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22529,18 +22524,18 @@ module Tables = struct
let _v : (Parsetree.module_type) = let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 22535 "parsing/parser.ml"
+# 22530 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1602 "parsing/parser.mly"
+# 1604 "parsing/parser.mly"
( mkmty ~loc:_sloc ~attrs (Pmty_signature s) )
-# 22544 "parsing/parser.ml"
+# 22539 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22586,17 +22581,17 @@ module Tables = struct
let _v : (Parsetree.module_type) = let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 22592 "parsing/parser.ml"
+# 22587 "parsing/parser.ml"
in
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1604 "parsing/parser.mly"
+# 1606 "parsing/parser.mly"
( unclosed "sig" _loc__1_ "end" _loc__4_ )
-# 22600 "parsing/parser.ml"
+# 22595 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22627,9 +22622,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_type) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1606 "parsing/parser.mly"
+# 1608 "parsing/parser.mly"
( expecting _loc__1_ "sig" )
-# 22633 "parsing/parser.ml"
+# 22628 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22682,30 +22677,30 @@ module Tables = struct
let _v : (Parsetree.module_type) = let args =
let _1 = _1_inlined2 in
-# 1272 "parsing/parser.mly"
+# 1274 "parsing/parser.mly"
( _1 )
-# 22688 "parsing/parser.ml"
+# 22683 "parsing/parser.ml"
in
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 22696 "parsing/parser.ml"
+# 22691 "parsing/parser.ml"
in
let _endpos = _endpos_mty_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1610 "parsing/parser.mly"
+# 1612 "parsing/parser.mly"
( wrap_mty_attrs ~loc:_sloc attrs (
List.fold_left (fun acc (startpos, arg) ->
mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc))
) mty args
) )
-# 22709 "parsing/parser.ml"
+# 22704 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22758,18 +22753,18 @@ module Tables = struct
let _v : (Parsetree.module_type) = let _4 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 22764 "parsing/parser.ml"
+# 22759 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1616 "parsing/parser.mly"
+# 1618 "parsing/parser.mly"
( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) )
-# 22773 "parsing/parser.ml"
+# 22768 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22806,9 +22801,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.module_type) =
-# 1618 "parsing/parser.mly"
+# 1620 "parsing/parser.mly"
( _2 )
-# 22812 "parsing/parser.ml"
+# 22807 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22847,9 +22842,9 @@ module Tables = struct
let _v : (Parsetree.module_type) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1620 "parsing/parser.mly"
+# 1622 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__3_ )
-# 22853 "parsing/parser.ml"
+# 22848 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22879,9 +22874,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_type) =
-# 1622 "parsing/parser.mly"
+# 1624 "parsing/parser.mly"
( Mty.attr _1 _2 )
-# 22885 "parsing/parser.ml"
+# 22880 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22910,30 +22905,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 22916 "parsing/parser.ml"
+# 22911 "parsing/parser.ml"
in
-# 1625 "parsing/parser.mly"
+# 1627 "parsing/parser.mly"
( Pmty_ident _1 )
-# 22922 "parsing/parser.ml"
+# 22917 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 937 "parsing/parser.mly"
+# 939 "parsing/parser.mly"
( mkmty ~loc:_sloc _1 )
-# 22931 "parsing/parser.ml"
+# 22926 "parsing/parser.ml"
in
-# 1638 "parsing/parser.mly"
+# 1640 "parsing/parser.mly"
( _1 )
-# 22937 "parsing/parser.ml"
+# 22932 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -22978,24 +22973,24 @@ module Tables = struct
let _endpos = _endpos__4_ in
let _v : (Parsetree.module_type) = let _1 =
let _1 =
-# 1627 "parsing/parser.mly"
+# 1629 "parsing/parser.mly"
( Pmty_functor(Unit, _4) )
-# 22984 "parsing/parser.ml"
+# 22979 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 937 "parsing/parser.mly"
+# 939 "parsing/parser.mly"
( mkmty ~loc:_sloc _1 )
-# 22993 "parsing/parser.ml"
+# 22988 "parsing/parser.ml"
in
-# 1638 "parsing/parser.mly"
+# 1640 "parsing/parser.mly"
( _1 )
-# 22999 "parsing/parser.ml"
+# 22994 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23033,24 +23028,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.module_type) = let _1 =
let _1 =
-# 1630 "parsing/parser.mly"
+# 1632 "parsing/parser.mly"
( Pmty_functor(Named (mknoloc None, _1), _3) )
-# 23039 "parsing/parser.ml"
+# 23034 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 937 "parsing/parser.mly"
+# 939 "parsing/parser.mly"
( mkmty ~loc:_sloc _1 )
-# 23048 "parsing/parser.ml"
+# 23043 "parsing/parser.ml"
in
-# 1638 "parsing/parser.mly"
+# 1640 "parsing/parser.mly"
( _1 )
-# 23054 "parsing/parser.ml"
+# 23049 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23092,18 +23087,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 23096 "parsing/parser.ml"
+# 23091 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 23101 "parsing/parser.ml"
+# 23096 "parsing/parser.ml"
in
-# 1632 "parsing/parser.mly"
+# 1634 "parsing/parser.mly"
( Pmty_with(_1, _3) )
-# 23107 "parsing/parser.ml"
+# 23102 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_xs_ in
@@ -23111,15 +23106,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 937 "parsing/parser.mly"
+# 939 "parsing/parser.mly"
( mkmty ~loc:_sloc _1 )
-# 23117 "parsing/parser.ml"
+# 23112 "parsing/parser.ml"
in
-# 1638 "parsing/parser.mly"
+# 1640 "parsing/parser.mly"
( _1 )
-# 23123 "parsing/parser.ml"
+# 23118 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23143,23 +23138,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.module_type) = let _1 =
let _1 =
-# 1636 "parsing/parser.mly"
+# 1638 "parsing/parser.mly"
( Pmty_extension _1 )
-# 23149 "parsing/parser.ml"
+# 23144 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 937 "parsing/parser.mly"
+# 939 "parsing/parser.mly"
( mkmty ~loc:_sloc _1 )
-# 23157 "parsing/parser.ml"
+# 23152 "parsing/parser.ml"
in
-# 1638 "parsing/parser.mly"
+# 1640 "parsing/parser.mly"
( _1 )
-# 23163 "parsing/parser.ml"
+# 23158 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23226,9 +23221,9 @@ module Tables = struct
let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 23232 "parsing/parser.ml"
+# 23227 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -23238,31 +23233,31 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 23244 "parsing/parser.ml"
+# 23239 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 23252 "parsing/parser.ml"
+# 23247 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1548 "parsing/parser.mly"
+# 1550 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Mtd.mk id ?typ ~attrs ~loc ~docs, ext
)
-# 23266 "parsing/parser.ml"
+# 23261 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23336,9 +23331,9 @@ module Tables = struct
let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 23342 "parsing/parser.ml"
+# 23337 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -23348,31 +23343,31 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 23354 "parsing/parser.ml"
+# 23349 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 23362 "parsing/parser.ml"
+# 23357 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1814 "parsing/parser.mly"
+# 1816 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Mtd.mk id ~typ ~attrs ~loc ~docs, ext
)
-# 23376 "parsing/parser.ml"
+# 23371 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23395,9 +23390,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3651 "parsing/parser.mly"
+# 3646 "parsing/parser.mly"
( _1 )
-# 23401 "parsing/parser.ml"
+# 23396 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23413,9 +23408,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.mutable_flag) =
-# 3732 "parsing/parser.mly"
+# 3727 "parsing/parser.mly"
( Immutable )
-# 23419 "parsing/parser.ml"
+# 23414 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23438,9 +23433,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.mutable_flag) =
-# 3733 "parsing/parser.mly"
+# 3728 "parsing/parser.mly"
( Mutable )
-# 23444 "parsing/parser.ml"
+# 23439 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23456,9 +23451,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) =
-# 3741 "parsing/parser.mly"
+# 3736 "parsing/parser.mly"
( Immutable, Concrete )
-# 23462 "parsing/parser.ml"
+# 23457 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23481,9 +23476,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) =
-# 3743 "parsing/parser.mly"
+# 3738 "parsing/parser.mly"
( Mutable, Concrete )
-# 23487 "parsing/parser.ml"
+# 23482 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23506,9 +23501,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) =
-# 3745 "parsing/parser.mly"
+# 3740 "parsing/parser.mly"
( Immutable, Virtual )
-# 23512 "parsing/parser.ml"
+# 23507 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23538,9 +23533,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) =
-# 3748 "parsing/parser.mly"
+# 3743 "parsing/parser.mly"
( Mutable, Virtual )
-# 23544 "parsing/parser.ml"
+# 23539 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23570,9 +23565,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) =
-# 3748 "parsing/parser.mly"
+# 3743 "parsing/parser.mly"
( Mutable, Virtual )
-# 23576 "parsing/parser.ml"
+# 23571 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23602,9 +23597,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.label) =
-# 3703 "parsing/parser.mly"
+# 3698 "parsing/parser.mly"
( _2 )
-# 23608 "parsing/parser.ml"
+# 23603 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23623,9 +23618,9 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 23629 "parsing/parser.ml"
+# 23624 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -23635,15 +23630,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 23641 "parsing/parser.ml"
+# 23636 "parsing/parser.ml"
in
# 221 "<standard.mly>"
( [ x ] )
-# 23647 "parsing/parser.ml"
+# 23642 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23669,9 +23664,9 @@ module Tables = struct
} = _menhir_stack in
let xs : (string Asttypes.loc list) = Obj.magic xs in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 23675 "parsing/parser.ml"
+# 23670 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -23681,15 +23676,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 23687 "parsing/parser.ml"
+# 23682 "parsing/parser.ml"
in
# 223 "<standard.mly>"
( x :: xs )
-# 23693 "parsing/parser.ml"
+# 23688 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23708,22 +23703,22 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let s : (
-# 748 "parsing/parser.mly"
+# 750 "parsing/parser.mly"
(string * Location.t * string option)
-# 23714 "parsing/parser.ml"
+# 23709 "parsing/parser.ml"
) = Obj.magic s in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_s_ in
let _endpos = _endpos_s_ in
let _v : (string list) = let x =
-# 3699 "parsing/parser.mly"
+# 3694 "parsing/parser.mly"
( let body, _, _ = s in body )
-# 23722 "parsing/parser.ml"
+# 23717 "parsing/parser.ml"
in
# 221 "<standard.mly>"
( [ x ] )
-# 23727 "parsing/parser.ml"
+# 23722 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23749,22 +23744,22 @@ module Tables = struct
} = _menhir_stack in
let xs : (string list) = Obj.magic xs in
let s : (
-# 748 "parsing/parser.mly"
+# 750 "parsing/parser.mly"
(string * Location.t * string option)
-# 23755 "parsing/parser.ml"
+# 23750 "parsing/parser.ml"
) = Obj.magic s in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_s_ in
let _endpos = _endpos_xs_ in
let _v : (string list) = let x =
-# 3699 "parsing/parser.mly"
+# 3694 "parsing/parser.mly"
( let body, _, _ = s in body )
-# 23763 "parsing/parser.ml"
+# 23758 "parsing/parser.ml"
in
# 223 "<standard.mly>"
( x :: xs )
-# 23768 "parsing/parser.ml"
+# 23763 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23787,14 +23782,14 @@ module Tables = struct
let _startpos = _startpos_ty_ in
let _endpos = _endpos_ty_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 23793 "parsing/parser.ml"
+# 23788 "parsing/parser.ml"
in
-# 3014 "parsing/parser.mly"
+# 3009 "parsing/parser.mly"
( (Ptype_abstract, priv, Some ty) )
-# 23798 "parsing/parser.ml"
+# 23793 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23824,14 +23819,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos_ty_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 23830 "parsing/parser.ml"
+# 23825 "parsing/parser.ml"
in
-# 3014 "parsing/parser.mly"
+# 3009 "parsing/parser.mly"
( (Ptype_abstract, priv, Some ty) )
-# 23835 "parsing/parser.ml"
+# 23830 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23854,26 +23849,26 @@ module Tables = struct
let _startpos = _startpos_cs_ in
let _endpos = _endpos_cs_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 23860 "parsing/parser.ml"
+# 23855 "parsing/parser.ml"
in
let oty =
let _1 =
# 124 "<standard.mly>"
( None )
-# 23866 "parsing/parser.ml"
+# 23861 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 23871 "parsing/parser.ml"
+# 23866 "parsing/parser.ml"
in
-# 3018 "parsing/parser.mly"
+# 3013 "parsing/parser.mly"
( (Ptype_variant cs, priv, oty) )
-# 23877 "parsing/parser.ml"
+# 23872 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23903,26 +23898,26 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos_cs_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 23909 "parsing/parser.ml"
+# 23904 "parsing/parser.ml"
in
let oty =
let _1 =
# 124 "<standard.mly>"
( None )
-# 23915 "parsing/parser.ml"
+# 23910 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 23920 "parsing/parser.ml"
+# 23915 "parsing/parser.ml"
in
-# 3018 "parsing/parser.mly"
+# 3013 "parsing/parser.mly"
( (Ptype_variant cs, priv, oty) )
-# 23926 "parsing/parser.ml"
+# 23921 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -23959,33 +23954,33 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_cs_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 23965 "parsing/parser.ml"
+# 23960 "parsing/parser.ml"
in
let oty =
let _1 =
let x =
# 191 "<standard.mly>"
( x )
-# 23972 "parsing/parser.ml"
+# 23967 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 23977 "parsing/parser.ml"
+# 23972 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 23983 "parsing/parser.ml"
+# 23978 "parsing/parser.ml"
in
-# 3018 "parsing/parser.mly"
+# 3013 "parsing/parser.mly"
( (Ptype_variant cs, priv, oty) )
-# 23989 "parsing/parser.ml"
+# 23984 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24029,33 +24024,33 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_cs_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 24035 "parsing/parser.ml"
+# 24030 "parsing/parser.ml"
in
let oty =
let _1 =
let x =
# 191 "<standard.mly>"
( x )
-# 24042 "parsing/parser.ml"
+# 24037 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 24047 "parsing/parser.ml"
+# 24042 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24053 "parsing/parser.ml"
+# 24048 "parsing/parser.ml"
in
-# 3018 "parsing/parser.mly"
+# 3013 "parsing/parser.mly"
( (Ptype_variant cs, priv, oty) )
-# 24059 "parsing/parser.ml"
+# 24054 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24078,26 +24073,26 @@ module Tables = struct
let _startpos = _startpos__3_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 24084 "parsing/parser.ml"
+# 24079 "parsing/parser.ml"
in
let oty =
let _1 =
# 124 "<standard.mly>"
( None )
-# 24090 "parsing/parser.ml"
+# 24085 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24095 "parsing/parser.ml"
+# 24090 "parsing/parser.ml"
in
-# 3022 "parsing/parser.mly"
+# 3017 "parsing/parser.mly"
( (Ptype_open, priv, oty) )
-# 24101 "parsing/parser.ml"
+# 24096 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24127,26 +24122,26 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 24133 "parsing/parser.ml"
+# 24128 "parsing/parser.ml"
in
let oty =
let _1 =
# 124 "<standard.mly>"
( None )
-# 24139 "parsing/parser.ml"
+# 24134 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24144 "parsing/parser.ml"
+# 24139 "parsing/parser.ml"
in
-# 3022 "parsing/parser.mly"
+# 3017 "parsing/parser.mly"
( (Ptype_open, priv, oty) )
-# 24150 "parsing/parser.ml"
+# 24145 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24183,33 +24178,33 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 24189 "parsing/parser.ml"
+# 24184 "parsing/parser.ml"
in
let oty =
let _1 =
let x =
# 191 "<standard.mly>"
( x )
-# 24196 "parsing/parser.ml"
+# 24191 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 24201 "parsing/parser.ml"
+# 24196 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24207 "parsing/parser.ml"
+# 24202 "parsing/parser.ml"
in
-# 3022 "parsing/parser.mly"
+# 3017 "parsing/parser.mly"
( (Ptype_open, priv, oty) )
-# 24213 "parsing/parser.ml"
+# 24208 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24253,33 +24248,33 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 24259 "parsing/parser.ml"
+# 24254 "parsing/parser.ml"
in
let oty =
let _1 =
let x =
# 191 "<standard.mly>"
( x )
-# 24266 "parsing/parser.ml"
+# 24261 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 24271 "parsing/parser.ml"
+# 24266 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24277 "parsing/parser.ml"
+# 24272 "parsing/parser.ml"
in
-# 3022 "parsing/parser.mly"
+# 3017 "parsing/parser.mly"
( (Ptype_open, priv, oty) )
-# 24283 "parsing/parser.ml"
+# 24278 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24316,26 +24311,26 @@ module Tables = struct
let _startpos = _startpos__3_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 24322 "parsing/parser.ml"
+# 24317 "parsing/parser.ml"
in
let oty =
let _1 =
# 124 "<standard.mly>"
( None )
-# 24328 "parsing/parser.ml"
+# 24323 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24333 "parsing/parser.ml"
+# 24328 "parsing/parser.ml"
in
-# 3026 "parsing/parser.mly"
+# 3021 "parsing/parser.mly"
( (Ptype_record ls, priv, oty) )
-# 24339 "parsing/parser.ml"
+# 24334 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24379,26 +24374,26 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 24385 "parsing/parser.ml"
+# 24380 "parsing/parser.ml"
in
let oty =
let _1 =
# 124 "<standard.mly>"
( None )
-# 24391 "parsing/parser.ml"
+# 24386 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24396 "parsing/parser.ml"
+# 24391 "parsing/parser.ml"
in
-# 3026 "parsing/parser.mly"
+# 3021 "parsing/parser.mly"
( (Ptype_record ls, priv, oty) )
-# 24402 "parsing/parser.ml"
+# 24397 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24449,33 +24444,33 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 24455 "parsing/parser.ml"
+# 24450 "parsing/parser.ml"
in
let oty =
let _1 =
let x =
# 191 "<standard.mly>"
( x )
-# 24462 "parsing/parser.ml"
+# 24457 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 24467 "parsing/parser.ml"
+# 24462 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24473 "parsing/parser.ml"
+# 24468 "parsing/parser.ml"
in
-# 3026 "parsing/parser.mly"
+# 3021 "parsing/parser.mly"
( (Ptype_record ls, priv, oty) )
-# 24479 "parsing/parser.ml"
+# 24474 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24533,33 +24528,33 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 24539 "parsing/parser.ml"
+# 24534 "parsing/parser.ml"
in
let oty =
let _1 =
let x =
# 191 "<standard.mly>"
( x )
-# 24546 "parsing/parser.ml"
+# 24541 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 24551 "parsing/parser.ml"
+# 24546 "parsing/parser.ml"
in
-# 3030 "parsing/parser.mly"
+# 3025 "parsing/parser.mly"
( _1 )
-# 24557 "parsing/parser.ml"
+# 24552 "parsing/parser.ml"
in
-# 3026 "parsing/parser.mly"
+# 3021 "parsing/parser.mly"
( (Ptype_record ls, priv, oty) )
-# 24563 "parsing/parser.ml"
+# 24558 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24612,37 +24607,37 @@ module Tables = struct
let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 24618 "parsing/parser.ml"
+# 24613 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined2_ in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 24627 "parsing/parser.ml"
+# 24622 "parsing/parser.ml"
in
let override =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 24633 "parsing/parser.ml"
+# 24628 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1567 "parsing/parser.mly"
+# 1569 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Opn.mk me ~override ~attrs ~loc ~docs, ext
)
-# 24646 "parsing/parser.ml"
+# 24641 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24702,37 +24697,37 @@ module Tables = struct
let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 24708 "parsing/parser.ml"
+# 24703 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
let attrs1 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 24717 "parsing/parser.ml"
+# 24712 "parsing/parser.ml"
in
let override =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 24723 "parsing/parser.ml"
+# 24718 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1567 "parsing/parser.mly"
+# 1569 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Opn.mk me ~override ~attrs ~loc ~docs, ext
)
-# 24736 "parsing/parser.ml"
+# 24731 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24785,9 +24780,9 @@ module Tables = struct
let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 24791 "parsing/parser.ml"
+# 24786 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -24797,36 +24792,36 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 24803 "parsing/parser.ml"
+# 24798 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 24811 "parsing/parser.ml"
+# 24806 "parsing/parser.ml"
in
let override =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 24817 "parsing/parser.ml"
+# 24812 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1582 "parsing/parser.mly"
+# 1584 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Opn.mk id ~override ~attrs ~loc ~docs, ext
)
-# 24830 "parsing/parser.ml"
+# 24825 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24886,9 +24881,9 @@ module Tables = struct
let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 24892 "parsing/parser.ml"
+# 24887 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
@@ -24898,36 +24893,36 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 24904 "parsing/parser.ml"
+# 24899 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined2 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 24912 "parsing/parser.ml"
+# 24907 "parsing/parser.ml"
in
let override =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 24918 "parsing/parser.ml"
+# 24913 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1582 "parsing/parser.mly"
+# 1584 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Opn.mk id ~override ~attrs ~loc ~docs, ext
)
-# 24931 "parsing/parser.ml"
+# 24926 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24946,17 +24941,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 734 "parsing/parser.mly"
+# 736 "parsing/parser.mly"
(string)
-# 24952 "parsing/parser.ml"
+# 24947 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3567 "parsing/parser.mly"
+# 3562 "parsing/parser.mly"
( _1 )
-# 24960 "parsing/parser.ml"
+# 24955 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -24975,17 +24970,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 692 "parsing/parser.mly"
+# 694 "parsing/parser.mly"
(string)
-# 24981 "parsing/parser.ml"
+# 24976 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3568 "parsing/parser.mly"
+# 3563 "parsing/parser.mly"
( _1 )
-# 24989 "parsing/parser.ml"
+# 24984 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25004,17 +24999,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 693 "parsing/parser.mly"
+# 695 "parsing/parser.mly"
(string)
-# 25010 "parsing/parser.ml"
+# 25005 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3569 "parsing/parser.mly"
+# 3564 "parsing/parser.mly"
( _1 )
-# 25018 "parsing/parser.ml"
+# 25013 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25054,17 +25049,17 @@ module Tables = struct
let _3 : (string) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 25060 "parsing/parser.ml"
+# 25055 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Asttypes.label) =
-# 3570 "parsing/parser.mly"
+# 3565 "parsing/parser.mly"
( "."^ _1 ^"(" ^ _3 ^ ")" )
-# 25068 "parsing/parser.ml"
+# 25063 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25111,17 +25106,17 @@ module Tables = struct
let _3 : (string) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 25117 "parsing/parser.ml"
+# 25112 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Asttypes.label) =
-# 3571 "parsing/parser.mly"
+# 3566 "parsing/parser.mly"
( "."^ _1 ^ "(" ^ _3 ^ ")<-" )
-# 25125 "parsing/parser.ml"
+# 25120 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25161,17 +25156,17 @@ module Tables = struct
let _3 : (string) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 25167 "parsing/parser.ml"
+# 25162 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Asttypes.label) =
-# 3572 "parsing/parser.mly"
+# 3567 "parsing/parser.mly"
( "."^ _1 ^"[" ^ _3 ^ "]" )
-# 25175 "parsing/parser.ml"
+# 25170 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25218,17 +25213,17 @@ module Tables = struct
let _3 : (string) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 25224 "parsing/parser.ml"
+# 25219 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Asttypes.label) =
-# 3573 "parsing/parser.mly"
+# 3568 "parsing/parser.mly"
( "."^ _1 ^ "[" ^ _3 ^ "]<-" )
-# 25232 "parsing/parser.ml"
+# 25227 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25268,17 +25263,17 @@ module Tables = struct
let _3 : (string) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 25274 "parsing/parser.ml"
+# 25269 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Asttypes.label) =
-# 3574 "parsing/parser.mly"
+# 3569 "parsing/parser.mly"
( "."^ _1 ^"{" ^ _3 ^ "}" )
-# 25282 "parsing/parser.ml"
+# 25277 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25325,17 +25320,17 @@ module Tables = struct
let _3 : (string) = Obj.magic _3 in
let _2 : unit = Obj.magic _2 in
let _1 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 25331 "parsing/parser.ml"
+# 25326 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Asttypes.label) =
-# 3575 "parsing/parser.mly"
+# 3570 "parsing/parser.mly"
( "."^ _1 ^ "{" ^ _3 ^ "}<-" )
-# 25339 "parsing/parser.ml"
+# 25334 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25354,17 +25349,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 745 "parsing/parser.mly"
+# 747 "parsing/parser.mly"
(string)
-# 25360 "parsing/parser.ml"
+# 25355 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3576 "parsing/parser.mly"
+# 3571 "parsing/parser.mly"
( _1 )
-# 25368 "parsing/parser.ml"
+# 25363 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25387,9 +25382,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3577 "parsing/parser.mly"
+# 3572 "parsing/parser.mly"
( "!" )
-# 25393 "parsing/parser.ml"
+# 25388 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25408,22 +25403,22 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let op : (
-# 686 "parsing/parser.mly"
+# 688 "parsing/parser.mly"
(string)
-# 25414 "parsing/parser.ml"
+# 25409 "parsing/parser.ml"
) = Obj.magic op in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_op_ in
let _endpos = _endpos_op_ in
let _v : (Asttypes.label) = let _1 =
-# 3581 "parsing/parser.mly"
+# 3576 "parsing/parser.mly"
( op )
-# 25422 "parsing/parser.ml"
+# 25417 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25427 "parsing/parser.ml"
+# 25422 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25442,22 +25437,22 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let op : (
-# 687 "parsing/parser.mly"
+# 689 "parsing/parser.mly"
(string)
-# 25448 "parsing/parser.ml"
+# 25443 "parsing/parser.ml"
) = Obj.magic op in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_op_ in
let _endpos = _endpos_op_ in
let _v : (Asttypes.label) = let _1 =
-# 3582 "parsing/parser.mly"
+# 3577 "parsing/parser.mly"
( op )
-# 25456 "parsing/parser.ml"
+# 25451 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25461 "parsing/parser.ml"
+# 25456 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25476,22 +25471,22 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let op : (
-# 688 "parsing/parser.mly"
+# 690 "parsing/parser.mly"
(string)
-# 25482 "parsing/parser.ml"
+# 25477 "parsing/parser.ml"
) = Obj.magic op in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_op_ in
let _endpos = _endpos_op_ in
let _v : (Asttypes.label) = let _1 =
-# 3583 "parsing/parser.mly"
+# 3578 "parsing/parser.mly"
( op )
-# 25490 "parsing/parser.ml"
+# 25485 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25495 "parsing/parser.ml"
+# 25490 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25510,22 +25505,22 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let op : (
-# 689 "parsing/parser.mly"
+# 691 "parsing/parser.mly"
(string)
-# 25516 "parsing/parser.ml"
+# 25511 "parsing/parser.ml"
) = Obj.magic op in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_op_ in
let _endpos = _endpos_op_ in
let _v : (Asttypes.label) = let _1 =
-# 3584 "parsing/parser.mly"
+# 3579 "parsing/parser.mly"
( op )
-# 25524 "parsing/parser.ml"
+# 25519 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25529 "parsing/parser.ml"
+# 25524 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25544,22 +25539,22 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let op : (
-# 690 "parsing/parser.mly"
+# 692 "parsing/parser.mly"
(string)
-# 25550 "parsing/parser.ml"
+# 25545 "parsing/parser.ml"
) = Obj.magic op in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos_op_ in
let _endpos = _endpos_op_ in
let _v : (Asttypes.label) = let _1 =
-# 3585 "parsing/parser.mly"
+# 3580 "parsing/parser.mly"
( op )
-# 25558 "parsing/parser.ml"
+# 25553 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25563 "parsing/parser.ml"
+# 25558 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25582,14 +25577,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3586 "parsing/parser.mly"
+# 3581 "parsing/parser.mly"
("+")
-# 25588 "parsing/parser.ml"
+# 25583 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25593 "parsing/parser.ml"
+# 25588 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25612,14 +25607,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3587 "parsing/parser.mly"
+# 3582 "parsing/parser.mly"
("+.")
-# 25618 "parsing/parser.ml"
+# 25613 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25623 "parsing/parser.ml"
+# 25618 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25642,14 +25637,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3588 "parsing/parser.mly"
+# 3583 "parsing/parser.mly"
("+=")
-# 25648 "parsing/parser.ml"
+# 25643 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25653 "parsing/parser.ml"
+# 25648 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25672,14 +25667,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3589 "parsing/parser.mly"
+# 3584 "parsing/parser.mly"
("-")
-# 25678 "parsing/parser.ml"
+# 25673 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25683 "parsing/parser.ml"
+# 25678 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25702,14 +25697,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3590 "parsing/parser.mly"
+# 3585 "parsing/parser.mly"
("-.")
-# 25708 "parsing/parser.ml"
+# 25703 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25713 "parsing/parser.ml"
+# 25708 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25732,14 +25727,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3591 "parsing/parser.mly"
+# 3586 "parsing/parser.mly"
("*")
-# 25738 "parsing/parser.ml"
+# 25733 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25743 "parsing/parser.ml"
+# 25738 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25762,14 +25757,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3592 "parsing/parser.mly"
+# 3587 "parsing/parser.mly"
("%")
-# 25768 "parsing/parser.ml"
+# 25763 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25773 "parsing/parser.ml"
+# 25768 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25792,14 +25787,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3593 "parsing/parser.mly"
+# 3588 "parsing/parser.mly"
("=")
-# 25798 "parsing/parser.ml"
+# 25793 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25803 "parsing/parser.ml"
+# 25798 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25822,14 +25817,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3594 "parsing/parser.mly"
+# 3589 "parsing/parser.mly"
("<")
-# 25828 "parsing/parser.ml"
+# 25823 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25833 "parsing/parser.ml"
+# 25828 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25852,14 +25847,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3595 "parsing/parser.mly"
+# 3590 "parsing/parser.mly"
(">")
-# 25858 "parsing/parser.ml"
+# 25853 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25863 "parsing/parser.ml"
+# 25858 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25882,14 +25877,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3596 "parsing/parser.mly"
+# 3591 "parsing/parser.mly"
("or")
-# 25888 "parsing/parser.ml"
+# 25883 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25893 "parsing/parser.ml"
+# 25888 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25912,14 +25907,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3597 "parsing/parser.mly"
+# 3592 "parsing/parser.mly"
("||")
-# 25918 "parsing/parser.ml"
+# 25913 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25923 "parsing/parser.ml"
+# 25918 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25942,14 +25937,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3598 "parsing/parser.mly"
+# 3593 "parsing/parser.mly"
("&")
-# 25948 "parsing/parser.ml"
+# 25943 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25953 "parsing/parser.ml"
+# 25948 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -25972,14 +25967,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3599 "parsing/parser.mly"
+# 3594 "parsing/parser.mly"
("&&")
-# 25978 "parsing/parser.ml"
+# 25973 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 25983 "parsing/parser.ml"
+# 25978 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26002,14 +25997,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) = let _1 =
-# 3600 "parsing/parser.mly"
+# 3595 "parsing/parser.mly"
(":=")
-# 26008 "parsing/parser.ml"
+# 26003 "parsing/parser.ml"
in
-# 3578 "parsing/parser.mly"
+# 3573 "parsing/parser.mly"
( _1 )
-# 26013 "parsing/parser.ml"
+# 26008 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26032,9 +26027,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (bool) =
-# 3482 "parsing/parser.mly"
+# 3477 "parsing/parser.mly"
( true )
-# 26038 "parsing/parser.ml"
+# 26033 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26050,9 +26045,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (bool) =
-# 3483 "parsing/parser.mly"
+# 3478 "parsing/parser.mly"
( false )
-# 26056 "parsing/parser.ml"
+# 26051 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26070,7 +26065,7 @@ module Tables = struct
let _v : (unit option) =
# 114 "<standard.mly>"
( None )
-# 26074 "parsing/parser.ml"
+# 26069 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26095,7 +26090,7 @@ module Tables = struct
let _v : (unit option) =
# 116 "<standard.mly>"
( Some x )
-# 26099 "parsing/parser.ml"
+# 26094 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26113,7 +26108,7 @@ module Tables = struct
let _v : (unit option) =
# 114 "<standard.mly>"
( None )
-# 26117 "parsing/parser.ml"
+# 26112 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26138,7 +26133,7 @@ module Tables = struct
let _v : (unit option) =
# 116 "<standard.mly>"
( Some x )
-# 26142 "parsing/parser.ml"
+# 26137 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26156,7 +26151,7 @@ module Tables = struct
let _v : (string Asttypes.loc option) =
# 114 "<standard.mly>"
( None )
-# 26160 "parsing/parser.ml"
+# 26155 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26181,9 +26176,9 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 26187 "parsing/parser.ml"
+# 26182 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -26196,21 +26191,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 26202 "parsing/parser.ml"
+# 26197 "parsing/parser.ml"
in
# 183 "<standard.mly>"
( x )
-# 26208 "parsing/parser.ml"
+# 26203 "parsing/parser.ml"
in
# 116 "<standard.mly>"
( Some x )
-# 26214 "parsing/parser.ml"
+# 26209 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26228,7 +26223,7 @@ module Tables = struct
let _v : (Parsetree.core_type option) =
# 114 "<standard.mly>"
( None )
-# 26232 "parsing/parser.ml"
+# 26227 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26260,12 +26255,12 @@ module Tables = struct
let _v : (Parsetree.core_type option) = let x =
# 183 "<standard.mly>"
( x )
-# 26264 "parsing/parser.ml"
+# 26259 "parsing/parser.ml"
in
# 116 "<standard.mly>"
( Some x )
-# 26269 "parsing/parser.ml"
+# 26264 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26283,7 +26278,7 @@ module Tables = struct
let _v : (Parsetree.expression option) =
# 114 "<standard.mly>"
( None )
-# 26287 "parsing/parser.ml"
+# 26282 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26315,12 +26310,12 @@ module Tables = struct
let _v : (Parsetree.expression option) = let x =
# 183 "<standard.mly>"
( x )
-# 26319 "parsing/parser.ml"
+# 26314 "parsing/parser.ml"
in
# 116 "<standard.mly>"
( Some x )
-# 26324 "parsing/parser.ml"
+# 26319 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26338,7 +26333,7 @@ module Tables = struct
let _v : (Parsetree.module_type option) =
# 114 "<standard.mly>"
( None )
-# 26342 "parsing/parser.ml"
+# 26337 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26370,12 +26365,12 @@ module Tables = struct
let _v : (Parsetree.module_type option) = let x =
# 183 "<standard.mly>"
( x )
-# 26374 "parsing/parser.ml"
+# 26369 "parsing/parser.ml"
in
# 116 "<standard.mly>"
( Some x )
-# 26379 "parsing/parser.ml"
+# 26374 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26393,7 +26388,7 @@ module Tables = struct
let _v : (Parsetree.pattern option) =
# 114 "<standard.mly>"
( None )
-# 26397 "parsing/parser.ml"
+# 26392 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26425,12 +26420,12 @@ module Tables = struct
let _v : (Parsetree.pattern option) = let x =
# 183 "<standard.mly>"
( x )
-# 26429 "parsing/parser.ml"
+# 26424 "parsing/parser.ml"
in
# 116 "<standard.mly>"
( Some x )
-# 26434 "parsing/parser.ml"
+# 26429 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26448,7 +26443,7 @@ module Tables = struct
let _v : (Parsetree.expression option) =
# 114 "<standard.mly>"
( None )
-# 26452 "parsing/parser.ml"
+# 26447 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26480,12 +26475,12 @@ module Tables = struct
let _v : (Parsetree.expression option) = let x =
# 183 "<standard.mly>"
( x )
-# 26484 "parsing/parser.ml"
+# 26479 "parsing/parser.ml"
in
# 116 "<standard.mly>"
( Some x )
-# 26489 "parsing/parser.ml"
+# 26484 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26503,7 +26498,7 @@ module Tables = struct
let _v : ((Parsetree.core_type option * Parsetree.core_type option) option) =
# 114 "<standard.mly>"
( None )
-# 26507 "parsing/parser.ml"
+# 26502 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26528,7 +26523,7 @@ module Tables = struct
let _v : ((Parsetree.core_type option * Parsetree.core_type option) option) =
# 116 "<standard.mly>"
( Some x )
-# 26532 "parsing/parser.ml"
+# 26527 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26547,17 +26542,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 727 "parsing/parser.mly"
+# 729 "parsing/parser.mly"
(string)
-# 26553 "parsing/parser.ml"
+# 26548 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3787 "parsing/parser.mly"
+# 3782 "parsing/parser.mly"
( _1 )
-# 26561 "parsing/parser.ml"
+# 26556 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26589,18 +26584,18 @@ module Tables = struct
} = _menhir_stack in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 26595 "parsing/parser.ml"
+# 26590 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (string) =
-# 3788 "parsing/parser.mly"
+# 3783 "parsing/parser.mly"
( _2 )
-# 26604 "parsing/parser.ml"
+# 26599 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26654,9 +26649,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1344 "parsing/parser.mly"
+# 1346 "parsing/parser.mly"
( mkmod ~loc:_sloc (Pmod_constraint(me, mty)) )
-# 26660 "parsing/parser.ml"
+# 26655 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26709,9 +26704,9 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1346 "parsing/parser.mly"
+# 1348 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__5_ )
-# 26715 "parsing/parser.ml"
+# 26710 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26748,9 +26743,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.module_expr) =
-# 1349 "parsing/parser.mly"
+# 1351 "parsing/parser.mly"
( me (* TODO consider reloc *) )
-# 26754 "parsing/parser.ml"
+# 26749 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26789,9 +26784,9 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1351 "parsing/parser.mly"
+# 1353 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__3_ )
-# 26795 "parsing/parser.ml"
+# 26790 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26842,25 +26837,25 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.module_expr) = let e =
-# 1368 "parsing/parser.mly"
+# 1370 "parsing/parser.mly"
( e )
-# 26848 "parsing/parser.ml"
+# 26843 "parsing/parser.ml"
in
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 26855 "parsing/parser.ml"
+# 26850 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1355 "parsing/parser.mly"
+# 1357 "parsing/parser.mly"
( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
-# 26864 "parsing/parser.ml"
+# 26859 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -26931,11 +26926,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 26939 "parsing/parser.ml"
+# 26934 "parsing/parser.ml"
in
let _endpos_ty_ = _endpos__1_ in
@@ -26943,26 +26938,26 @@ module Tables = struct
let _startpos = _startpos_e_ in
let _loc = (_startpos, _endpos) in
-# 1370 "parsing/parser.mly"
+# 1372 "parsing/parser.mly"
( ghexp ~loc:_loc (Pexp_constraint (e, ty)) )
-# 26949 "parsing/parser.ml"
+# 26944 "parsing/parser.ml"
in
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 26957 "parsing/parser.ml"
+# 26952 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1355 "parsing/parser.mly"
+# 1357 "parsing/parser.mly"
( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
-# 26966 "parsing/parser.ml"
+# 26961 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27048,11 +27043,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 27056 "parsing/parser.ml"
+# 27051 "parsing/parser.ml"
in
let _endpos_ty2_ = _endpos__1_inlined1_ in
@@ -27061,37 +27056,37 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 27069 "parsing/parser.ml"
+# 27064 "parsing/parser.ml"
in
let _endpos = _endpos_ty2_ in
let _startpos = _startpos_e_ in
let _loc = (_startpos, _endpos) in
-# 1372 "parsing/parser.mly"
+# 1374 "parsing/parser.mly"
( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) )
-# 27078 "parsing/parser.ml"
+# 27073 "parsing/parser.ml"
in
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 27086 "parsing/parser.ml"
+# 27081 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1355 "parsing/parser.mly"
+# 1357 "parsing/parser.mly"
( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
-# 27095 "parsing/parser.ml"
+# 27090 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27162,11 +27157,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 27170 "parsing/parser.ml"
+# 27165 "parsing/parser.ml"
in
let _endpos_ty2_ = _endpos__1_ in
@@ -27174,26 +27169,26 @@ module Tables = struct
let _startpos = _startpos_e_ in
let _loc = (_startpos, _endpos) in
-# 1374 "parsing/parser.mly"
+# 1376 "parsing/parser.mly"
( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) )
-# 27180 "parsing/parser.ml"
+# 27175 "parsing/parser.ml"
in
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 27188 "parsing/parser.ml"
+# 27183 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1355 "parsing/parser.mly"
+# 1357 "parsing/parser.mly"
( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
-# 27197 "parsing/parser.ml"
+# 27192 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27253,17 +27248,17 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let _3 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 27259 "parsing/parser.ml"
+# 27254 "parsing/parser.ml"
in
let _loc__6_ = (_startpos__6_, _endpos__6_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1357 "parsing/parser.mly"
+# 1359 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__6_ )
-# 27267 "parsing/parser.ml"
+# 27262 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27323,17 +27318,17 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let _3 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 27329 "parsing/parser.ml"
+# 27324 "parsing/parser.ml"
in
let _loc__6_ = (_startpos__6_, _endpos__6_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1359 "parsing/parser.mly"
+# 1361 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__6_ )
-# 27337 "parsing/parser.ml"
+# 27332 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27386,17 +27381,17 @@ module Tables = struct
let _v : (Parsetree.module_expr) = let _3 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 27392 "parsing/parser.ml"
+# 27387 "parsing/parser.ml"
in
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1361 "parsing/parser.mly"
+# 1363 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__5_ )
-# 27400 "parsing/parser.ml"
+# 27395 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27426,9 +27421,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Longident.t) =
-# 1262 "parsing/parser.mly"
+# 1264 "parsing/parser.mly"
( _1 )
-# 27432 "parsing/parser.ml"
+# 27427 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27458,9 +27453,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Longident.t) =
-# 1247 "parsing/parser.mly"
+# 1249 "parsing/parser.mly"
( _1 )
-# 27464 "parsing/parser.ml"
+# 27459 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27490,9 +27485,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type) =
-# 1222 "parsing/parser.mly"
+# 1224 "parsing/parser.mly"
( _1 )
-# 27496 "parsing/parser.ml"
+# 27491 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27522,9 +27517,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) =
-# 1227 "parsing/parser.mly"
+# 1229 "parsing/parser.mly"
( _1 )
-# 27528 "parsing/parser.ml"
+# 27523 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27554,9 +27549,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Longident.t) =
-# 1252 "parsing/parser.mly"
+# 1254 "parsing/parser.mly"
( _1 )
-# 27560 "parsing/parser.ml"
+# 27555 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27586,9 +27581,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Longident.t) =
-# 1257 "parsing/parser.mly"
+# 1259 "parsing/parser.mly"
( _1 )
-# 27592 "parsing/parser.ml"
+# 27587 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27618,9 +27613,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_expr) =
-# 1217 "parsing/parser.mly"
+# 1219 "parsing/parser.mly"
( _1 )
-# 27624 "parsing/parser.ml"
+# 27619 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27650,9 +27645,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.module_type) =
-# 1212 "parsing/parser.mly"
+# 1214 "parsing/parser.mly"
( _1 )
-# 27656 "parsing/parser.ml"
+# 27651 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27682,9 +27677,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Longident.t) =
-# 1237 "parsing/parser.mly"
+# 1239 "parsing/parser.mly"
( _1 )
-# 27688 "parsing/parser.ml"
+# 27683 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27714,9 +27709,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.pattern) =
-# 1232 "parsing/parser.mly"
+# 1234 "parsing/parser.mly"
( _1 )
-# 27720 "parsing/parser.ml"
+# 27715 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27746,9 +27741,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Longident.t) =
-# 1242 "parsing/parser.mly"
+# 1244 "parsing/parser.mly"
( _1 )
-# 27752 "parsing/parser.ml"
+# 27747 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27790,15 +27785,15 @@ module Tables = struct
let _loc__2_ = (_startpos__2_, _endpos__2_) in
let _sloc = (_symbolstartpos, _endpos) in
-# 2743 "parsing/parser.mly"
+# 2738 "parsing/parser.mly"
( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) )
-# 27796 "parsing/parser.ml"
+# 27791 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 27802 "parsing/parser.ml"
+# 27797 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27828,14 +27823,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.pattern) = let _1 =
-# 2745 "parsing/parser.mly"
+# 2740 "parsing/parser.mly"
( Pat.attr _1 _2 )
-# 27834 "parsing/parser.ml"
+# 27829 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 27839 "parsing/parser.ml"
+# 27834 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27858,14 +27853,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
-# 2747 "parsing/parser.mly"
+# 2742 "parsing/parser.mly"
( _1 )
-# 27864 "parsing/parser.ml"
+# 27859 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 27869 "parsing/parser.ml"
+# 27864 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27910,15 +27905,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 27916 "parsing/parser.ml"
+# 27911 "parsing/parser.ml"
in
-# 2750 "parsing/parser.mly"
+# 2745 "parsing/parser.mly"
( Ppat_alias(_1, _3) )
-# 27922 "parsing/parser.ml"
+# 27917 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -27926,21 +27921,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 27932 "parsing/parser.ml"
+# 27927 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 27938 "parsing/parser.ml"
+# 27933 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 27944 "parsing/parser.ml"
+# 27939 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -27981,9 +27976,9 @@ module Tables = struct
let _1 =
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2752 "parsing/parser.mly"
+# 2747 "parsing/parser.mly"
( expecting _loc__3_ "identifier" )
-# 27987 "parsing/parser.ml"
+# 27982 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -27991,21 +27986,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 27997 "parsing/parser.ml"
+# 27992 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 28003 "parsing/parser.ml"
+# 27998 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 28009 "parsing/parser.ml"
+# 28004 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28030,29 +28025,29 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _1 =
-# 2754 "parsing/parser.mly"
+# 2749 "parsing/parser.mly"
( Ppat_tuple(List.rev _1) )
-# 28036 "parsing/parser.ml"
+# 28031 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28044 "parsing/parser.ml"
+# 28039 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 28050 "parsing/parser.ml"
+# 28045 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 28056 "parsing/parser.ml"
+# 28051 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28093,9 +28088,9 @@ module Tables = struct
let _1 =
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2756 "parsing/parser.mly"
+# 2751 "parsing/parser.mly"
( expecting _loc__3_ "pattern" )
-# 28099 "parsing/parser.ml"
+# 28094 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -28103,21 +28098,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28109 "parsing/parser.ml"
+# 28104 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 28115 "parsing/parser.ml"
+# 28110 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 28121 "parsing/parser.ml"
+# 28116 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28156,30 +28151,30 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _1 =
-# 2758 "parsing/parser.mly"
+# 2753 "parsing/parser.mly"
( Ppat_or(_1, _3) )
-# 28162 "parsing/parser.ml"
+# 28157 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28171 "parsing/parser.ml"
+# 28166 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 28177 "parsing/parser.ml"
+# 28172 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 28183 "parsing/parser.ml"
+# 28178 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28220,9 +28215,9 @@ module Tables = struct
let _1 =
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2760 "parsing/parser.mly"
+# 2755 "parsing/parser.mly"
( expecting _loc__3_ "pattern" )
-# 28226 "parsing/parser.ml"
+# 28221 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -28230,21 +28225,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28236 "parsing/parser.ml"
+# 28231 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 28242 "parsing/parser.ml"
+# 28237 "parsing/parser.ml"
in
-# 2731 "parsing/parser.mly"
+# 2726 "parsing/parser.mly"
( _1 )
-# 28248 "parsing/parser.ml"
+# 28243 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28292,24 +28287,24 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 28298 "parsing/parser.ml"
+# 28293 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 28304 "parsing/parser.ml"
+# 28299 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2733 "parsing/parser.mly"
+# 2728 "parsing/parser.mly"
( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2)
-# 28313 "parsing/parser.ml"
+# 28308 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28346,9 +28341,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern list) =
-# 2860 "parsing/parser.mly"
+# 2855 "parsing/parser.mly"
( _3 :: _1 )
-# 28352 "parsing/parser.ml"
+# 28347 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28385,9 +28380,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern list) =
-# 2861 "parsing/parser.mly"
+# 2856 "parsing/parser.mly"
( [_3; _1] )
-# 28391 "parsing/parser.ml"
+# 28386 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28425,9 +28420,9 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2862 "parsing/parser.mly"
+# 2857 "parsing/parser.mly"
( expecting _loc__3_ "pattern" )
-# 28431 "parsing/parser.ml"
+# 28426 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28464,9 +28459,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern list) =
-# 2860 "parsing/parser.mly"
+# 2855 "parsing/parser.mly"
( _3 :: _1 )
-# 28470 "parsing/parser.ml"
+# 28465 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28503,9 +28498,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern list) =
-# 2861 "parsing/parser.mly"
+# 2856 "parsing/parser.mly"
( [_3; _1] )
-# 28509 "parsing/parser.ml"
+# 28504 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28543,9 +28538,9 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2862 "parsing/parser.mly"
+# 2857 "parsing/parser.mly"
( expecting _loc__3_ "pattern" )
-# 28549 "parsing/parser.ml"
+# 28544 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28568,9 +28563,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) =
-# 2766 "parsing/parser.mly"
+# 2761 "parsing/parser.mly"
( _1 )
-# 28574 "parsing/parser.ml"
+# 28569 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28606,15 +28601,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 28612 "parsing/parser.ml"
+# 28607 "parsing/parser.ml"
in
-# 2769 "parsing/parser.mly"
+# 2764 "parsing/parser.mly"
( Ppat_construct(_1, Some ([], _2)) )
-# 28618 "parsing/parser.ml"
+# 28613 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
@@ -28622,15 +28617,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28628 "parsing/parser.ml"
+# 28623 "parsing/parser.ml"
in
-# 2775 "parsing/parser.mly"
+# 2770 "parsing/parser.mly"
( _1 )
-# 28634 "parsing/parser.ml"
+# 28629 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28690,24 +28685,24 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let newtypes =
-# 2515 "parsing/parser.mly"
+# 2517 "parsing/parser.mly"
( xs )
-# 28696 "parsing/parser.ml"
+# 28691 "parsing/parser.ml"
in
let constr =
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 28705 "parsing/parser.ml"
+# 28700 "parsing/parser.ml"
in
-# 2772 "parsing/parser.mly"
+# 2767 "parsing/parser.mly"
( Ppat_construct(constr, Some (newtypes, pat)) )
-# 28711 "parsing/parser.ml"
+# 28706 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_pat_ in
@@ -28715,15 +28710,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28721 "parsing/parser.ml"
+# 28716 "parsing/parser.ml"
in
-# 2775 "parsing/parser.mly"
+# 2770 "parsing/parser.mly"
( _1 )
-# 28727 "parsing/parser.ml"
+# 28722 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28754,24 +28749,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2774 "parsing/parser.mly"
+# 2769 "parsing/parser.mly"
( Ppat_variant(_1, Some _2) )
-# 28760 "parsing/parser.ml"
+# 28755 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 28769 "parsing/parser.ml"
+# 28764 "parsing/parser.ml"
in
-# 2775 "parsing/parser.mly"
+# 2770 "parsing/parser.mly"
( _1 )
-# 28775 "parsing/parser.ml"
+# 28770 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28819,24 +28814,24 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 28825 "parsing/parser.ml"
+# 28820 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 28831 "parsing/parser.ml"
+# 28826 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2777 "parsing/parser.mly"
+# 2772 "parsing/parser.mly"
( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2)
-# 28840 "parsing/parser.ml"
+# 28835 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28878,15 +28873,15 @@ module Tables = struct
let _loc__2_ = (_startpos__2_, _endpos__2_) in
let _sloc = (_symbolstartpos, _endpos) in
-# 2743 "parsing/parser.mly"
+# 2738 "parsing/parser.mly"
( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) )
-# 28884 "parsing/parser.ml"
+# 28879 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 28890 "parsing/parser.ml"
+# 28885 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28916,14 +28911,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.pattern) = let _1 =
-# 2745 "parsing/parser.mly"
+# 2740 "parsing/parser.mly"
( Pat.attr _1 _2 )
-# 28922 "parsing/parser.ml"
+# 28917 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 28927 "parsing/parser.ml"
+# 28922 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28946,14 +28941,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
-# 2747 "parsing/parser.mly"
+# 2742 "parsing/parser.mly"
( _1 )
-# 28952 "parsing/parser.ml"
+# 28947 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 28957 "parsing/parser.ml"
+# 28952 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -28998,15 +28993,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 29004 "parsing/parser.ml"
+# 28999 "parsing/parser.ml"
in
-# 2750 "parsing/parser.mly"
+# 2745 "parsing/parser.mly"
( Ppat_alias(_1, _3) )
-# 29010 "parsing/parser.ml"
+# 29005 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -29014,21 +29009,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29020 "parsing/parser.ml"
+# 29015 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 29026 "parsing/parser.ml"
+# 29021 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 29032 "parsing/parser.ml"
+# 29027 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29069,9 +29064,9 @@ module Tables = struct
let _1 =
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2752 "parsing/parser.mly"
+# 2747 "parsing/parser.mly"
( expecting _loc__3_ "identifier" )
-# 29075 "parsing/parser.ml"
+# 29070 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -29079,21 +29074,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29085 "parsing/parser.ml"
+# 29080 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 29091 "parsing/parser.ml"
+# 29086 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 29097 "parsing/parser.ml"
+# 29092 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29118,29 +29113,29 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _1 =
-# 2754 "parsing/parser.mly"
+# 2749 "parsing/parser.mly"
( Ppat_tuple(List.rev _1) )
-# 29124 "parsing/parser.ml"
+# 29119 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29132 "parsing/parser.ml"
+# 29127 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 29138 "parsing/parser.ml"
+# 29133 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 29144 "parsing/parser.ml"
+# 29139 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29181,9 +29176,9 @@ module Tables = struct
let _1 =
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2756 "parsing/parser.mly"
+# 2751 "parsing/parser.mly"
( expecting _loc__3_ "pattern" )
-# 29187 "parsing/parser.ml"
+# 29182 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -29191,21 +29186,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29197 "parsing/parser.ml"
+# 29192 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 29203 "parsing/parser.ml"
+# 29198 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 29209 "parsing/parser.ml"
+# 29204 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29244,30 +29239,30 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _1 =
-# 2758 "parsing/parser.mly"
+# 2753 "parsing/parser.mly"
( Ppat_or(_1, _3) )
-# 29250 "parsing/parser.ml"
+# 29245 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29259 "parsing/parser.ml"
+# 29254 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 29265 "parsing/parser.ml"
+# 29260 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 29271 "parsing/parser.ml"
+# 29266 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29308,9 +29303,9 @@ module Tables = struct
let _1 =
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2760 "parsing/parser.mly"
+# 2755 "parsing/parser.mly"
( expecting _loc__3_ "pattern" )
-# 29314 "parsing/parser.ml"
+# 29309 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -29318,21 +29313,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29324 "parsing/parser.ml"
+# 29319 "parsing/parser.ml"
in
-# 2761 "parsing/parser.mly"
+# 2756 "parsing/parser.mly"
( _1 )
-# 29330 "parsing/parser.ml"
+# 29325 "parsing/parser.ml"
in
-# 2738 "parsing/parser.mly"
+# 2733 "parsing/parser.mly"
( _1 )
-# 29336 "parsing/parser.ml"
+# 29331 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29351,9 +29346,9 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 29357 "parsing/parser.ml"
+# 29352 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -29365,30 +29360,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 29371 "parsing/parser.ml"
+# 29366 "parsing/parser.ml"
in
-# 2228 "parsing/parser.mly"
+# 2230 "parsing/parser.mly"
( Ppat_var _1 )
-# 29377 "parsing/parser.ml"
+# 29372 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29386 "parsing/parser.ml"
+# 29381 "parsing/parser.ml"
in
-# 2230 "parsing/parser.mly"
+# 2232 "parsing/parser.mly"
( _1 )
-# 29392 "parsing/parser.ml"
+# 29387 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29412,23 +29407,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2229 "parsing/parser.mly"
+# 2231 "parsing/parser.mly"
( Ppat_any )
-# 29418 "parsing/parser.ml"
+# 29413 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 29426 "parsing/parser.ml"
+# 29421 "parsing/parser.ml"
in
-# 2230 "parsing/parser.mly"
+# 2232 "parsing/parser.mly"
( _1 )
-# 29432 "parsing/parser.ml"
+# 29427 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29451,9 +29446,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.payload) =
-# 3899 "parsing/parser.mly"
+# 3894 "parsing/parser.mly"
( PStr _1 )
-# 29457 "parsing/parser.ml"
+# 29452 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29483,9 +29478,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.payload) =
-# 3900 "parsing/parser.mly"
+# 3895 "parsing/parser.mly"
( PSig _2 )
-# 29489 "parsing/parser.ml"
+# 29484 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29515,9 +29510,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.payload) =
-# 3901 "parsing/parser.mly"
+# 3896 "parsing/parser.mly"
( PTyp _2 )
-# 29521 "parsing/parser.ml"
+# 29516 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29547,9 +29542,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.payload) =
-# 3902 "parsing/parser.mly"
+# 3897 "parsing/parser.mly"
( PPat (_2, None) )
-# 29553 "parsing/parser.ml"
+# 29548 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29593,9 +29588,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Parsetree.payload) =
-# 3903 "parsing/parser.mly"
+# 3898 "parsing/parser.mly"
( PPat (_2, Some _4) )
-# 29599 "parsing/parser.ml"
+# 29594 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29618,9 +29613,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) =
-# 3296 "parsing/parser.mly"
+# 3291 "parsing/parser.mly"
( _1 )
-# 29624 "parsing/parser.ml"
+# 29619 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29663,24 +29658,24 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 29667 "parsing/parser.ml"
+# 29662 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 29672 "parsing/parser.ml"
+# 29667 "parsing/parser.ml"
in
-# 3288 "parsing/parser.mly"
+# 3283 "parsing/parser.mly"
( _1 )
-# 29678 "parsing/parser.ml"
+# 29673 "parsing/parser.ml"
in
-# 3292 "parsing/parser.mly"
+# 3287 "parsing/parser.mly"
( Ptyp_poly(_1, _3) )
-# 29684 "parsing/parser.ml"
+# 29679 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in
@@ -29688,15 +29683,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 29694 "parsing/parser.ml"
+# 29689 "parsing/parser.ml"
in
-# 3298 "parsing/parser.mly"
+# 3293 "parsing/parser.mly"
( _1 )
-# 29700 "parsing/parser.ml"
+# 29695 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29719,14 +29714,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) = let _1 =
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 29725 "parsing/parser.ml"
+# 29720 "parsing/parser.ml"
in
-# 3296 "parsing/parser.mly"
+# 3291 "parsing/parser.mly"
( _1 )
-# 29730 "parsing/parser.ml"
+# 29725 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29765,33 +29760,33 @@ module Tables = struct
let _v : (Parsetree.core_type) = let _1 =
let _1 =
let _3 =
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 29771 "parsing/parser.ml"
+# 29766 "parsing/parser.ml"
in
let _1 =
let _1 =
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 29778 "parsing/parser.ml"
+# 29773 "parsing/parser.ml"
in
-# 994 "parsing/parser.mly"
+# 996 "parsing/parser.mly"
( xs )
-# 29783 "parsing/parser.ml"
+# 29778 "parsing/parser.ml"
in
-# 3288 "parsing/parser.mly"
+# 3283 "parsing/parser.mly"
( _1 )
-# 29789 "parsing/parser.ml"
+# 29784 "parsing/parser.ml"
in
-# 3292 "parsing/parser.mly"
+# 3287 "parsing/parser.mly"
( Ptyp_poly(_1, _3) )
-# 29795 "parsing/parser.ml"
+# 29790 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_xs_ in
@@ -29799,15 +29794,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 29805 "parsing/parser.ml"
+# 29800 "parsing/parser.ml"
in
-# 3298 "parsing/parser.mly"
+# 3293 "parsing/parser.mly"
( _1 )
-# 29811 "parsing/parser.ml"
+# 29806 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29854,9 +29849,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3860 "parsing/parser.mly"
+# 3855 "parsing/parser.mly"
( Attr.mk ~loc:(make_loc _sloc) _2 _3 )
-# 29860 "parsing/parser.ml"
+# 29855 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29937,9 +29932,9 @@ module Tables = struct
let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 29943 "parsing/parser.ml"
+# 29938 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -29949,30 +29944,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 29955 "parsing/parser.ml"
+# 29950 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 29963 "parsing/parser.ml"
+# 29958 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2924 "parsing/parser.mly"
+# 2919 "parsing/parser.mly"
( let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Val.mk id ty ~prim ~attrs ~loc ~docs,
ext )
-# 29976 "parsing/parser.ml"
+# 29971 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -29988,14 +29983,14 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.private_flag) = let _1 =
-# 3728 "parsing/parser.mly"
+# 3723 "parsing/parser.mly"
( Public )
-# 29994 "parsing/parser.ml"
+# 29989 "parsing/parser.ml"
in
-# 3725 "parsing/parser.mly"
+# 3720 "parsing/parser.mly"
( _1 )
-# 29999 "parsing/parser.ml"
+# 29994 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30018,14 +30013,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.private_flag) = let _1 =
-# 3729 "parsing/parser.mly"
+# 3724 "parsing/parser.mly"
( Private )
-# 30024 "parsing/parser.ml"
+# 30019 "parsing/parser.ml"
in
-# 3725 "parsing/parser.mly"
+# 3720 "parsing/parser.mly"
( _1 )
-# 30029 "parsing/parser.ml"
+# 30024 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30041,9 +30036,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.private_flag * Asttypes.virtual_flag) =
-# 3751 "parsing/parser.mly"
+# 3746 "parsing/parser.mly"
( Public, Concrete )
-# 30047 "parsing/parser.ml"
+# 30042 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30066,9 +30061,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.private_flag * Asttypes.virtual_flag) =
-# 3752 "parsing/parser.mly"
+# 3747 "parsing/parser.mly"
( Private, Concrete )
-# 30072 "parsing/parser.ml"
+# 30067 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30091,9 +30086,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.private_flag * Asttypes.virtual_flag) =
-# 3753 "parsing/parser.mly"
+# 3748 "parsing/parser.mly"
( Public, Virtual )
-# 30097 "parsing/parser.ml"
+# 30092 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30123,9 +30118,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.private_flag * Asttypes.virtual_flag) =
-# 3754 "parsing/parser.mly"
+# 3749 "parsing/parser.mly"
( Private, Virtual )
-# 30129 "parsing/parser.ml"
+# 30124 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30155,9 +30150,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.private_flag * Asttypes.virtual_flag) =
-# 3755 "parsing/parser.mly"
+# 3750 "parsing/parser.mly"
( Private, Virtual )
-# 30161 "parsing/parser.ml"
+# 30156 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30173,9 +30168,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.rec_flag) =
-# 3706 "parsing/parser.mly"
+# 3701 "parsing/parser.mly"
( Nonrecursive )
-# 30179 "parsing/parser.ml"
+# 30174 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30198,9 +30193,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.rec_flag) =
-# 3707 "parsing/parser.mly"
+# 3702 "parsing/parser.mly"
( Recursive )
-# 30204 "parsing/parser.ml"
+# 30199 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30226,12 +30221,12 @@ module Tables = struct
(Longident.t Asttypes.loc * Parsetree.expression) list) = let eo =
# 124 "<standard.mly>"
( None )
-# 30230 "parsing/parser.ml"
+# 30225 "parsing/parser.ml"
in
-# 2663 "parsing/parser.mly"
+# 2658 "parsing/parser.mly"
( eo, fields )
-# 30235 "parsing/parser.ml"
+# 30230 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30272,18 +30267,18 @@ module Tables = struct
let x =
# 191 "<standard.mly>"
( x )
-# 30276 "parsing/parser.ml"
+# 30271 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 30281 "parsing/parser.ml"
+# 30276 "parsing/parser.ml"
in
-# 2663 "parsing/parser.mly"
+# 2658 "parsing/parser.mly"
( eo, fields )
-# 30287 "parsing/parser.ml"
+# 30282 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30308,17 +30303,17 @@ module Tables = struct
let _startpos = _startpos_d_ in
let _endpos = _endpos_d_ in
let _v : (Parsetree.constructor_declaration list) = let x =
-# 3109 "parsing/parser.mly"
+# 3104 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30317 "parsing/parser.ml"
+# 30312 "parsing/parser.ml"
in
-# 1104 "parsing/parser.mly"
+# 1106 "parsing/parser.mly"
( [x] )
-# 30322 "parsing/parser.ml"
+# 30317 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30343,17 +30338,17 @@ module Tables = struct
let _startpos = _startpos_d_ in
let _endpos = _endpos_d_ in
let _v : (Parsetree.constructor_declaration list) = let x =
-# 3109 "parsing/parser.mly"
+# 3104 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30352 "parsing/parser.ml"
+# 30347 "parsing/parser.ml"
in
-# 1107 "parsing/parser.mly"
+# 1109 "parsing/parser.mly"
( [x] )
-# 30357 "parsing/parser.ml"
+# 30352 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30385,17 +30380,17 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_d_ in
let _v : (Parsetree.constructor_declaration list) = let x =
-# 3109 "parsing/parser.mly"
+# 3104 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30394 "parsing/parser.ml"
+# 30389 "parsing/parser.ml"
in
-# 1111 "parsing/parser.mly"
+# 1113 "parsing/parser.mly"
( x :: xs )
-# 30399 "parsing/parser.ml"
+# 30394 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30421,23 +30416,23 @@ module Tables = struct
let _endpos = _endpos_d_ in
let _v : (Parsetree.extension_constructor list) = let x =
let _1 =
-# 3226 "parsing/parser.mly"
+# 3221 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30430 "parsing/parser.ml"
+# 30425 "parsing/parser.ml"
in
-# 3220 "parsing/parser.mly"
+# 3215 "parsing/parser.mly"
( _1 )
-# 30435 "parsing/parser.ml"
+# 30430 "parsing/parser.ml"
in
-# 1104 "parsing/parser.mly"
+# 1106 "parsing/parser.mly"
( [x] )
-# 30441 "parsing/parser.ml"
+# 30436 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30460,14 +30455,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.extension_constructor list) = let x =
-# 3222 "parsing/parser.mly"
+# 3217 "parsing/parser.mly"
( _1 )
-# 30466 "parsing/parser.ml"
+# 30461 "parsing/parser.ml"
in
-# 1104 "parsing/parser.mly"
+# 1106 "parsing/parser.mly"
( [x] )
-# 30471 "parsing/parser.ml"
+# 30466 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30493,23 +30488,23 @@ module Tables = struct
let _endpos = _endpos_d_ in
let _v : (Parsetree.extension_constructor list) = let x =
let _1 =
-# 3226 "parsing/parser.mly"
+# 3221 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30502 "parsing/parser.ml"
+# 30497 "parsing/parser.ml"
in
-# 3220 "parsing/parser.mly"
+# 3215 "parsing/parser.mly"
( _1 )
-# 30507 "parsing/parser.ml"
+# 30502 "parsing/parser.ml"
in
-# 1107 "parsing/parser.mly"
+# 1109 "parsing/parser.mly"
( [x] )
-# 30513 "parsing/parser.ml"
+# 30508 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30532,14 +30527,14 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.extension_constructor list) = let x =
-# 3222 "parsing/parser.mly"
+# 3217 "parsing/parser.mly"
( _1 )
-# 30538 "parsing/parser.ml"
+# 30533 "parsing/parser.ml"
in
-# 1107 "parsing/parser.mly"
+# 1109 "parsing/parser.mly"
( [x] )
-# 30543 "parsing/parser.ml"
+# 30538 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30572,23 +30567,23 @@ module Tables = struct
let _endpos = _endpos_d_ in
let _v : (Parsetree.extension_constructor list) = let x =
let _1 =
-# 3226 "parsing/parser.mly"
+# 3221 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30581 "parsing/parser.ml"
+# 30576 "parsing/parser.ml"
in
-# 3220 "parsing/parser.mly"
+# 3215 "parsing/parser.mly"
( _1 )
-# 30586 "parsing/parser.ml"
+# 30581 "parsing/parser.ml"
in
-# 1111 "parsing/parser.mly"
+# 1113 "parsing/parser.mly"
( x :: xs )
-# 30592 "parsing/parser.ml"
+# 30587 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30618,14 +30613,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.extension_constructor list) = let x =
-# 3222 "parsing/parser.mly"
+# 3217 "parsing/parser.mly"
( _1 )
-# 30624 "parsing/parser.ml"
+# 30619 "parsing/parser.ml"
in
-# 1111 "parsing/parser.mly"
+# 1113 "parsing/parser.mly"
( x :: xs )
-# 30629 "parsing/parser.ml"
+# 30624 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30650,17 +30645,17 @@ module Tables = struct
let _startpos = _startpos_d_ in
let _endpos = _endpos_d_ in
let _v : (Parsetree.extension_constructor list) = let x =
-# 3226 "parsing/parser.mly"
+# 3221 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30659 "parsing/parser.ml"
+# 30654 "parsing/parser.ml"
in
-# 1104 "parsing/parser.mly"
+# 1106 "parsing/parser.mly"
( [x] )
-# 30664 "parsing/parser.ml"
+# 30659 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30685,17 +30680,17 @@ module Tables = struct
let _startpos = _startpos_d_ in
let _endpos = _endpos_d_ in
let _v : (Parsetree.extension_constructor list) = let x =
-# 3226 "parsing/parser.mly"
+# 3221 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30694 "parsing/parser.ml"
+# 30689 "parsing/parser.ml"
in
-# 1107 "parsing/parser.mly"
+# 1109 "parsing/parser.mly"
( [x] )
-# 30699 "parsing/parser.ml"
+# 30694 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30727,17 +30722,17 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_d_ in
let _v : (Parsetree.extension_constructor list) = let x =
-# 3226 "parsing/parser.mly"
+# 3221 "parsing/parser.mly"
(
let cid, vars, args, res, attrs, loc, info = d in
Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
)
-# 30736 "parsing/parser.ml"
+# 30731 "parsing/parser.ml"
in
-# 1111 "parsing/parser.mly"
+# 1113 "parsing/parser.mly"
( x :: xs )
-# 30741 "parsing/parser.ml"
+# 30736 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30753,9 +30748,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) =
-# 970 "parsing/parser.mly"
+# 972 "parsing/parser.mly"
( [] )
-# 30759 "parsing/parser.ml"
+# 30754 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30812,21 +30807,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2108 "parsing/parser.mly"
+# 2110 "parsing/parser.mly"
( _1, _3, make_loc _sloc )
-# 30818 "parsing/parser.ml"
+# 30813 "parsing/parser.ml"
in
# 183 "<standard.mly>"
( x )
-# 30824 "parsing/parser.ml"
+# 30819 "parsing/parser.ml"
in
-# 972 "parsing/parser.mly"
+# 974 "parsing/parser.mly"
( x :: xs )
-# 30830 "parsing/parser.ml"
+# 30825 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30849,9 +30844,9 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : ((Lexing.position * Parsetree.functor_parameter) list) =
-# 984 "parsing/parser.mly"
+# 986 "parsing/parser.mly"
( [ x ] )
-# 30855 "parsing/parser.ml"
+# 30850 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30881,9 +30876,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : ((Lexing.position * Parsetree.functor_parameter) list) =
-# 986 "parsing/parser.mly"
+# 988 "parsing/parser.mly"
( x :: xs )
-# 30887 "parsing/parser.ml"
+# 30882 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30906,9 +30901,9 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : ((Asttypes.arg_label * Parsetree.expression) list) =
-# 984 "parsing/parser.mly"
+# 986 "parsing/parser.mly"
( [ x ] )
-# 30912 "parsing/parser.ml"
+# 30907 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30938,9 +30933,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : ((Asttypes.arg_label * Parsetree.expression) list) =
-# 986 "parsing/parser.mly"
+# 988 "parsing/parser.mly"
( x :: xs )
-# 30944 "parsing/parser.ml"
+# 30939 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30963,9 +30958,9 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : (Asttypes.label list) =
-# 984 "parsing/parser.mly"
+# 986 "parsing/parser.mly"
( [ x ] )
-# 30969 "parsing/parser.ml"
+# 30964 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -30995,9 +30990,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Asttypes.label list) =
-# 986 "parsing/parser.mly"
+# 988 "parsing/parser.mly"
( x :: xs )
-# 31001 "parsing/parser.ml"
+# 30996 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31033,21 +31028,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 31039 "parsing/parser.ml"
+# 31034 "parsing/parser.ml"
in
-# 3284 "parsing/parser.mly"
+# 3279 "parsing/parser.mly"
( _2 )
-# 31045 "parsing/parser.ml"
+# 31040 "parsing/parser.ml"
in
-# 984 "parsing/parser.mly"
+# 986 "parsing/parser.mly"
( [ x ] )
-# 31051 "parsing/parser.ml"
+# 31046 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31090,21 +31085,21 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 31096 "parsing/parser.ml"
+# 31091 "parsing/parser.ml"
in
-# 3284 "parsing/parser.mly"
+# 3279 "parsing/parser.mly"
( _2 )
-# 31102 "parsing/parser.ml"
+# 31097 "parsing/parser.ml"
in
-# 986 "parsing/parser.mly"
+# 988 "parsing/parser.mly"
( x :: xs )
-# 31108 "parsing/parser.ml"
+# 31103 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31129,12 +31124,12 @@ module Tables = struct
let _v : (Parsetree.case list) = let _1 =
# 124 "<standard.mly>"
( None )
-# 31133 "parsing/parser.ml"
+# 31128 "parsing/parser.ml"
in
-# 1075 "parsing/parser.mly"
+# 1077 "parsing/parser.mly"
( [x] )
-# 31138 "parsing/parser.ml"
+# 31133 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31168,13 +31163,13 @@ module Tables = struct
# 126 "<standard.mly>"
( Some x )
-# 31172 "parsing/parser.ml"
+# 31167 "parsing/parser.ml"
in
-# 1075 "parsing/parser.mly"
+# 1077 "parsing/parser.mly"
( [x] )
-# 31178 "parsing/parser.ml"
+# 31173 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31211,9 +31206,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.case list) =
-# 1079 "parsing/parser.mly"
+# 1081 "parsing/parser.mly"
( x :: xs )
-# 31217 "parsing/parser.ml"
+# 31212 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31237,20 +31232,20 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type list) = let xs =
let x =
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 31243 "parsing/parser.ml"
+# 31238 "parsing/parser.ml"
in
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 31248 "parsing/parser.ml"
+# 31243 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31254 "parsing/parser.ml"
+# 31249 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31288,20 +31283,20 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type list) = let xs =
let x =
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 31294 "parsing/parser.ml"
+# 31289 "parsing/parser.ml"
in
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 31299 "parsing/parser.ml"
+# 31294 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31305 "parsing/parser.ml"
+# 31300 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31324,14 +31319,14 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.with_constraint list) = let xs =
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 31330 "parsing/parser.ml"
+# 31325 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31335 "parsing/parser.ml"
+# 31330 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31368,14 +31363,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.with_constraint list) = let xs =
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 31374 "parsing/parser.ml"
+# 31369 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31379 "parsing/parser.ml"
+# 31374 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31398,14 +31393,14 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.row_field list) = let xs =
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 31404 "parsing/parser.ml"
+# 31399 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31409 "parsing/parser.ml"
+# 31404 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31442,14 +31437,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.row_field list) = let xs =
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 31448 "parsing/parser.ml"
+# 31443 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31453 "parsing/parser.ml"
+# 31448 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31472,14 +31467,14 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.core_type list) = let xs =
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 31478 "parsing/parser.ml"
+# 31473 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31483 "parsing/parser.ml"
+# 31478 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31516,14 +31511,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.core_type list) = let xs =
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 31522 "parsing/parser.ml"
+# 31517 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31527 "parsing/parser.ml"
+# 31522 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31546,14 +31541,14 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs =
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 31552 "parsing/parser.ml"
+# 31547 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31557 "parsing/parser.ml"
+# 31552 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31590,14 +31585,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs =
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 31596 "parsing/parser.ml"
+# 31591 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31601 "parsing/parser.ml"
+# 31596 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31620,14 +31615,14 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.core_type list) = let xs =
-# 1010 "parsing/parser.mly"
+# 1012 "parsing/parser.mly"
( [ x ] )
-# 31626 "parsing/parser.ml"
+# 31621 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31631 "parsing/parser.ml"
+# 31626 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31664,14 +31659,14 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.core_type list) = let xs =
-# 1014 "parsing/parser.mly"
+# 1016 "parsing/parser.mly"
( x :: xs )
-# 31670 "parsing/parser.ml"
+# 31665 "parsing/parser.ml"
in
-# 1018 "parsing/parser.mly"
+# 1020 "parsing/parser.mly"
( xs )
-# 31675 "parsing/parser.ml"
+# 31670 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31708,9 +31703,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.core_type list) =
-# 1041 "parsing/parser.mly"
+# 1043 "parsing/parser.mly"
( x :: xs )
-# 31714 "parsing/parser.ml"
+# 31709 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31747,9 +31742,9 @@ module Tables = struct
let _startpos = _startpos_x1_ in
let _endpos = _endpos_x2_ in
let _v : (Parsetree.core_type list) =
-# 1045 "parsing/parser.mly"
+# 1047 "parsing/parser.mly"
( [ x2; x1 ] )
-# 31753 "parsing/parser.ml"
+# 31748 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31786,9 +31781,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.expression list) =
-# 1041 "parsing/parser.mly"
+# 1043 "parsing/parser.mly"
( x :: xs )
-# 31792 "parsing/parser.ml"
+# 31787 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31825,9 +31820,9 @@ module Tables = struct
let _startpos = _startpos_x1_ in
let _endpos = _endpos_x2_ in
let _v : (Parsetree.expression list) =
-# 1045 "parsing/parser.mly"
+# 1047 "parsing/parser.mly"
( [ x2; x1 ] )
-# 31831 "parsing/parser.ml"
+# 31826 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31864,9 +31859,9 @@ module Tables = struct
let _startpos = _startpos_xs_ in
let _endpos = _endpos_x_ in
let _v : (Parsetree.core_type list) =
-# 1041 "parsing/parser.mly"
+# 1043 "parsing/parser.mly"
( x :: xs )
-# 31870 "parsing/parser.ml"
+# 31865 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31903,9 +31898,9 @@ module Tables = struct
let _startpos = _startpos_x1_ in
let _endpos = _endpos_x2_ in
let _v : (Parsetree.core_type list) =
-# 1045 "parsing/parser.mly"
+# 1047 "parsing/parser.mly"
( [ x2; x1 ] )
-# 31909 "parsing/parser.ml"
+# 31904 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31928,9 +31923,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.row_field) =
-# 3467 "parsing/parser.mly"
+# 3462 "parsing/parser.mly"
( _1 )
-# 31934 "parsing/parser.ml"
+# 31929 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31956,9 +31951,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3469 "parsing/parser.mly"
+# 3464 "parsing/parser.mly"
( Rf.inherit_ ~loc:(make_loc _sloc) _1 )
-# 31962 "parsing/parser.ml"
+# 31957 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -31983,12 +31978,12 @@ module Tables = struct
let _v : (Parsetree.expression list) = let _2 =
# 124 "<standard.mly>"
( None )
-# 31987 "parsing/parser.ml"
+# 31982 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 31992 "parsing/parser.ml"
+# 31987 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32022,13 +32017,13 @@ module Tables = struct
# 126 "<standard.mly>"
( Some x )
-# 32026 "parsing/parser.ml"
+# 32021 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32032 "parsing/parser.ml"
+# 32027 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32065,9 +32060,9 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_xs_ in
let _v : (Parsetree.expression list) =
-# 1066 "parsing/parser.mly"
+# 1068 "parsing/parser.mly"
( x :: xs )
-# 32071 "parsing/parser.ml"
+# 32066 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32093,9 +32088,9 @@ module Tables = struct
} = _menhir_stack in
let oe : (Parsetree.expression option) = Obj.magic oe in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 32099 "parsing/parser.ml"
+# 32094 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -32103,26 +32098,26 @@ module Tables = struct
let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 =
# 124 "<standard.mly>"
( None )
-# 32107 "parsing/parser.ml"
+# 32102 "parsing/parser.ml"
in
let x =
let label =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 32114 "parsing/parser.ml"
+# 32109 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32122 "parsing/parser.ml"
+# 32117 "parsing/parser.ml"
in
-# 2686 "parsing/parser.mly"
+# 2681 "parsing/parser.mly"
( let label, e =
match oe with
| None ->
@@ -32132,13 +32127,13 @@ module Tables = struct
label, e
in
label, e )
-# 32136 "parsing/parser.ml"
+# 32131 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32142 "parsing/parser.ml"
+# 32137 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32171,9 +32166,9 @@ module Tables = struct
let x : unit = Obj.magic x in
let oe : (Parsetree.expression option) = Obj.magic oe in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 32177 "parsing/parser.ml"
+# 32172 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -32181,26 +32176,26 @@ module Tables = struct
let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 =
# 126 "<standard.mly>"
( Some x )
-# 32185 "parsing/parser.ml"
+# 32180 "parsing/parser.ml"
in
let x =
let label =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 32192 "parsing/parser.ml"
+# 32187 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32200 "parsing/parser.ml"
+# 32195 "parsing/parser.ml"
in
-# 2686 "parsing/parser.mly"
+# 2681 "parsing/parser.mly"
( let label, e =
match oe with
| None ->
@@ -32210,13 +32205,13 @@ module Tables = struct
label, e
in
label, e )
-# 32214 "parsing/parser.ml"
+# 32209 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32220 "parsing/parser.ml"
+# 32215 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32256,9 +32251,9 @@ module Tables = struct
let _2 : unit = Obj.magic _2 in
let oe : (Parsetree.expression option) = Obj.magic oe in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 32262 "parsing/parser.ml"
+# 32257 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -32266,21 +32261,21 @@ module Tables = struct
let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let x =
let label =
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 32272 "parsing/parser.ml"
+# 32267 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32280 "parsing/parser.ml"
+# 32275 "parsing/parser.ml"
in
-# 2686 "parsing/parser.mly"
+# 2681 "parsing/parser.mly"
( let label, e =
match oe with
| None ->
@@ -32290,13 +32285,13 @@ module Tables = struct
label, e
in
label, e )
-# 32294 "parsing/parser.ml"
+# 32289 "parsing/parser.ml"
in
-# 1066 "parsing/parser.mly"
+# 1068 "parsing/parser.mly"
( x :: xs )
-# 32300 "parsing/parser.ml"
+# 32295 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32321,12 +32316,12 @@ module Tables = struct
let _v : (Parsetree.pattern list) = let _2 =
# 124 "<standard.mly>"
( None )
-# 32325 "parsing/parser.ml"
+# 32320 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32330 "parsing/parser.ml"
+# 32325 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32360,13 +32355,13 @@ module Tables = struct
# 126 "<standard.mly>"
( Some x )
-# 32364 "parsing/parser.ml"
+# 32359 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32370 "parsing/parser.ml"
+# 32365 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32403,9 +32398,9 @@ module Tables = struct
let _startpos = _startpos_x_ in
let _endpos = _endpos_xs_ in
let _v : (Parsetree.pattern list) =
-# 1066 "parsing/parser.mly"
+# 1068 "parsing/parser.mly"
( x :: xs )
-# 32409 "parsing/parser.ml"
+# 32404 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32444,7 +32439,7 @@ module Tables = struct
let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 =
# 124 "<standard.mly>"
( None )
-# 32448 "parsing/parser.ml"
+# 32443 "parsing/parser.ml"
in
let x =
let label =
@@ -32452,9 +32447,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32458 "parsing/parser.ml"
+# 32453 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -32462,7 +32457,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2669 "parsing/parser.mly"
+# 2664 "parsing/parser.mly"
( let constraint_loc, label, e =
match eo with
| None ->
@@ -32472,13 +32467,13 @@ module Tables = struct
(_startpos_c_, _endpos), label, e
in
label, mkexp_opt_constraint ~loc:constraint_loc e c )
-# 32476 "parsing/parser.ml"
+# 32471 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32482 "parsing/parser.ml"
+# 32477 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32524,7 +32519,7 @@ module Tables = struct
let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 =
# 126 "<standard.mly>"
( Some x )
-# 32528 "parsing/parser.ml"
+# 32523 "parsing/parser.ml"
in
let x =
let label =
@@ -32532,9 +32527,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32538 "parsing/parser.ml"
+# 32533 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -32542,7 +32537,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2669 "parsing/parser.mly"
+# 2664 "parsing/parser.mly"
( let constraint_loc, label, e =
match eo with
| None ->
@@ -32552,13 +32547,13 @@ module Tables = struct
(_startpos_c_, _endpos), label, e
in
label, mkexp_opt_constraint ~loc:constraint_loc e c )
-# 32556 "parsing/parser.ml"
+# 32551 "parsing/parser.ml"
in
-# 1062 "parsing/parser.mly"
+# 1064 "parsing/parser.mly"
( [x] )
-# 32562 "parsing/parser.ml"
+# 32557 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32614,9 +32609,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32620 "parsing/parser.ml"
+# 32615 "parsing/parser.ml"
in
let _startpos_label_ = _startpos__1_ in
@@ -32624,7 +32619,7 @@ module Tables = struct
let _symbolstartpos = _startpos_label_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2669 "parsing/parser.mly"
+# 2664 "parsing/parser.mly"
( let constraint_loc, label, e =
match eo with
| None ->
@@ -32634,13 +32629,13 @@ module Tables = struct
(_startpos_c_, _endpos), label, e
in
label, mkexp_opt_constraint ~loc:constraint_loc e c )
-# 32638 "parsing/parser.ml"
+# 32633 "parsing/parser.ml"
in
-# 1066 "parsing/parser.mly"
+# 1068 "parsing/parser.mly"
( x :: xs )
-# 32644 "parsing/parser.ml"
+# 32639 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32663,9 +32658,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) =
-# 2197 "parsing/parser.mly"
+# 2199 "parsing/parser.mly"
( _1 )
-# 32669 "parsing/parser.ml"
+# 32664 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32695,9 +32690,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) =
-# 2198 "parsing/parser.mly"
+# 2200 "parsing/parser.mly"
( _1 )
-# 32701 "parsing/parser.ml"
+# 32696 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32735,24 +32730,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2200 "parsing/parser.mly"
+# 2202 "parsing/parser.mly"
( Pexp_sequence(_1, _3) )
-# 32741 "parsing/parser.ml"
+# 32736 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 32750 "parsing/parser.ml"
+# 32745 "parsing/parser.ml"
in
-# 2201 "parsing/parser.mly"
+# 2203 "parsing/parser.mly"
( _1 )
-# 32756 "parsing/parser.ml"
+# 32751 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32806,11 +32801,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2203 "parsing/parser.mly"
+# 2205 "parsing/parser.mly"
( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in
let payload = PStr [mkstrexp seq []] in
mkexp ~loc:_sloc (Pexp_extension (_4, payload)) )
-# 32814 "parsing/parser.ml"
+# 32809 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32878,18 +32873,18 @@ module Tables = struct
let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 32884 "parsing/parser.ml"
+# 32879 "parsing/parser.ml"
in
let _endpos_attrs_ = _endpos__1_inlined4_ in
let attrs2 =
let _1 = _1_inlined3 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 32893 "parsing/parser.ml"
+# 32888 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -32899,17 +32894,17 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 32905 "parsing/parser.ml"
+# 32900 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 32913 "parsing/parser.ml"
+# 32908 "parsing/parser.ml"
in
let _endpos = _endpos_attrs_ in
@@ -32917,14 +32912,14 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3139 "parsing/parser.mly"
+# 3134 "parsing/parser.mly"
( let vars, args, res = vars_args_res in
let loc = make_loc (_startpos, _endpos_attrs2_) in
let docs = symbol_docs _sloc in
Te.mk_exception ~attrs
(Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs)
, ext )
-# 32928 "parsing/parser.ml"
+# 32923 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32950,21 +32945,21 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 32954 "parsing/parser.ml"
+# 32949 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 885 "parsing/parser.mly"
+# 887 "parsing/parser.mly"
( extra_sig _startpos _endpos _1 )
-# 32962 "parsing/parser.ml"
+# 32957 "parsing/parser.ml"
in
-# 1644 "parsing/parser.mly"
+# 1646 "parsing/parser.mly"
( _1 )
-# 32968 "parsing/parser.ml"
+# 32963 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -32996,9 +32991,9 @@ module Tables = struct
let _v : (Parsetree.signature_item) = let _2 =
let _1 = _1_inlined1 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 33002 "parsing/parser.ml"
+# 32997 "parsing/parser.ml"
in
let _endpos__2_ = _endpos__1_inlined1_ in
@@ -33006,10 +33001,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1659 "parsing/parser.mly"
+# 1661 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) )
-# 33013 "parsing/parser.ml"
+# 33008 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33033,23 +33028,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1663 "parsing/parser.mly"
+# 1665 "parsing/parser.mly"
( Psig_attribute _1 )
-# 33039 "parsing/parser.ml"
+# 33034 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 933 "parsing/parser.mly"
+# 935 "parsing/parser.mly"
( mksig ~loc:_sloc _1 )
-# 33047 "parsing/parser.ml"
+# 33042 "parsing/parser.ml"
in
-# 1665 "parsing/parser.mly"
+# 1667 "parsing/parser.mly"
( _1 )
-# 33053 "parsing/parser.ml"
+# 33048 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33073,23 +33068,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1668 "parsing/parser.mly"
+# 1670 "parsing/parser.mly"
( psig_value _1 )
-# 33079 "parsing/parser.ml"
+# 33074 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33087 "parsing/parser.ml"
+# 33082 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33093 "parsing/parser.ml"
+# 33088 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33113,23 +33108,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1670 "parsing/parser.mly"
+# 1672 "parsing/parser.mly"
( psig_value _1 )
-# 33119 "parsing/parser.ml"
+# 33114 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33127 "parsing/parser.ml"
+# 33122 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33133 "parsing/parser.ml"
+# 33128 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33164,26 +33159,26 @@ module Tables = struct
let _1 =
let _1 =
let _1 =
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 33170 "parsing/parser.ml"
+# 33165 "parsing/parser.ml"
in
-# 2960 "parsing/parser.mly"
+# 2955 "parsing/parser.mly"
( _1 )
-# 33175 "parsing/parser.ml"
+# 33170 "parsing/parser.ml"
in
-# 2943 "parsing/parser.mly"
+# 2938 "parsing/parser.mly"
( _1 )
-# 33181 "parsing/parser.ml"
+# 33176 "parsing/parser.ml"
in
-# 1672 "parsing/parser.mly"
+# 1674 "parsing/parser.mly"
( psig_type _1 )
-# 33187 "parsing/parser.ml"
+# 33182 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in
@@ -33191,15 +33186,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33197 "parsing/parser.ml"
+# 33192 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33203 "parsing/parser.ml"
+# 33198 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33234,26 +33229,26 @@ module Tables = struct
let _1 =
let _1 =
let _1 =
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 33240 "parsing/parser.ml"
+# 33235 "parsing/parser.ml"
in
-# 2960 "parsing/parser.mly"
+# 2955 "parsing/parser.mly"
( _1 )
-# 33245 "parsing/parser.ml"
+# 33240 "parsing/parser.ml"
in
-# 2948 "parsing/parser.mly"
+# 2943 "parsing/parser.mly"
( _1 )
-# 33251 "parsing/parser.ml"
+# 33246 "parsing/parser.ml"
in
-# 1674 "parsing/parser.mly"
+# 1676 "parsing/parser.mly"
( psig_typesubst _1 )
-# 33257 "parsing/parser.ml"
+# 33252 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in
@@ -33261,15 +33256,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33267 "parsing/parser.ml"
+# 33262 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33273 "parsing/parser.ml"
+# 33268 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33354,16 +33349,16 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 33360 "parsing/parser.ml"
+# 33355 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
let cs =
-# 1115 "parsing/parser.mly"
+# 1117 "parsing/parser.mly"
( List.rev xs )
-# 33367 "parsing/parser.ml"
+# 33362 "parsing/parser.ml"
in
let tid =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
@@ -33371,46 +33366,46 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 33377 "parsing/parser.ml"
+# 33372 "parsing/parser.ml"
in
let _4 =
-# 3714 "parsing/parser.mly"
+# 3709 "parsing/parser.mly"
( Recursive )
-# 33383 "parsing/parser.ml"
+# 33378 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 33390 "parsing/parser.ml"
+# 33385 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3213 "parsing/parser.mly"
+# 3208 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
let attrs = attrs1 @ attrs2 in
Te.mk tid cs ~params ~priv ~attrs ~docs,
ext )
-# 33402 "parsing/parser.ml"
+# 33397 "parsing/parser.ml"
in
-# 3200 "parsing/parser.mly"
+# 3195 "parsing/parser.mly"
( _1 )
-# 33408 "parsing/parser.ml"
+# 33403 "parsing/parser.ml"
in
-# 1676 "parsing/parser.mly"
+# 1678 "parsing/parser.mly"
( psig_typext _1 )
-# 33414 "parsing/parser.ml"
+# 33409 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined3_ in
@@ -33418,15 +33413,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33424 "parsing/parser.ml"
+# 33419 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33430 "parsing/parser.ml"
+# 33425 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33518,16 +33513,16 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 33524 "parsing/parser.ml"
+# 33519 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
let cs =
-# 1115 "parsing/parser.mly"
+# 1117 "parsing/parser.mly"
( List.rev xs )
-# 33531 "parsing/parser.ml"
+# 33526 "parsing/parser.ml"
in
let tid =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
@@ -33535,9 +33530,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 33541 "parsing/parser.ml"
+# 33536 "parsing/parser.ml"
in
let _4 =
@@ -33546,41 +33541,41 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _loc = (_startpos, _endpos) in
-# 3716 "parsing/parser.mly"
+# 3711 "parsing/parser.mly"
( not_expecting _loc "nonrec flag" )
-# 33552 "parsing/parser.ml"
+# 33547 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 33560 "parsing/parser.ml"
+# 33555 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3213 "parsing/parser.mly"
+# 3208 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
let attrs = attrs1 @ attrs2 in
Te.mk tid cs ~params ~priv ~attrs ~docs,
ext )
-# 33572 "parsing/parser.ml"
+# 33567 "parsing/parser.ml"
in
-# 3200 "parsing/parser.mly"
+# 3195 "parsing/parser.mly"
( _1 )
-# 33578 "parsing/parser.ml"
+# 33573 "parsing/parser.ml"
in
-# 1676 "parsing/parser.mly"
+# 1678 "parsing/parser.mly"
( psig_typext _1 )
-# 33584 "parsing/parser.ml"
+# 33579 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined4_ in
@@ -33588,15 +33583,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33594 "parsing/parser.ml"
+# 33589 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33600 "parsing/parser.ml"
+# 33595 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33620,23 +33615,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1678 "parsing/parser.mly"
+# 1680 "parsing/parser.mly"
( psig_exception _1 )
-# 33626 "parsing/parser.ml"
+# 33621 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33634 "parsing/parser.ml"
+# 33629 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33640 "parsing/parser.ml"
+# 33635 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33699,9 +33694,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 33705 "parsing/parser.ml"
+# 33700 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -33711,37 +33706,37 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 33717 "parsing/parser.ml"
+# 33712 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 33725 "parsing/parser.ml"
+# 33720 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1709 "parsing/parser.mly"
+# 1711 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Md.mk name body ~attrs ~loc ~docs, ext
)
-# 33739 "parsing/parser.ml"
+# 33734 "parsing/parser.ml"
in
-# 1680 "parsing/parser.mly"
+# 1682 "parsing/parser.mly"
( let (body, ext) = _1 in (Psig_module body, ext) )
-# 33745 "parsing/parser.ml"
+# 33740 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined3_ in
@@ -33749,15 +33744,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33755 "parsing/parser.ml"
+# 33750 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33761 "parsing/parser.ml"
+# 33756 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33827,9 +33822,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 33833 "parsing/parser.ml"
+# 33828 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
@@ -33840,9 +33835,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 33846 "parsing/parser.ml"
+# 33841 "parsing/parser.ml"
in
let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in
@@ -33850,9 +33845,9 @@ module Tables = struct
let _symbolstartpos = _startpos_id_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1748 "parsing/parser.mly"
+# 1750 "parsing/parser.mly"
( Mty.alias ~loc:(make_loc _sloc) id )
-# 33856 "parsing/parser.ml"
+# 33851 "parsing/parser.ml"
in
let name =
@@ -33861,37 +33856,37 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 33867 "parsing/parser.ml"
+# 33862 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 33875 "parsing/parser.ml"
+# 33870 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1739 "parsing/parser.mly"
+# 1741 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Md.mk name body ~attrs ~loc ~docs, ext
)
-# 33889 "parsing/parser.ml"
+# 33884 "parsing/parser.ml"
in
-# 1682 "parsing/parser.mly"
+# 1684 "parsing/parser.mly"
( let (body, ext) = _1 in (Psig_module body, ext) )
-# 33895 "parsing/parser.ml"
+# 33890 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined4_ in
@@ -33899,15 +33894,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33905 "parsing/parser.ml"
+# 33900 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33911 "parsing/parser.ml"
+# 33906 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -33931,23 +33926,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1684 "parsing/parser.mly"
+# 1686 "parsing/parser.mly"
( let (body, ext) = _1 in (Psig_modsubst body, ext) )
-# 33937 "parsing/parser.ml"
+# 33932 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 33945 "parsing/parser.ml"
+# 33940 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 33951 "parsing/parser.ml"
+# 33946 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34033,9 +34028,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 34039 "parsing/parser.ml"
+# 34034 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -34045,49 +34040,49 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 34051 "parsing/parser.ml"
+# 34046 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 34059 "parsing/parser.ml"
+# 34054 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1782 "parsing/parser.mly"
+# 1784 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
ext, Md.mk name mty ~attrs ~loc ~docs
)
-# 34073 "parsing/parser.ml"
+# 34068 "parsing/parser.ml"
in
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 34079 "parsing/parser.ml"
+# 34074 "parsing/parser.ml"
in
-# 1771 "parsing/parser.mly"
+# 1773 "parsing/parser.mly"
( _1 )
-# 34085 "parsing/parser.ml"
+# 34080 "parsing/parser.ml"
in
-# 1686 "parsing/parser.mly"
+# 1688 "parsing/parser.mly"
( let (ext, l) = _1 in (Psig_recmodule l, ext) )
-# 34091 "parsing/parser.ml"
+# 34086 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_bs_ in
@@ -34095,15 +34090,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34101 "parsing/parser.ml"
+# 34096 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34107 "parsing/parser.ml"
+# 34102 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34127,23 +34122,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1688 "parsing/parser.mly"
+# 1690 "parsing/parser.mly"
( let (body, ext) = _1 in (Psig_modtype body, ext) )
-# 34133 "parsing/parser.ml"
+# 34128 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34141 "parsing/parser.ml"
+# 34136 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34147 "parsing/parser.ml"
+# 34142 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34167,23 +34162,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1690 "parsing/parser.mly"
+# 1692 "parsing/parser.mly"
( let (body, ext) = _1 in (Psig_modtypesubst body, ext) )
-# 34173 "parsing/parser.ml"
+# 34168 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34181 "parsing/parser.ml"
+# 34176 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34187 "parsing/parser.ml"
+# 34182 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34207,23 +34202,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1692 "parsing/parser.mly"
+# 1694 "parsing/parser.mly"
( let (body, ext) = _1 in (Psig_open body, ext) )
-# 34213 "parsing/parser.ml"
+# 34208 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34221 "parsing/parser.ml"
+# 34216 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34227 "parsing/parser.ml"
+# 34222 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34279,38 +34274,38 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 34285 "parsing/parser.ml"
+# 34280 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined2_ in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 34294 "parsing/parser.ml"
+# 34289 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1532 "parsing/parser.mly"
+# 1534 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Incl.mk thing ~attrs ~loc ~docs, ext
)
-# 34308 "parsing/parser.ml"
+# 34303 "parsing/parser.ml"
in
-# 1694 "parsing/parser.mly"
+# 1696 "parsing/parser.mly"
( psig_include _1 )
-# 34314 "parsing/parser.ml"
+# 34309 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined2_ in
@@ -34318,15 +34313,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34324 "parsing/parser.ml"
+# 34319 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34330 "parsing/parser.ml"
+# 34325 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34403,9 +34398,9 @@ module Tables = struct
let cty : (Parsetree.class_type) = Obj.magic cty in
let _7 : unit = Obj.magic _7 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 34409 "parsing/parser.ml"
+# 34404 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let virt : (Asttypes.virtual_flag) = Obj.magic virt in
@@ -34423,9 +34418,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 34429 "parsing/parser.ml"
+# 34424 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -34435,24 +34430,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 34441 "parsing/parser.ml"
+# 34436 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 34449 "parsing/parser.ml"
+# 34444 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2129 "parsing/parser.mly"
+# 2131 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
@@ -34460,25 +34455,25 @@ module Tables = struct
ext,
Ci.mk id cty ~virt ~params ~attrs ~loc ~docs
)
-# 34464 "parsing/parser.ml"
+# 34459 "parsing/parser.ml"
in
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 34470 "parsing/parser.ml"
+# 34465 "parsing/parser.ml"
in
-# 2117 "parsing/parser.mly"
+# 2119 "parsing/parser.mly"
( _1 )
-# 34476 "parsing/parser.ml"
+# 34471 "parsing/parser.ml"
in
-# 1696 "parsing/parser.mly"
+# 1698 "parsing/parser.mly"
( let (ext, l) = _1 in (Psig_class l, ext) )
-# 34482 "parsing/parser.ml"
+# 34477 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_bs_ in
@@ -34486,15 +34481,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34492 "parsing/parser.ml"
+# 34487 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34498 "parsing/parser.ml"
+# 34493 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34518,23 +34513,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.signature_item) = let _1 =
let _1 =
-# 1698 "parsing/parser.mly"
+# 1700 "parsing/parser.mly"
( let (ext, l) = _1 in (Psig_class_type l, ext) )
-# 34524 "parsing/parser.ml"
+# 34519 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 950 "parsing/parser.mly"
+# 952 "parsing/parser.mly"
( wrap_mksig_ext ~loc:_sloc _1 )
-# 34532 "parsing/parser.ml"
+# 34527 "parsing/parser.ml"
in
-# 1700 "parsing/parser.mly"
+# 1702 "parsing/parser.mly"
( _1 )
-# 34538 "parsing/parser.ml"
+# 34533 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34557,9 +34552,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.constant) =
-# 3543 "parsing/parser.mly"
+# 3538 "parsing/parser.mly"
( _1 )
-# 34563 "parsing/parser.ml"
+# 34558 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34584,18 +34579,18 @@ module Tables = struct
};
} = _menhir_stack in
let _2 : (
-# 696 "parsing/parser.mly"
+# 698 "parsing/parser.mly"
(string * char option)
-# 34590 "parsing/parser.ml"
+# 34585 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.constant) =
-# 3544 "parsing/parser.mly"
+# 3539 "parsing/parser.mly"
( let (n, m) = _2 in Pconst_integer("-" ^ n, m) )
-# 34599 "parsing/parser.ml"
+# 34594 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34620,18 +34615,18 @@ module Tables = struct
};
} = _menhir_stack in
let _2 : (
-# 675 "parsing/parser.mly"
+# 677 "parsing/parser.mly"
(string * char option)
-# 34626 "parsing/parser.ml"
+# 34621 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.constant) =
-# 3545 "parsing/parser.mly"
+# 3540 "parsing/parser.mly"
( let (f, m) = _2 in Pconst_float("-" ^ f, m) )
-# 34635 "parsing/parser.ml"
+# 34630 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34656,18 +34651,18 @@ module Tables = struct
};
} = _menhir_stack in
let _2 : (
-# 696 "parsing/parser.mly"
+# 698 "parsing/parser.mly"
(string * char option)
-# 34662 "parsing/parser.ml"
+# 34657 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.constant) =
-# 3546 "parsing/parser.mly"
+# 3541 "parsing/parser.mly"
( let (n, m) = _2 in Pconst_integer (n, m) )
-# 34671 "parsing/parser.ml"
+# 34666 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34692,18 +34687,18 @@ module Tables = struct
};
} = _menhir_stack in
let _2 : (
-# 675 "parsing/parser.mly"
+# 677 "parsing/parser.mly"
(string * char option)
-# 34698 "parsing/parser.ml"
+# 34693 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : unit = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.constant) =
-# 3547 "parsing/parser.mly"
+# 3542 "parsing/parser.mly"
( let (f, m) = _2 in Pconst_float(f, m) )
-# 34707 "parsing/parser.ml"
+# 34702 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34744,18 +34739,18 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 2872 "parsing/parser.mly"
+# 2867 "parsing/parser.mly"
( let fields, closed = _1 in
let closed = match closed with Some () -> Open | None -> Closed in
fields, closed )
-# 34752 "parsing/parser.ml"
+# 34747 "parsing/parser.ml"
in
-# 2843 "parsing/parser.mly"
+# 2838 "parsing/parser.mly"
( let (fields, closed) = _2 in
Ppat_record(fields, closed) )
-# 34759 "parsing/parser.ml"
+# 34754 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -34763,15 +34758,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 34769 "parsing/parser.ml"
+# 34764 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 34775 "parsing/parser.ml"
+# 34770 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34812,19 +34807,19 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 2872 "parsing/parser.mly"
+# 2867 "parsing/parser.mly"
( let fields, closed = _1 in
let closed = match closed with Some () -> Open | None -> Closed in
fields, closed )
-# 34820 "parsing/parser.ml"
+# 34815 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2846 "parsing/parser.mly"
+# 2841 "parsing/parser.mly"
( unclosed "{" _loc__1_ "}" _loc__3_ )
-# 34828 "parsing/parser.ml"
+# 34823 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -34832,15 +34827,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 34838 "parsing/parser.ml"
+# 34833 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 34844 "parsing/parser.ml"
+# 34839 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34879,15 +34874,15 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _2 =
-# 2866 "parsing/parser.mly"
+# 2861 "parsing/parser.mly"
( ps )
-# 34885 "parsing/parser.ml"
+# 34880 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2848 "parsing/parser.mly"
+# 2843 "parsing/parser.mly"
( fst (mktailpat _loc__3_ _2) )
-# 34891 "parsing/parser.ml"
+# 34886 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -34895,15 +34890,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 34901 "parsing/parser.ml"
+# 34896 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 34907 "parsing/parser.ml"
+# 34902 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -34942,16 +34937,16 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _2 =
-# 2866 "parsing/parser.mly"
+# 2861 "parsing/parser.mly"
( ps )
-# 34948 "parsing/parser.ml"
+# 34943 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2850 "parsing/parser.mly"
+# 2845 "parsing/parser.mly"
( unclosed "[" _loc__1_ "]" _loc__3_ )
-# 34955 "parsing/parser.ml"
+# 34950 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -34959,15 +34954,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 34965 "parsing/parser.ml"
+# 34960 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 34971 "parsing/parser.ml"
+# 34966 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35006,14 +35001,14 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _2 =
-# 2866 "parsing/parser.mly"
+# 2861 "parsing/parser.mly"
( ps )
-# 35012 "parsing/parser.ml"
+# 35007 "parsing/parser.ml"
in
-# 2852 "parsing/parser.mly"
+# 2847 "parsing/parser.mly"
( Ppat_array _2 )
-# 35017 "parsing/parser.ml"
+# 35012 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -35021,15 +35016,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 35027 "parsing/parser.ml"
+# 35022 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 35033 "parsing/parser.ml"
+# 35028 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35060,24 +35055,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2854 "parsing/parser.mly"
+# 2849 "parsing/parser.mly"
( Ppat_array [] )
-# 35066 "parsing/parser.ml"
+# 35061 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 35075 "parsing/parser.ml"
+# 35070 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 35081 "parsing/parser.ml"
+# 35076 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35116,16 +35111,16 @@ module Tables = struct
let _v : (Parsetree.pattern) = let _1 =
let _1 =
let _2 =
-# 2866 "parsing/parser.mly"
+# 2861 "parsing/parser.mly"
( ps )
-# 35122 "parsing/parser.ml"
+# 35117 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2856 "parsing/parser.mly"
+# 2851 "parsing/parser.mly"
( unclosed "[|" _loc__1_ "|]" _loc__3_ )
-# 35129 "parsing/parser.ml"
+# 35124 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -35133,15 +35128,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 35139 "parsing/parser.ml"
+# 35134 "parsing/parser.ml"
in
-# 2857 "parsing/parser.mly"
+# 2852 "parsing/parser.mly"
( _1 )
-# 35145 "parsing/parser.ml"
+# 35140 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35181,9 +35176,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2371 "parsing/parser.mly"
+# 2373 "parsing/parser.mly"
( reloc_exp ~loc:_sloc _2 )
-# 35187 "parsing/parser.ml"
+# 35182 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35222,9 +35217,9 @@ module Tables = struct
let _v : (Parsetree.expression) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2373 "parsing/parser.mly"
+# 2375 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__3_ )
-# 35228 "parsing/parser.ml"
+# 35223 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35271,9 +35266,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2375 "parsing/parser.mly"
+# 2377 "parsing/parser.mly"
( mkexp_constraint ~loc:_sloc _2 _3 )
-# 35277 "parsing/parser.ml"
+# 35272 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35325,14 +35320,14 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2376 "parsing/parser.mly"
+# 2378 "parsing/parser.mly"
( None )
-# 35331 "parsing/parser.ml"
+# 35326 "parsing/parser.ml"
in
-# 2259 "parsing/parser.mly"
+# 2261 "parsing/parser.mly"
( array, d, Paren, i, r )
-# 35336 "parsing/parser.ml"
+# 35331 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35340,9 +35335,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2377 "parsing/parser.mly"
+# 2379 "parsing/parser.mly"
( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
-# 35346 "parsing/parser.ml"
+# 35341 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35394,14 +35389,14 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2376 "parsing/parser.mly"
+# 2378 "parsing/parser.mly"
( None )
-# 35400 "parsing/parser.ml"
+# 35395 "parsing/parser.ml"
in
-# 2261 "parsing/parser.mly"
+# 2263 "parsing/parser.mly"
( array, d, Brace, i, r )
-# 35405 "parsing/parser.ml"
+# 35400 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35409,9 +35404,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2377 "parsing/parser.mly"
+# 2379 "parsing/parser.mly"
( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
-# 35415 "parsing/parser.ml"
+# 35410 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35463,14 +35458,14 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2376 "parsing/parser.mly"
+# 2378 "parsing/parser.mly"
( None )
-# 35469 "parsing/parser.ml"
+# 35464 "parsing/parser.ml"
in
-# 2263 "parsing/parser.mly"
+# 2265 "parsing/parser.mly"
( array, d, Bracket, i, r )
-# 35474 "parsing/parser.ml"
+# 35469 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35478,9 +35473,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2377 "parsing/parser.mly"
+# 2379 "parsing/parser.mly"
( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
-# 35484 "parsing/parser.ml"
+# 35479 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35526,9 +35521,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 35532 "parsing/parser.ml"
+# 35527 "parsing/parser.ml"
) = Obj.magic _2 in
let array : (Parsetree.expression) = Obj.magic array in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -35536,31 +35531,31 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2378 "parsing/parser.mly"
+# 2380 "parsing/parser.mly"
( None )
-# 35542 "parsing/parser.ml"
+# 35537 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 35547 "parsing/parser.ml"
+# 35542 "parsing/parser.ml"
in
let d =
let _1 =
# 124 "<standard.mly>"
( None )
-# 35553 "parsing/parser.ml"
+# 35548 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 35558 "parsing/parser.ml"
+# 35553 "parsing/parser.ml"
in
-# 2259 "parsing/parser.mly"
+# 2261 "parsing/parser.mly"
( array, d, Paren, i, r )
-# 35564 "parsing/parser.ml"
+# 35559 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35568,9 +35563,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2379 "parsing/parser.mly"
+# 2381 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 35574 "parsing/parser.ml"
+# 35569 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35628,9 +35623,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 35634 "parsing/parser.ml"
+# 35629 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -35640,39 +35635,39 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2378 "parsing/parser.mly"
+# 2380 "parsing/parser.mly"
( None )
-# 35646 "parsing/parser.ml"
+# 35641 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 35651 "parsing/parser.ml"
+# 35646 "parsing/parser.ml"
in
let d =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 35659 "parsing/parser.ml"
+# 35654 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 35664 "parsing/parser.ml"
+# 35659 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 35670 "parsing/parser.ml"
+# 35665 "parsing/parser.ml"
in
-# 2259 "parsing/parser.mly"
+# 2261 "parsing/parser.mly"
( array, d, Paren, i, r )
-# 35676 "parsing/parser.ml"
+# 35671 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35680,9 +35675,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2379 "parsing/parser.mly"
+# 2381 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 35686 "parsing/parser.ml"
+# 35681 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35728,9 +35723,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 35734 "parsing/parser.ml"
+# 35729 "parsing/parser.ml"
) = Obj.magic _2 in
let array : (Parsetree.expression) = Obj.magic array in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -35738,31 +35733,31 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2378 "parsing/parser.mly"
+# 2380 "parsing/parser.mly"
( None )
-# 35744 "parsing/parser.ml"
+# 35739 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 35749 "parsing/parser.ml"
+# 35744 "parsing/parser.ml"
in
let d =
let _1 =
# 124 "<standard.mly>"
( None )
-# 35755 "parsing/parser.ml"
+# 35750 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 35760 "parsing/parser.ml"
+# 35755 "parsing/parser.ml"
in
-# 2261 "parsing/parser.mly"
+# 2263 "parsing/parser.mly"
( array, d, Brace, i, r )
-# 35766 "parsing/parser.ml"
+# 35761 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35770,9 +35765,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2379 "parsing/parser.mly"
+# 2381 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 35776 "parsing/parser.ml"
+# 35771 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35830,9 +35825,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 35836 "parsing/parser.ml"
+# 35831 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -35842,39 +35837,39 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2378 "parsing/parser.mly"
+# 2380 "parsing/parser.mly"
( None )
-# 35848 "parsing/parser.ml"
+# 35843 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 35853 "parsing/parser.ml"
+# 35848 "parsing/parser.ml"
in
let d =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 35861 "parsing/parser.ml"
+# 35856 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 35866 "parsing/parser.ml"
+# 35861 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 35872 "parsing/parser.ml"
+# 35867 "parsing/parser.ml"
in
-# 2261 "parsing/parser.mly"
+# 2263 "parsing/parser.mly"
( array, d, Brace, i, r )
-# 35878 "parsing/parser.ml"
+# 35873 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35882,9 +35877,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2379 "parsing/parser.mly"
+# 2381 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 35888 "parsing/parser.ml"
+# 35883 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -35930,9 +35925,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 35936 "parsing/parser.ml"
+# 35931 "parsing/parser.ml"
) = Obj.magic _2 in
let array : (Parsetree.expression) = Obj.magic array in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -35940,31 +35935,31 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2378 "parsing/parser.mly"
+# 2380 "parsing/parser.mly"
( None )
-# 35946 "parsing/parser.ml"
+# 35941 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 35951 "parsing/parser.ml"
+# 35946 "parsing/parser.ml"
in
let d =
let _1 =
# 124 "<standard.mly>"
( None )
-# 35957 "parsing/parser.ml"
+# 35952 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 35962 "parsing/parser.ml"
+# 35957 "parsing/parser.ml"
in
-# 2263 "parsing/parser.mly"
+# 2265 "parsing/parser.mly"
( array, d, Bracket, i, r )
-# 35968 "parsing/parser.ml"
+# 35963 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -35972,9 +35967,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2379 "parsing/parser.mly"
+# 2381 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 35978 "parsing/parser.ml"
+# 35973 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36032,9 +36027,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _3 : unit = Obj.magic _3 in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36038 "parsing/parser.ml"
+# 36033 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -36044,39 +36039,39 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _1 =
let r =
-# 2378 "parsing/parser.mly"
+# 2380 "parsing/parser.mly"
( None )
-# 36050 "parsing/parser.ml"
+# 36045 "parsing/parser.ml"
in
let i =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36055 "parsing/parser.ml"
+# 36050 "parsing/parser.ml"
in
let d =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 36063 "parsing/parser.ml"
+# 36058 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 36068 "parsing/parser.ml"
+# 36063 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36074 "parsing/parser.ml"
+# 36069 "parsing/parser.ml"
in
-# 2263 "parsing/parser.mly"
+# 2265 "parsing/parser.mly"
( array, d, Bracket, i, r )
-# 36080 "parsing/parser.ml"
+# 36075 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
@@ -36084,9 +36079,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2379 "parsing/parser.mly"
+# 2381 "parsing/parser.mly"
( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
-# 36090 "parsing/parser.ml"
+# 36085 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36140,15 +36135,15 @@ module Tables = struct
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2268 "parsing/parser.mly"
+# 2270 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Paren _loc__e_ )
-# 36146 "parsing/parser.ml"
+# 36141 "parsing/parser.ml"
in
-# 2380 "parsing/parser.mly"
+# 2382 "parsing/parser.mly"
( _1 )
-# 36152 "parsing/parser.ml"
+# 36147 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36202,15 +36197,15 @@ module Tables = struct
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2270 "parsing/parser.mly"
+# 2272 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Brace _loc__e_ )
-# 36208 "parsing/parser.ml"
+# 36203 "parsing/parser.ml"
in
-# 2380 "parsing/parser.mly"
+# 2382 "parsing/parser.mly"
( _1 )
-# 36214 "parsing/parser.ml"
+# 36209 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36264,15 +36259,15 @@ module Tables = struct
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2272 "parsing/parser.mly"
+# 2274 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Bracket _loc__e_ )
-# 36270 "parsing/parser.ml"
+# 36265 "parsing/parser.ml"
in
-# 2380 "parsing/parser.mly"
+# 2382 "parsing/parser.mly"
( _1 )
-# 36276 "parsing/parser.ml"
+# 36271 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36318,9 +36313,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _p : unit = Obj.magic _p in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36324 "parsing/parser.ml"
+# 36319 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : (Parsetree.expression) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -36328,34 +36323,34 @@ module Tables = struct
let _endpos = _endpos__e_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36334 "parsing/parser.ml"
+# 36329 "parsing/parser.ml"
in
let _2 =
let _1 =
# 124 "<standard.mly>"
( None )
-# 36340 "parsing/parser.ml"
+# 36335 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36345 "parsing/parser.ml"
+# 36340 "parsing/parser.ml"
in
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2268 "parsing/parser.mly"
+# 2270 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Paren _loc__e_ )
-# 36353 "parsing/parser.ml"
+# 36348 "parsing/parser.ml"
in
-# 2381 "parsing/parser.mly"
+# 2383 "parsing/parser.mly"
( _1 )
-# 36359 "parsing/parser.ml"
+# 36354 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36413,9 +36408,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _p : unit = Obj.magic _p in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36419 "parsing/parser.ml"
+# 36414 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1_inlined1 : unit = Obj.magic _1_inlined1 in
@@ -36425,42 +36420,42 @@ module Tables = struct
let _endpos = _endpos__e_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36431 "parsing/parser.ml"
+# 36426 "parsing/parser.ml"
in
let _2 =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 36439 "parsing/parser.ml"
+# 36434 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 36444 "parsing/parser.ml"
+# 36439 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36450 "parsing/parser.ml"
+# 36445 "parsing/parser.ml"
in
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2268 "parsing/parser.mly"
+# 2270 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Paren _loc__e_ )
-# 36458 "parsing/parser.ml"
+# 36453 "parsing/parser.ml"
in
-# 2381 "parsing/parser.mly"
+# 2383 "parsing/parser.mly"
( _1 )
-# 36464 "parsing/parser.ml"
+# 36459 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36506,9 +36501,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _p : unit = Obj.magic _p in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36512 "parsing/parser.ml"
+# 36507 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : (Parsetree.expression) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -36516,34 +36511,34 @@ module Tables = struct
let _endpos = _endpos__e_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36522 "parsing/parser.ml"
+# 36517 "parsing/parser.ml"
in
let _2 =
let _1 =
# 124 "<standard.mly>"
( None )
-# 36528 "parsing/parser.ml"
+# 36523 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36533 "parsing/parser.ml"
+# 36528 "parsing/parser.ml"
in
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2270 "parsing/parser.mly"
+# 2272 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Brace _loc__e_ )
-# 36541 "parsing/parser.ml"
+# 36536 "parsing/parser.ml"
in
-# 2381 "parsing/parser.mly"
+# 2383 "parsing/parser.mly"
( _1 )
-# 36547 "parsing/parser.ml"
+# 36542 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36601,9 +36596,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _p : unit = Obj.magic _p in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36607 "parsing/parser.ml"
+# 36602 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1_inlined1 : unit = Obj.magic _1_inlined1 in
@@ -36613,42 +36608,42 @@ module Tables = struct
let _endpos = _endpos__e_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36619 "parsing/parser.ml"
+# 36614 "parsing/parser.ml"
in
let _2 =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 36627 "parsing/parser.ml"
+# 36622 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 36632 "parsing/parser.ml"
+# 36627 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36638 "parsing/parser.ml"
+# 36633 "parsing/parser.ml"
in
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2270 "parsing/parser.mly"
+# 2272 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Brace _loc__e_ )
-# 36646 "parsing/parser.ml"
+# 36641 "parsing/parser.ml"
in
-# 2381 "parsing/parser.mly"
+# 2383 "parsing/parser.mly"
( _1 )
-# 36652 "parsing/parser.ml"
+# 36647 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36694,9 +36689,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _p : unit = Obj.magic _p in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36700 "parsing/parser.ml"
+# 36695 "parsing/parser.ml"
) = Obj.magic _2 in
let _1 : (Parsetree.expression) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -36704,34 +36699,34 @@ module Tables = struct
let _endpos = _endpos__e_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36710 "parsing/parser.ml"
+# 36705 "parsing/parser.ml"
in
let _2 =
let _1 =
# 124 "<standard.mly>"
( None )
-# 36716 "parsing/parser.ml"
+# 36711 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36721 "parsing/parser.ml"
+# 36716 "parsing/parser.ml"
in
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2272 "parsing/parser.mly"
+# 2274 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Bracket _loc__e_ )
-# 36729 "parsing/parser.ml"
+# 36724 "parsing/parser.ml"
in
-# 2381 "parsing/parser.mly"
+# 2383 "parsing/parser.mly"
( _1 )
-# 36735 "parsing/parser.ml"
+# 36730 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36789,9 +36784,9 @@ module Tables = struct
let es : (Parsetree.expression list) = Obj.magic es in
let _p : unit = Obj.magic _p in
let _2 : (
-# 691 "parsing/parser.mly"
+# 693 "parsing/parser.mly"
(string)
-# 36795 "parsing/parser.ml"
+# 36790 "parsing/parser.ml"
) = Obj.magic _2 in
let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
let _1_inlined1 : unit = Obj.magic _1_inlined1 in
@@ -36801,42 +36796,42 @@ module Tables = struct
let _endpos = _endpos__e_ in
let _v : (Parsetree.expression) = let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 36807 "parsing/parser.ml"
+# 36802 "parsing/parser.ml"
in
let _2 =
let _1 =
let _2 = _2_inlined1 in
let x =
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
(_2)
-# 36815 "parsing/parser.ml"
+# 36810 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 36820 "parsing/parser.ml"
+# 36815 "parsing/parser.ml"
in
-# 2275 "parsing/parser.mly"
+# 2277 "parsing/parser.mly"
( _1, _2 )
-# 36826 "parsing/parser.ml"
+# 36821 "parsing/parser.ml"
in
let _loc__p_ = (_startpos__p_, _endpos__p_) in
let _loc__e_ = (_startpos__e_, _endpos__e_) in
-# 2272 "parsing/parser.mly"
+# 2274 "parsing/parser.mly"
( indexop_unclosed_error _loc__p_ Bracket _loc__e_ )
-# 36834 "parsing/parser.ml"
+# 36829 "parsing/parser.ml"
in
-# 2381 "parsing/parser.mly"
+# 2383 "parsing/parser.mly"
( _1 )
-# 36840 "parsing/parser.ml"
+# 36835 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36890,15 +36885,15 @@ module Tables = struct
let attrs =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 36896 "parsing/parser.ml"
+# 36891 "parsing/parser.ml"
in
-# 2390 "parsing/parser.mly"
+# 2392 "parsing/parser.mly"
( e.pexp_desc, (ext, attrs @ e.pexp_attributes) )
-# 36902 "parsing/parser.ml"
+# 36897 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -36906,10 +36901,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 36913 "parsing/parser.ml"
+# 36908 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -36958,24 +36953,24 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 36964 "parsing/parser.ml"
+# 36959 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 36970 "parsing/parser.ml"
+# 36965 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2392 "parsing/parser.mly"
+# 2394 "parsing/parser.mly"
( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 )
-# 36979 "parsing/parser.ml"
+# 36974 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -36983,10 +36978,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 36990 "parsing/parser.ml"
+# 36985 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37042,23 +37037,23 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37048 "parsing/parser.ml"
+# 37043 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37054 "parsing/parser.ml"
+# 37049 "parsing/parser.ml"
in
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2394 "parsing/parser.mly"
+# 2396 "parsing/parser.mly"
( unclosed "begin" _loc__1_ "end" _loc__4_ )
-# 37062 "parsing/parser.ml"
+# 37057 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -37066,10 +37061,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37073 "parsing/parser.ml"
+# 37068 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37119,9 +37114,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 37125 "parsing/parser.ml"
+# 37120 "parsing/parser.ml"
in
let _2 =
@@ -37129,21 +37124,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37135 "parsing/parser.ml"
+# 37130 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37141 "parsing/parser.ml"
+# 37136 "parsing/parser.ml"
in
-# 2396 "parsing/parser.mly"
+# 2398 "parsing/parser.mly"
( Pexp_new(_3), _2 )
-# 37147 "parsing/parser.ml"
+# 37142 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined3_ in
@@ -37151,10 +37146,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37158 "parsing/parser.ml"
+# 37153 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37217,21 +37212,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37223 "parsing/parser.ml"
+# 37218 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37229 "parsing/parser.ml"
+# 37224 "parsing/parser.ml"
in
-# 2398 "parsing/parser.mly"
+# 2400 "parsing/parser.mly"
( Pexp_pack _4, _3 )
-# 37235 "parsing/parser.ml"
+# 37230 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -37239,10 +37234,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37246 "parsing/parser.ml"
+# 37241 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37320,11 +37315,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 37328 "parsing/parser.ml"
+# 37323 "parsing/parser.ml"
in
let _3 =
@@ -37332,24 +37327,24 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37338 "parsing/parser.ml"
+# 37333 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37344 "parsing/parser.ml"
+# 37339 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2400 "parsing/parser.mly"
+# 2402 "parsing/parser.mly"
( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), _6), _3 )
-# 37353 "parsing/parser.ml"
+# 37348 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -37357,10 +37352,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37364 "parsing/parser.ml"
+# 37359 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37430,23 +37425,23 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37436 "parsing/parser.ml"
+# 37431 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37442 "parsing/parser.ml"
+# 37437 "parsing/parser.ml"
in
let _loc__6_ = (_startpos__6_, _endpos__6_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2402 "parsing/parser.mly"
+# 2404 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__6_ )
-# 37450 "parsing/parser.ml"
+# 37445 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__6_ in
@@ -37454,10 +37449,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37461 "parsing/parser.ml"
+# 37456 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37522,27 +37517,27 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 37526 "parsing/parser.ml"
+# 37521 "parsing/parser.ml"
in
-# 1945 "parsing/parser.mly"
+# 1947 "parsing/parser.mly"
( _1 )
-# 37531 "parsing/parser.ml"
+# 37526 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 886 "parsing/parser.mly"
+# 888 "parsing/parser.mly"
( extra_cstr _startpos _endpos _1 )
-# 37540 "parsing/parser.ml"
+# 37535 "parsing/parser.ml"
in
-# 1932 "parsing/parser.mly"
+# 1934 "parsing/parser.mly"
( Cstr.mk _1 _2 )
-# 37546 "parsing/parser.ml"
+# 37541 "parsing/parser.ml"
in
let _2 =
@@ -37550,21 +37545,21 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37556 "parsing/parser.ml"
+# 37551 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37562 "parsing/parser.ml"
+# 37557 "parsing/parser.ml"
in
-# 2404 "parsing/parser.mly"
+# 2406 "parsing/parser.mly"
( Pexp_object _3, _2 )
-# 37568 "parsing/parser.ml"
+# 37563 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -37572,10 +37567,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37579 "parsing/parser.ml"
+# 37574 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37640,27 +37635,27 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 37644 "parsing/parser.ml"
+# 37639 "parsing/parser.ml"
in
-# 1945 "parsing/parser.mly"
+# 1947 "parsing/parser.mly"
( _1 )
-# 37649 "parsing/parser.ml"
+# 37644 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 886 "parsing/parser.mly"
+# 888 "parsing/parser.mly"
( extra_cstr _startpos _endpos _1 )
-# 37658 "parsing/parser.ml"
+# 37653 "parsing/parser.ml"
in
-# 1932 "parsing/parser.mly"
+# 1934 "parsing/parser.mly"
( Cstr.mk _1 _2 )
-# 37664 "parsing/parser.ml"
+# 37659 "parsing/parser.ml"
in
let _2 =
@@ -37668,23 +37663,23 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 37674 "parsing/parser.ml"
+# 37669 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 37680 "parsing/parser.ml"
+# 37675 "parsing/parser.ml"
in
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2406 "parsing/parser.mly"
+# 2408 "parsing/parser.mly"
( unclosed "object" _loc__1_ "end" _loc__4_ )
-# 37688 "parsing/parser.ml"
+# 37683 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -37692,10 +37687,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2383 "parsing/parser.mly"
+# 2385 "parsing/parser.mly"
( let desc, attrs = _1 in
mkexp_attrs ~loc:_sloc desc attrs )
-# 37699 "parsing/parser.ml"
+# 37694 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37724,30 +37719,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 37730 "parsing/parser.ml"
+# 37725 "parsing/parser.ml"
in
-# 2410 "parsing/parser.mly"
+# 2412 "parsing/parser.mly"
( Pexp_ident (_1) )
-# 37736 "parsing/parser.ml"
+# 37731 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 37745 "parsing/parser.ml"
+# 37740 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 37751 "parsing/parser.ml"
+# 37746 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37771,23 +37766,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2412 "parsing/parser.mly"
+# 2414 "parsing/parser.mly"
( Pexp_constant _1 )
-# 37777 "parsing/parser.ml"
+# 37772 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 37785 "parsing/parser.ml"
+# 37780 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 37791 "parsing/parser.ml"
+# 37786 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37816,30 +37811,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 37822 "parsing/parser.ml"
+# 37817 "parsing/parser.ml"
in
-# 2414 "parsing/parser.mly"
+# 2416 "parsing/parser.mly"
( Pexp_construct(_1, None) )
-# 37828 "parsing/parser.ml"
+# 37823 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 37837 "parsing/parser.ml"
+# 37832 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 37843 "parsing/parser.ml"
+# 37838 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37863,23 +37858,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2416 "parsing/parser.mly"
+# 2418 "parsing/parser.mly"
( Pexp_variant(_1, None) )
-# 37869 "parsing/parser.ml"
+# 37864 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 37877 "parsing/parser.ml"
+# 37872 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 37883 "parsing/parser.ml"
+# 37878 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37905,9 +37900,9 @@ module Tables = struct
} = _menhir_stack in
let _2 : (Parsetree.expression) = Obj.magic _2 in
let _1 : (
-# 734 "parsing/parser.mly"
+# 736 "parsing/parser.mly"
(string)
-# 37911 "parsing/parser.ml"
+# 37906 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
@@ -37919,15 +37914,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 37925 "parsing/parser.ml"
+# 37920 "parsing/parser.ml"
in
-# 2418 "parsing/parser.mly"
+# 2420 "parsing/parser.mly"
( Pexp_apply(_1, [Nolabel,_2]) )
-# 37931 "parsing/parser.ml"
+# 37926 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
@@ -37935,15 +37930,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 37941 "parsing/parser.ml"
+# 37936 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 37947 "parsing/parser.ml"
+# 37942 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -37976,23 +37971,23 @@ module Tables = struct
let _1 =
let _1 =
let _1 =
-# 2419 "parsing/parser.mly"
+# 2421 "parsing/parser.mly"
("!")
-# 37982 "parsing/parser.ml"
+# 37977 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 37990 "parsing/parser.ml"
+# 37985 "parsing/parser.ml"
in
-# 2420 "parsing/parser.mly"
+# 2422 "parsing/parser.mly"
( Pexp_apply(_1, [Nolabel,_2]) )
-# 37996 "parsing/parser.ml"
+# 37991 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
@@ -38000,15 +37995,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38006 "parsing/parser.ml"
+# 38001 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38012 "parsing/parser.ml"
+# 38007 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38047,14 +38042,14 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _2 =
-# 2681 "parsing/parser.mly"
+# 2676 "parsing/parser.mly"
( xs )
-# 38053 "parsing/parser.ml"
+# 38048 "parsing/parser.ml"
in
-# 2422 "parsing/parser.mly"
+# 2424 "parsing/parser.mly"
( Pexp_override _2 )
-# 38058 "parsing/parser.ml"
+# 38053 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -38062,15 +38057,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38068 "parsing/parser.ml"
+# 38063 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38074 "parsing/parser.ml"
+# 38069 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38109,16 +38104,16 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _2 =
-# 2681 "parsing/parser.mly"
+# 2676 "parsing/parser.mly"
( xs )
-# 38115 "parsing/parser.ml"
+# 38110 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2424 "parsing/parser.mly"
+# 2426 "parsing/parser.mly"
( unclosed "{<" _loc__1_ ">}" _loc__3_ )
-# 38122 "parsing/parser.ml"
+# 38117 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -38126,15 +38121,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38132 "parsing/parser.ml"
+# 38127 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38138 "parsing/parser.ml"
+# 38133 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38165,24 +38160,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2426 "parsing/parser.mly"
+# 2428 "parsing/parser.mly"
( Pexp_override [] )
-# 38171 "parsing/parser.ml"
+# 38166 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38180 "parsing/parser.ml"
+# 38175 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38186 "parsing/parser.ml"
+# 38181 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38226,15 +38221,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 38232 "parsing/parser.ml"
+# 38227 "parsing/parser.ml"
in
-# 2428 "parsing/parser.mly"
+# 2430 "parsing/parser.mly"
( Pexp_field(_1, _3) )
-# 38238 "parsing/parser.ml"
+# 38233 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -38242,15 +38237,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38248 "parsing/parser.ml"
+# 38243 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38254 "parsing/parser.ml"
+# 38249 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38308,24 +38303,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 38314 "parsing/parser.ml"
+# 38309 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 38323 "parsing/parser.ml"
+# 38318 "parsing/parser.ml"
in
-# 2430 "parsing/parser.mly"
+# 2432 "parsing/parser.mly"
( Pexp_open(od, _4) )
-# 38329 "parsing/parser.ml"
+# 38324 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -38333,15 +38328,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38339 "parsing/parser.ml"
+# 38334 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38345 "parsing/parser.ml"
+# 38340 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38394,9 +38389,9 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _4 =
-# 2681 "parsing/parser.mly"
+# 2676 "parsing/parser.mly"
( xs )
-# 38400 "parsing/parser.ml"
+# 38395 "parsing/parser.ml"
in
let od =
let _1 =
@@ -38404,18 +38399,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 38410 "parsing/parser.ml"
+# 38405 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 38419 "parsing/parser.ml"
+# 38414 "parsing/parser.ml"
in
let _startpos_od_ = _startpos__1_ in
@@ -38423,10 +38418,10 @@ module Tables = struct
let _symbolstartpos = _startpos_od_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2432 "parsing/parser.mly"
+# 2434 "parsing/parser.mly"
( (* TODO: review the location of Pexp_override *)
Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) )
-# 38430 "parsing/parser.ml"
+# 38425 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -38434,15 +38429,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38440 "parsing/parser.ml"
+# 38435 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38446 "parsing/parser.ml"
+# 38441 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38495,16 +38490,16 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _4 =
-# 2681 "parsing/parser.mly"
+# 2676 "parsing/parser.mly"
( xs )
-# 38501 "parsing/parser.ml"
+# 38496 "parsing/parser.ml"
in
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2435 "parsing/parser.mly"
+# 2437 "parsing/parser.mly"
( unclosed "{<" _loc__3_ ">}" _loc__5_ )
-# 38508 "parsing/parser.ml"
+# 38503 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -38512,15 +38507,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38518 "parsing/parser.ml"
+# 38513 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38524 "parsing/parser.ml"
+# 38519 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38551,9 +38546,9 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 38557 "parsing/parser.ml"
+# 38552 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _2 : unit = Obj.magic _2 in
let _1 : (Parsetree.expression) = Obj.magic _1 in
@@ -38565,23 +38560,23 @@ module Tables = struct
let _3 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 38571 "parsing/parser.ml"
+# 38566 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 38579 "parsing/parser.ml"
+# 38574 "parsing/parser.ml"
in
-# 2437 "parsing/parser.mly"
+# 2439 "parsing/parser.mly"
( Pexp_send(_1, _3) )
-# 38585 "parsing/parser.ml"
+# 38580 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -38589,15 +38584,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38595 "parsing/parser.ml"
+# 38590 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38601 "parsing/parser.ml"
+# 38596 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38629,9 +38624,9 @@ module Tables = struct
} = _menhir_stack in
let _3 : (Parsetree.expression) = Obj.magic _3 in
let _1_inlined1 : (
-# 745 "parsing/parser.mly"
+# 747 "parsing/parser.mly"
(string)
-# 38635 "parsing/parser.ml"
+# 38630 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _1 : (Parsetree.expression) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
@@ -38645,15 +38640,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 919 "parsing/parser.mly"
+# 921 "parsing/parser.mly"
( mkoperator ~loc:_sloc _1 )
-# 38651 "parsing/parser.ml"
+# 38646 "parsing/parser.ml"
in
-# 2439 "parsing/parser.mly"
+# 2441 "parsing/parser.mly"
( mkinfix _1 _2 _3 )
-# 38657 "parsing/parser.ml"
+# 38652 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -38661,15 +38656,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38667 "parsing/parser.ml"
+# 38662 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38673 "parsing/parser.ml"
+# 38668 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38693,23 +38688,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2441 "parsing/parser.mly"
+# 2443 "parsing/parser.mly"
( Pexp_extension _1 )
-# 38699 "parsing/parser.ml"
+# 38694 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38707 "parsing/parser.ml"
+# 38702 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38713 "parsing/parser.ml"
+# 38708 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38757,18 +38752,18 @@ module Tables = struct
let _3 =
let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
let _1 =
-# 2442 "parsing/parser.mly"
+# 2444 "parsing/parser.mly"
(Lident "()")
-# 38763 "parsing/parser.ml"
+# 38758 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 38772 "parsing/parser.ml"
+# 38767 "parsing/parser.ml"
in
let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
@@ -38778,25 +38773,25 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 38784 "parsing/parser.ml"
+# 38779 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 38793 "parsing/parser.ml"
+# 38788 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2443 "parsing/parser.mly"
+# 2445 "parsing/parser.mly"
( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) )
-# 38800 "parsing/parser.ml"
+# 38795 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_inlined1_ in
@@ -38804,15 +38799,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38810 "parsing/parser.ml"
+# 38805 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38816 "parsing/parser.ml"
+# 38811 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38867,9 +38862,9 @@ module Tables = struct
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2445 "parsing/parser.mly"
+# 2447 "parsing/parser.mly"
( unclosed "(" _loc__3_ ")" _loc__5_ )
-# 38873 "parsing/parser.ml"
+# 38868 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -38877,15 +38872,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38883 "parsing/parser.ml"
+# 38878 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38889 "parsing/parser.ml"
+# 38884 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38924,25 +38919,25 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2447 "parsing/parser.mly"
+# 2449 "parsing/parser.mly"
( let (exten, fields) = _2 in
Pexp_record(fields, exten) )
-# 38931 "parsing/parser.ml"
+# 38926 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 38940 "parsing/parser.ml"
+# 38935 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 38946 "parsing/parser.ml"
+# 38941 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -38984,9 +38979,9 @@ module Tables = struct
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2450 "parsing/parser.mly"
+# 2452 "parsing/parser.mly"
( unclosed "{" _loc__1_ "}" _loc__3_ )
-# 38990 "parsing/parser.ml"
+# 38985 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -38994,15 +38989,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39000 "parsing/parser.ml"
+# 38995 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39006 "parsing/parser.ml"
+# 39001 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39061,27 +39056,27 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 39067 "parsing/parser.ml"
+# 39062 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 39076 "parsing/parser.ml"
+# 39071 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
-# 2452 "parsing/parser.mly"
+# 2454 "parsing/parser.mly"
( let (exten, fields) = _4 in
Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos)
(Pexp_record(fields, exten))) )
-# 39085 "parsing/parser.ml"
+# 39080 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -39089,15 +39084,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39095 "parsing/parser.ml"
+# 39090 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39101 "parsing/parser.ml"
+# 39096 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39153,9 +39148,9 @@ module Tables = struct
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2456 "parsing/parser.mly"
+# 2458 "parsing/parser.mly"
( unclosed "{" _loc__3_ "}" _loc__5_ )
-# 39159 "parsing/parser.ml"
+# 39154 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -39163,15 +39158,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39169 "parsing/parser.ml"
+# 39164 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39175 "parsing/parser.ml"
+# 39170 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39210,14 +39205,14 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _2 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39216 "parsing/parser.ml"
+# 39211 "parsing/parser.ml"
in
-# 2458 "parsing/parser.mly"
+# 2460 "parsing/parser.mly"
( Pexp_array(_2) )
-# 39221 "parsing/parser.ml"
+# 39216 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -39225,15 +39220,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39231 "parsing/parser.ml"
+# 39226 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39237 "parsing/parser.ml"
+# 39232 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39272,16 +39267,16 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _2 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39278 "parsing/parser.ml"
+# 39273 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2460 "parsing/parser.mly"
+# 2462 "parsing/parser.mly"
( unclosed "[|" _loc__1_ "|]" _loc__3_ )
-# 39285 "parsing/parser.ml"
+# 39280 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -39289,15 +39284,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39295 "parsing/parser.ml"
+# 39290 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39301 "parsing/parser.ml"
+# 39296 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39328,24 +39323,24 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) = let _1 =
let _1 =
-# 2462 "parsing/parser.mly"
+# 2464 "parsing/parser.mly"
( Pexp_array [] )
-# 39334 "parsing/parser.ml"
+# 39329 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39343 "parsing/parser.ml"
+# 39338 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39349 "parsing/parser.ml"
+# 39344 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39398,9 +39393,9 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39404 "parsing/parser.ml"
+# 39399 "parsing/parser.ml"
in
let od =
let _1 =
@@ -39408,25 +39403,25 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 39414 "parsing/parser.ml"
+# 39409 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 39423 "parsing/parser.ml"
+# 39418 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
-# 2464 "parsing/parser.mly"
+# 2466 "parsing/parser.mly"
( Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_array(_4))) )
-# 39430 "parsing/parser.ml"
+# 39425 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -39434,15 +39429,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39440 "parsing/parser.ml"
+# 39435 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39446 "parsing/parser.ml"
+# 39441 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39493,26 +39488,26 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 39499 "parsing/parser.ml"
+# 39494 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 39508 "parsing/parser.ml"
+# 39503 "parsing/parser.ml"
in
let _endpos = _endpos__4_ in
-# 2466 "parsing/parser.mly"
+# 2468 "parsing/parser.mly"
( (* TODO: review the location of Pexp_array *)
Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_array [])) )
-# 39516 "parsing/parser.ml"
+# 39511 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -39520,15 +39515,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39526 "parsing/parser.ml"
+# 39521 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39532 "parsing/parser.ml"
+# 39527 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39581,16 +39576,16 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39587 "parsing/parser.ml"
+# 39582 "parsing/parser.ml"
in
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2470 "parsing/parser.mly"
+# 2472 "parsing/parser.mly"
( unclosed "[|" _loc__3_ "|]" _loc__5_ )
-# 39594 "parsing/parser.ml"
+# 39589 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -39598,15 +39593,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39604 "parsing/parser.ml"
+# 39599 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39610 "parsing/parser.ml"
+# 39605 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39645,15 +39640,15 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _2 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39651 "parsing/parser.ml"
+# 39646 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2472 "parsing/parser.mly"
+# 2474 "parsing/parser.mly"
( fst (mktailexp _loc__3_ _2) )
-# 39657 "parsing/parser.ml"
+# 39652 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -39661,15 +39656,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39667 "parsing/parser.ml"
+# 39662 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39673 "parsing/parser.ml"
+# 39668 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39708,16 +39703,16 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _2 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39714 "parsing/parser.ml"
+# 39709 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2474 "parsing/parser.mly"
+# 2476 "parsing/parser.mly"
( unclosed "[" _loc__1_ "]" _loc__3_ )
-# 39721 "parsing/parser.ml"
+# 39716 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -39725,15 +39720,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39731 "parsing/parser.ml"
+# 39726 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39737 "parsing/parser.ml"
+# 39732 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39786,9 +39781,9 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39792 "parsing/parser.ml"
+# 39787 "parsing/parser.ml"
in
let od =
let _1 =
@@ -39796,30 +39791,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 39802 "parsing/parser.ml"
+# 39797 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 39811 "parsing/parser.ml"
+# 39806 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _loc__5_ = (_startpos__5_, _endpos__5_) in
-# 2476 "parsing/parser.mly"
+# 2478 "parsing/parser.mly"
( let list_exp =
(* TODO: review the location of list_exp *)
let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in
mkexp ~loc:(_startpos__3_, _endpos) tail_exp in
Pexp_open(od, list_exp) )
-# 39823 "parsing/parser.ml"
+# 39818 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -39827,15 +39822,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39833 "parsing/parser.ml"
+# 39828 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39839 "parsing/parser.ml"
+# 39834 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39883,18 +39878,18 @@ module Tables = struct
let _3 =
let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
let _1 =
-# 2481 "parsing/parser.mly"
+# 2483 "parsing/parser.mly"
(Lident "[]")
-# 39889 "parsing/parser.ml"
+# 39884 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 39898 "parsing/parser.ml"
+# 39893 "parsing/parser.ml"
in
let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
@@ -39904,25 +39899,25 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 39910 "parsing/parser.ml"
+# 39905 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 39919 "parsing/parser.ml"
+# 39914 "parsing/parser.ml"
in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2482 "parsing/parser.mly"
+# 2484 "parsing/parser.mly"
( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) )
-# 39926 "parsing/parser.ml"
+# 39921 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_inlined1_ in
@@ -39930,15 +39925,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 39936 "parsing/parser.ml"
+# 39931 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 39942 "parsing/parser.ml"
+# 39937 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -39991,16 +39986,16 @@ module Tables = struct
let _v : (Parsetree.expression) = let _1 =
let _1 =
let _4 =
-# 2698 "parsing/parser.mly"
+# 2693 "parsing/parser.mly"
( es )
-# 39997 "parsing/parser.ml"
+# 39992 "parsing/parser.ml"
in
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2485 "parsing/parser.mly"
+# 2487 "parsing/parser.mly"
( unclosed "[" _loc__3_ "]" _loc__5_ )
-# 40004 "parsing/parser.ml"
+# 39999 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -40008,15 +40003,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 40014 "parsing/parser.ml"
+# 40009 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 40020 "parsing/parser.ml"
+# 40015 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40109,11 +40104,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 40117 "parsing/parser.ml"
+# 40112 "parsing/parser.ml"
in
let _5 =
@@ -40121,15 +40116,15 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 40127 "parsing/parser.ml"
+# 40122 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 40133 "parsing/parser.ml"
+# 40128 "parsing/parser.ml"
in
let od =
@@ -40138,18 +40133,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40144 "parsing/parser.ml"
+# 40139 "parsing/parser.ml"
in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 1591 "parsing/parser.mly"
+# 1593 "parsing/parser.mly"
( let loc = make_loc _loc__1_ in
let me = Mod.ident ~loc _1 in
Opn.mk ~loc me )
-# 40153 "parsing/parser.ml"
+# 40148 "parsing/parser.ml"
in
let _startpos_od_ = _startpos__1_ in
@@ -40157,12 +40152,12 @@ module Tables = struct
let _symbolstartpos = _startpos_od_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2488 "parsing/parser.mly"
+# 2490 "parsing/parser.mly"
( let modexp =
mkexp_attrs ~loc:(_startpos__3_, _endpos)
(Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), _8)) _5 in
Pexp_open(od, modexp) )
-# 40166 "parsing/parser.ml"
+# 40161 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__9_ in
@@ -40170,15 +40165,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 40176 "parsing/parser.ml"
+# 40171 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 40182 "parsing/parser.ml"
+# 40177 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40263,23 +40258,23 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 40269 "parsing/parser.ml"
+# 40264 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 40275 "parsing/parser.ml"
+# 40270 "parsing/parser.ml"
in
let _loc__8_ = (_startpos__8_, _endpos__8_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2494 "parsing/parser.mly"
+# 2496 "parsing/parser.mly"
( unclosed "(" _loc__3_ ")" _loc__8_ )
-# 40283 "parsing/parser.ml"
+# 40278 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__8_ in
@@ -40287,15 +40282,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 925 "parsing/parser.mly"
+# 927 "parsing/parser.mly"
( mkexp ~loc:_sloc _1 )
-# 40293 "parsing/parser.ml"
+# 40288 "parsing/parser.ml"
in
-# 2386 "parsing/parser.mly"
+# 2388 "parsing/parser.mly"
( _1 )
-# 40299 "parsing/parser.ml"
+# 40294 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40324,30 +40319,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40330 "parsing/parser.ml"
+# 40325 "parsing/parser.ml"
in
-# 2781 "parsing/parser.mly"
+# 2776 "parsing/parser.mly"
( Ppat_var (_1) )
-# 40336 "parsing/parser.ml"
+# 40331 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40345 "parsing/parser.ml"
+# 40340 "parsing/parser.ml"
in
-# 2782 "parsing/parser.mly"
+# 2777 "parsing/parser.mly"
( _1 )
-# 40351 "parsing/parser.ml"
+# 40346 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40370,9 +40365,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) =
-# 2783 "parsing/parser.mly"
+# 2778 "parsing/parser.mly"
( _1 )
-# 40376 "parsing/parser.ml"
+# 40371 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40412,9 +40407,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2788 "parsing/parser.mly"
+# 2783 "parsing/parser.mly"
( reloc_pat ~loc:_sloc _2 )
-# 40418 "parsing/parser.ml"
+# 40413 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40437,9 +40432,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) =
-# 2790 "parsing/parser.mly"
+# 2785 "parsing/parser.mly"
( _1 )
-# 40443 "parsing/parser.ml"
+# 40438 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40502,9 +40497,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40508 "parsing/parser.ml"
+# 40503 "parsing/parser.ml"
in
let _3 =
@@ -40512,24 +40507,24 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 40518 "parsing/parser.ml"
+# 40513 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 40524 "parsing/parser.ml"
+# 40519 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2792 "parsing/parser.mly"
+# 2787 "parsing/parser.mly"
( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 )
-# 40533 "parsing/parser.ml"
+# 40528 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40606,11 +40601,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 40614 "parsing/parser.ml"
+# 40609 "parsing/parser.ml"
in
let _4 =
@@ -40619,9 +40614,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40625 "parsing/parser.ml"
+# 40620 "parsing/parser.ml"
in
let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in
@@ -40630,15 +40625,15 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 40636 "parsing/parser.ml"
+# 40631 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 40642 "parsing/parser.ml"
+# 40637 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
@@ -40646,11 +40641,11 @@ module Tables = struct
let _loc__4_ = (_startpos__4_, _endpos__4_) in
let _sloc = (_symbolstartpos, _endpos) in
-# 2794 "parsing/parser.mly"
+# 2789 "parsing/parser.mly"
( mkpat_attrs ~loc:_sloc
(Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), _6))
_3 )
-# 40654 "parsing/parser.ml"
+# 40649 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40674,23 +40669,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2802 "parsing/parser.mly"
+# 2797 "parsing/parser.mly"
( Ppat_any )
-# 40680 "parsing/parser.ml"
+# 40675 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40688 "parsing/parser.ml"
+# 40683 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 40694 "parsing/parser.ml"
+# 40689 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40714,23 +40709,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2804 "parsing/parser.mly"
+# 2799 "parsing/parser.mly"
( Ppat_constant _1 )
-# 40720 "parsing/parser.ml"
+# 40715 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40728 "parsing/parser.ml"
+# 40723 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 40734 "parsing/parser.ml"
+# 40729 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40768,24 +40763,24 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2806 "parsing/parser.mly"
+# 2801 "parsing/parser.mly"
( Ppat_interval (_1, _3) )
-# 40774 "parsing/parser.ml"
+# 40769 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40783 "parsing/parser.ml"
+# 40778 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 40789 "parsing/parser.ml"
+# 40784 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40814,30 +40809,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40820 "parsing/parser.ml"
+# 40815 "parsing/parser.ml"
in
-# 2808 "parsing/parser.mly"
+# 2803 "parsing/parser.mly"
( Ppat_construct(_1, None) )
-# 40826 "parsing/parser.ml"
+# 40821 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40835 "parsing/parser.ml"
+# 40830 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 40841 "parsing/parser.ml"
+# 40836 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40861,23 +40856,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2810 "parsing/parser.mly"
+# 2805 "parsing/parser.mly"
( Ppat_variant(_1, None) )
-# 40867 "parsing/parser.ml"
+# 40862 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40875 "parsing/parser.ml"
+# 40870 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 40881 "parsing/parser.ml"
+# 40876 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40914,15 +40909,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40920 "parsing/parser.ml"
+# 40915 "parsing/parser.ml"
in
-# 2812 "parsing/parser.mly"
+# 2807 "parsing/parser.mly"
( Ppat_type (_2) )
-# 40926 "parsing/parser.ml"
+# 40921 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -40930,15 +40925,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 40936 "parsing/parser.ml"
+# 40931 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 40942 "parsing/parser.ml"
+# 40937 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -40981,15 +40976,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 40987 "parsing/parser.ml"
+# 40982 "parsing/parser.ml"
in
-# 2814 "parsing/parser.mly"
+# 2809 "parsing/parser.mly"
( Ppat_open(_1, _3) )
-# 40993 "parsing/parser.ml"
+# 40988 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -40997,15 +40992,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41003 "parsing/parser.ml"
+# 40998 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41009 "parsing/parser.ml"
+# 41004 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41053,18 +41048,18 @@ module Tables = struct
let _3 =
let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
let _1 =
-# 2815 "parsing/parser.mly"
+# 2810 "parsing/parser.mly"
(Lident "[]")
-# 41059 "parsing/parser.ml"
+# 41054 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 41068 "parsing/parser.ml"
+# 41063 "parsing/parser.ml"
in
let _endpos__3_ = _endpos__2_inlined1_ in
@@ -41073,18 +41068,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 41079 "parsing/parser.ml"
+# 41074 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2816 "parsing/parser.mly"
+# 2811 "parsing/parser.mly"
( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) )
-# 41088 "parsing/parser.ml"
+# 41083 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_inlined1_ in
@@ -41092,15 +41087,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41098 "parsing/parser.ml"
+# 41093 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41104 "parsing/parser.ml"
+# 41099 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41148,18 +41143,18 @@ module Tables = struct
let _3 =
let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
let _1 =
-# 2817 "parsing/parser.mly"
+# 2812 "parsing/parser.mly"
(Lident "()")
-# 41154 "parsing/parser.ml"
+# 41149 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 41163 "parsing/parser.ml"
+# 41158 "parsing/parser.ml"
in
let _endpos__3_ = _endpos__2_inlined1_ in
@@ -41168,18 +41163,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 41174 "parsing/parser.ml"
+# 41169 "parsing/parser.ml"
in
let _endpos = _endpos__3_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2818 "parsing/parser.mly"
+# 2813 "parsing/parser.mly"
( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) )
-# 41183 "parsing/parser.ml"
+# 41178 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__2_inlined1_ in
@@ -41187,15 +41182,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41193 "parsing/parser.ml"
+# 41188 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41199 "parsing/parser.ml"
+# 41194 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41252,15 +41247,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 41258 "parsing/parser.ml"
+# 41253 "parsing/parser.ml"
in
-# 2820 "parsing/parser.mly"
+# 2815 "parsing/parser.mly"
( Ppat_open (_1, _4) )
-# 41264 "parsing/parser.ml"
+# 41259 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -41268,15 +41263,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41274 "parsing/parser.ml"
+# 41269 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41280 "parsing/parser.ml"
+# 41275 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41331,9 +41326,9 @@ module Tables = struct
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 2822 "parsing/parser.mly"
+# 2817 "parsing/parser.mly"
( unclosed "(" _loc__3_ ")" _loc__5_ )
-# 41337 "parsing/parser.ml"
+# 41332 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -41341,15 +41336,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41347 "parsing/parser.ml"
+# 41342 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41353 "parsing/parser.ml"
+# 41348 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41396,9 +41391,9 @@ module Tables = struct
let _1 =
let _loc__4_ = (_startpos__4_, _endpos__4_) in
-# 2824 "parsing/parser.mly"
+# 2819 "parsing/parser.mly"
( expecting _loc__4_ "pattern" )
-# 41402 "parsing/parser.ml"
+# 41397 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -41406,15 +41401,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41412 "parsing/parser.ml"
+# 41407 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41418 "parsing/parser.ml"
+# 41413 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41455,9 +41450,9 @@ module Tables = struct
let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2826 "parsing/parser.mly"
+# 2821 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__3_ )
-# 41461 "parsing/parser.ml"
+# 41456 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__3_ in
@@ -41465,15 +41460,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41471 "parsing/parser.ml"
+# 41466 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41477 "parsing/parser.ml"
+# 41472 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41525,24 +41520,24 @@ module Tables = struct
let _endpos = _endpos__5_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2828 "parsing/parser.mly"
+# 2823 "parsing/parser.mly"
( Ppat_constraint(_2, _4) )
-# 41531 "parsing/parser.ml"
+# 41526 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41540 "parsing/parser.ml"
+# 41535 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41546 "parsing/parser.ml"
+# 41541 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41597,9 +41592,9 @@ module Tables = struct
let _loc__5_ = (_startpos__5_, _endpos__5_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2830 "parsing/parser.mly"
+# 2825 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__5_ )
-# 41603 "parsing/parser.ml"
+# 41598 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__5_ in
@@ -41607,15 +41602,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41613 "parsing/parser.ml"
+# 41608 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41619 "parsing/parser.ml"
+# 41614 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41662,9 +41657,9 @@ module Tables = struct
let _1 =
let _loc__4_ = (_startpos__4_, _endpos__4_) in
-# 2832 "parsing/parser.mly"
+# 2827 "parsing/parser.mly"
( expecting _loc__4_ "type" )
-# 41668 "parsing/parser.ml"
+# 41663 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__4_ in
@@ -41672,15 +41667,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41678 "parsing/parser.ml"
+# 41673 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41684 "parsing/parser.ml"
+# 41679 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41759,11 +41754,11 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3457 "parsing/parser.mly"
+# 3452 "parsing/parser.mly"
( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
let descr = Ptyp_package (lid, cstrs) in
mktyp ~loc:_sloc ~attrs descr )
-# 41767 "parsing/parser.ml"
+# 41762 "parsing/parser.ml"
in
let _3 =
@@ -41771,23 +41766,23 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 41777 "parsing/parser.ml"
+# 41772 "parsing/parser.ml"
in
-# 3886 "parsing/parser.mly"
+# 3881 "parsing/parser.mly"
( _1, _2 )
-# 41783 "parsing/parser.ml"
+# 41778 "parsing/parser.ml"
in
let _loc__7_ = (_startpos__7_, _endpos__7_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 2835 "parsing/parser.mly"
+# 2830 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__7_ )
-# 41791 "parsing/parser.ml"
+# 41786 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__7_ in
@@ -41795,15 +41790,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41801 "parsing/parser.ml"
+# 41796 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41807 "parsing/parser.ml"
+# 41802 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41827,23 +41822,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.pattern) = let _1 =
let _1 =
-# 2837 "parsing/parser.mly"
+# 2832 "parsing/parser.mly"
( Ppat_extension _1 )
-# 41833 "parsing/parser.ml"
+# 41828 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 927 "parsing/parser.mly"
+# 929 "parsing/parser.mly"
( mkpat ~loc:_sloc _1 )
-# 41841 "parsing/parser.ml"
+# 41836 "parsing/parser.ml"
in
-# 2798 "parsing/parser.mly"
+# 2793 "parsing/parser.mly"
( _1 )
-# 41847 "parsing/parser.ml"
+# 41842 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41862,17 +41857,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 41868 "parsing/parser.ml"
+# 41863 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3794 "parsing/parser.mly"
+# 3789 "parsing/parser.mly"
( _1 )
-# 41876 "parsing/parser.ml"
+# 41871 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41891,17 +41886,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 761 "parsing/parser.mly"
+# 763 "parsing/parser.mly"
(string)
-# 41897 "parsing/parser.ml"
+# 41892 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3795 "parsing/parser.mly"
+# 3790 "parsing/parser.mly"
( _1 )
-# 41905 "parsing/parser.ml"
+# 41900 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41924,9 +41919,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3796 "parsing/parser.mly"
+# 3791 "parsing/parser.mly"
( "and" )
-# 41930 "parsing/parser.ml"
+# 41925 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41949,9 +41944,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3797 "parsing/parser.mly"
+# 3792 "parsing/parser.mly"
( "as" )
-# 41955 "parsing/parser.ml"
+# 41950 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41974,9 +41969,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3798 "parsing/parser.mly"
+# 3793 "parsing/parser.mly"
( "assert" )
-# 41980 "parsing/parser.ml"
+# 41975 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -41999,9 +41994,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3799 "parsing/parser.mly"
+# 3794 "parsing/parser.mly"
( "begin" )
-# 42005 "parsing/parser.ml"
+# 42000 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42024,9 +42019,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3800 "parsing/parser.mly"
+# 3795 "parsing/parser.mly"
( "class" )
-# 42030 "parsing/parser.ml"
+# 42025 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42049,9 +42044,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3801 "parsing/parser.mly"
+# 3796 "parsing/parser.mly"
( "constraint" )
-# 42055 "parsing/parser.ml"
+# 42050 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42074,9 +42069,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3802 "parsing/parser.mly"
+# 3797 "parsing/parser.mly"
( "do" )
-# 42080 "parsing/parser.ml"
+# 42075 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42099,9 +42094,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3803 "parsing/parser.mly"
+# 3798 "parsing/parser.mly"
( "done" )
-# 42105 "parsing/parser.ml"
+# 42100 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42124,9 +42119,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3804 "parsing/parser.mly"
+# 3799 "parsing/parser.mly"
( "downto" )
-# 42130 "parsing/parser.ml"
+# 42125 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42149,9 +42144,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3805 "parsing/parser.mly"
+# 3800 "parsing/parser.mly"
( "else" )
-# 42155 "parsing/parser.ml"
+# 42150 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42174,9 +42169,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3806 "parsing/parser.mly"
+# 3801 "parsing/parser.mly"
( "end" )
-# 42180 "parsing/parser.ml"
+# 42175 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42199,9 +42194,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3807 "parsing/parser.mly"
+# 3802 "parsing/parser.mly"
( "exception" )
-# 42205 "parsing/parser.ml"
+# 42200 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42224,9 +42219,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3808 "parsing/parser.mly"
+# 3803 "parsing/parser.mly"
( "external" )
-# 42230 "parsing/parser.ml"
+# 42225 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42249,9 +42244,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3809 "parsing/parser.mly"
+# 3804 "parsing/parser.mly"
( "false" )
-# 42255 "parsing/parser.ml"
+# 42250 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42274,9 +42269,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3810 "parsing/parser.mly"
+# 3805 "parsing/parser.mly"
( "for" )
-# 42280 "parsing/parser.ml"
+# 42275 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42299,9 +42294,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3811 "parsing/parser.mly"
+# 3806 "parsing/parser.mly"
( "fun" )
-# 42305 "parsing/parser.ml"
+# 42300 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42324,9 +42319,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3812 "parsing/parser.mly"
+# 3807 "parsing/parser.mly"
( "function" )
-# 42330 "parsing/parser.ml"
+# 42325 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42349,9 +42344,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3813 "parsing/parser.mly"
+# 3808 "parsing/parser.mly"
( "functor" )
-# 42355 "parsing/parser.ml"
+# 42350 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42374,9 +42369,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3814 "parsing/parser.mly"
+# 3809 "parsing/parser.mly"
( "if" )
-# 42380 "parsing/parser.ml"
+# 42375 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42399,9 +42394,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3815 "parsing/parser.mly"
+# 3810 "parsing/parser.mly"
( "in" )
-# 42405 "parsing/parser.ml"
+# 42400 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42424,9 +42419,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3816 "parsing/parser.mly"
+# 3811 "parsing/parser.mly"
( "include" )
-# 42430 "parsing/parser.ml"
+# 42425 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42449,9 +42444,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3817 "parsing/parser.mly"
+# 3812 "parsing/parser.mly"
( "inherit" )
-# 42455 "parsing/parser.ml"
+# 42450 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42474,9 +42469,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3818 "parsing/parser.mly"
+# 3813 "parsing/parser.mly"
( "initializer" )
-# 42480 "parsing/parser.ml"
+# 42475 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42499,9 +42494,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3819 "parsing/parser.mly"
+# 3814 "parsing/parser.mly"
( "lazy" )
-# 42505 "parsing/parser.ml"
+# 42500 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42524,9 +42519,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3820 "parsing/parser.mly"
+# 3815 "parsing/parser.mly"
( "let" )
-# 42530 "parsing/parser.ml"
+# 42525 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42549,9 +42544,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3821 "parsing/parser.mly"
+# 3816 "parsing/parser.mly"
( "match" )
-# 42555 "parsing/parser.ml"
+# 42550 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42574,9 +42569,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3822 "parsing/parser.mly"
+# 3817 "parsing/parser.mly"
( "method" )
-# 42580 "parsing/parser.ml"
+# 42575 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42599,9 +42594,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3823 "parsing/parser.mly"
+# 3818 "parsing/parser.mly"
( "module" )
-# 42605 "parsing/parser.ml"
+# 42600 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42624,9 +42619,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3824 "parsing/parser.mly"
+# 3819 "parsing/parser.mly"
( "mutable" )
-# 42630 "parsing/parser.ml"
+# 42625 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42649,9 +42644,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3825 "parsing/parser.mly"
+# 3820 "parsing/parser.mly"
( "new" )
-# 42655 "parsing/parser.ml"
+# 42650 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42674,9 +42669,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3826 "parsing/parser.mly"
+# 3821 "parsing/parser.mly"
( "nonrec" )
-# 42680 "parsing/parser.ml"
+# 42675 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42699,9 +42694,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3827 "parsing/parser.mly"
+# 3822 "parsing/parser.mly"
( "object" )
-# 42705 "parsing/parser.ml"
+# 42700 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42724,9 +42719,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3828 "parsing/parser.mly"
+# 3823 "parsing/parser.mly"
( "of" )
-# 42730 "parsing/parser.ml"
+# 42725 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42749,9 +42744,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3829 "parsing/parser.mly"
+# 3824 "parsing/parser.mly"
( "open" )
-# 42755 "parsing/parser.ml"
+# 42750 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42774,9 +42769,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3830 "parsing/parser.mly"
+# 3825 "parsing/parser.mly"
( "or" )
-# 42780 "parsing/parser.ml"
+# 42775 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42799,9 +42794,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3831 "parsing/parser.mly"
+# 3826 "parsing/parser.mly"
( "private" )
-# 42805 "parsing/parser.ml"
+# 42800 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42824,9 +42819,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3832 "parsing/parser.mly"
+# 3827 "parsing/parser.mly"
( "rec" )
-# 42830 "parsing/parser.ml"
+# 42825 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42849,9 +42844,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3833 "parsing/parser.mly"
+# 3828 "parsing/parser.mly"
( "sig" )
-# 42855 "parsing/parser.ml"
+# 42850 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42874,9 +42869,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3834 "parsing/parser.mly"
+# 3829 "parsing/parser.mly"
( "struct" )
-# 42880 "parsing/parser.ml"
+# 42875 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42899,9 +42894,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3835 "parsing/parser.mly"
+# 3830 "parsing/parser.mly"
( "then" )
-# 42905 "parsing/parser.ml"
+# 42900 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42924,9 +42919,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3836 "parsing/parser.mly"
+# 3831 "parsing/parser.mly"
( "to" )
-# 42930 "parsing/parser.ml"
+# 42925 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42949,9 +42944,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3837 "parsing/parser.mly"
+# 3832 "parsing/parser.mly"
( "true" )
-# 42955 "parsing/parser.ml"
+# 42950 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42974,9 +42969,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3838 "parsing/parser.mly"
+# 3833 "parsing/parser.mly"
( "try" )
-# 42980 "parsing/parser.ml"
+# 42975 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -42999,9 +42994,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3839 "parsing/parser.mly"
+# 3834 "parsing/parser.mly"
( "type" )
-# 43005 "parsing/parser.ml"
+# 43000 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43024,9 +43019,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3840 "parsing/parser.mly"
+# 3835 "parsing/parser.mly"
( "val" )
-# 43030 "parsing/parser.ml"
+# 43025 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43049,9 +43044,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3841 "parsing/parser.mly"
+# 3836 "parsing/parser.mly"
( "virtual" )
-# 43055 "parsing/parser.ml"
+# 43050 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43074,9 +43069,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3842 "parsing/parser.mly"
+# 3837 "parsing/parser.mly"
( "when" )
-# 43080 "parsing/parser.ml"
+# 43075 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43099,9 +43094,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3843 "parsing/parser.mly"
+# 3838 "parsing/parser.mly"
( "while" )
-# 43105 "parsing/parser.ml"
+# 43100 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43124,9 +43119,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3844 "parsing/parser.mly"
+# 3839 "parsing/parser.mly"
( "with" )
-# 43130 "parsing/parser.ml"
+# 43125 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43149,9 +43144,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.type_exception * string Asttypes.loc option) =
-# 3116 "parsing/parser.mly"
+# 3111 "parsing/parser.mly"
( _1 )
-# 43155 "parsing/parser.ml"
+# 43150 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43225,18 +43220,18 @@ module Tables = struct
let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs =
let _1 = _1_inlined5 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 43231 "parsing/parser.ml"
+# 43226 "parsing/parser.ml"
in
let _endpos_attrs_ = _endpos__1_inlined5_ in
let attrs2 =
let _1 = _1_inlined4 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 43240 "parsing/parser.ml"
+# 43235 "parsing/parser.ml"
in
let lid =
@@ -43245,9 +43240,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 43251 "parsing/parser.ml"
+# 43246 "parsing/parser.ml"
in
let id =
@@ -43256,30 +43251,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 43262 "parsing/parser.ml"
+# 43257 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 43270 "parsing/parser.ml"
+# 43265 "parsing/parser.ml"
in
let _endpos = _endpos_attrs_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3125 "parsing/parser.mly"
+# 3120 "parsing/parser.mly"
( let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Te.mk_exception ~attrs
(Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs)
, ext )
-# 43283 "parsing/parser.ml"
+# 43278 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43309,9 +43304,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.expression) =
-# 2623 "parsing/parser.mly"
+# 2618 "parsing/parser.mly"
( _2 )
-# 43315 "parsing/parser.ml"
+# 43310 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43344,9 +43339,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2625 "parsing/parser.mly"
+# 2620 "parsing/parser.mly"
( let (l, o, p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) )
-# 43350 "parsing/parser.ml"
+# 43345 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43397,17 +43392,17 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__5_ in
let _v : (Parsetree.expression) = let _3 =
-# 2515 "parsing/parser.mly"
+# 2517 "parsing/parser.mly"
( xs )
-# 43403 "parsing/parser.ml"
+# 43398 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2627 "parsing/parser.mly"
+# 2622 "parsing/parser.mly"
( mk_newtypes ~loc:_sloc _3 _5 )
-# 43411 "parsing/parser.ml"
+# 43406 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43434,39 +43429,39 @@ module Tables = struct
let ys =
# 260 "<standard.mly>"
( List.flatten xss )
-# 43438 "parsing/parser.ml"
+# 43433 "parsing/parser.ml"
in
let xs =
let items =
-# 962 "parsing/parser.mly"
+# 964 "parsing/parser.mly"
( [] )
-# 43444 "parsing/parser.ml"
+# 43439 "parsing/parser.ml"
in
-# 1392 "parsing/parser.mly"
+# 1394 "parsing/parser.mly"
( items )
-# 43449 "parsing/parser.ml"
+# 43444 "parsing/parser.ml"
in
# 267 "<standard.mly>"
( xs @ ys )
-# 43455 "parsing/parser.ml"
+# 43450 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 884 "parsing/parser.mly"
+# 886 "parsing/parser.mly"
( extra_str _startpos _endpos _1 )
-# 43464 "parsing/parser.ml"
+# 43459 "parsing/parser.ml"
in
-# 1385 "parsing/parser.mly"
+# 1387 "parsing/parser.mly"
( _1 )
-# 43470 "parsing/parser.ml"
+# 43465 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43507,7 +43502,7 @@ module Tables = struct
let ys =
# 260 "<standard.mly>"
( List.flatten xss )
-# 43511 "parsing/parser.ml"
+# 43506 "parsing/parser.ml"
in
let xs =
let items =
@@ -43515,65 +43510,65 @@ module Tables = struct
let _1 =
let _1 =
let attrs =
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 43521 "parsing/parser.ml"
+# 43516 "parsing/parser.ml"
in
-# 1399 "parsing/parser.mly"
+# 1401 "parsing/parser.mly"
( mkstrexp e attrs )
-# 43526 "parsing/parser.ml"
+# 43521 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _startpos = _startpos__1_ in
-# 896 "parsing/parser.mly"
+# 898 "parsing/parser.mly"
( text_str _startpos @ [_1] )
-# 43534 "parsing/parser.ml"
+# 43529 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 915 "parsing/parser.mly"
+# 917 "parsing/parser.mly"
( mark_rhs_docs _startpos _endpos;
_1 )
-# 43544 "parsing/parser.ml"
+# 43539 "parsing/parser.ml"
in
-# 964 "parsing/parser.mly"
+# 966 "parsing/parser.mly"
( x )
-# 43550 "parsing/parser.ml"
+# 43545 "parsing/parser.ml"
in
-# 1392 "parsing/parser.mly"
+# 1394 "parsing/parser.mly"
( items )
-# 43556 "parsing/parser.ml"
+# 43551 "parsing/parser.ml"
in
# 267 "<standard.mly>"
( xs @ ys )
-# 43562 "parsing/parser.ml"
+# 43557 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 884 "parsing/parser.mly"
+# 886 "parsing/parser.mly"
( extra_str _startpos _endpos _1 )
-# 43571 "parsing/parser.ml"
+# 43566 "parsing/parser.ml"
in
-# 1385 "parsing/parser.mly"
+# 1387 "parsing/parser.mly"
( _1 )
-# 43577 "parsing/parser.ml"
+# 43572 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43599,9 +43594,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1414 "parsing/parser.mly"
+# 1416 "parsing/parser.mly"
( val_of_let_bindings ~loc:_sloc _1 )
-# 43605 "parsing/parser.ml"
+# 43600 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43635,9 +43630,9 @@ module Tables = struct
let _2 =
let _1 = _1_inlined1 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 43641 "parsing/parser.ml"
+# 43636 "parsing/parser.ml"
in
let _endpos__2_ = _endpos__1_inlined1_ in
@@ -43645,10 +43640,10 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1417 "parsing/parser.mly"
+# 1419 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
Pstr_extension (_1, add_docs_attrs docs _2) )
-# 43652 "parsing/parser.ml"
+# 43647 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined1_ in
@@ -43656,15 +43651,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 931 "parsing/parser.mly"
+# 933 "parsing/parser.mly"
( mkstr ~loc:_sloc _1 )
-# 43662 "parsing/parser.ml"
+# 43657 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 43668 "parsing/parser.ml"
+# 43663 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43688,23 +43683,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1420 "parsing/parser.mly"
+# 1422 "parsing/parser.mly"
( Pstr_attribute _1 )
-# 43694 "parsing/parser.ml"
+# 43689 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 931 "parsing/parser.mly"
+# 933 "parsing/parser.mly"
( mkstr ~loc:_sloc _1 )
-# 43702 "parsing/parser.ml"
+# 43697 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 43708 "parsing/parser.ml"
+# 43703 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43728,23 +43723,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1424 "parsing/parser.mly"
+# 1426 "parsing/parser.mly"
( pstr_primitive _1 )
-# 43734 "parsing/parser.ml"
+# 43729 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 43742 "parsing/parser.ml"
+# 43737 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 43748 "parsing/parser.ml"
+# 43743 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43768,23 +43763,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1426 "parsing/parser.mly"
+# 1428 "parsing/parser.mly"
( pstr_primitive _1 )
-# 43774 "parsing/parser.ml"
+# 43769 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 43782 "parsing/parser.ml"
+# 43777 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 43788 "parsing/parser.ml"
+# 43783 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43819,26 +43814,26 @@ module Tables = struct
let _1 =
let _1 =
let _1 =
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 43825 "parsing/parser.ml"
+# 43820 "parsing/parser.ml"
in
-# 2960 "parsing/parser.mly"
+# 2955 "parsing/parser.mly"
( _1 )
-# 43830 "parsing/parser.ml"
+# 43825 "parsing/parser.ml"
in
-# 2943 "parsing/parser.mly"
+# 2938 "parsing/parser.mly"
( _1 )
-# 43836 "parsing/parser.ml"
+# 43831 "parsing/parser.ml"
in
-# 1428 "parsing/parser.mly"
+# 1430 "parsing/parser.mly"
( pstr_type _1 )
-# 43842 "parsing/parser.ml"
+# 43837 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in
@@ -43846,15 +43841,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 43852 "parsing/parser.ml"
+# 43847 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 43858 "parsing/parser.ml"
+# 43853 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -43939,16 +43934,16 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 43945 "parsing/parser.ml"
+# 43940 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
let cs =
-# 1115 "parsing/parser.mly"
+# 1117 "parsing/parser.mly"
( List.rev xs )
-# 43952 "parsing/parser.ml"
+# 43947 "parsing/parser.ml"
in
let tid =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
@@ -43956,46 +43951,46 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 43962 "parsing/parser.ml"
+# 43957 "parsing/parser.ml"
in
let _4 =
-# 3714 "parsing/parser.mly"
+# 3709 "parsing/parser.mly"
( Recursive )
-# 43968 "parsing/parser.ml"
+# 43963 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 43975 "parsing/parser.ml"
+# 43970 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3213 "parsing/parser.mly"
+# 3208 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
let attrs = attrs1 @ attrs2 in
Te.mk tid cs ~params ~priv ~attrs ~docs,
ext )
-# 43987 "parsing/parser.ml"
+# 43982 "parsing/parser.ml"
in
-# 3196 "parsing/parser.mly"
+# 3191 "parsing/parser.mly"
( _1 )
-# 43993 "parsing/parser.ml"
+# 43988 "parsing/parser.ml"
in
-# 1430 "parsing/parser.mly"
+# 1432 "parsing/parser.mly"
( pstr_typext _1 )
-# 43999 "parsing/parser.ml"
+# 43994 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined3_ in
@@ -44003,15 +43998,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44009 "parsing/parser.ml"
+# 44004 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44015 "parsing/parser.ml"
+# 44010 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44103,16 +44098,16 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined4 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 44109 "parsing/parser.ml"
+# 44104 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined4_ in
let cs =
-# 1115 "parsing/parser.mly"
+# 1117 "parsing/parser.mly"
( List.rev xs )
-# 44116 "parsing/parser.ml"
+# 44111 "parsing/parser.ml"
in
let tid =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
@@ -44120,9 +44115,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 44126 "parsing/parser.ml"
+# 44121 "parsing/parser.ml"
in
let _4 =
@@ -44131,41 +44126,41 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _loc = (_startpos, _endpos) in
-# 3716 "parsing/parser.mly"
+# 3711 "parsing/parser.mly"
( not_expecting _loc "nonrec flag" )
-# 44137 "parsing/parser.ml"
+# 44132 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 44145 "parsing/parser.ml"
+# 44140 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3213 "parsing/parser.mly"
+# 3208 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
let attrs = attrs1 @ attrs2 in
Te.mk tid cs ~params ~priv ~attrs ~docs,
ext )
-# 44157 "parsing/parser.ml"
+# 44152 "parsing/parser.ml"
in
-# 3196 "parsing/parser.mly"
+# 3191 "parsing/parser.mly"
( _1 )
-# 44163 "parsing/parser.ml"
+# 44158 "parsing/parser.ml"
in
-# 1430 "parsing/parser.mly"
+# 1432 "parsing/parser.mly"
( pstr_typext _1 )
-# 44169 "parsing/parser.ml"
+# 44164 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined4_ in
@@ -44173,15 +44168,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44179 "parsing/parser.ml"
+# 44174 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44185 "parsing/parser.ml"
+# 44180 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44205,23 +44200,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1432 "parsing/parser.mly"
+# 1434 "parsing/parser.mly"
( pstr_exception _1 )
-# 44211 "parsing/parser.ml"
+# 44206 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44219 "parsing/parser.ml"
+# 44214 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44225 "parsing/parser.ml"
+# 44220 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44284,9 +44279,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 44290 "parsing/parser.ml"
+# 44285 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -44296,36 +44291,36 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 44302 "parsing/parser.ml"
+# 44297 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 44310 "parsing/parser.ml"
+# 44305 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1458 "parsing/parser.mly"
+# 1460 "parsing/parser.mly"
( let docs = symbol_docs _sloc in
let loc = make_loc _sloc in
let attrs = attrs1 @ attrs2 in
let body = Mb.mk name body ~attrs ~loc ~docs in
Pstr_module body, ext )
-# 44323 "parsing/parser.ml"
+# 44318 "parsing/parser.ml"
in
-# 1434 "parsing/parser.mly"
+# 1436 "parsing/parser.mly"
( _1 )
-# 44329 "parsing/parser.ml"
+# 44324 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined3_ in
@@ -44333,15 +44328,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44339 "parsing/parser.ml"
+# 44334 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44345 "parsing/parser.ml"
+# 44340 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44420,9 +44415,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 44426 "parsing/parser.ml"
+# 44421 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -44432,24 +44427,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 44438 "parsing/parser.ml"
+# 44433 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 44446 "parsing/parser.ml"
+# 44441 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1495 "parsing/parser.mly"
+# 1497 "parsing/parser.mly"
(
let loc = make_loc _sloc in
let attrs = attrs1 @ attrs2 in
@@ -44457,25 +44452,25 @@ module Tables = struct
ext,
Mb.mk name body ~attrs ~loc ~docs
)
-# 44461 "parsing/parser.ml"
+# 44456 "parsing/parser.ml"
in
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 44467 "parsing/parser.ml"
+# 44462 "parsing/parser.ml"
in
-# 1483 "parsing/parser.mly"
+# 1485 "parsing/parser.mly"
( _1 )
-# 44473 "parsing/parser.ml"
+# 44468 "parsing/parser.ml"
in
-# 1436 "parsing/parser.mly"
+# 1438 "parsing/parser.mly"
( pstr_recmodule _1 )
-# 44479 "parsing/parser.ml"
+# 44474 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_bs_ in
@@ -44483,15 +44478,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44489 "parsing/parser.ml"
+# 44484 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44495 "parsing/parser.ml"
+# 44490 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44515,23 +44510,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1438 "parsing/parser.mly"
+# 1440 "parsing/parser.mly"
( let (body, ext) = _1 in (Pstr_modtype body, ext) )
-# 44521 "parsing/parser.ml"
+# 44516 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44529 "parsing/parser.ml"
+# 44524 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44535 "parsing/parser.ml"
+# 44530 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44555,23 +44550,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1440 "parsing/parser.mly"
+# 1442 "parsing/parser.mly"
( let (body, ext) = _1 in (Pstr_open body, ext) )
-# 44561 "parsing/parser.ml"
+# 44556 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44569 "parsing/parser.ml"
+# 44564 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44575 "parsing/parser.ml"
+# 44570 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44641,9 +44636,9 @@ module Tables = struct
let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
let body : (Parsetree.class_expr) = Obj.magic body in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 44647 "parsing/parser.ml"
+# 44642 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
let virt : (Asttypes.virtual_flag) = Obj.magic virt in
@@ -44661,9 +44656,9 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 44667 "parsing/parser.ml"
+# 44662 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -44673,24 +44668,24 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 44679 "parsing/parser.ml"
+# 44674 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 44687 "parsing/parser.ml"
+# 44682 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1839 "parsing/parser.mly"
+# 1841 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
@@ -44698,25 +44693,25 @@ module Tables = struct
ext,
Ci.mk id body ~virt ~params ~attrs ~loc ~docs
)
-# 44702 "parsing/parser.ml"
+# 44697 "parsing/parser.ml"
in
-# 1123 "parsing/parser.mly"
+# 1125 "parsing/parser.mly"
( let (x, b) = a in x, b :: bs )
-# 44708 "parsing/parser.ml"
+# 44703 "parsing/parser.ml"
in
-# 1828 "parsing/parser.mly"
+# 1830 "parsing/parser.mly"
( _1 )
-# 44714 "parsing/parser.ml"
+# 44709 "parsing/parser.ml"
in
-# 1442 "parsing/parser.mly"
+# 1444 "parsing/parser.mly"
( let (ext, l) = _1 in (Pstr_class l, ext) )
-# 44720 "parsing/parser.ml"
+# 44715 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_bs_ in
@@ -44724,15 +44719,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44730 "parsing/parser.ml"
+# 44725 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44736 "parsing/parser.ml"
+# 44731 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44756,23 +44751,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.structure_item) = let _1 =
let _1 =
-# 1444 "parsing/parser.mly"
+# 1446 "parsing/parser.mly"
( let (ext, l) = _1 in (Pstr_class_type l, ext) )
-# 44762 "parsing/parser.ml"
+# 44757 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44770 "parsing/parser.ml"
+# 44765 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44776 "parsing/parser.ml"
+# 44771 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44828,38 +44823,38 @@ module Tables = struct
let attrs2 =
let _1 = _1_inlined2 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 44834 "parsing/parser.ml"
+# 44829 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined2_ in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 44843 "parsing/parser.ml"
+# 44838 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1532 "parsing/parser.mly"
+# 1534 "parsing/parser.mly"
(
let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Incl.mk thing ~attrs ~loc ~docs, ext
)
-# 44857 "parsing/parser.ml"
+# 44852 "parsing/parser.ml"
in
-# 1446 "parsing/parser.mly"
+# 1448 "parsing/parser.mly"
( pstr_include _1 )
-# 44863 "parsing/parser.ml"
+# 44858 "parsing/parser.ml"
in
let _endpos__1_ = _endpos__1_inlined2_ in
@@ -44867,15 +44862,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 948 "parsing/parser.mly"
+# 950 "parsing/parser.mly"
( wrap_mkstr_ext ~loc:_sloc _1 )
-# 44873 "parsing/parser.ml"
+# 44868 "parsing/parser.ml"
in
-# 1448 "parsing/parser.mly"
+# 1450 "parsing/parser.mly"
( _1 )
-# 44879 "parsing/parser.ml"
+# 44874 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44898,9 +44893,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3779 "parsing/parser.mly"
+# 3774 "parsing/parser.mly"
( "-" )
-# 44904 "parsing/parser.ml"
+# 44899 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44923,9 +44918,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (string) =
-# 3780 "parsing/parser.mly"
+# 3775 "parsing/parser.mly"
( "-." )
-# 44929 "parsing/parser.ml"
+# 44924 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -44978,9 +44973,9 @@ module Tables = struct
let _v : (Parsetree.row_field) = let _5 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 44984 "parsing/parser.ml"
+# 44979 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined1_ in
@@ -44989,18 +44984,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 44993 "parsing/parser.ml"
+# 44988 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 44998 "parsing/parser.ml"
+# 44993 "parsing/parser.ml"
in
-# 3487 "parsing/parser.mly"
+# 3482 "parsing/parser.mly"
( _1 )
-# 45004 "parsing/parser.ml"
+# 44999 "parsing/parser.ml"
in
let _1 =
@@ -45008,20 +45003,20 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45014 "parsing/parser.ml"
+# 45009 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3473 "parsing/parser.mly"
+# 3468 "parsing/parser.mly"
( let info = symbol_info _endpos in
let attrs = add_info_attrs info _5 in
Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 )
-# 45025 "parsing/parser.ml"
+# 45020 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45053,9 +45048,9 @@ module Tables = struct
let _v : (Parsetree.row_field) = let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 45059 "parsing/parser.ml"
+# 45054 "parsing/parser.ml"
in
let _endpos__2_ = _endpos__1_inlined1_ in
@@ -45064,20 +45059,20 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45070 "parsing/parser.ml"
+# 45065 "parsing/parser.ml"
in
let _endpos = _endpos__2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3477 "parsing/parser.mly"
+# 3472 "parsing/parser.mly"
( let info = symbol_info _endpos in
let attrs = add_info_attrs info _2 in
Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] )
-# 45081 "parsing/parser.ml"
+# 45076 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45109,7 +45104,7 @@ module Tables = struct
let _v : (Parsetree.toplevel_phrase) = let arg =
# 124 "<standard.mly>"
( None )
-# 45113 "parsing/parser.ml"
+# 45108 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined1_ in
let dir =
@@ -45118,18 +45113,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45124 "parsing/parser.ml"
+# 45119 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45133 "parsing/parser.ml"
+# 45128 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45160,9 +45155,9 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined2 : (
-# 748 "parsing/parser.mly"
+# 750 "parsing/parser.mly"
(string * Location.t * string option)
-# 45166 "parsing/parser.ml"
+# 45161 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -45173,23 +45168,23 @@ module Tables = struct
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let x =
let _1 =
-# 3681 "parsing/parser.mly"
+# 3676 "parsing/parser.mly"
( let (s, _, _) = _1 in Pdir_string s )
-# 45179 "parsing/parser.ml"
+# 45174 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 953 "parsing/parser.mly"
+# 955 "parsing/parser.mly"
( mk_directive_arg ~loc:_sloc _1 )
-# 45187 "parsing/parser.ml"
+# 45182 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 45193 "parsing/parser.ml"
+# 45188 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined2_ in
@@ -45199,18 +45194,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45205 "parsing/parser.ml"
+# 45200 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45214 "parsing/parser.ml"
+# 45209 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45241,9 +45236,9 @@ module Tables = struct
};
} = _menhir_stack in
let _1_inlined2 : (
-# 696 "parsing/parser.mly"
+# 698 "parsing/parser.mly"
(string * char option)
-# 45247 "parsing/parser.ml"
+# 45242 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in
let _1 : unit = Obj.magic _1 in
@@ -45254,23 +45249,23 @@ module Tables = struct
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let x =
let _1 =
-# 3682 "parsing/parser.mly"
+# 3677 "parsing/parser.mly"
( let (n, m) = _1 in Pdir_int (n ,m) )
-# 45260 "parsing/parser.ml"
+# 45255 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 953 "parsing/parser.mly"
+# 955 "parsing/parser.mly"
( mk_directive_arg ~loc:_sloc _1 )
-# 45268 "parsing/parser.ml"
+# 45263 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 45274 "parsing/parser.ml"
+# 45269 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined2_ in
@@ -45280,18 +45275,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45286 "parsing/parser.ml"
+# 45281 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45295 "parsing/parser.ml"
+# 45290 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45331,23 +45326,23 @@ module Tables = struct
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let x =
let _1 =
-# 3683 "parsing/parser.mly"
+# 3678 "parsing/parser.mly"
( Pdir_ident _1 )
-# 45337 "parsing/parser.ml"
+# 45332 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 953 "parsing/parser.mly"
+# 955 "parsing/parser.mly"
( mk_directive_arg ~loc:_sloc _1 )
-# 45345 "parsing/parser.ml"
+# 45340 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 45351 "parsing/parser.ml"
+# 45346 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined2_ in
@@ -45357,18 +45352,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45363 "parsing/parser.ml"
+# 45358 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45372 "parsing/parser.ml"
+# 45367 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45408,23 +45403,23 @@ module Tables = struct
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let x =
let _1 =
-# 3684 "parsing/parser.mly"
+# 3679 "parsing/parser.mly"
( Pdir_ident _1 )
-# 45414 "parsing/parser.ml"
+# 45409 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 953 "parsing/parser.mly"
+# 955 "parsing/parser.mly"
( mk_directive_arg ~loc:_sloc _1 )
-# 45422 "parsing/parser.ml"
+# 45417 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 45428 "parsing/parser.ml"
+# 45423 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined2_ in
@@ -45434,18 +45429,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45440 "parsing/parser.ml"
+# 45435 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45449 "parsing/parser.ml"
+# 45444 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45485,23 +45480,23 @@ module Tables = struct
let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
let x =
let _1 =
-# 3685 "parsing/parser.mly"
+# 3680 "parsing/parser.mly"
( Pdir_bool false )
-# 45491 "parsing/parser.ml"
+# 45486 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 953 "parsing/parser.mly"
+# 955 "parsing/parser.mly"
( mk_directive_arg ~loc:_sloc _1 )
-# 45499 "parsing/parser.ml"
+# 45494 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 45505 "parsing/parser.ml"
+# 45500 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined2_ in
@@ -45511,18 +45506,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45517 "parsing/parser.ml"
+# 45512 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45526 "parsing/parser.ml"
+# 45521 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45562,23 +45557,23 @@ module Tables = struct
let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
let x =
let _1 =
-# 3686 "parsing/parser.mly"
+# 3681 "parsing/parser.mly"
( Pdir_bool true )
-# 45568 "parsing/parser.ml"
+# 45563 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 953 "parsing/parser.mly"
+# 955 "parsing/parser.mly"
( mk_directive_arg ~loc:_sloc _1 )
-# 45576 "parsing/parser.ml"
+# 45571 "parsing/parser.ml"
in
# 126 "<standard.mly>"
( Some x )
-# 45582 "parsing/parser.ml"
+# 45577 "parsing/parser.ml"
in
let _endpos_arg_ = _endpos__1_inlined2_ in
@@ -45588,18 +45583,18 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 45594 "parsing/parser.ml"
+# 45589 "parsing/parser.ml"
in
let _endpos = _endpos_arg_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3677 "parsing/parser.mly"
+# 3672 "parsing/parser.mly"
( mk_directive ~loc:_sloc dir arg )
-# 45603 "parsing/parser.ml"
+# 45598 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45639,37 +45634,37 @@ module Tables = struct
let _1 =
let _1 =
let attrs =
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 45645 "parsing/parser.ml"
+# 45640 "parsing/parser.ml"
in
-# 1399 "parsing/parser.mly"
+# 1401 "parsing/parser.mly"
( mkstrexp e attrs )
-# 45650 "parsing/parser.ml"
+# 45645 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _startpos = _startpos__1_ in
-# 896 "parsing/parser.mly"
+# 898 "parsing/parser.mly"
( text_str _startpos @ [_1] )
-# 45658 "parsing/parser.ml"
+# 45653 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 884 "parsing/parser.mly"
+# 886 "parsing/parser.mly"
( extra_str _startpos _endpos _1 )
-# 45667 "parsing/parser.ml"
+# 45662 "parsing/parser.ml"
in
-# 1163 "parsing/parser.mly"
+# 1165 "parsing/parser.mly"
( Ptop_def _1 )
-# 45673 "parsing/parser.ml"
+# 45668 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45702,21 +45697,21 @@ module Tables = struct
let _1 =
# 260 "<standard.mly>"
( List.flatten xss )
-# 45706 "parsing/parser.ml"
+# 45701 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 884 "parsing/parser.mly"
+# 886 "parsing/parser.mly"
( extra_str _startpos _endpos _1 )
-# 45714 "parsing/parser.ml"
+# 45709 "parsing/parser.ml"
in
-# 1167 "parsing/parser.mly"
+# 1169 "parsing/parser.mly"
( Ptop_def _1 )
-# 45720 "parsing/parser.ml"
+# 45715 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45746,9 +45741,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.toplevel_phrase) =
-# 1171 "parsing/parser.mly"
+# 1173 "parsing/parser.mly"
( _1 )
-# 45752 "parsing/parser.ml"
+# 45747 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45771,9 +45766,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Parsetree.toplevel_phrase) =
-# 1174 "parsing/parser.mly"
+# 1176 "parsing/parser.mly"
( raise End_of_file )
-# 45777 "parsing/parser.ml"
+# 45772 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45796,9 +45791,9 @@ module Tables = struct
let _startpos = _startpos_ty_ in
let _endpos = _endpos_ty_ in
let _v : (Parsetree.core_type) =
-# 3379 "parsing/parser.mly"
+# 3374 "parsing/parser.mly"
( ty )
-# 45802 "parsing/parser.ml"
+# 45797 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45826,18 +45821,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 45830 "parsing/parser.ml"
+# 45825 "parsing/parser.ml"
in
-# 1054 "parsing/parser.mly"
+# 1056 "parsing/parser.mly"
( xs )
-# 45835 "parsing/parser.ml"
+# 45830 "parsing/parser.ml"
in
-# 3382 "parsing/parser.mly"
+# 3377 "parsing/parser.mly"
( Ptyp_tuple tys )
-# 45841 "parsing/parser.ml"
+# 45836 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in
@@ -45845,15 +45840,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 45851 "parsing/parser.ml"
+# 45846 "parsing/parser.ml"
in
-# 3384 "parsing/parser.mly"
+# 3379 "parsing/parser.mly"
( _1 )
-# 45857 "parsing/parser.ml"
+# 45852 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45883,9 +45878,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type option * Parsetree.core_type option) =
-# 2701 "parsing/parser.mly"
+# 2696 "parsing/parser.mly"
( (Some _2, None) )
-# 45889 "parsing/parser.ml"
+# 45884 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45929,9 +45924,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__4_ in
let _v : (Parsetree.core_type option * Parsetree.core_type option) =
-# 2702 "parsing/parser.mly"
+# 2697 "parsing/parser.mly"
( (Some _2, Some _4) )
-# 45935 "parsing/parser.ml"
+# 45930 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45961,9 +45956,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type option * Parsetree.core_type option) =
-# 2703 "parsing/parser.mly"
+# 2698 "parsing/parser.mly"
( (None, Some _2) )
-# 45967 "parsing/parser.ml"
+# 45962 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -45993,9 +45988,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type option * Parsetree.core_type option) =
-# 2704 "parsing/parser.mly"
+# 2699 "parsing/parser.mly"
( syntax_error() )
-# 45999 "parsing/parser.ml"
+# 45994 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46025,9 +46020,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type option * Parsetree.core_type option) =
-# 2705 "parsing/parser.mly"
+# 2700 "parsing/parser.mly"
( syntax_error() )
-# 46031 "parsing/parser.ml"
+# 46026 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46043,9 +46038,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) =
-# 3034 "parsing/parser.mly"
+# 3029 "parsing/parser.mly"
( (Ptype_abstract, Public, None) )
-# 46049 "parsing/parser.ml"
+# 46044 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46075,9 +46070,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) =
-# 3036 "parsing/parser.mly"
+# 3031 "parsing/parser.mly"
( _2 )
-# 46081 "parsing/parser.ml"
+# 46076 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46100,9 +46095,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3638 "parsing/parser.mly"
+# 3633 "parsing/parser.mly"
( _1 )
-# 46106 "parsing/parser.ml"
+# 46101 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46132,9 +46127,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) =
-# 3051 "parsing/parser.mly"
+# 3046 "parsing/parser.mly"
( _2, _1 )
-# 46138 "parsing/parser.ml"
+# 46133 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46150,9 +46145,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) =
-# 3044 "parsing/parser.mly"
+# 3039 "parsing/parser.mly"
( [] )
-# 46156 "parsing/parser.ml"
+# 46151 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46175,9 +46170,9 @@ module Tables = struct
let _startpos = _startpos_p_ in
let _endpos = _endpos_p_ in
let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) =
-# 3046 "parsing/parser.mly"
+# 3041 "parsing/parser.mly"
( [p] )
-# 46181 "parsing/parser.ml"
+# 46176 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46217,18 +46212,18 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 46221 "parsing/parser.ml"
+# 46216 "parsing/parser.ml"
in
-# 1026 "parsing/parser.mly"
+# 1028 "parsing/parser.mly"
( xs )
-# 46226 "parsing/parser.ml"
+# 46221 "parsing/parser.ml"
in
-# 3048 "parsing/parser.mly"
+# 3043 "parsing/parser.mly"
( ps )
-# 46232 "parsing/parser.ml"
+# 46227 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46259,24 +46254,24 @@ module Tables = struct
let _endpos = _endpos_tyvar_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3056 "parsing/parser.mly"
+# 3051 "parsing/parser.mly"
( Ptyp_var tyvar )
-# 46265 "parsing/parser.ml"
+# 46260 "parsing/parser.ml"
in
let _endpos__1_ = _endpos_tyvar_ in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 46274 "parsing/parser.ml"
+# 46269 "parsing/parser.ml"
in
-# 3059 "parsing/parser.mly"
+# 3054 "parsing/parser.mly"
( _1 )
-# 46280 "parsing/parser.ml"
+# 46275 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46300,23 +46295,23 @@ module Tables = struct
let _endpos = _endpos__1_ in
let _v : (Parsetree.core_type) = let _1 =
let _1 =
-# 3058 "parsing/parser.mly"
+# 3053 "parsing/parser.mly"
( Ptyp_any )
-# 46306 "parsing/parser.ml"
+# 46301 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 929 "parsing/parser.mly"
+# 931 "parsing/parser.mly"
( mktyp ~loc:_sloc _1 )
-# 46314 "parsing/parser.ml"
+# 46309 "parsing/parser.ml"
in
-# 3059 "parsing/parser.mly"
+# 3054 "parsing/parser.mly"
( _1 )
-# 46320 "parsing/parser.ml"
+# 46315 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46332,9 +46327,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3063 "parsing/parser.mly"
+# 3058 "parsing/parser.mly"
( NoVariance, NoInjectivity )
-# 46338 "parsing/parser.ml"
+# 46333 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46357,9 +46352,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3064 "parsing/parser.mly"
+# 3059 "parsing/parser.mly"
( Covariant, NoInjectivity )
-# 46363 "parsing/parser.ml"
+# 46358 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46382,9 +46377,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3065 "parsing/parser.mly"
+# 3060 "parsing/parser.mly"
( Contravariant, NoInjectivity )
-# 46388 "parsing/parser.ml"
+# 46383 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46407,9 +46402,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3066 "parsing/parser.mly"
+# 3061 "parsing/parser.mly"
( NoVariance, Injective )
-# 46413 "parsing/parser.ml"
+# 46408 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46439,9 +46434,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3067 "parsing/parser.mly"
+# 3062 "parsing/parser.mly"
( Covariant, Injective )
-# 46445 "parsing/parser.ml"
+# 46440 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46471,9 +46466,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3067 "parsing/parser.mly"
+# 3062 "parsing/parser.mly"
( Covariant, Injective )
-# 46477 "parsing/parser.ml"
+# 46472 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46503,9 +46498,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3068 "parsing/parser.mly"
+# 3063 "parsing/parser.mly"
( Contravariant, Injective )
-# 46509 "parsing/parser.ml"
+# 46504 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46535,9 +46530,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.variance * Asttypes.injectivity) =
-# 3068 "parsing/parser.mly"
+# 3063 "parsing/parser.mly"
( Contravariant, Injective )
-# 46541 "parsing/parser.ml"
+# 46536 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46556,20 +46551,20 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 688 "parsing/parser.mly"
+# 690 "parsing/parser.mly"
(string)
-# 46562 "parsing/parser.ml"
+# 46557 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 3070 "parsing/parser.mly"
+# 3065 "parsing/parser.mly"
( if _1 = "+!" then Covariant, Injective else
if _1 = "-!" then Contravariant, Injective else
expecting _loc__1_ "type_variance" )
-# 46573 "parsing/parser.ml"
+# 46568 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46588,20 +46583,20 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 734 "parsing/parser.mly"
+# 736 "parsing/parser.mly"
(string)
-# 46594 "parsing/parser.ml"
+# 46589 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 3074 "parsing/parser.mly"
+# 3069 "parsing/parser.mly"
( if _1 = "!+" then Covariant, Injective else
if _1 = "!-" then Contravariant, Injective else
expecting _loc__1_ "type_variance" )
-# 46605 "parsing/parser.ml"
+# 46600 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46635,39 +46630,39 @@ module Tables = struct
let ys =
# 260 "<standard.mly>"
( List.flatten xss )
-# 46639 "parsing/parser.ml"
+# 46634 "parsing/parser.ml"
in
let xs =
let _1 =
-# 962 "parsing/parser.mly"
+# 964 "parsing/parser.mly"
( [] )
-# 46645 "parsing/parser.ml"
+# 46640 "parsing/parser.ml"
in
-# 1194 "parsing/parser.mly"
+# 1196 "parsing/parser.mly"
( _1 )
-# 46650 "parsing/parser.ml"
+# 46645 "parsing/parser.ml"
in
# 267 "<standard.mly>"
( xs @ ys )
-# 46656 "parsing/parser.ml"
+# 46651 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 888 "parsing/parser.mly"
+# 890 "parsing/parser.mly"
( extra_def _startpos _endpos _1 )
-# 46665 "parsing/parser.ml"
+# 46660 "parsing/parser.ml"
in
-# 1187 "parsing/parser.mly"
+# 1189 "parsing/parser.mly"
( _1 )
-# 46671 "parsing/parser.ml"
+# 46666 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46715,7 +46710,7 @@ module Tables = struct
let ys =
# 260 "<standard.mly>"
( List.flatten xss )
-# 46719 "parsing/parser.ml"
+# 46714 "parsing/parser.ml"
in
let xs =
let _1 =
@@ -46723,61 +46718,61 @@ module Tables = struct
let _1 =
let _1 =
let attrs =
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 46729 "parsing/parser.ml"
+# 46724 "parsing/parser.ml"
in
-# 1399 "parsing/parser.mly"
+# 1401 "parsing/parser.mly"
( mkstrexp e attrs )
-# 46734 "parsing/parser.ml"
+# 46729 "parsing/parser.ml"
in
-# 906 "parsing/parser.mly"
+# 908 "parsing/parser.mly"
( Ptop_def [_1] )
-# 46740 "parsing/parser.ml"
+# 46735 "parsing/parser.ml"
in
let _startpos__1_ = _startpos_e_ in
let _startpos = _startpos__1_ in
-# 904 "parsing/parser.mly"
+# 906 "parsing/parser.mly"
( text_def _startpos @ [_1] )
-# 46748 "parsing/parser.ml"
+# 46743 "parsing/parser.ml"
in
-# 964 "parsing/parser.mly"
+# 966 "parsing/parser.mly"
( x )
-# 46754 "parsing/parser.ml"
+# 46749 "parsing/parser.ml"
in
-# 1194 "parsing/parser.mly"
+# 1196 "parsing/parser.mly"
( _1 )
-# 46760 "parsing/parser.ml"
+# 46755 "parsing/parser.ml"
in
# 267 "<standard.mly>"
( xs @ ys )
-# 46766 "parsing/parser.ml"
+# 46761 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in
let _endpos = _endpos__1_ in
let _startpos = _startpos__1_ in
-# 888 "parsing/parser.mly"
+# 890 "parsing/parser.mly"
( extra_def _startpos _endpos _1 )
-# 46775 "parsing/parser.ml"
+# 46770 "parsing/parser.ml"
in
-# 1187 "parsing/parser.mly"
+# 1189 "parsing/parser.mly"
( _1 )
-# 46781 "parsing/parser.ml"
+# 46776 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46814,9 +46809,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__3_ in
let _v : (Asttypes.label) =
-# 3557 "parsing/parser.mly"
+# 3552 "parsing/parser.mly"
( _2 )
-# 46820 "parsing/parser.ml"
+# 46815 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46855,9 +46850,9 @@ module Tables = struct
let _v : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
let _loc__1_ = (_startpos__1_, _endpos__1_) in
-# 3558 "parsing/parser.mly"
+# 3553 "parsing/parser.mly"
( unclosed "(" _loc__1_ ")" _loc__3_ )
-# 46861 "parsing/parser.ml"
+# 46856 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46888,9 +46883,9 @@ module Tables = struct
let _endpos = _endpos__2_ in
let _v : (Asttypes.label) = let _loc__2_ = (_startpos__2_, _endpos__2_) in
-# 3559 "parsing/parser.mly"
+# 3554 "parsing/parser.mly"
( expecting _loc__2_ "operator" )
-# 46894 "parsing/parser.ml"
+# 46889 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46928,9 +46923,9 @@ module Tables = struct
let _endpos = _endpos__3_ in
let _v : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
-# 3560 "parsing/parser.mly"
+# 3555 "parsing/parser.mly"
( expecting _loc__3_ "module-expr" )
-# 46934 "parsing/parser.ml"
+# 46929 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46949,17 +46944,17 @@ module Tables = struct
MenhirLib.EngineTypes.next = _menhir_stack;
} = _menhir_stack in
let _1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 46955 "parsing/parser.ml"
+# 46950 "parsing/parser.ml"
) = Obj.magic _1 in
let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3563 "parsing/parser.mly"
+# 3558 "parsing/parser.mly"
( _1 )
-# 46963 "parsing/parser.ml"
+# 46958 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -46982,9 +46977,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.label) =
-# 3564 "parsing/parser.mly"
+# 3559 "parsing/parser.mly"
( _1 )
-# 46988 "parsing/parser.ml"
+# 46983 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47007,9 +47002,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Longident.t) =
-# 3632 "parsing/parser.mly"
+# 3627 "parsing/parser.mly"
( _1 )
-# 47013 "parsing/parser.ml"
+# 47008 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47054,9 +47049,9 @@ module Tables = struct
let ty : (Parsetree.core_type) = Obj.magic ty in
let _5 : unit = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 47060 "parsing/parser.ml"
+# 47055 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -47068,33 +47063,33 @@ module Tables = struct
Parsetree.attributes) = let label =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 47074 "parsing/parser.ml"
+# 47069 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47082 "parsing/parser.ml"
+# 47077 "parsing/parser.ml"
in
let attrs =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 47088 "parsing/parser.ml"
+# 47083 "parsing/parser.ml"
in
let _1 =
-# 3772 "parsing/parser.mly"
+# 3767 "parsing/parser.mly"
( Fresh )
-# 47093 "parsing/parser.ml"
+# 47088 "parsing/parser.ml"
in
-# 1979 "parsing/parser.mly"
+# 1981 "parsing/parser.mly"
( (label, mutable_, Cfk_virtual ty), attrs )
-# 47098 "parsing/parser.ml"
+# 47093 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47139,9 +47134,9 @@ module Tables = struct
let _6 : (Parsetree.expression) = Obj.magic _6 in
let _5 : unit = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 47145 "parsing/parser.ml"
+# 47140 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -47153,33 +47148,33 @@ module Tables = struct
Parsetree.attributes) = let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 47159 "parsing/parser.ml"
+# 47154 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47167 "parsing/parser.ml"
+# 47162 "parsing/parser.ml"
in
let _2 =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 47173 "parsing/parser.ml"
+# 47168 "parsing/parser.ml"
in
let _1 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 47178 "parsing/parser.ml"
+# 47173 "parsing/parser.ml"
in
-# 1981 "parsing/parser.mly"
+# 1983 "parsing/parser.mly"
( (_4, _3, Cfk_concrete (_1, _6)), _2 )
-# 47183 "parsing/parser.ml"
+# 47178 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47230,9 +47225,9 @@ module Tables = struct
let _6 : (Parsetree.expression) = Obj.magic _6 in
let _5 : unit = Obj.magic _5 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 47236 "parsing/parser.ml"
+# 47231 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -47245,36 +47240,36 @@ module Tables = struct
Parsetree.attributes) = let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 47251 "parsing/parser.ml"
+# 47246 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47259 "parsing/parser.ml"
+# 47254 "parsing/parser.ml"
in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 47267 "parsing/parser.ml"
+# 47262 "parsing/parser.ml"
in
let _1 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 47273 "parsing/parser.ml"
+# 47268 "parsing/parser.ml"
in
-# 1981 "parsing/parser.mly"
+# 1983 "parsing/parser.mly"
( (_4, _3, Cfk_concrete (_1, _6)), _2 )
-# 47278 "parsing/parser.ml"
+# 47273 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47326,9 +47321,9 @@ module Tables = struct
let _6 : unit = Obj.magic _6 in
let _5 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _5 in
let _1_inlined1 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 47332 "parsing/parser.ml"
+# 47327 "parsing/parser.ml"
) = Obj.magic _1_inlined1 in
let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
let _1 : (Parsetree.attributes) = Obj.magic _1 in
@@ -47340,30 +47335,30 @@ module Tables = struct
Parsetree.attributes) = let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 47346 "parsing/parser.ml"
+# 47341 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47354 "parsing/parser.ml"
+# 47349 "parsing/parser.ml"
in
let _startpos__4_ = _startpos__1_inlined1_ in
let _2 =
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 47361 "parsing/parser.ml"
+# 47356 "parsing/parser.ml"
in
let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in
let _1 =
-# 3775 "parsing/parser.mly"
+# 3770 "parsing/parser.mly"
( Fresh )
-# 47367 "parsing/parser.ml"
+# 47362 "parsing/parser.ml"
in
let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
let _endpos = _endpos__7_ in
@@ -47379,11 +47374,11 @@ module Tables = struct
_startpos__4_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1984 "parsing/parser.mly"
+# 1986 "parsing/parser.mly"
( let e = mkexp_constraint ~loc:_sloc _7 _5 in
(_4, _3, Cfk_concrete (_1, e)), _2
)
-# 47387 "parsing/parser.ml"
+# 47382 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47441,9 +47436,9 @@ module Tables = struct
let _6 : unit = Obj.magic _6 in
let _5 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _5 in
let _1_inlined2 : (
-# 710 "parsing/parser.mly"
+# 712 "parsing/parser.mly"
(string)
-# 47447 "parsing/parser.ml"
+# 47442 "parsing/parser.ml"
) = Obj.magic _1_inlined2 in
let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
@@ -47456,33 +47451,33 @@ module Tables = struct
Parsetree.attributes) = let _4 =
let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
let _1 =
-# 3531 "parsing/parser.mly"
+# 3526 "parsing/parser.mly"
( _1 )
-# 47462 "parsing/parser.ml"
+# 47457 "parsing/parser.ml"
in
let _endpos = _endpos__1_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47470 "parsing/parser.ml"
+# 47465 "parsing/parser.ml"
in
let _startpos__4_ = _startpos__1_inlined2_ in
let _2 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 47479 "parsing/parser.ml"
+# 47474 "parsing/parser.ml"
in
let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
let _1 =
-# 3776 "parsing/parser.mly"
+# 3771 "parsing/parser.mly"
( Override )
-# 47486 "parsing/parser.ml"
+# 47481 "parsing/parser.ml"
in
let _endpos = _endpos__7_ in
let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
@@ -47497,11 +47492,11 @@ module Tables = struct
_startpos__4_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 1984 "parsing/parser.mly"
+# 1986 "parsing/parser.mly"
( let e = mkexp_constraint ~loc:_sloc _7 _5 in
(_4, _3, Cfk_concrete (_1, e)), _2
)
-# 47505 "parsing/parser.ml"
+# 47500 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47568,9 +47563,9 @@ module Tables = struct
let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 =
let _1 = _1_inlined3 in
-# 3869 "parsing/parser.mly"
+# 3864 "parsing/parser.mly"
( _1 )
-# 47574 "parsing/parser.ml"
+# 47569 "parsing/parser.ml"
in
let _endpos_attrs2_ = _endpos__1_inlined3_ in
@@ -47580,30 +47575,30 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47586 "parsing/parser.ml"
+# 47581 "parsing/parser.ml"
in
let attrs1 =
let _1 = _1_inlined1 in
-# 3873 "parsing/parser.mly"
+# 3868 "parsing/parser.mly"
( _1 )
-# 47594 "parsing/parser.ml"
+# 47589 "parsing/parser.ml"
in
let _endpos = _endpos_attrs2_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 2905 "parsing/parser.mly"
+# 2900 "parsing/parser.mly"
( let attrs = attrs1 @ attrs2 in
let loc = make_loc _sloc in
let docs = symbol_docs _sloc in
Val.mk id ty ~attrs ~loc ~docs,
ext )
-# 47607 "parsing/parser.ml"
+# 47602 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47619,9 +47614,9 @@ module Tables = struct
let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
let _endpos = _startpos in
let _v : (Asttypes.virtual_flag) =
-# 3736 "parsing/parser.mly"
+# 3731 "parsing/parser.mly"
( Concrete )
-# 47625 "parsing/parser.ml"
+# 47620 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47644,9 +47639,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.virtual_flag) =
-# 3737 "parsing/parser.mly"
+# 3732 "parsing/parser.mly"
( Virtual )
-# 47650 "parsing/parser.ml"
+# 47645 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47669,9 +47664,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.mutable_flag) =
-# 3760 "parsing/parser.mly"
+# 3755 "parsing/parser.mly"
( Immutable )
-# 47675 "parsing/parser.ml"
+# 47670 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47701,9 +47696,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.mutable_flag) =
-# 3761 "parsing/parser.mly"
+# 3756 "parsing/parser.mly"
( Mutable )
-# 47707 "parsing/parser.ml"
+# 47702 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47733,9 +47728,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.mutable_flag) =
-# 3762 "parsing/parser.mly"
+# 3757 "parsing/parser.mly"
( Mutable )
-# 47739 "parsing/parser.ml"
+# 47734 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47758,9 +47753,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.private_flag) =
-# 3767 "parsing/parser.mly"
+# 3762 "parsing/parser.mly"
( Public )
-# 47764 "parsing/parser.ml"
+# 47759 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47790,9 +47785,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.private_flag) =
-# 3768 "parsing/parser.mly"
+# 3763 "parsing/parser.mly"
( Private )
-# 47796 "parsing/parser.ml"
+# 47791 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47822,9 +47817,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.private_flag) =
-# 3769 "parsing/parser.mly"
+# 3764 "parsing/parser.mly"
( Private )
-# 47828 "parsing/parser.ml"
+# 47823 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47886,27 +47881,27 @@ module Tables = struct
let xs =
# 253 "<standard.mly>"
( List.rev xs )
-# 47890 "parsing/parser.ml"
+# 47885 "parsing/parser.ml"
in
-# 976 "parsing/parser.mly"
+# 978 "parsing/parser.mly"
( xs )
-# 47895 "parsing/parser.ml"
+# 47890 "parsing/parser.ml"
in
-# 3005 "parsing/parser.mly"
+# 3000 "parsing/parser.mly"
( _1 )
-# 47901 "parsing/parser.ml"
+# 47896 "parsing/parser.ml"
in
let _endpos__6_ = _endpos_xs_ in
let _5 =
let _1 = _1_inlined2 in
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 47910 "parsing/parser.ml"
+# 47905 "parsing/parser.ml"
in
let _3 =
@@ -47915,16 +47910,16 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 47921 "parsing/parser.ml"
+# 47916 "parsing/parser.ml"
in
let _endpos = _endpos__6_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3246 "parsing/parser.mly"
+# 3241 "parsing/parser.mly"
( let lident = loc_last _3 in
Pwith_type
(_3,
@@ -47934,7 +47929,7 @@ module Tables = struct
~manifest:_5
~priv:_4
~loc:(make_loc _sloc))) )
-# 47938 "parsing/parser.ml"
+# 47933 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -47987,9 +47982,9 @@ module Tables = struct
let _v : (Parsetree.with_constraint) = let _5 =
let _1 = _1_inlined2 in
-# 3327 "parsing/parser.mly"
+# 3322 "parsing/parser.mly"
( _1 )
-# 47993 "parsing/parser.ml"
+# 47988 "parsing/parser.ml"
in
let _endpos__5_ = _endpos__1_inlined2_ in
@@ -47999,16 +47994,16 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48005 "parsing/parser.ml"
+# 48000 "parsing/parser.ml"
in
let _endpos = _endpos__5_ in
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 3259 "parsing/parser.mly"
+# 3254 "parsing/parser.mly"
( let lident = loc_last _3 in
Pwith_typesubst
(_3,
@@ -48016,7 +48011,7 @@ module Tables = struct
~params:_2
~manifest:_5
~loc:(make_loc _sloc))) )
-# 48020 "parsing/parser.ml"
+# 48015 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48065,9 +48060,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48071 "parsing/parser.ml"
+# 48066 "parsing/parser.ml"
in
let _2 =
@@ -48076,15 +48071,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48082 "parsing/parser.ml"
+# 48077 "parsing/parser.ml"
in
-# 3267 "parsing/parser.mly"
+# 3262 "parsing/parser.mly"
( Pwith_module (_2, _4) )
-# 48088 "parsing/parser.ml"
+# 48083 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48133,9 +48128,9 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48139 "parsing/parser.ml"
+# 48134 "parsing/parser.ml"
in
let _2 =
@@ -48144,15 +48139,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48150 "parsing/parser.ml"
+# 48145 "parsing/parser.ml"
in
-# 3269 "parsing/parser.mly"
+# 3264 "parsing/parser.mly"
( Pwith_modsubst (_2, _4) )
-# 48156 "parsing/parser.ml"
+# 48151 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48208,15 +48203,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48214 "parsing/parser.ml"
+# 48209 "parsing/parser.ml"
in
-# 3271 "parsing/parser.mly"
+# 3266 "parsing/parser.mly"
( Pwith_modtype (l, rhs) )
-# 48220 "parsing/parser.ml"
+# 48215 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48272,15 +48267,15 @@ module Tables = struct
let _symbolstartpos = _startpos__1_ in
let _sloc = (_symbolstartpos, _endpos) in
-# 892 "parsing/parser.mly"
+# 894 "parsing/parser.mly"
( mkrhs _1 _sloc )
-# 48278 "parsing/parser.ml"
+# 48273 "parsing/parser.ml"
in
-# 3273 "parsing/parser.mly"
+# 3268 "parsing/parser.mly"
( Pwith_modtypesubst (l, rhs) )
-# 48284 "parsing/parser.ml"
+# 48279 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48303,9 +48298,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__1_ in
let _v : (Asttypes.private_flag) =
-# 3276 "parsing/parser.mly"
+# 3271 "parsing/parser.mly"
( Public )
-# 48309 "parsing/parser.ml"
+# 48304 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48335,9 +48330,9 @@ module Tables = struct
let _startpos = _startpos__1_ in
let _endpos = _endpos__2_ in
let _v : (Asttypes.private_flag) =
-# 3277 "parsing/parser.mly"
+# 3272 "parsing/parser.mly"
( Private )
-# 48341 "parsing/parser.ml"
+# 48336 "parsing/parser.ml"
in
{
MenhirLib.EngineTypes.state = _menhir_s;
@@ -48487,12 +48482,12 @@ module Incremental = struct
end
-# 3905 "parsing/parser.mly"
+# 3900 "parsing/parser.mly"
-# 48494 "parsing/parser.ml"
+# 48489 "parsing/parser.ml"
# 269 "<standard.mly>"
-# 48499 "parsing/parser.ml"
+# 48494 "parsing/parser.ml"
diff --git a/boot/ocamlc b/boot/ocamlc
index 1f66e11f41..34f254514c 100755
--- a/boot/ocamlc
+++ b/boot/ocamlc
Binary files differ
diff --git a/boot/ocamllex b/boot/ocamllex
index 951155baba..7fb898ad87 100755
--- a/boot/ocamllex
+++ b/boot/ocamllex
Binary files differ
diff --git a/build-aux/ocaml_version.m4 b/build-aux/ocaml_version.m4
index 41776d2578..abae7773fc 100644
--- a/build-aux/ocaml_version.m4
+++ b/build-aux/ocaml_version.m4
@@ -32,11 +32,11 @@ m4_define([OCAML__DEVELOPMENT_VERSION], [true])
# including the patchlevel, are mandatory.
m4_define([OCAML__VERSION_MAJOR], [5])
-m4_define([OCAML__VERSION_MINOR], [1])
+m4_define([OCAML__VERSION_MINOR], [2])
m4_define([OCAML__VERSION_PATCHLEVEL], [0])
# Note that the OCAML__VERSION_EXTRA string defined below is always empty
# for officially-released versions of OCaml.
-m4_define([OCAML__VERSION_EXTRA], [dev1-2022-06-09])
+m4_define([OCAML__VERSION_EXTRA], [dev0-2023-04-11])
# The OCAML__VERSION_EXTRA_PREFIX macro defined below should be a
# single character:
diff --git a/configure b/configure
index 09c88c1c40..75fd072a3b 100755
--- a/configure
+++ b/configure
@@ -56,7 +56,7 @@ if test -e '.git' ; then :
fi
fi
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for OCaml 5.1.0+dev1-2022-06-09.
+# Generated by GNU Autoconf 2.71 for OCaml 5.2.0+dev0-2023-04-11.
#
# Report bugs to <caml-list@inria.fr>.
#
@@ -677,8 +677,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='OCaml'
PACKAGE_TARNAME='ocaml'
-PACKAGE_VERSION='5.1.0+dev1-2022-06-09'
-PACKAGE_STRING='OCaml 5.1.0+dev1-2022-06-09'
+PACKAGE_VERSION='5.2.0+dev0-2023-04-11'
+PACKAGE_STRING='OCaml 5.2.0+dev0-2023-04-11'
PACKAGE_BUGREPORT='caml-list@inria.fr'
PACKAGE_URL='http://www.ocaml.org'
@@ -723,6 +723,7 @@ PTHREAD_LIBS
PTHREAD_CXX
PTHREAD_CC
ax_pthread_config
+PKG_CONFIG
rlwrap
DIRECT_LD
INSTALL_DATA
@@ -1556,7 +1557,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures OCaml 5.1.0+dev1-2022-06-09 to adapt to many kinds of systems.
+\`configure' configures OCaml 5.2.0+dev0-2023-04-11 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1623,7 +1624,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of OCaml 5.1.0+dev1-2022-06-09:";;
+ short | recursive ) echo "Configuration of OCaml 5.2.0+dev0-2023-04-11:";;
esac
cat <<\_ACEOF
@@ -1785,7 +1786,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-OCaml configure 5.1.0+dev1-2022-06-09
+OCaml configure 5.2.0+dev0-2023-04-11
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2442,7 +2443,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by OCaml $as_me 5.1.0+dev1-2022-06-09, which was
+It was created by OCaml $as_me 5.2.0+dev0-2023-04-11, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3198,8 +3199,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 5.1.0+dev1-2022-06-09" >&5
-printf "%s\n" "$as_me: Configuring OCaml version 5.1.0+dev1-2022-06-09" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 5.2.0+dev0-2023-04-11" >&5
+printf "%s\n" "$as_me: Configuring OCaml version 5.2.0+dev0-2023-04-11" >&6;}
# Configuration variables
@@ -3265,21 +3266,21 @@ ocamltest_unix_include=""
-VERSION=5.1.0+dev1-2022-06-09
+VERSION=5.2.0+dev0-2023-04-11
OCAML_DEVELOPMENT_VERSION=true
-OCAML_RELEASE_EXTRA='Some (Plus, "dev1-2022-06-09")'
+OCAML_RELEASE_EXTRA='Some (Plus, "dev0-2023-04-11")'
OCAML_VERSION_MAJOR=5
-OCAML_VERSION_MINOR=1
+OCAML_VERSION_MINOR=2
OCAML_VERSION_PATCHLEVEL=0
-OCAML_VERSION_EXTRA=dev1-2022-06-09
+OCAML_VERSION_EXTRA=dev0-2023-04-11
-OCAML_VERSION_SHORT=5.1
+OCAML_VERSION_SHORT=5.2
@@ -3435,17 +3436,17 @@ ac_config_files="$ac_config_files stdlib/META"
# Definitions related to the version of OCaml
printf "%s\n" "#define OCAML_VERSION_MAJOR 5" >>confdefs.h
-printf "%s\n" "#define OCAML_VERSION_MINOR 1" >>confdefs.h
+printf "%s\n" "#define OCAML_VERSION_MINOR 2" >>confdefs.h
printf "%s\n" "#define OCAML_VERSION_PATCHLEVEL 0" >>confdefs.h
-printf "%s\n" "#define OCAML_VERSION_ADDITIONAL \"dev1-2022-06-09\"" >>confdefs.h
+printf "%s\n" "#define OCAML_VERSION_ADDITIONAL \"dev0-2023-04-11\"" >>confdefs.h
- printf "%s\n" "#define OCAML_VERSION_EXTRA \"dev1-2022-06-09\"" >>confdefs.h
+ printf "%s\n" "#define OCAML_VERSION_EXTRA \"dev0-2023-04-11\"" >>confdefs.h
-printf "%s\n" "#define OCAML_VERSION 50100" >>confdefs.h
+printf "%s\n" "#define OCAML_VERSION 50200" >>confdefs.h
-printf "%s\n" "#define OCAML_VERSION_STRING \"5.1.0+dev1-2022-06-09\"" >>confdefs.h
+printf "%s\n" "#define OCAML_VERSION_STRING \"5.2.0+dev0-2023-04-11\"" >>confdefs.h
# Works out how many "o"s are needed in quoted strings
@@ -17955,6 +17956,8 @@ fi
## pthread_getaffinity_np, args differ from GNU and BSD
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking arguments for pthread_getaffinity_np" >&5
+printf %s "checking arguments for pthread_getaffinity_np... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _GNU_SOURCE
@@ -17971,8 +17974,10 @@ cpu_set_t cs;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: gnu" >&5
+printf "%s\n" "gnu" >&6; }
printf "%s\n" "#define HAS_GNU_GETAFFINITY_NP 1" >>confdefs.h
else $as_nop
@@ -17993,14 +17998,130 @@ cpuset_t cs;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
then :
- printf "%s\n" "#define HAS_BSD_GETAFFINITY_NP 1" >>confdefs.h
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: BSD" >&5
+printf "%s\n" "BSD" >&6; }
+ printf "%s\n" "#define HAS_BSD_GETAFFINITY_NP 1" >>confdefs.h
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: pthread_getaffinity_np not found" >&5
+printf "%s\n" "pthread_getaffinity_np not found" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
## ZSTD compression library
@@ -18008,13 +18129,13 @@ zstd_status=""
if test x"$with_zstd" != "xno"
then :
# Try pkg-config first, as it gives the most reliable results
- if pkg-config libzstd 2>/dev/null
+ if ${PKG_CONFIG} libzstd 2>/dev/null
then :
# Now check the version
- if pkg-config --atleast-version 1.4 libzstd
+ if ${PKG_CONFIG} --atleast-version 1.4 libzstd
then :
- zstd_libs=`pkg-config --libs libzstd`
- zstd_flags=`pkg-config --cflags libzstd`
+ zstd_libs=`${PKG_CONFIG} --libs libzstd`
+ zstd_flags=`${PKG_CONFIG} --cflags libzstd`
zstd_status="ok"
else $as_nop
zstd_status="zstd library too old: version 1.4 or later is needed"
@@ -20314,7 +20435,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by OCaml $as_me 5.1.0+dev1-2022-06-09, which was
+This file was extended by OCaml $as_me 5.2.0+dev0-2023-04-11, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20383,7 +20504,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-OCaml config.status 5.1.0+dev1-2022-06-09
+OCaml config.status 5.2.0+dev0-2023-04-11
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 907884293e..5973e93c01 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1924,7 +1924,8 @@ AC_CHECK_FUNC([ffs], [AC_DEFINE([HAS_FFS])])
AC_CHECK_FUNC([_BitScanForward], [AC_DEFINE([HAS_BITSCANFORWARD])])
## pthread_getaffinity_np, args differ from GNU and BSD
-AC_COMPILE_IFELSE(
+AC_MSG_CHECKING([arguments for pthread_getaffinity_np])
+AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#define _GNU_SOURCE
#include <sched.h>
@@ -1933,8 +1934,9 @@ AC_COMPILE_IFELSE(
CPU_ZERO(&cs);
CPU_COUNT(&cs);
pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs);]])],
- [AC_DEFINE([HAS_GNU_GETAFFINITY_NP])],
- [AC_COMPILE_IFELSE(
+ [AC_MSG_RESULT([gnu])
+ AC_DEFINE([HAS_GNU_GETAFFINITY_NP])],
+ [AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <pthread.h>
#include <pthread_np.h>
@@ -1944,18 +1946,22 @@ AC_COMPILE_IFELSE(
CPU_ZERO(&cs);
CPU_COUNT(&cs);
pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs);]])],
- [AC_DEFINE([HAS_BSD_GETAFFINITY_NP])])])
+ [AC_MSG_RESULT([BSD])
+ AC_DEFINE([HAS_BSD_GETAFFINITY_NP])],
+ [AC_MSG_RESULT([pthread_getaffinity_np not found])])])
+
+AC_PATH_TOOL([PKG_CONFIG], [pkg-config], [false])
## ZSTD compression library
zstd_status=""
AS_IF([test x"$with_zstd" != "xno"],
# Try pkg-config first, as it gives the most reliable results
- AS_IF([pkg-config libzstd 2>/dev/null],
+ AS_IF([${PKG_CONFIG} libzstd 2>/dev/null],
# Now check the version
- [AS_IF([pkg-config --atleast-version 1.4 libzstd],
- [zstd_libs=`pkg-config --libs libzstd`
- zstd_flags=`pkg-config --cflags libzstd`
+ [AS_IF([${PKG_CONFIG} --atleast-version 1.4 libzstd],
+ [zstd_libs=`${PKG_CONFIG} --libs libzstd`
+ zstd_flags=`${PKG_CONFIG} --cflags libzstd`
zstd_status="ok"],
[zstd_status="zstd library too old: version 1.4 or later is needed"])],
# Otherwise, try to find zstd the old way,
diff --git a/debugger/command_line.ml b/debugger/command_line.ml
index fa2c96b06c..7114b86949 100644
--- a/debugger/command_line.ml
+++ b/debugger/command_line.ml
@@ -205,7 +205,7 @@ let line_loop ppf line_buffer =
!previous_line
in
previous_line := "";
- if interprete_line ppf line then
+ if interprete_line ppf line && !interactif then
previous_line := line
done
with
diff --git a/debugger/debugger_parser.mly b/debugger/debugger_parser.mly
index 574c60745f..973b761983 100644
--- a/debugger/debugger_parser.mly
+++ b/debugger/debugger_parser.mly
@@ -1,18 +1,18 @@
-(**************************************************************************)
-(* *)
-(* OCaml *)
-(* *)
-(* Jerome Vouillon, projet Cristal, INRIA Rocquencourt *)
-(* OCaml port by John Malecki and Xavier Leroy *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* en Automatique. *)
-(* *)
-(* All rights reserved. This file is distributed under the terms of *)
-(* the GNU Lesser General Public License version 2.1, with the *)
-(* special exception on linking described in the file LICENSE. *)
-(* *)
-(**************************************************************************)
+/**************************************************************************/
+/* */
+/* OCaml */
+/* */
+/* Jerome Vouillon, projet Cristal, INRIA Rocquencourt */
+/* OCaml port by John Malecki and Xavier Leroy */
+/* */
+/* Copyright 1996 Institut National de Recherche en Informatique et */
+/* en Automatique. */
+/* */
+/* All rights reserved. This file is distributed under the terms of */
+/* the GNU Lesser General Public License version 2.1, with the */
+/* special exception on linking described in the file LICENSE. */
+/* */
+/**************************************************************************/
%{
@@ -29,18 +29,18 @@ open Debugcom
%token <string> UIDENT
%token <string> OPERATOR
%token <int64> INTEGER
-%token STAR (* * *)
-%token MINUS (* - *)
-%token DOT (* . *)
-%token COLON (* : *)
-%token HASH (* # *)
-%token AT (* @ *)
-%token DOLLAR (* $ *)
-%token BANG (* ! *)
-%token LPAREN (* ( *)
-%token RPAREN (* ) *)
-%token LBRACKET (* [ *)
-%token RBRACKET (* ] *)
+%token STAR /* * */
+%token MINUS /* - */
+%token DOT /* . */
+%token COLON /* : */
+%token HASH /* # */
+%token AT /* @ */
+%token DOLLAR /* $ */
+%token BANG /* ! */
+%token LPAREN /* ( */
+%token RPAREN /* ) */
+%token LBRACKET /* [ */
+%token RBRACKET /* ] */
%token EOL
%right DOT
@@ -111,7 +111,7 @@ open Debugcom
%%
-(* Raw arguments *)
+/* Raw arguments */
argument_list_eol :
ARGUMENT argument_list_eol
@@ -123,7 +123,7 @@ argument_eol :
ARGUMENT end_of_line
{ $1 };
-(* Integer *)
+/* Integer */
integer_list_eol :
INTEGER integer_list_eol
@@ -167,7 +167,7 @@ opt_signed_int64_eol :
| opt_int64_eol
{ $1 };
-(* Identifiers and long identifiers *)
+/* Identifiers and long identifiers */
longident :
LIDENT { Lident $1 }
@@ -212,7 +212,7 @@ opt_identifier :
opt_identifier_eol :
opt_identifier end_of_line { $1 };
-(* Expressions *)
+/* Expressions */
expression:
longident { E_ident $1 }
@@ -226,14 +226,14 @@ expression:
| LPAREN expression RPAREN { $2 }
;
-(* Lists of expressions *)
+/* Lists of expressions */
expression_list_eol :
expression expression_list_eol { $1::$2 }
| end_of_line { [] }
;
-(* Arguments for breakpoint *)
+/* Arguments for breakpoint */
break_argument_eol :
end_of_line { BA_none }
@@ -246,7 +246,7 @@ break_argument_eol :
| AT opt_longident HASH integer_eol { BA_pos2 ($2, $4) }
;
-(* Arguments for list *)
+/* Arguments for list */
list_arguments_eol :
opt_longident integer opt_integer_eol
@@ -254,7 +254,7 @@ list_arguments_eol :
| opt_longident_eol
{ ($1, None, None) };
-(* End of line *)
+/* End of line */
end_of_line :
EOL { stop_user_input () }
diff --git a/lambda/translcore.ml b/lambda/translcore.ml
index dd3dcd8f75..738c44a0f9 100644
--- a/lambda/translcore.ml
+++ b/lambda/translcore.ml
@@ -82,20 +82,11 @@ let extract_float = function
| _ -> fatal_error "Translcore.extract_float"
(* Push the default values under the functional abstractions *)
-(* Also push bindings of module patterns, since this sound *)
-
-type binding =
- | Bind_value of value_binding list
- | Bind_module of Ident.t * string option loc * module_presence * module_expr
let wrap_bindings bindings exp =
List.fold_left
(fun exp binds ->
- {exp with exp_desc =
- match binds with
- | Bind_value binds -> Texp_let(Nonrecursive, binds, exp)
- | Bind_module (id, name, pres, mexpr) ->
- Texp_letmodule (Some id, name, pres, mexpr, exp)})
+ {exp with exp_desc = Texp_let(Nonrecursive, binds, exp)})
exp bindings
let rec trivial_pat pat =
@@ -124,15 +115,7 @@ let rec push_defaults loc bindings use_lhs cases partial =
exp_desc = Texp_let
(Nonrecursive, binds,
({exp_desc = Texp_function _} as e2))}}] ->
- push_defaults loc (Bind_value binds :: bindings) true
- [{c_lhs=pat;c_guard=None;c_rhs=e2}]
- partial
- | [{c_lhs=pat; c_guard=None;
- c_rhs={exp_attributes=[{Parsetree.attr_name = {txt="#modulepat"};_}];
- exp_desc = Texp_letmodule
- (Some id, name, pres, mexpr,
- ({exp_desc = Texp_function _} as e2))}}] ->
- push_defaults loc (Bind_module (id, name, pres, mexpr) :: bindings) true
+ push_defaults loc (binds :: bindings) true
[{c_lhs=pat;c_guard=None;c_rhs=e2}]
partial
| [{c_lhs=pat; c_guard=None; c_rhs=exp} as case]
diff --git a/lambda/translmod.ml b/lambda/translmod.ml
index f3dde862da..d9aac389f6 100644
--- a/lambda/translmod.ml
+++ b/lambda/translmod.ml
@@ -1705,12 +1705,12 @@ let explanation_submsg (id, unsafe_info) =
let report_error loc = function
| Circular_dependency cycle ->
- let[@manual.ref "s:recursive-modules"] chapter, section = 12, 2 in
+ let[@manual.ref "s:recursive-modules"] manual_ref = [ 12; 2 ] in
Location.errorf ~loc ~sub:(List.map explanation_submsg cycle)
"Cannot safely evaluate the definition of the following cycle@ \
of recursively-defined modules:@ %a.@ \
- There are no safe modules in this cycle@ (see manual section %d.%d)."
- print_cycle cycle chapter section
+ There are no safe modules in this cycle@ %a."
+ print_cycle cycle Misc.print_see_manual manual_ref
| Conflicting_inline_attributes ->
Location.errorf "@[Conflicting 'inline' attributes@]"
diff --git a/lex/lexer.mll b/lex/lexer.mll
index 83111badc1..ca6f170713 100644
--- a/lex/lexer.mll
+++ b/lex/lexer.mll
@@ -137,7 +137,7 @@ rule main = parse
main lexbuf }
| "#" [' ' '\t']* (['0'-'9']+ as num) [' ' '\t']*
('\"' ([^ '\010' '\013' '\"']* as name) '\"')?
- [^ '\010' '\013']* '\010'
+ [^ '\010' '\013']* '\013'* '\010'
{ update_loc lexbuf name (int_of_string num);
main lexbuf
}
diff --git a/lex/parser.mly b/lex/parser.mly
index 67a2b1559d..7e9e1f34d2 100644
--- a/lex/parser.mly
+++ b/lex/parser.mly
@@ -1,19 +1,19 @@
-(**************************************************************************)
-(* *)
-(* OCaml *)
-(* *)
-(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* en Automatique. *)
-(* *)
-(* All rights reserved. This file is distributed under the terms of *)
-(* the GNU Lesser General Public License version 2.1, with the *)
-(* special exception on linking described in the file LICENSE. *)
-(* *)
-(**************************************************************************)
-
-(* The grammar for lexer definitions *)
+/**************************************************************************/
+/* */
+/* OCaml */
+/* */
+/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
+/* */
+/* Copyright 1996 Institut National de Recherche en Informatique et */
+/* en Automatique. */
+/* */
+/* All rights reserved. This file is distributed under the terms of */
+/* the GNU Lesser General Public License version 2.1, with the */
+/* special exception on linking described in the file LICENSE. */
+/* */
+/**************************************************************************/
+
+/* The grammar for lexer definitions */
%{
open Syntax
@@ -79,25 +79,25 @@ lexer_definition:
header:
Taction
{ $1 }
- | (*epsilon*)
+ | /*epsilon*/
{ { loc_file = ""; start_pos = 0; end_pos = 0; start_line = 1;
start_col = 0 } }
;
named_regexps:
named_regexps Tlet Tident Tequal regexp
{ Hashtbl.add named_regexps $3 $5 }
- | (*epsilon*)
+ | /*epsilon*/
{ () }
;
other_definitions:
other_definitions Tand definition
{ $3::$1 }
- | (*epsilon*)
+ | /*epsilon*/
{ [] }
;
refill_handler:
| Trefill Taction { Some $2 }
- | (*empty*) { None }
+ | /*empty*/ { None }
;
definition:
Tident arguments Tequal Tparse entry
@@ -108,7 +108,7 @@ definition:
arguments:
Tident arguments { $1::$2 }
-| (*epsilon*) { [] }
+| /*epsilon*/ { [] }
;
diff --git a/manual/src/cmds/intf-c.etex b/manual/src/cmds/intf-c.etex
index 1b2311fde3..cd3c283b1a 100644
--- a/manual/src/cmds/intf-c.etex
+++ b/manual/src/cmds/intf-c.etex
@@ -1993,11 +1993,12 @@ the serialized output.
\end{itemize}
Note: the "finalize", "compare", "hash", "serialize" and "deserialize"
-functions attached to custom block descriptors must never trigger a
-garbage collection. Within these functions, do not call any of the
-OCaml allocation functions, and do not perform a callback into OCaml
-code. Do not use "CAMLparam" to register the parameters to these
-functions, and do not use "CAMLreturn" to return the result.
+functions attached to custom block descriptors must never access the
+OCaml runtime. Within these functions, do not call any of the OCaml
+allocation functions, and do not perform a callback into OCaml code.
+Do not use "CAMLparam" to register the parameters to these functions,
+and do not use "CAMLreturn" to return the result. Do not raise
+exceptions, do not remove global roots, etc.
\subsection{ss:c-custom-alloc}{Allocating custom blocks}
@@ -2149,17 +2150,19 @@ as identifiers, to minimize the risk of identifier collision.
\subsection{ss:c-finalized}{Finalized blocks}
Custom blocks generalize the finalized blocks that were present in
-OCaml prior to version 3.00. For backward compatibility, the
-format of custom blocks is compatible with that of finalized blocks,
-and the "alloc_final" function is still available to allocate a custom
+OCaml prior to version 3.00. For backwards compatibility, the format
+of custom blocks is compatible with that of finalized blocks, and the
+"caml_alloc_final" function is still available to allocate a custom
block with a given finalization function, but default comparison,
-hashing and serialization functions. "caml_alloc_final("\var{n}",
-"\var{f}", "\var{used}", "\var{max}")" returns a fresh custom block of
-size \var{n}+1 words, with finalization function \var{f}. The first
-word is reserved for storing the custom operations; the other
-\var{n} words are available for your data. The two parameters
-\var{used} and \var{max} are used to control the speed of garbage
-collection, as described for "caml_alloc_custom".
+hashing and serialization functions. (In particular, the finalization
+function must not access the OCaml runtime.)
+
+"caml_alloc_final("\var{n}", "\var{f}", "\var{used}", "\var{max}")"
+returns a fresh custom block of size \var{n}+1 words, with
+finalization function \var{f}. The first word is reserved for storing
+the custom operations; the other \var{n} words are available for your
+data. The two parameters \var{used} and \var{max} are used to control
+the speed of garbage collection, as described for "caml_alloc_custom".
\section{s:C-Bigarrays}{Advanced topic: Bigarrays and the OCaml-C interface}
diff --git a/manual/tests/Makefile b/manual/tests/Makefile
index 452f6321f5..81e45dc974 100644
--- a/manual/tests/Makefile
+++ b/manual/tests/Makefile
@@ -25,7 +25,9 @@ check-cross-references: cross-reference-checker
-auxfile $(MANUAL)/texstuff/manual.aux \
$(ROOTDIR)/utils/warnings.ml \
$(ROOTDIR)/driver/main_args.ml \
- $(ROOTDIR)/lambda/translmod.ml
+ $(ROOTDIR)/lambda/translmod.ml \
+ $(ROOTDIR)/typing/typemod.ml \
+ $(ROOTDIR)/typing/typeclass.ml
# check that all standard library modules are referenced by the
# standard library chapter of the manual
diff --git a/manual/tests/cross_reference_checker.ml b/manual/tests/cross_reference_checker.ml
index cdf7ed6d9f..c11f40c24b 100644
--- a/manual/tests/cross_reference_checker.ml
+++ b/manual/tests/cross_reference_checker.ml
@@ -1,11 +1,14 @@
(** Check reference to manual section in ml files
- [cross-reference-cheker -auxfile tex.aux src.ml ]
+ [cross-reference-checker -auxfile tex.aux src.ml ]
checks that all expression and let bindings in [src.ml] annotated
- with [[@manual.ref "tex_label"]] are integer tuple literals, e.g
+ with [[@manual.ref "tex_label"]] are integer tuple literals or
+ lists, e.g
{[
let[@manual.ref "sec:major"] ref = 1, 1
(* or *)
+ let[@manual.ref "sec:major"] ref = [ 1; 1]
+ (* or *)
let ref = (3 [@manual.ref "ch:pentatonic"])
]}
and that their values are consistent with the computed references for the
@@ -20,7 +23,7 @@ type error =
| Reference_mismatch of
{loc:Location.t; label:string; ocaml:int list; tex:int list}
| Unknown_label of Location.t * string
- | Tuple_expected of Location.t
+ | Tuple_or_list_expected of Location.t
| No_aux_file
| Wrong_attribute_payload of Location.t
@@ -29,9 +32,9 @@ let pp_ref ppf = Format.pp_print_list ~pp_sep:( fun ppf () ->
let print_error error =
Location.print_report Format.std_formatter @@ match error with
- | Tuple_expected loc ->
+ | Tuple_or_list_expected loc ->
Location.errorf ~loc
- "Integer tuple expected after manual reference annotation@."
+ "Integer tuple or list expected after manual reference annotation@."
| Unknown_label (loc,label) ->
Location.errorf ~loc
"@[<hov>Unknown manual label:@ %s@]@." label
@@ -170,17 +173,33 @@ module OCaml_refs = struct
| Some l -> ref :: l in
Refs.add label l refs
+ let rec try_parse_as_list e =
+ match e.Parsetree.pexp_desc with
+ | Parsetree.Pexp_construct
+ ({ txt = Lident "::"; _ }, Some { pexp_desc = Pexp_tuple [ x; rest]; _ }) ->
+ ((int x) :: try_parse_as_list rest)
+ | Parsetree.Pexp_construct ({ txt = Lident "[]"; _}, None) ->
+ []
+ | _ -> raise Exit
+
+ let list_expression e =
+ try Some (try_parse_as_list e) with | Exit -> None
+
let inner_expr loc e =
- let tuple_expected () = print_error (Tuple_expected loc) in
+ let tuple_expected () = print_error (Tuple_or_list_expected loc) in
match e.Parsetree.pexp_desc with
- | Parsetree.Pexp_tuple l ->
- begin match int_list l with
- | None -> tuple_expected (); []
- | Some pos -> pos
- end
- | Parsetree.Pexp_constant Pconst_integer (n,_) ->
- [int_of_string n]
- | _ -> tuple_expected (); []
+ | Parsetree.Pexp_tuple l ->
+ begin match int_list l with
+ | None -> tuple_expected (); []
+ | Some pos -> pos
+ end
+ | Parsetree.Pexp_constant Pconst_integer (n,_) ->
+ [int_of_string n]
+ | _ ->
+ begin match list_expression e with
+ | Some list -> list
+ | None -> tuple_expected (); []
+ end
(** extract from [let[@manual.ref "label"] x= 1, 2] *)
let value_binding m iterator vb =
diff --git a/ocaml-variants.opam b/ocaml-variants.opam
index 8338c762cf..8b065f2f23 100644
--- a/ocaml-variants.opam
+++ b/ocaml-variants.opam
@@ -1,9 +1,9 @@
opam-version: "2.0"
-version: "5.1.0+trunk"
+version: "5.2.0+trunk"
license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
synopsis: "OCaml development version"
depends: [
- "ocaml" {= "5.1.0" & post}
+ "ocaml" {= "5.2.0" & post}
"base-unix" {post}
"base-bigarray" {post}
"base-threads" {post}
diff --git a/ocamldoc/odoc_html.ml b/ocamldoc/odoc_html.ml
index 268a01b9c7..53d2c29bae 100644
--- a/ocamldoc/odoc_html.ml
+++ b/ocamldoc/odoc_html.ml
@@ -848,7 +848,7 @@ class html =
inherit info
val mutable doctype =
- "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"
+ "<!DOCTYPE html>\n"
method character_encoding b =
bp b
"<meta content=\"text/html; charset=%s\" http-equiv=\"Content-Type\">\n"
diff --git a/ocamldoc/odoc_parser.mly b/ocamldoc/odoc_parser.mly
index a5ad13c3ec..da3280bad4 100644
--- a/ocamldoc/odoc_parser.mly
+++ b/ocamldoc/odoc_parser.mly
@@ -1,3 +1,4 @@
+%{
(**************************************************************************)
(* *)
(* OCaml *)
@@ -13,7 +14,6 @@
(* *)
(**************************************************************************)
-%{
open Odoc_comments_global
let uppercase = "[A-Z\192-\214\216-\222]"
diff --git a/ocamldoc/odoc_text_parser.mly b/ocamldoc/odoc_text_parser.mly
index a0bf53599c..2b7b2a6b42 100644
--- a/ocamldoc/odoc_text_parser.mly
+++ b/ocamldoc/odoc_text_parser.mly
@@ -83,7 +83,7 @@ let remove_trailing_blanks s =
%nonassoc below_Char
%nonassoc Char
-(* Start Symbols *)
+/* Start Symbols */
%start main located_element_list
%type <Odoc_types.text> main
%type <(int * int * Odoc_types.text_element) list> located_element_list
diff --git a/ocamltest/.depend b/ocamltest/.depend
index dac34bc788..81085ddc3a 100644
--- a/ocamltest/.depend
+++ b/ocamltest/.depend
@@ -94,6 +94,7 @@ main.cmo : \
tsl_semantics.cmi \
tsl_parser.cmi \
tsl_lexer.cmi \
+ translate.cmi \
tests.cmi \
result.cmi \
options.cmi \
@@ -107,6 +108,7 @@ main.cmx : \
tsl_semantics.cmx \
tsl_parser.cmx \
tsl_lexer.cmx \
+ translate.cmx \
tests.cmx \
result.cmx \
options.cmx \
@@ -364,15 +366,18 @@ ocamltest_unix.cmx : \
ocamltest_unix.cmi :
options.cmo : \
variables.cmi \
+ translate.cmi \
tests.cmi \
actions.cmi \
options.cmi
options.cmx : \
variables.cmx \
+ translate.cmx \
tests.cmx \
actions.cmx \
options.cmi
-options.cmi :
+options.cmi : \
+ translate.cmi
result.cmo : \
result.cmi
result.cmx : \
@@ -405,6 +410,19 @@ tests.cmi : \
result.cmi \
environments.cmi \
actions.cmi
+translate.cmo : \
+ tsl_semantics.cmi \
+ tsl_parser.cmi \
+ tsl_lexer.cmi \
+ tsl_ast.cmi \
+ translate.cmi
+translate.cmx : \
+ tsl_semantics.cmx \
+ tsl_parser.cmx \
+ tsl_lexer.cmx \
+ tsl_ast.cmx \
+ translate.cmi
+translate.cmi :
tsl_ast.cmo : \
tsl_ast.cmi
tsl_ast.cmx : \
diff --git a/ocamltest/Makefile b/ocamltest/Makefile
index b71523f9b6..34690fd411 100644
--- a/ocamltest/Makefile
+++ b/ocamltest/Makefile
@@ -46,7 +46,8 @@ core := \
tsl_semantics.mli tsl_semantics.ml \
builtin_variables.mli builtin_variables.ml \
actions_helpers.mli actions_helpers.ml \
- builtin_actions.mli builtin_actions.ml
+ builtin_actions.mli builtin_actions.ml \
+ translate.mli translate.ml
ocaml_plugin := \
ocaml_backends.mli ocaml_backends.ml \
diff --git a/ocamltest/main.ml b/ocamltest/main.ml
index dccbb426fc..f0643e56b6 100644
--- a/ocamltest/main.ml
+++ b/ocamltest/main.ml
@@ -22,22 +22,6 @@ type behavior =
| Skip_all_tests
| Run of Environments.t
-(*
-let first_token filename =
- let input_channel = open_in filename in
- let lexbuf = Lexing.from_channel input_channel in
- Location.init lexbuf filename;
- let token =
- try Tsl_lexer.token lexbuf with e -> close_in input_channel; raise e
- in close_in input_channel; token
-
-let is_test filename =
- match first_token filename with
- | exception _ -> false
- | Tsl_parser.TSL_BEGIN_C_STYLE | TSL_BEGIN_OCAML_STYLE -> true
- | _ -> false
-*)
-
(* this primitive announce should be used for tests
that were aborted on system error before ocamltest
could parse them *)
@@ -45,23 +29,29 @@ let announce_test_error test_filename error =
Printf.printf " ... testing '%s' => unexpected error (%s)\n%!"
(Filename.basename test_filename) error
-let tsl_block_of_file test_filename =
+exception Syntax_error of Lexing.position
+
+let tsl_parse_file test_filename =
let input_channel = open_in test_filename in
let lexbuf = Lexing.from_channel input_channel in
Location.init lexbuf test_filename;
- match Tsl_parser.tsl_block Tsl_lexer.token lexbuf with
+ match Tsl_parser.tsl_script Tsl_lexer.token lexbuf with
+ | exception Parsing.Parse_error ->
+ raise (Syntax_error lexbuf.Lexing.lex_start_p)
| exception e -> close_in input_channel; raise e
| _ as tsl_block -> close_in input_channel; tsl_block
-let tsl_block_of_file_safe test_filename =
- try tsl_block_of_file test_filename with
+let tsl_parse_file_safe test_filename =
+ try tsl_parse_file test_filename with
| Sys_error message ->
Printf.eprintf "%s\n%!" message;
announce_test_error test_filename message;
exit 1
- | Parsing.Parse_error ->
- Printf.eprintf "Could not read test block in %s\n%!" test_filename;
- announce_test_error test_filename "could not read test block";
+ | Syntax_error p ->
+ let open Lexing in
+ Printf.eprintf "%s:%d.%d: syntax error in test script\n%!"
+ test_filename p.pos_lnum (p.pos_cnum - p.pos_bol);
+ announce_test_error test_filename "could not read test script";
exit 1
let print_usage () =
@@ -131,8 +121,8 @@ let init_tests_to_skip () =
let test_file test_filename =
let start = if Options.show_timings then Unix.gettimeofday () else 0.0 in
let skip_test = List.mem test_filename !tests_to_skip in
- let tsl_block = tsl_block_of_file_safe test_filename in
- let (rootenv_statements, test_trees) = test_trees_of_tsl_block tsl_block in
+ let tsl_ast = tsl_parse_file_safe test_filename in
+ let (rootenv_statements, test_trees) = test_trees_of_tsl_ast tsl_ast in
let test_trees = match test_trees with
| [] ->
let default_tests = Tests.default_tests() in
@@ -221,10 +211,12 @@ let test_file test_filename =
Printf.eprintf "Wall clock: %s took %.02fs\n%!"
test_filename wall_clock_duration
-let is_test s =
- match tsl_block_of_file s with
- | _ -> true
- | exception _ -> false
+let is_test filename =
+ let input_channel = open_in filename in
+ let lexbuf = Lexing.from_channel input_channel in
+ Fun.protect ~finally:(fun () -> close_in input_channel) begin fun () ->
+ Tsl_lexer.is_test lexbuf
+ end
let ignored s =
s = "" || s.[0] = '_' || s.[0] = '.'
@@ -277,6 +269,12 @@ let () =
let doit f x = work_done := true; f x in
List.iter (doit find_test_dirs) Options.find_test_dirs;
List.iter (doit list_tests) Options.list_tests;
- List.iter (doit test_file) Options.files_to_test;
+ let do_file =
+ if Options.translate then
+ Translate.file ~style:Options.style ~compact:Options.compact
+ else
+ test_file
+ in
+ List.iter (doit do_file) Options.files_to_test;
if not !work_done then print_usage();
if !failed || not !work_done then exit 1
diff --git a/ocamltest/ocamltest.org b/ocamltest/ocamltest.org
index bcee038b1d..f547a0f2c8 100644
--- a/ocamltest/ocamltest.org
+++ b/ocamltest/ocamltest.org
@@ -28,7 +28,7 @@ should be written. It may indeed seem odd to write a test-driver for a
compiler in the language it compiles, since the compiler itself
is yet untested and thus not trustworthy.
-It can however be observed that the OCaml compiler is /bootstraped/,
+It can however be observed that the OCaml compiler is /bootstrapped/,
meaning that it is itself written in OCaml. A newer version of the
compiler can thus be produced from an existing one and the (OCaml)
source code of that newer version. Practically, this means that the
@@ -50,7 +50,7 @@ For example, the reason why ocamltest has no support for running unit tests
is that there were no such tests in the OCaml compiler's test suite.
Indeed, the OCaml compiler's test suite is composed mainly of complete
-programs. In this context, the most current meaning of "testing" a program
+programs. In this context, the most usual meaning of "testing" a program
is that the program needs to be compiled and executed. The test will
be considered successful if the program compiles as expected and, when run,
returns the expected value.
@@ -61,7 +61,7 @@ importance to make writing tests of this form as simple as possible.
However, not all tests fall into the previously described category, so it is
also necessary to support not only variations on the previous scenario
(compile but do not run, compile with certain options, etc.) but also
-completely different tests, such as top-level tests, debugger tests,
+completely different tests, such as REPL tests, debugger tests,
etc.
To fulfill these requirements and make it as easy as possible to turn a
@@ -75,7 +75,7 @@ should be performed.
The next chapter explains through examples how to write simple tests. We
then introduce the key concepts used by ocamltest to provide a better
understanding of how it works and can be used to write more complex
-tests. The two last chapters give an in-depth description of the
+tests. The last two chapters give an in-depth description of the
built-in tests and actions and of the tests and actions that are specific
to the OCaml compiler.
@@ -96,7 +96,7 @@ with a few other useful tests.
Writing tests requires that the sources of the OCaml compiler for which
one wants to write them are downloaded and compiled. The compiler
-does not need to be installed, though.
+does not need to be installed.
The sources can be downloaded either as an archive, or directly cloned
through git, which seems more appropriate in the context of writing ones
@@ -289,7 +289,7 @@ quite similar):
output, we compare it to the one produced in action 2. Such a check
may seem strange, because what it requires is that =ocamlc.byte= and
=ocamlc.opt= produce exactly the same binary and not two binaries
- than perform similarly when they are run, but it has proven useful in
+ that perform similarly when they are run, but it has proven useful in
the past and has permitted to detect a subtle bug in the compiler.
** Customizing the default tests
@@ -327,13 +327,13 @@ required steps to achieve this:
1. We slightly modify the test block in =hello.ml=, as follows:
#+begin_src
(* TEST
- flags = "-w +33"
+ flags = "-w +33";
*)
#+end_src
2. Since we now expect a non-empty output for the compilers, we need to
- store the expected output in a file, namely =hello.compilers.output=
- besides to =hello.ml= and =hello.reference=. To figure out what
+ store the expected output in a file, namely =hello.compilers.reference=
+ beside =hello.ml= and =hello.reference=. To figure out what
this file shall contain, we can run ocamltest even before it
has been created. Of course, the action that checks compiler output
will fail, but in this way we will get the compiler's output
@@ -365,7 +365,7 @@ named appropriately. It will indeed first lookup the test source
directory for a compiler-specific reference file, e.g.
=hello.ocamlc.byte.reference=. If no such file exists, a
back-end-specific reference file is searched, e.g.
-=hello.ocamlc.reference= for a compiler common to both =ocamlc.byte= and
+=hello.ocamlc.reference= for a reference common to both =ocamlc.byte= and
=ocamlc.opt=. If this file does not exist either, ocamltest falls back
to looking for =hello.compilers.reference= as we have seen in this
example, the absence of which meaning that the compiler's output is
@@ -390,7 +390,7 @@ Our =hello.ml= test program can then be rewritten as follows:
#+begin_src
(* TEST
-modules = "greet.ml"
+ modules = "greet.ml";
*)
let _ = Greet.greet "world"
@@ -398,7 +398,7 @@ let _ = Greet.greet "world"
Provided that the =hello.compilers.reference= file previously used to test
warnings is deleted, running ocamltest on =hello.ml= should work. It
-will also be worth looking at the two first lines of the log file generated
+will also be worth looking at the first two lines of the log file generated
while running the test. It says:
#+begin_src
@@ -453,8 +453,8 @@ it becomes a test:
#+begin_src
(* TEST
-directories += " ${ocamlsrcdir}/otherlibs/str "
-libraries += " str "
+ directories += " ${ocamlsrcdir}/otherlibs/str ";
+ libraries += " str ";
*)
#+end_src
@@ -500,7 +500,7 @@ test block is actually written as follows:
#+begin_src
(* TEST
-include str
+ include str;
*)
#+end_src
@@ -519,80 +519,90 @@ that it is run only on Unix platforms:
#+begin_src
(* TEST
-:* unix
-:** bytecode
-:** native
+ unix;
+ {
+ bytecode;
+ }
+ {
+ native;
+ }
*)
#+end_src
-As can be understood from this example, lines starting with an asterisk
-describe which tests should be executed. In addition, the number of
-asterisks allows to specify the nesting level of each test or action.
+As can be understood from this example, tests are organised in a tree
+nested blocks. Each block begins with a brace and a list of tests and
+environment statements that are executed in sequence. Then the block
+contains a set of sub-blocks that are executed independently of each
+other (i.e. their environments are independent and they are run
+regardless of the success or failure of their siblings).
Here for instance, =bytecode= and =native= are sub-tests that will be
run only if the =unix= test passes and will not be started if it fails
or skips.
-This way of describing the dependencies between tests has been inspired
-by the syntax of org-mode. Each line starting with asterisks (thus lines
-specifying which tests to run) can also be seen as a title. The whole
-set of lines is like the outline of the test scenario.
-
With this information in mind, it can be seen that the smallest test
block
: (* TEST *)
is actually equivalent to
#+begin_src
(* TEST
-:* bytecode
-:* native
+ {
+ bytecode;
+ }
+ {
+ native;
+ }
*)
#+end_src
One common error when designing tests is to believe that a block like
#+begin_src
(* TEST
-:* unix
+ unix;
*)
#+end_src
means to execute the =unix= test that verifies that the OS is indeed
Unix and then to execute the default tests. This is actually not the
case. The only situation in which the default tests are considered is
-when the test block contains absolutely no line starting with an
-asterisk. As soon as there is a line starting with an asterisk, the
+when the test block contains absolutely no test statement.
+As soon as there is a test statement, the
default tests are ignored completely and one needs to be totally
explicit about which tests to run. So the correct way to write the
erroneous block above is the use shown at the beginning of this section,
namely:
#+begin_src
(* TEST
-:* unix
-:** bytecode
-:** native
+ unix;
+ {
+ bytecode;
+ }
+ {
+ native;
+ }
*)
#+end_src
-The fact that the language is inspired by org-mode should also be
-helpful in understanding the scope of variable assignments. Roughly
-speaking:
-
-1. Variables defined at the root level are visible by all the tests and
- sub-tests that follow their assignment.
-
-2. If a variable is defined just below a test line, then it is visible
- by that test and all its sub-tests (unless its definition is
- overridden) but not by tests at a nesting level whose depth is less or
- equal than the one of the test in which the variable is defined.
+The braces make explicit the scope of variable assignments: an
+assignement modifies a variable for the rest of its block and for all
+sub-blocks (unless overridden at some point).
-For instance, given the following block:
+For instance, given the following blocks:
#+begin_src
(* TEST
-foo = "abc"
-:* test1
-bar = "def"
-:** subtest1
-baz = "hij"
-:** subtest2
-:* test2
+ foo = "abc";
+ {
+ bar = "def";
+ test1;
+ {
+ baz = "hij";
+ subtest1;
+ }
+ {
+ subtest2;
+ }
+ }
+ {
+ test2;
+ }
*)
#+end_src
- The definition of =foo= is visible in all the tests
@@ -618,13 +628,13 @@ but they are different in the way one specifies the expected output and
also in what they can test. The =toplevel= test behaves in a spirit
similar to the compiler tests described above, meaning that the expected
output has to be stored in its own, separate file. Since this test
-invokes the real OCaml top-level, it is useful to test advanced features
-like the behavior of the top-level when its input is a file rather than
+invokes the real OCaml toplevel, it is useful to test advanced features
+like the behavior of the toplevel when its input is a file rather than
a terminal, or similar things. In the expect test, on the contrary,
the input and the output it is expected to produce can be written in
the same file, close to each other. However, this test uses the OCaml
-top-level as a library, rather than calling it as an external program.
-So this test is actually not testing the complete real OCaml top-level,
+toplevel as a library, rather than calling it as an external program.
+So this test is actually not testing the complete real OCaml toplevel,
but for testing language features it remains perfectly valid and is
actually what is needed in most of the cases. We thus give below an
example of an expect test and will describe the =toplevel= test in
@@ -634,7 +644,7 @@ So, here is a toy example of an =expect= test:
#+begin_src
(* TEST
-:* expect
+ expect;
*)
type point = { x : int; y : int };;
@@ -668,8 +678,8 @@ follows:
#+begin_src
(* TEST
-script = "${test_source_directory}/faketest.sh"
-:* script
+ script = "${test_source_directory}/faketest.sh";
+ script;
*)
let _ = print_endline "Hello, world!"
@@ -721,14 +731,14 @@ The list of builtin variables can be obtained by running =ocamltest
Environment variables for a test can be set using:
#+begin_src
-set VARIABLE_NAME="value"
+set VARIABLE_NAME="value";
#+end_src
in the test header (the quotes are mandatory).
On the contrary, you can ensure that an environment variable is not set when
the test runs with:
#+begin_src
-unset VARIABLE_NAME
+unset VARIABLE_NAME;
#+end_src
* Built-in actions and tests
@@ -747,7 +757,6 @@ running =ocamltest -show-actions=.
# Things to document (requested by Leo on caml-devel)
# - the syntax of the DSL
-# - the precise meaning of the stars
# - a clear definition of what "test" means in the context of the DSL
# - a list of the builtin "actions"
# - a list of which "actions" depend on which "variables"
diff --git a/ocamltest/options.ml b/ocamltest/options.ml
index 342d2ff954..d85f5b1e7b 100644
--- a/ocamltest/options.ml
+++ b/ocamltest/options.ml
@@ -61,6 +61,11 @@ let list_tests = ref []
let show_timings = ref false
+let translate = ref false
+let style = ref Translate.Plain
+let compact = ref false
+
+
let add_to_list r x =
r := !r @ [x]
@@ -85,6 +90,14 @@ let commandline_options =
" List tests in given directory.");
("-keep-test-dir-on-success", Arg.Set keep_test_dir_on_success,
" Keep the test directory (with the generated test artefacts) on success.");
+ ("-translate", Arg.Set translate,
+ " Translate the test script from old to new syntax");
+ ("-compact", Arg.Set compact,
+ " If translating, output the new script in compact mode.");
+ ("-keep-lines", Arg.Unit (fun () -> style := Translate.Lines),
+ " If translating, preserve line numbers in the output.");
+ ("-keep-chars", Arg.Unit (fun () -> style := Translate.Chars),
+ " If translating, preserve char offsets in the output.");
]
let files_to_test = ref []
@@ -102,3 +115,6 @@ let find_test_dirs = !find_test_dirs
let list_tests = !list_tests
let keep_test_dir_on_success = !keep_test_dir_on_success
let show_timings = !show_timings
+let translate = !translate
+let style = !style
+let compact = !compact
diff --git a/ocamltest/options.mli b/ocamltest/options.mli
index 7b7c5943a4..4d98eec7cf 100644
--- a/ocamltest/options.mli
+++ b/ocamltest/options.mli
@@ -32,3 +32,7 @@ val list_tests : string list
val keep_test_dir_on_success : bool
val show_timings : bool
+
+val translate : bool
+val style : Translate.style
+val compact : bool
diff --git a/ocamltest/tests.ml b/ocamltest/tests.ml
index b6cf378c1d..f2c32c937f 100644
--- a/ocamltest/tests.ml
+++ b/ocamltest/tests.ml
@@ -22,6 +22,13 @@ type t = {
test_description : string
}
+let null = {
+ test_name = "*pass*";
+ test_run_by_default = false;
+ test_actions = [];
+ test_description = "dummy test inserted by parser; always pass"
+}
+
let compare t1 t2 = String.compare t1.test_name t2.test_name
let (tests: (string, t) Hashtbl.t) = Hashtbl.create 20
diff --git a/ocamltest/tests.mli b/ocamltest/tests.mli
index 71ef2ac06e..bdb65c801b 100644
--- a/ocamltest/tests.mli
+++ b/ocamltest/tests.mli
@@ -22,6 +22,8 @@ type t = {
test_description : string
}
+val null : t
+
val compare : t -> t -> int
val register : t -> unit
diff --git a/ocamltest/translate.ml b/ocamltest/translate.ml
new file mode 100644
index 0000000000..2554d64a4d
--- /dev/null
+++ b/ocamltest/translate.ml
@@ -0,0 +1,138 @@
+(**************************************************************************)
+(* *)
+(* OCaml *)
+(* *)
+(* Damien Doligez, projet Cambium, INRIA Paris *)
+(* *)
+(* Copyright 2023 Institut National de Recherche en Informatique et *)
+(* en Automatique. *)
+(* *)
+(* All rights reserved. This file is distributed under the terms of *)
+(* the GNU Lesser General Public License version 2.1, with the *)
+(* special exception on linking described in the file LICENSE. *)
+(* *)
+(**************************************************************************)
+
+(* Translate a test file from old to new syntax. *)
+
+open Stdlib
+open Printf
+
+let copy ic oc up_to =
+ try
+ while pos_in ic < up_to do
+ output_char oc (input_char ic)
+ done
+ with End_of_file -> ()
+
+let text =
+ "Filler_text_added_to_preserve_locations_while_translating_from_old_syntax__"
+let len = String.length text
+let index = ref (-1)
+let lorem () = incr index; text.[!index mod len]
+
+type mode =
+| Keep_chars of int (* how many chars to skip before keeping chars *)
+| Keep_lines
+
+let copy_newlines ~mode ic oc up_to =
+ let skip, insert =
+ match mode with
+ | Keep_lines ->
+ ref max_int, ref "(* Blank lines added here to preserve locations. *)"
+ | Keep_chars n -> ref n, ref ""
+ in
+ try
+ while pos_in ic < up_to do
+ let c = input_char ic in
+ if c = '\n' || c = '\r' then begin
+ output_char oc c;
+ output_string oc !insert;
+ insert := "";
+ end else if !skip <= 0 then
+ output_char oc (lorem ())
+ else
+ decr skip
+ done
+ with End_of_file -> ()
+
+let tsl_block_of_file test_filename =
+ let input_channel = open_in test_filename in
+ let lexbuf = Lexing.from_channel input_channel in
+ Location.init lexbuf test_filename;
+ try
+ let block = Tsl_parser.tsl_block Tsl_lexer.token lexbuf in
+ close_in input_channel;
+ if !Tsl_lexer.has_comments then
+ eprintf "%s:1.0: warning: test script has comments\n" test_filename;
+ block
+ with
+ | Parsing.Parse_error ->
+ let open Lexing in
+ let p = lexbuf.lex_start_p in
+ Printf.eprintf "%s:%d.%d: syntax error in test script\n%!"
+ test_filename p.pos_lnum (p.pos_cnum - p.pos_bol);
+ raise Parsing.Parse_error
+
+(* In what style to output the translated test file *)
+type style =
+| Plain
+| Lines
+| Chars
+
+(* What kind of comments are used in the test file *)
+type kind = { opening : string; closing : string }
+let c_kind = { opening = "/*"; closing = "*/" }
+let ocaml_kind = { opening = "(*"; closing = "*)" }
+
+let file ~style ~compact f =
+ let tsl_block = tsl_block_of_file f in
+ let (rootenv_statements, test_trees) =
+ Tsl_semantics.test_trees_of_tsl_block tsl_block
+ in
+ let ast =
+ Tsl_semantics.tsl_ast_of_test_trees (rootenv_statements, test_trees)
+ in
+ let lex_ic = open_in f in
+ let copy_ic = open_in f in
+ let lexbuf = Lexing.from_channel lex_ic in
+ Location.init lexbuf f;
+ let rec seek_to_begin () =
+ match Tsl_lexer.token lexbuf with
+ | Tsl_parser.TSL_BEGIN_C_STYLE position -> (c_kind, position)
+ | Tsl_parser.TSL_BEGIN_OCAML_STYLE position -> (ocaml_kind, position)
+ | _ -> seek_to_begin ()
+ in
+ let rec seek_to_end () =
+ match Tsl_lexer.token lexbuf with
+ | Tsl_parser.TSL_END_C_STYLE -> ()
+ | Tsl_parser.TSL_END_OCAML_STYLE -> ()
+ | _ -> seek_to_end ()
+ in
+ let (kind, position) = seek_to_begin () in
+ copy copy_ic stdout Lexing.(lexbuf.lex_curr_p.pos_cnum);
+ if position = `Below || style = Plain then begin
+ print_string (if ast = Tsl_ast.Ast ([], []) then " " else "\n");
+ Tsl_semantics.print_tsl_ast ~compact stdout ast;
+ seek_to_end ();
+ seek_in copy_ic Lexing.(lexbuf.lex_start_p.pos_cnum);
+ copy copy_ic stdout max_int;
+ end else begin
+ printf "_BELOW";
+ seek_to_end ();
+ let limit = Lexing.(lexbuf.lex_start_p.pos_cnum) in
+ let mode =
+ match style with
+ | Lines -> Keep_lines
+ | Chars -> Keep_chars 6
+ | Plain -> assert false
+ in
+ copy_newlines ~mode copy_ic stdout limit;
+ copy copy_ic stdout max_int;
+ printf "\n%s TEST\n" kind.opening;
+ Tsl_semantics.print_tsl_ast ~compact stdout ast;
+ printf "%s\n" kind.closing;
+ end;
+ flush stdout;
+ close_in lex_ic;
+ close_in copy_ic;
diff --git a/ocamltest/translate.mli b/ocamltest/translate.mli
new file mode 100644
index 0000000000..24b02e320e
--- /dev/null
+++ b/ocamltest/translate.mli
@@ -0,0 +1,23 @@
+(**************************************************************************)
+(* *)
+(* OCaml *)
+(* *)
+(* Damien Doligez, projet Cambium, INRIA Paris *)
+(* *)
+(* Copyright 2023 Institut National de Recherche en Informatique et *)
+(* en Automatique. *)
+(* *)
+(* All rights reserved. This file is distributed under the terms of *)
+(* the GNU Lesser General Public License version 2.1, with the *)
+(* special exception on linking described in the file LICENSE. *)
+(* *)
+(**************************************************************************)
+
+(* Translate a test file from old to new syntax. *)
+
+type style =
+| Plain
+| Lines
+| Chars
+
+val file : style:style -> compact:bool -> string -> unit
diff --git a/ocamltest/tsl_ast.ml b/ocamltest/tsl_ast.ml
index 0564019c12..a308282865 100644
--- a/ocamltest/tsl_ast.ml
+++ b/ocamltest/tsl_ast.ml
@@ -35,6 +35,8 @@ type tsl_item =
type tsl_block = tsl_item list
+type t = Ast of tsl_item list * t list
+
let make ?(loc = Location.none) foo = { node = foo; loc = loc }
let make_identifier = make
diff --git a/ocamltest/tsl_ast.mli b/ocamltest/tsl_ast.mli
index f835504408..9b77255309 100644
--- a/ocamltest/tsl_ast.mli
+++ b/ocamltest/tsl_ast.mli
@@ -26,6 +26,7 @@ type environment_statement =
| Include of string located (* include named environment *)
| Unset of string located (* clear environment variable *)
+(* old syntax *)
type tsl_item =
| Environment_statement of environment_statement located
| Test of
@@ -35,6 +36,9 @@ type tsl_item =
type tsl_block = tsl_item list
+(* New syntax *)
+type t = Ast of tsl_item list * t list
+
val make_identifier : ?loc:Location.t -> string -> string located
val make_string : ?loc:Location.t -> string -> string located
val make_environment_statement :
diff --git a/ocamltest/tsl_lexer.mli b/ocamltest/tsl_lexer.mli
index b25e9f8565..ec1688a403 100644
--- a/ocamltest/tsl_lexer.mli
+++ b/ocamltest/tsl_lexer.mli
@@ -16,5 +16,8 @@
(* Interface to the Tsl_lexer module *)
val token : Lexing.lexbuf -> Tsl_parser.token
+val is_test : Lexing.lexbuf -> bool
val modifier :
Lexing.lexbuf -> string * [`Remove | `Add of string | `Append of string]
+
+val has_comments : bool ref
diff --git a/ocamltest/tsl_lexer.mll b/ocamltest/tsl_lexer.mll
index 8ec1674a26..b643509eca 100644
--- a/ocamltest/tsl_lexer.mll
+++ b/ocamltest/tsl_lexer.mll
@@ -20,6 +20,7 @@
open Tsl_parser
let comment_start_pos = ref []
+let has_comments = ref false
let lexer_error message =
failwith (Printf.sprintf "Tsl lexer: %s" message)
@@ -30,14 +31,32 @@ let blank = [' ' '\009' '\012']
let identchar = ['A'-'Z' 'a'-'z' '_' '.' '-' '\'' '0'-'9']
let num = ['0'-'9']
-rule token = parse
+rule is_test = parse
+ | blank * { is_test lexbuf }
+ | newline { Lexing.new_line lexbuf; is_test lexbuf }
+ | "/*" blank* "TEST" { true }
+ | "/*" blank* "TEST_BELOW" { true }
+ | "(*" blank* "TEST" { true }
+ | "(*" blank* "TEST_BELOW" { true }
+ | _ { false }
+ | eof { false }
+
+and token = parse
| blank * { token lexbuf }
| newline { Lexing.new_line lexbuf; token lexbuf }
- | "/*" blank* "TEST" { TSL_BEGIN_C_STYLE }
- | "/*" blank* "TEST_BELOW" _ * "/*" blank* "TEST" { TSL_BEGIN_C_STYLE }
+ | "/*" blank* "TEST" { TSL_BEGIN_C_STYLE `Above }
+ | "/*" blank* "TEST_BELOW" _ * "/*" blank* "TEST" {
+ let s = Lexing.lexeme lexbuf in
+ String.iter (fun c -> if c = '\n' then Lexing.new_line lexbuf) s;
+ TSL_BEGIN_C_STYLE `Below
+ }
| "*/" { TSL_END_C_STYLE }
- | "(*" blank* "TEST" { TSL_BEGIN_OCAML_STYLE }
- | "(*" blank* "TEST_BELOW" _ * "(*" blank* "TEST" { TSL_BEGIN_OCAML_STYLE }
+ | "(*" blank* "TEST" { TSL_BEGIN_OCAML_STYLE `Above }
+ | "(*" blank* "TEST_BELOW" _ * "(*" blank* "TEST" {
+ let s = Lexing.lexeme lexbuf in
+ String.iter (fun c -> if c = '\n' then Lexing.new_line lexbuf) s;
+ TSL_BEGIN_OCAML_STYLE `Below
+ }
| "*)" { TSL_END_OCAML_STYLE }
| "," { COMMA }
| '*'+ { TEST_DEPTH (String.length (Lexing.lexeme lexbuf)) }
@@ -53,9 +72,13 @@ rule token = parse
| "with" -> WITH
| _ -> IDENTIFIER s
}
+ | "{" { LEFT_BRACE }
+ | "}" { RIGHT_BRACE }
+ | ";" { SEMI }
| "(*"
{
comment_start_pos := [Lexing.lexeme_start_p lexbuf];
+ has_comments := true;
comment lexbuf
}
| '"'
diff --git a/ocamltest/tsl_parser.mly b/ocamltest/tsl_parser.mly
index ff747af22c..c8d52ab72b 100644
--- a/ocamltest/tsl_parser.mly
+++ b/ocamltest/tsl_parser.mly
@@ -1,19 +1,19 @@
-(**************************************************************************)
-(* *)
-(* OCaml *)
-(* *)
-(* Sebastien Hinderer, projet Gallium, INRIA Paris *)
-(* *)
-(* Copyright 2016 Institut National de Recherche en Informatique et *)
-(* en Automatique. *)
-(* *)
-(* All rights reserved. This file is distributed under the terms of *)
-(* the GNU Lesser General Public License version 2.1, with the *)
-(* special exception on linking described in the file LICENSE. *)
-(* *)
-(**************************************************************************)
-
-(* Parser for the Tests Specification Language *)
+/**************************************************************************/
+/* */
+/* OCaml */
+/* */
+/* Sebastien Hinderer, projet Gallium, INRIA Paris */
+/* */
+/* Copyright 2016 Institut National de Recherche en Informatique et */
+/* en Automatique. */
+/* */
+/* All rights reserved. This file is distributed under the terms of */
+/* the GNU Lesser General Public License version 2.1, with the */
+/* special exception on linking described in the file LICENSE. */
+/* */
+/**************************************************************************/
+
+/* Parser for the Tests Specification Language */
%{
@@ -31,21 +31,46 @@ let mkenvstmt envstmt =
%}
-%token TSL_BEGIN_C_STYLE TSL_END_C_STYLE
-%token TSL_BEGIN_OCAML_STYLE TSL_END_OCAML_STYLE
-%token COMMA
+%token <[`Above | `Below]> TSL_BEGIN_C_STYLE
+%token TSL_END_C_STYLE
+%token <[`Above | `Below]> TSL_BEGIN_OCAML_STYLE
+%token TSL_END_OCAML_STYLE
+%token COMMA LEFT_BRACE RIGHT_BRACE SEMI
%token <int> TEST_DEPTH
%token EQUAL PLUSEQUAL
-(* %token COLON *)
+/* %token COLON */
%token INCLUDE SET UNSET WITH
%token <string> IDENTIFIER
%token <string> STRING
-%start tsl_block
+%start tsl_block tsl_script
%type <Tsl_ast.tsl_block> tsl_block
+%type <Tsl_ast.t> tsl_script
%%
+node:
+| statement_list tree_list { Ast ($1, $2) }
+
+tree_list:
+| { [] }
+| tree tree_list { $1 :: $2 }
+
+tree:
+| LEFT_BRACE node RIGHT_BRACE { $2 }
+
+statement_list:
+| { [] }
+| statement statement_list { $1 :: $2 }
+
+statement:
+| env_item SEMI { $1 }
+| identifier with_environment_modifiers SEMI { Test (0, $1, $2) }
+
+tsl_script:
+| TSL_BEGIN_C_STYLE node TSL_END_C_STYLE { $2 }
+| TSL_BEGIN_OCAML_STYLE node TSL_END_OCAML_STYLE { $2 }
+
tsl_block:
| TSL_BEGIN_C_STYLE tsl_items TSL_END_C_STYLE { $2 }
| TSL_BEGIN_OCAML_STYLE tsl_items TSL_END_OCAML_STYLE { $2 }
diff --git a/ocamltest/tsl_semantics.ml b/ocamltest/tsl_semantics.ml
index 09fb8f9917..ee71bf4726 100644
--- a/ocamltest/tsl_semantics.ml
+++ b/ocamltest/tsl_semantics.ml
@@ -107,6 +107,17 @@ let no_such_test_or_action t =
Printf.eprintf "%s\nNo such test or action: %s\n%!" locstr t.node;
exit 2
+let lookup_test located_name =
+ let name = located_name.node in
+ match Tests.lookup name with
+ | None ->
+ begin match Actions.lookup name with
+ | None -> no_such_test_or_action located_name
+ | Some action ->
+ Tests.test_of_action action
+ end
+ | Some test -> test
+
let test_trees_of_tsl_block tsl_block =
let rec env_of_lines = function
| [] -> ([], [])
@@ -127,16 +138,8 @@ let test_trees_of_tsl_block tsl_block =
else
let (env, rem) = env_of_lines remaining_lines in
let (trees, rem) = trees_of_lines (depth+1) rem in
- match Tests.lookup name with
- | None ->
- begin match Actions.lookup name with
- | None -> no_such_test_or_action located_name
- | Some action ->
- let test = Tests.test_of_action action in
- (Some (Node (env, test, env_modifiers, trees)), rem)
- end
- | Some test ->
- (Some (Node (env, test, env_modifiers, trees)), rem)
+ let test = lookup_test located_name in
+ (Some (Node (env, test, env_modifiers, trees)), rem)
end
end
and trees_of_lines depth lines =
@@ -175,3 +178,93 @@ let actions_in_tests tests =
let f test action_set =
Actions.ActionSet.union (actions_in_test test) action_set in
Tests.TestSet.fold f tests Actions.ActionSet.empty
+
+let rec split_env l =
+ match l with
+ | Environment_statement env :: tl ->
+ let (env2, rest) = split_env tl in (env :: env2, rest)
+ | _ -> ([], l)
+
+let rec test_trees_of_tsl_ast (Ast (seq, subs)) =
+ let (env, rest) = split_env seq in
+ let trees =
+ match rest with
+ | [] -> List.map test_tree_of_tsl_ast subs
+ | [ Test (_, name, mods) ] ->
+ [Node ([], lookup_test name, mods, List.map test_tree_of_tsl_ast subs)]
+ | Test (_, name, mods) :: seq1 ->
+ let sub = test_tree_of_tsl_ast (Ast (seq1, subs)) in
+ [Node ([], lookup_test name, mods, [sub])]
+ | Environment_statement _ :: _ -> assert false
+ in (env, trees)
+
+and test_tree_of_tsl_ast ast =
+ match test_trees_of_tsl_ast ast with
+ | (env, [Node (env1, t, m, s)]) -> Node (env @ env1, t, m, s)
+ | (env, trees) -> Node (env, Tests.null, [], trees)
+
+let rec ast_of_tree (Node (env, test, mods, subs)) =
+ let tst = [Test (0, Tsl_ast.make_identifier test.Tests.test_name, mods)] in
+ ast_of_tree_aux env tst subs
+
+and ast_of_tree_aux env tst subs =
+ let env = List.map (fun x -> Environment_statement x) env in
+ match List.map ast_of_tree subs with
+ | [ Ast (stmts, subs) ] -> Ast (env @ tst @ stmts, subs)
+ | asts -> Ast (env @ tst, asts)
+
+let tsl_ast_of_test_trees (env, trees) = ast_of_tree_aux env [] trees
+
+open Printf
+
+let print_tsl_ast ~compact oc ast =
+ let pr fmt (*args*) = fprintf oc fmt (*args*) in
+
+ let rec print_ast indent (Ast (stmts, subs)) =
+ print_statements indent stmts;
+ print_forest indent subs;
+
+ and print_sub indent ast =
+ pr "{\n";
+ print_ast (indent ^ " ") ast;
+ pr "%s}" indent;
+
+ and print_statements indent stmts =
+ match stmts with
+ | Test (_, name, mods) :: tl ->
+ pr "%s%s" indent name.node;
+ begin match mods with
+ | m :: tl ->
+ pr " with %s" m.node;
+ List.iter (fun m -> pr ", %s" m.node) tl;
+ | [] -> ()
+ end;
+ pr ";\n";
+ if tl <> [] && not compact then pr "\n";
+ print_statements indent tl;
+ | Environment_statement env :: tl->
+ print_env indent env;
+ print_statements indent tl;
+ | [] -> ()
+
+ and print_forest indent subs =
+ if subs <> [] then begin
+ pr "%s" indent;
+ List.iter (print_sub indent) subs;
+ pr "\n";
+ end
+
+ and print_env indent e =
+ match e.node with
+ | Assignment (set, variable, value) ->
+ pr "%s" indent;
+ if set then pr "set ";
+ pr "%s = \"%s\";\n" variable.node value.node;
+ | Append (variable, value) ->
+ pr "%s%s += \"%s\";\n" indent variable.node value.node;
+ | Include ls ->
+ pr "%sinclude %s;\n" indent ls.node;
+ | Unset ls ->
+ pr "%sunset %s;\n" indent ls.node;
+ in
+ print_ast " " ast;
diff --git a/ocamltest/tsl_semantics.mli b/ocamltest/tsl_semantics.mli
index cbb017e681..385692f0a7 100644
--- a/ocamltest/tsl_semantics.mli
+++ b/ocamltest/tsl_semantics.mli
@@ -35,9 +35,17 @@ type test_tree =
(test_tree list)
val test_trees_of_tsl_block :
- Tsl_ast.tsl_block ->
+ Tsl_ast.tsl_item list ->
Tsl_ast.environment_statement located list * test_tree list
+val test_trees_of_tsl_ast :
+ Tsl_ast.t ->
+ Tsl_ast.environment_statement located list * test_tree list
+
+val tsl_ast_of_test_trees :
+ Tsl_ast.environment_statement located list * test_tree list ->
+ Tsl_ast.t
+
val tests_in_tree : test_tree -> Tests.TestSet.t
val tests_in_trees : test_tree list -> Tests.TestSet.t
@@ -45,3 +53,6 @@ val tests_in_trees : test_tree list -> Tests.TestSet.t
val actions_in_test : Tests.t -> Actions.ActionSet.t
val actions_in_tests : Tests.TestSet.t -> Actions.ActionSet.t
+
+
+val print_tsl_ast : compact:bool -> out_channel -> Tsl_ast.t -> unit
diff --git a/otherlibs/dynlink/byte/dynlink.ml b/otherlibs/dynlink/byte/dynlink.ml
index 2a520596a3..6a6ae1a907 100644
--- a/otherlibs/dynlink/byte/dynlink.ml
+++ b/otherlibs/dynlink/byte/dynlink.ml
@@ -151,10 +151,13 @@ module Bytecode = struct
(Printexc.get_raw_backtrace ())
let load ~filename:file_name ~priv:_ =
- let ic = open_in_bin file_name in
- let file_digest = Digest.channel ic (-1) in
- seek_in ic 0;
+ let ic =
+ try open_in_bin file_name
+ with exc -> raise (DT.Error (Cannot_open_dynamic_library exc))
+ in
try
+ let file_digest = Digest.channel ic (-1) in
+ seek_in ic 0;
let buffer =
try really_input_string ic (String.length Config.cmo_magic_number)
with End_of_file -> raise (DT.Error (Not_a_bytecode_file file_name))
@@ -170,19 +173,23 @@ module Bytecode = struct
let toc_pos = input_binary_int ic in (* Go to table of contents *)
seek_in ic toc_pos;
let lib = (input_value ic : Cmo_format.library) in
- begin try
- Dll.open_dlls Dll.For_execution
- (List.map Dll.extract_dll_name lib.lib_dllibs)
- with exn ->
- raise (DT.Error (Cannot_open_dynamic_library exn))
- end;
+ Dll.open_dlls Dll.For_execution
+ (List.map Dll.extract_dll_name lib.lib_dllibs);
handle, lib.lib_units
end else begin
raise (DT.Error (Not_a_bytecode_file file_name))
end
- with exc ->
- close_in ic;
+ with
+ (* Wrap all exceptions into Cannot_open_dynamic_library errors except
+ Not_a_bytecode_file ones, as they bring all the necessary information
+ already
+ Use close_in_noerr since the exception we really want to raise is exc *)
+ | DT.Error _ as exc ->
+ close_in_noerr ic;
raise exc
+ | exc ->
+ close_in_noerr ic;
+ raise (DT.Error (Cannot_open_dynamic_library exc))
let unsafe_get_global_value ~bytecode_or_asm_symbol =
let id = Ident.create_persistent bytecode_or_asm_symbol in
diff --git a/otherlibs/dynlink/dynlink_common.ml b/otherlibs/dynlink/dynlink_common.ml
index 6f4d8c0b4b..72e9e67303 100644
--- a/otherlibs/dynlink/dynlink_common.ml
+++ b/otherlibs/dynlink/dynlink_common.ml
@@ -346,30 +346,25 @@ module Make (P : Dynlink_platform_intf.S) = struct
let load priv filename =
init ();
let filename = dll_filename filename in
- match P.load ~filename ~priv with
- | exception exn -> raise (DT.Error (Cannot_open_dynamic_library exn))
- | handle, units ->
- try
- with_lock (fun ({unsafe_allowed; _ } as global) ->
- global.state <- check filename units global.state
- ~unsafe_allowed
- ~priv;
- P.run_shared_startup handle;
- );
- List.iter
- (fun unit_header ->
- (* Linked modules might call Dynlink themselves,
- we need to release the lock *)
- P.run Global.lock handle ~unit_header ~priv;
- if not priv then with_lock (fun global ->
- global.state <- set_loaded filename unit_header global.state
- )
- )
- units;
- P.finish handle
- with exn ->
- P.finish handle;
- raise exn
+ let handle, units = P.load ~filename ~priv in
+ Fun.protect ~finally:(fun () -> P.finish handle) (fun () ->
+ with_lock (fun ({unsafe_allowed; _ } as global) ->
+ global.state <- check filename units global.state
+ ~unsafe_allowed
+ ~priv;
+ P.run_shared_startup handle;
+ );
+ List.iter
+ (fun unit_header ->
+ (* Linked modules might call Dynlink themselves,
+ we need to release the lock *)
+ P.run Global.lock handle ~unit_header ~priv;
+ if not priv then with_lock (fun global ->
+ global.state <- set_loaded filename unit_header global.state
+ )
+ )
+ units
+ )
let loadfile filename = load false filename
let loadfile_private filename = load true filename
diff --git a/otherlibs/dynlink/dynlink_types.ml b/otherlibs/dynlink/dynlink_types.ml
index ebfd2d1cde..90e905dacd 100644
--- a/otherlibs/dynlink/dynlink_types.ml
+++ b/otherlibs/dynlink/dynlink_types.ml
@@ -101,7 +101,7 @@ let () =
| Corrupted_interface s ->
Printf.sprintf "Corrupted_interface %S" s
| Cannot_open_dynamic_library exn ->
- Printf.sprintf "Cannot_open_dll %S" (Printexc.to_string exn)
+ Printf.sprintf "Cannot_open_dll %s" (Printexc.to_string exn)
| Inconsistent_implementation s ->
Printf.sprintf "Inconsistent_implementation %S" s
| Library's_module_initializers_failed exn ->
diff --git a/otherlibs/dynlink/native/dynlink.ml b/otherlibs/dynlink/native/dynlink.ml
index 7a46a07ee3..39f71522fa 100644
--- a/otherlibs/dynlink/native/dynlink.ml
+++ b/otherlibs/dynlink/native/dynlink.ml
@@ -102,8 +102,10 @@ module Native = struct
"_shared_startup" ::
List.concat_map Unit_header.defined_symbols header.dynu_units
in
- ndl_register handle (Array.of_list syms);
- handle, header.dynu_units
+ try
+ ndl_register handle (Array.of_list syms);
+ handle, header.dynu_units
+ with exn -> raise (DT.Error (Cannot_open_dynamic_library exn))
let unsafe_get_global_value ~bytecode_or_asm_symbol =
match ndl_loadsym bytecode_or_asm_symbol with
diff --git a/otherlibs/runtime_events/runtime_events_consumer.c b/otherlibs/runtime_events/runtime_events_consumer.c
index 1f546f4c52..1e5f229fd1 100644
--- a/otherlibs/runtime_events/runtime_events_consumer.c
+++ b/otherlibs/runtime_events/runtime_events_consumer.c
@@ -23,6 +23,7 @@
#include "caml/misc.h"
#include "caml/mlvalues.h"
#include "caml/osdeps.h"
+#include "caml/platform.h"
#include <fcntl.h>
#include <stdatomic.h>
@@ -391,10 +392,8 @@ caml_runtime_events_read_poll(struct caml_runtime_events_cursor *cursor,
do {
uint64_t buf[RUNTIME_EVENTS_MAX_MSG_LENGTH];
uint64_t ring_mask, header, msg_length;
- ring_head = atomic_load_explicit(&runtime_events_buffer_header->ring_head,
- memory_order_acquire);
- ring_tail = atomic_load_explicit(&runtime_events_buffer_header->ring_tail,
- memory_order_acquire);
+ ring_head = atomic_load_acquire(&runtime_events_buffer_header->ring_head);
+ ring_tail = atomic_load_acquire(&runtime_events_buffer_header->ring_tail);
if (ring_head > cursor->current_positions[domain_num]) {
if (cursor->lost_events) {
@@ -427,8 +426,7 @@ caml_runtime_events_read_poll(struct caml_runtime_events_cursor *cursor,
atomic_thread_fence(memory_order_seq_cst);
- ring_head = atomic_load_explicit(&runtime_events_buffer_header->ring_head,
- memory_order_acquire);
+ ring_head = atomic_load_acquire(&runtime_events_buffer_header->ring_head);
/* Check the message we've read hasn't been overwritten by the writer */
if (ring_head > cursor->current_positions[domain_num]) {
@@ -1219,5 +1217,5 @@ CAMLprim value caml_ml_runtime_events_read_poll(value wrapper,
}
}
- CAMLreturn(Int_val(events_consumed));
+ CAMLreturn(Val_int(events_consumed));
};
diff --git a/otherlibs/systhreads/st_pthreads.h b/otherlibs/systhreads/st_pthreads.h
index 5d29df67d1..bd8839b6de 100644
--- a/otherlibs/systhreads/st_pthreads.h
+++ b/otherlibs/systhreads/st_pthreads.h
@@ -37,7 +37,7 @@ static atomic_uintnat tick_thread_stop[Max_domains];
static int st_initialize(void)
{
- atomic_store_rel(&Tick_thread_stop, 0);
+ atomic_store_release(&Tick_thread_stop, 0);
return 0;
}
@@ -112,14 +112,14 @@ static void st_masterlock_init(st_masterlock * m)
m->init = 1;
}
m->busy = 1;
- atomic_store_rel(&m->waiters, 0);
+ atomic_store_release(&m->waiters, 0);
return;
};
static uintnat st_masterlock_waiters(st_masterlock * m)
{
- return atomic_load_acq(&m->waiters);
+ return atomic_load_acquire(&m->waiters);
}
static void st_bt_lock_acquire(st_masterlock *m) {
@@ -295,10 +295,10 @@ static void * caml_thread_tick(void * arg)
caml_init_domain_self(*domain_id);
caml_domain_state *domain = Caml_state;
- while(! atomic_load_acq(&Tick_thread_stop)) {
+ while(! atomic_load_acquire(&Tick_thread_stop)) {
st_msleep(Thread_timeout);
- atomic_store_rel(&domain->requested_external_interrupt, 1);
+ atomic_store_release(&domain->requested_external_interrupt, 1);
caml_interrupt_self();
}
return NULL;
diff --git a/otherlibs/systhreads/st_stubs.c b/otherlibs/systhreads/st_stubs.c
index 389a343b2d..09d56120a7 100644
--- a/otherlibs/systhreads/st_stubs.c
+++ b/otherlibs/systhreads/st_stubs.c
@@ -488,9 +488,9 @@ CAMLprim value caml_thread_initialize(value unit)
CAMLprim value caml_thread_cleanup(value unit)
{
if (Tick_thread_running){
- atomic_store_rel(&Tick_thread_stop, 1);
+ atomic_store_release(&Tick_thread_stop, 1);
st_thread_join(Tick_thread_id);
- atomic_store_rel(&Tick_thread_stop, 0);
+ atomic_store_release(&Tick_thread_stop, 0);
Tick_thread_running = 0;
}
diff --git a/otherlibs/unix/symlink_win32.c b/otherlibs/unix/symlink_win32.c
index 3a1d6a1b8b..aac6545b31 100644
--- a/otherlibs/unix/symlink_win32.c
+++ b/otherlibs/unix/symlink_win32.c
@@ -26,6 +26,7 @@
#include <caml/fail.h>
#include <caml/signals.h>
#include <caml/osdeps.h>
+#include <caml/platform.h>
#include "unixsupport.h"
#ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
@@ -78,13 +79,11 @@ CAMLprim value caml_unix_symlink(value to_dir, value osource, value odest)
caml_unix_check_path(osource, "symlink");
caml_unix_check_path(odest, "symlink");
- additional_flags = atomic_load_explicit(&additional_symlink_flags,
- memory_order_relaxed);
+ additional_flags = atomic_load_relaxed(&additional_symlink_flags);
if (additional_flags == -1) {
additional_flags = IsDeveloperModeEnabled() ?
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE : 0;
- atomic_store_explicit(&additional_symlink_flags, additional_flags,
- memory_order_relaxed);
+ atomic_store_relaxed(&additional_symlink_flags, additional_flags);
}
flags =
diff --git a/otherlibs/unix/unix.mli b/otherlibs/unix/unix.mli
index 3cdb1c701a..e416d5c53b 100644
--- a/otherlibs/unix/unix.mli
+++ b/otherlibs/unix/unix.mli
@@ -921,7 +921,7 @@ val open_process_full :
val open_process_args : string -> string array -> in_channel * out_channel
(** [open_process_args prog args] runs the program [prog] with arguments
[args]. Note that the first argument is by convention the filename of
- the program being executed, just like {!Sys.argv.(0)}. The new process
+ the program being executed, just like [Sys.argv.(0)]. The new process
executes concurrently with the current process. The standard input and
output of the new process are redirected to pipes, which can be
respectively read and written via the returned channels. The input
diff --git a/otherlibs/unix/unixLabels.mli b/otherlibs/unix/unixLabels.mli
index a92ffc56e0..3ad2c778ce 100644
--- a/otherlibs/unix/unixLabels.mli
+++ b/otherlibs/unix/unixLabels.mli
@@ -921,7 +921,7 @@ val open_process_full :
val open_process_args : string -> string array -> in_channel * out_channel
(** [open_process_args prog args] runs the program [prog] with arguments
[args]. Note that the first argument is by convention the filename of
- the program being executed, just like {!Sys.argv.(0)}. The new process
+ the program being executed, just like [Sys.argv.(0)]. The new process
executes concurrently with the current process. The standard input and
output of the new process are redirected to pipes, which can be
respectively read and written via the returned channels. The input
diff --git a/otherlibs/unix/unixsupport_unix.c b/otherlibs/unix/unixsupport_unix.c
index 4a206072a0..449af8b5c2 100644
--- a/otherlibs/unix/unixsupport_unix.c
+++ b/otherlibs/unix/unixsupport_unix.c
@@ -13,11 +13,14 @@
/* */
/**************************************************************************/
+#define CAML_INTERNALS
+
#include <caml/mlvalues.h>
#include <caml/alloc.h>
#include <caml/callback.h>
#include <caml/memory.h>
#include <caml/fail.h>
+#include <caml/platform.h>
#include "unixsupport.h"
#include "cst2constr.h"
#include <errno.h>
@@ -293,7 +296,7 @@ void caml_unix_error(int errcode, const char *cmdname, value cmdarg)
value res;
const value * exn;
- exn = atomic_load_explicit(&caml_unix_error_exn, memory_order_acquire);
+ exn = atomic_load_acquire(&caml_unix_error_exn);
if (exn == NULL) {
exn = caml_named_value("Unix.Unix_error");
if (exn == NULL)
diff --git a/otherlibs/unix/unixsupport_win32.c b/otherlibs/unix/unixsupport_win32.c
index f9e85a4586..cb5eb35df7 100644
--- a/otherlibs/unix/unixsupport_win32.c
+++ b/otherlibs/unix/unixsupport_win32.c
@@ -13,6 +13,8 @@
/* */
/**************************************************************************/
+#define CAML_INTERNALS
+
#include <stddef.h>
#include <caml/mlvalues.h>
#include <caml/callback.h>
@@ -20,6 +22,7 @@
#include <caml/memory.h>
#include <caml/fail.h>
#include <caml/custom.h>
+#include <caml/platform.h>
#include "unixsupport.h"
#include "cst2constr.h"
#include <errno.h>
@@ -297,7 +300,7 @@ void caml_unix_error(int errcode, const char *cmdname, value cmdarg)
value res;
const value * exn;
- exn = atomic_load_explicit(&caml_unix_error_exn, memory_order_acquire);
+ exn = atomic_load_acquire(&caml_unix_error_exn);
if (exn == NULL) {
exn = caml_named_value("Unix.Unix_error");
if (exn == NULL)
diff --git a/parsing/ast_helper.ml b/parsing/ast_helper.ml
index 0dc64eb5f6..8b676b2239 100644
--- a/parsing/ast_helper.ml
+++ b/parsing/ast_helper.ml
@@ -483,10 +483,11 @@ end
module Vb = struct
let mk ?(loc = !default_loc) ?(attrs = []) ?(docs = empty_docs)
- ?(text = []) pat expr =
+ ?(text = []) ?typ pat expr =
{
pvb_pat = pat;
pvb_expr = expr;
+ pvb_constraint=typ;
pvb_attributes =
add_text_attrs text (add_docs_attrs docs attrs);
pvb_loc = loc;
diff --git a/parsing/ast_helper.mli b/parsing/ast_helper.mli
index f2ad365faf..e10ac8d153 100644
--- a/parsing/ast_helper.mli
+++ b/parsing/ast_helper.mli
@@ -369,7 +369,7 @@ module Incl:
module Vb:
sig
val mk: ?loc: loc -> ?attrs:attrs -> ?docs:docs -> ?text:text ->
- pattern -> expression -> value_binding
+ ?typ:poly_constraint -> pattern -> expression -> value_binding
end
diff --git a/parsing/ast_iterator.ml b/parsing/ast_iterator.ml
index 8371bb10bf..0c6d606a69 100644
--- a/parsing/ast_iterator.ml
+++ b/parsing/ast_iterator.ml
@@ -635,9 +635,13 @@ let default_iterator =
value_binding =
- (fun this {pvb_pat; pvb_expr; pvb_attributes; pvb_loc} ->
+ (fun this {pvb_pat; pvb_expr; pvb_attributes; pvb_loc; pvb_constraint} ->
this.pat this pvb_pat;
this.expr this pvb_expr;
+ Option.iter (fun ct ->
+ List.iter (iter_loc this) ct.locally_abstract_univars;
+ this.typ this ct.Parsetree.typ
+ ) pvb_constraint;
this.location this pvb_loc;
this.attributes this pvb_attributes
);
diff --git a/parsing/ast_mapper.ml b/parsing/ast_mapper.ml
index 3f1248f3c8..48b5975bad 100644
--- a/parsing/ast_mapper.ml
+++ b/parsing/ast_mapper.ml
@@ -693,10 +693,17 @@ let default_mapper =
value_binding =
- (fun this {pvb_pat; pvb_expr; pvb_attributes; pvb_loc} ->
+ (fun this {pvb_pat; pvb_expr; pvb_constraint; pvb_attributes; pvb_loc} ->
+ let map_ct (ct:Parsetree.poly_constraint) =
+ { Parsetree.typ = this.typ this ct.typ;
+ locally_abstract_univars=
+ List.map (map_loc this) ct.locally_abstract_univars;
+ }
+ in
Vb.mk
(this.pat this pvb_pat)
(this.expr this pvb_expr)
+ ?typ:(Option.map map_ct pvb_constraint)
~loc:(this.location this pvb_loc)
~attrs:(this.attributes this pvb_attributes)
);
diff --git a/parsing/depend.ml b/parsing/depend.ml
index a07cb1dce7..3b99854898 100644
--- a/parsing/depend.ml
+++ b/parsing/depend.ml
@@ -282,7 +282,11 @@ and add_case bv {pc_lhs; pc_guard; pc_rhs} =
and add_bindings recf bv pel =
let bv' = List.fold_left (fun bv x -> add_pattern bv x.pvb_pat) bv pel in
let bv = if recf = Recursive then bv' else bv in
- List.iter (fun x -> add_expr bv x.pvb_expr) pel;
+ let add_one_binding { pvb_pat= _ ; pvb_loc= _ ; pvb_constraint; pvb_expr } =
+ add_expr bv pvb_expr;
+ Option.iter (fun ct -> add_type bv ct.typ) pvb_constraint
+ in
+ List.iter add_one_binding pel;
bv'
and add_binding_op bv bv' pbop =
diff --git a/parsing/location.ml b/parsing/location.ml
index a336e89dcd..980ad10306 100644
--- a/parsing/location.ml
+++ b/parsing/location.ml
@@ -157,12 +157,39 @@ let rewrite_absolute_path path =
| None -> path
| Some map -> Build_path_prefix_map.rewrite map path
+let rewrite_find_first_existing path =
+ match Misc.get_build_path_prefix_map () with
+ | None ->
+ if Sys.file_exists path then Some path
+ else None
+ | Some prefix_map ->
+ match Build_path_prefix_map.rewrite_all prefix_map path with
+ | [] ->
+ if Sys.file_exists path then Some path
+ else None
+ | matches ->
+ Some (List.find Sys.file_exists matches)
+
+let rewrite_find_all_existing_dirs path =
+ let ok path = Sys.file_exists path && Sys.is_directory path in
+ match Misc.get_build_path_prefix_map () with
+ | None ->
+ if ok path then [path]
+ else []
+ | Some prefix_map ->
+ match Build_path_prefix_map.rewrite_all prefix_map path with
+ | [] ->
+ if ok path then [path]
+ else []
+ | matches ->
+ match (List.filter ok matches) with
+ | [] -> raise Not_found
+ | results -> results
+
let absolute_path s = (* This function could go into Filename *)
let open Filename in
- let s =
- if not (is_relative s) then s
- else (rewrite_absolute_path (concat (Sys.getcwd ()) s))
- in
+ let s = if (is_relative s) then (concat (Sys.getcwd ()) s) else s in
+ let s = rewrite_absolute_path s in
(* Now simplify . and .. components *)
let rec aux s =
let base = basename s in
diff --git a/parsing/location.mli b/parsing/location.mli
index 4d3de8d2ec..85bae4ff76 100644
--- a/parsing/location.mli
+++ b/parsing/location.mli
@@ -92,14 +92,78 @@ val separate_new_message: formatter -> unit
val reset: unit -> unit
-(** {1 Printing locations} *)
+(** {1 Rewriting path } *)
val rewrite_absolute_path: string -> string
- (** rewrite absolute path to honor the BUILD_PATH_PREFIX_MAP
- variable (https://reproducible-builds.org/specs/build-path-prefix-map/)
- if it is set. *)
+(** [rewrite_absolute_path path] rewrites [path] to honor the
+ BUILD_PATH_PREFIX_MAP variable
+ if it is set. It does not check whether [path] is absolute or not.
+ The result is as follows:
+ - If BUILD_PATH_PREFIX_MAP is not set, just return [path].
+ - otherwise, rewrite using the mapping (and if there are no
+ matching prefixes that will just return [path]).
+
+ See
+ {{: https://reproducible-builds.org/specs/build-path-prefix-map/ }
+ the BUILD_PATH_PREFIX_MAP spec}
+ *)
+
+val rewrite_find_first_existing: string -> string option
+(** [rewrite_find_first_existing path] uses a BUILD_PATH_PREFIX_MAP mapping
+ and tries to find a source in mapping
+ that maps to a result that exists in the file system.
+ There are the following return values:
+ - [None], means either
+ {ul {- BUILD_PATH_PREFIX_MAP is not set and [path] does not exists, or}
+ {- no source prefixes of [path] in the mapping were found,}}
+ - [Some target], means [target] exists and either
+ {ul {- BUILD_PATH_PREFIX_MAP is not set and [target] = [path], or}
+ {- [target] is the first file (in priority
+ order) that [path] mapped to that exists in the file system.}}
+ - [Not_found] raised, means some source prefixes in the map
+ were found that matched [path], but none of them existed
+ in the file system. The caller should catch this and issue
+ an appropriate error message.
+
+ See
+ {{: https://reproducible-builds.org/specs/build-path-prefix-map/ }
+ the BUILD_PATH_PREFIX_MAP spec}
+ *)
+
+val rewrite_find_all_existing_dirs: string -> string list
+(** [rewrite_find_all_existing_dirs dir] accumulates a list of existing
+ directories, [dirs], that are the result of mapping a potentially
+ abstract directory, [dir], over all the mapping pairs in the
+ BUILD_PATH_PREFIX_MAP environment variable, if any. The list [dirs]
+ will be in priority order (head as highest priority).
+
+ The possible results are:
+ - [[]], means either
+ {ul {- BUILD_PATH_PREFIX_MAP is not set and [dir] is not an existing
+ directory, or}
+ {- if set, then there were no matching prefixes of [dir].}}
+ - [Some dirs], means dirs are the directories found. Either
+ {ul {- BUILD_PATH_PREFIX_MAP is not set and [dirs = [dir]], or}
+ {- it was set and [dirs] are the mapped existing directories.}}
+ - Not_found raised, means some source prefixes in the map
+ were found that matched [dir], but none of mapping results
+ were existing directories (possibly due to misconfiguration).
+ The caller should catch this and issue an appropriate error
+ message.
+
+ See
+ {{: https://reproducible-builds.org/specs/build-path-prefix-map/ }
+ the BUILD_PATH_PREFIX_MAP spec}
+ *)
val absolute_path: string -> string
+ (** [absolute_path path] first makes an absolute path, [s] from [path],
+ prepending the current working directory if [path] was relative.
+ Then [s] is rewritten using [rewrite_absolute_path].
+ Finally the result is normalized by eliminating instances of
+ ['.'] or ['..']. *)
+
+(** {1 Printing locations} *)
val show_filename: string -> string
(** In -absname mode, return the absolute path for this filename.
diff --git a/parsing/parser.mly b/parsing/parser.mly
index 2c39996263..9e22f64631 100644
--- a/parsing/parser.mly
+++ b/parsing/parser.mly
@@ -506,6 +506,7 @@ let extra_rhs_core_type ct ~pos =
type let_binding =
{ lb_pattern: pattern;
lb_expression: expression;
+ lb_constraint: poly_constraint option;
lb_is_pun: bool;
lb_attributes: attributes;
lb_docs: docs Lazy.t;
@@ -517,10 +518,11 @@ type let_bindings =
lbs_rec: rec_flag;
lbs_extension: string Asttypes.loc option }
-let mklb first ~loc (p, e, is_pun) attrs =
+let mklb first ~loc (p, e, typ, is_pun) attrs =
{
lb_pattern = p;
lb_expression = e;
+ lb_constraint=typ;
lb_is_pun = is_pun;
lb_attributes = attrs;
lb_docs = symbol_docs_lazy loc;
@@ -548,7 +550,7 @@ let val_of_let_bindings ~loc lbs =
Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
~docs:(Lazy.force lb.lb_docs)
~text:(Lazy.force lb.lb_text)
- lb.lb_pattern lb.lb_expression)
+ ?typ:lb.lb_constraint lb.lb_pattern lb.lb_expression)
lbs.lbs_bindings
in
let str = mkstr ~loc (Pstr_value(lbs.lbs_rec, List.rev bindings)) in
@@ -561,7 +563,7 @@ let expr_of_let_bindings ~loc lbs body =
List.map
(fun lb ->
Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
- lb.lb_pattern lb.lb_expression)
+ ?typ:lb.lb_constraint lb.lb_pattern lb.lb_expression)
lbs.lbs_bindings
in
mkexp_attrs ~loc (Pexp_let(lbs.lbs_rec, List.rev bindings, body))
@@ -572,7 +574,7 @@ let class_of_let_bindings ~loc lbs body =
List.map
(fun lb ->
Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
- lb.lb_pattern lb.lb_expression)
+ ?typ:lb.lb_constraint lb.lb_pattern lb.lb_expression)
lbs.lbs_bindings
in
(* Our use of let_bindings(no_ext) guarantees the following: *)
@@ -2519,7 +2521,7 @@ labeled_simple_expr:
;
let_binding_body_no_punning:
let_ident strict_binding
- { ($1, $2) }
+ { ($1, $2, None) }
| let_ident type_constraint EQUAL seq_expr
{ let v = $1 in (* PR#7344 *)
let t =
@@ -2528,33 +2530,26 @@ let_binding_body_no_punning:
| _, Some t -> t
| _ -> assert false
in
- let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in
- let typ = ghtyp ~loc (Ptyp_poly([],t)) in
- let patloc = ($startpos($1), $endpos($2)) in
- (ghpat ~loc:patloc (Ppat_constraint(v, typ)),
- mkexp_constraint ~loc:$sloc $4 $2) }
+ (v, $4, Some {locally_abstract_univars=[]; typ=t})
+ }
| let_ident COLON poly(core_type) EQUAL seq_expr
- { let patloc = ($startpos($1), $endpos($3)) in
- (ghpat ~loc:patloc
- (Ppat_constraint($1, ghtyp ~loc:($loc($3)) $3)),
- $5) }
+ {
+ let t = ghtyp ~loc:($loc($3)) $3 in
+ ($1, $5, Some { locally_abstract_univars = []; typ = t})
+ }
| let_ident COLON TYPE lident_list DOT core_type EQUAL seq_expr
- { let exp, poly =
- wrap_type_annotation ~loc:$sloc $4 $6 $8 in
- let loc = ($startpos($1), $endpos($6)) in
- (ghpat ~loc (Ppat_constraint($1, poly)), exp) }
+ { ($1, $8, Some { locally_abstract_univars = $4; typ = $6}) }
| pattern_no_exn EQUAL seq_expr
- { ($1, $3) }
+ { ($1, $3, None) }
| simple_pattern_not_ident COLON core_type EQUAL seq_expr
- { let loc = ($startpos($1), $endpos($3)) in
- (ghpat ~loc (Ppat_constraint($1, $3)), $5) }
+ { ($1, $5, Some { locally_abstract_univars = []; typ=$3}) }
;
let_binding_body:
| let_binding_body_no_punning
- { let p,e = $1 in (p,e,false) }
+ { let p,e,c = $1 in (p,e,c,false) }
/* BEGIN AVOID */
| val_ident %prec below_HASH
- { (mkpatvar ~loc:$loc $1, mkexpvar ~loc:$loc $1, true) }
+ { (mkpatvar ~loc:$loc $1, mkexpvar ~loc:$loc $1, None, true) }
(* The production that allows puns is marked so that [make list-parse-errors]
does not attempt to exploit it. That would be problematic because it
would then generate bindings such as [let x], which are rejected by the
diff --git a/parsing/parsetree.mli b/parsing/parsetree.mli
index 80a796befd..99eff31adf 100644
--- a/parsing/parsetree.mli
+++ b/parsing/parsetree.mli
@@ -1005,13 +1005,22 @@ and structure_item_desc =
| Pstr_attribute of attribute (** [[\@\@\@id]] *)
| Pstr_extension of extension * attributes (** [[%%id]] *)
+and poly_constraint = {
+ locally_abstract_univars:string loc list;
+ typ:core_type
+}
+(** - [{locally_abstract_univars = [x1; ...; xN]; typ }] represents
+ [type x1 ... xN. typ]
+*)
+
and value_binding =
{
pvb_pat: pattern;
pvb_expr: expression;
+ pvb_constraint: poly_constraint option;
pvb_attributes: attributes;
pvb_loc: Location.t;
- }
+ }(** [let pat : type_constraint = exp] *)
and module_binding =
{
diff --git a/parsing/pprintast.ml b/parsing/pprintast.ml
index 6154911d47..9192295381 100644
--- a/parsing/pprintast.ml
+++ b/parsing/pprintast.ml
@@ -26,7 +26,6 @@ open Format
open Location
open Longident
open Parsetree
-open Ast_helper
let prefix_symbols = [ '!'; '?'; '~' ]
let infix_symbols = [ '='; '<'; '>'; '@'; '^'; '|'; '&'; '+'; '-'; '*'; '/';
@@ -967,6 +966,7 @@ and class_field ctxt f x =
ppat_loc_stack=[];
ppat_attributes=[]};
pvb_expr=e;
+ pvb_constraint=None;
pvb_attributes=[];
pvb_loc=Location.none;
}
@@ -1245,7 +1245,7 @@ and payload ctxt f = function
pp f " when "; expression ctxt f e
(* transform [f = fun g h -> ..] to [f g h = ... ] could be improved *)
-and binding ctxt f {pvb_pat=p; pvb_expr=x; _} =
+and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; _} =
(* .pvb_attributes have already been printed by the caller, #bindings *)
let rec pp_print_pexp_function f x =
if x.pexp_attributes <> [] then pp f "=@;%a" (expression ctxt) x
@@ -1260,62 +1260,17 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; _} =
pp f "(type@ %s)@ %a" str.txt pp_print_pexp_function e
| _ -> pp f "=@;%a" (expression ctxt) x
in
- let tyvars_str tyvars = List.map (fun v -> v.txt) tyvars in
- let is_desugared_gadt p e =
- let gadt_pattern =
- match p with
- | {ppat_desc=Ppat_constraint({ppat_desc=Ppat_var _} as pat,
- {ptyp_desc=Ptyp_poly (args_tyvars, rt)});
- ppat_attributes=[]}->
- Some (pat, args_tyvars, rt)
- | _ -> None in
- let rec gadt_exp tyvars e =
- match e with
- | {pexp_desc=Pexp_newtype (tyvar, e); pexp_attributes=[]} ->
- gadt_exp (tyvar :: tyvars) e
- | {pexp_desc=Pexp_constraint (e, ct); pexp_attributes=[]} ->
- Some (List.rev tyvars, e, ct)
- | _ -> None in
- let gadt_exp = gadt_exp [] e in
- match gadt_pattern, gadt_exp with
- | Some (p, pt_tyvars, pt_ct), Some (e_tyvars, e, e_ct)
- when tyvars_str pt_tyvars = tyvars_str e_tyvars ->
- let ety = Typ.varify_constructors e_tyvars e_ct in
- if ety = pt_ct then
- Some (p, pt_tyvars, e_ct, e) else None
- | _ -> None in
- if x.pexp_attributes <> []
- then
- match p with
- | {ppat_desc=Ppat_constraint({ppat_desc=Ppat_var _; _} as pat,
- ({ptyp_desc=Ptyp_poly _; _} as typ));
- ppat_attributes=[]; _} ->
- pp f "%a@;: %a@;=@;%a"
- (simple_pattern ctxt) pat (core_type ctxt) typ (expression ctxt) x
- | _ ->
- pp f "%a@;=@;%a" (pattern ctxt) p (expression ctxt) x
- else
- match is_desugared_gadt p x with
- | Some (p, [], ct, e) ->
- pp f "%a@;: %a@;=@;%a"
- (simple_pattern ctxt) p (core_type ctxt) ct (expression ctxt) e
- | Some (p, tyvars, ct, e) -> begin
- pp f "%a@;: type@;%a.@;%a@;=@;%a"
- (simple_pattern ctxt) p (list pp_print_string ~sep:"@;")
- (tyvars_str tyvars) (core_type ctxt) ct (expression ctxt) e
- end
+ match ct with
+ | Some { locally_abstract_univars=[]; typ } ->
+ pp f "%a@;:@;%a@;=@;%a"
+ (simple_pattern ctxt) p (core_type ctxt) typ (expression ctxt) x
+ | Some { locally_abstract_univars; typ } ->
+ pp f "%a@;: type@;%a.@;%a@;=@;%a"
+ (simple_pattern ctxt) p (list pp_print_string ~sep:"@;")
+ (List.map (fun x -> x.txt) locally_abstract_univars)
+ (core_type ctxt) typ (expression ctxt) x
| None -> begin
match p with
- | {ppat_desc=Ppat_constraint(p ,ty);
- ppat_attributes=[]} -> (* special case for the first*)
- begin match ty with
- | {ptyp_desc=Ptyp_poly _; ptyp_attributes=[]} ->
- pp f "%a@;:@;%a@;=@;%a" (simple_pattern ctxt) p
- (core_type ctxt) ty (expression ctxt) x
- | _ ->
- pp f "(%a@;:@;%a)@;=@;%a" (simple_pattern ctxt) p
- (core_type ctxt) ty (expression ctxt) x
- end
| {ppat_desc=Ppat_var _; ppat_attributes=[]} ->
pp f "%a@ %a" (simple_pattern ctxt) p pp_print_pexp_function x
| _ ->
diff --git a/parsing/printast.ml b/parsing/printast.ml
index 3ee93a05ce..cfb3efeda5 100644
--- a/parsing/printast.ml
+++ b/parsing/printast.ml
@@ -909,8 +909,18 @@ and value_binding i ppf x =
line i ppf "<def>\n";
attributes (i+1) ppf x.pvb_attributes;
pattern (i+1) ppf x.pvb_pat;
+ Option.iter (poly_constraint (i+1) ppf) x.pvb_constraint;
expression (i+1) ppf x.pvb_expr
+and poly_constraint i ppf x =
+ let pp_sep ppf () = Format.fprintf ppf "@ "; in
+ let pp_newtypes = Format.pp_print_list fmt_string_loc ~pp_sep in
+ match x.locally_abstract_univars with
+ | [] -> core_type i ppf x.typ
+ | newtypes ->
+ line i ppf "<type> %a.\n" pp_newtypes newtypes;
+ core_type i ppf x.typ
+
and binding_op i ppf x =
line i ppf "<binding_op> %a %a"
fmt_string_loc x.pbop_op fmt_location x.pbop_loc;
diff --git a/runtime/afl.c b/runtime/afl.c
index 0d3c77d8c1..54a1f83d3f 100644
--- a/runtime/afl.c
+++ b/runtime/afl.c
@@ -13,26 +13,34 @@
/**************************************************************************/
/* Runtime support for afl-fuzz */
+
+#define CAML_INTERNALS
+
#include "caml/config.h"
+#include "caml/memory.h"
+#include "caml/mlvalues.h"
/* Values used by the instrumentation logic (see cmmgen.ml) */
-static unsigned char afl_area_initial[1 << 16];
-unsigned char* caml_afl_area_ptr = afl_area_initial;
+
+#define INITIAL_AFL_AREA_SIZE (1 << 16)
+unsigned char * caml_afl_area_ptr = NULL;
uintnat caml_afl_prev_loc;
#if !defined(HAS_SYS_SHM_H) || !defined(HAS_SHMAT)
-#include "caml/mlvalues.h"
-#include "caml/domain.h"
-
-CAMLprim value caml_reset_afl_instrumentation(value full)
+CAMLexport value caml_setup_afl(value unit)
{
+ /* AFL is not supported, but we still need to allocate space for the bitmap
+ (the instrumented OCaml code will write into it). */
+ if (caml_afl_area_ptr == NULL) {
+ caml_afl_area_ptr = caml_stat_alloc(INITIAL_AFL_AREA_SIZE);
+ memset(caml_afl_area_ptr, 0, INITIAL_AFL_AREA_SIZE);
+ }
return Val_unit;
}
-CAMLexport value caml_setup_afl(value unit)
+CAMLprim value caml_reset_afl_instrumentation(value full)
{
- /* AFL is not supported */
return Val_unit;
}
@@ -46,9 +54,8 @@ CAMLexport value caml_setup_afl(value unit)
#include <stdio.h>
#include <string.h>
-#define CAML_INTERNALS
+#include "caml/domain.h"
#include "caml/misc.h"
-#include "caml/mlvalues.h"
#include "caml/osdeps.h"
static int afl_initialised = 0;
@@ -87,7 +94,11 @@ CAMLexport value caml_setup_afl(value unit)
shm_id_str = caml_secure_getenv("__AFL_SHM_ID");
if (shm_id_str == NULL) {
- /* Not running under afl-fuzz, continue as normal */
+ /* Not running under afl-fuzz. Allocate space for the bitmap
+ (the instrumented OCaml code will write into it),
+ and continue as normal. */
+ caml_afl_area_ptr = caml_stat_alloc(INITIAL_AFL_AREA_SIZE);
+ memset(caml_afl_area_ptr, 0, INITIAL_AFL_AREA_SIZE);
return Val_unit;
}
@@ -164,8 +175,8 @@ CAMLexport value caml_setup_afl(value unit)
CAMLprim value caml_reset_afl_instrumentation(value full)
{
- if (full == Val_true) {
- memset(caml_afl_area_ptr, 0, sizeof(afl_area_initial));
+ if (full == Val_true && caml_afl_area_ptr != NULL) {
+ memset(caml_afl_area_ptr, 0, INITIAL_AFL_AREA_SIZE);
}
caml_afl_prev_loc = 0;
return Val_unit;
diff --git a/runtime/alloc.c b/runtime/alloc.c
index 49188fb69f..94ab9db598 100644
--- a/runtime/alloc.c
+++ b/runtime/alloc.c
@@ -316,7 +316,17 @@ CAMLprim value caml_update_dummy(value dummy, value newval)
tag = Tag_val (newval);
- if (tag == Double_array_tag){
+ if (Wosize_val(dummy) == 0) {
+ /* Size-0 blocks are statically-allocated atoms. We cannot
+ mutate them, but there is no need:
+ - All atoms used in the runtime to represent OCaml values
+ have tag 0 --- including empty flat float arrays, or other
+ types that use a non-0 tag for non-atom blocks.
+ - The dummy was already created with tag 0.
+ So doing nothing suffices. */
+ CAMLassert(Wosize_val(newval) == 0);
+ CAMLassert(Tag_val(dummy) == Tag_val(newval));
+ } else if (tag == Double_array_tag){
CAMLassert (Wosize_val(newval) == Wosize_val(dummy));
CAMLassert (Tag_val(dummy) != Infix_tag);
Unsafe_store_tag_val(dummy, Double_array_tag);
diff --git a/runtime/amd64.S b/runtime/amd64.S
index e9bb38b423..8dc9f81ec6 100644
--- a/runtime/amd64.S
+++ b/runtime/amd64.S
@@ -144,9 +144,17 @@
#define Handler_parent 24
/* struct c_stack_link */
+#if defined(SYS_mingw64) || defined (SYS_cygwin)
+#define Cstack_stack 32
+#define Cstack_sp 40
+#define Cstack_prev 48
+#define SIZEOF_C_STACK_LINK 56
+#else
#define Cstack_stack 0
#define Cstack_sp 8
#define Cstack_prev 16
+#define SIZEOF_C_STACK_LINK 24
+#endif
/******************************************************************************/
/* DWARF */
@@ -369,20 +377,7 @@
#endif
-#if defined(SYS_mingw64) || defined (SYS_cygwin)
- /* Calls from OCaml to C must reserve 32 bytes of extra stack space */
-# define PREPARE_FOR_C_CALL subq $32, %rsp; CFI_ADJUST(32)
-# define CLEANUP_AFTER_C_CALL addq $32, %rsp; CFI_ADJUST(-32)
- /* Stack probing mustn't be larger than the page size */
-# define STACK_PROBE_SIZE 4096
-#else
-# define PREPARE_FOR_C_CALL
-# define CLEANUP_AFTER_C_CALL
-# define STACK_PROBE_SIZE 4096
-#endif
-
-#define C_call(target) \
- PREPARE_FOR_C_CALL; CHECK_STACK_ALIGNMENT; call target; CLEANUP_AFTER_C_CALL
+#define C_call(target) CHECK_STACK_ALIGNMENT; call target
/******************************************************************************/
/* Registers holding arguments of C functions. */
@@ -635,6 +630,9 @@ CFI_STARTPROC
/* Make the alloc ptr available to the C code */
movq %r15, Caml_state(young_ptr)
/* Copy arguments from OCaml to C stack */
+#if defined(SYS_mingw64) || defined (SYS_cygwin)
+ addq $32, %rsp
+#endif
LBL(105):
subq $8, %r12
cmpq %r13,%r12
@@ -642,6 +640,9 @@ LBL(105):
push (%r12); CFI_ADJUST(8)
jmp LBL(105)
LBL(106):
+#if defined(SYS_mingw64) || defined (SYS_cygwin)
+ subq $32, %rsp
+#endif
/* Call the function (address in %rax) */
C_call (*%rax)
/* Pop arguments back off the stack */
@@ -680,7 +681,7 @@ LBL(caml_start_program):
/* Load young_ptr into %r15 */
movq Caml_state(young_ptr), %r15
/* Build struct c_stack_link on the C stack */
- subq $24 /* sizeof struct c_stack_link */, %rsp; CFI_ADJUST(24)
+ subq $SIZEOF_C_STACK_LINK, %rsp; CFI_ADJUST(SIZEOF_C_STACK_LINK)
movq $0, Cstack_stack(%rsp)
movq $0, Cstack_sp(%rsp)
movq Caml_state(c_stack), %r10
@@ -737,7 +738,7 @@ LBL(108):
/* Pop the struct c_stack_link */
movq Cstack_prev(%rsp), %r10
movq %r10, Caml_state(c_stack)
- addq $24, %rsp; CFI_ADJUST(-24)
+ addq $SIZEOF_C_STACK_LINK, %rsp; CFI_ADJUST(-SIZEOF_C_STACK_LINK)
/* Restore callee-save registers. */
POP_CALLEE_SAVE_REGS
/* Return to caller. */
diff --git a/runtime/array.c b/runtime/array.c
index 317153901e..5a850b4944 100644
--- a/runtime/array.c
+++ b/runtime/array.c
@@ -336,14 +336,12 @@ static void wo_memmove (volatile value* const dst,
if (dst < src) {
/* copy ascending */
for (i = 0; i < nvals; i++)
- atomic_store_explicit(&((atomic_value*)dst)[i], src[i],
- memory_order_release);
+ atomic_store_release(&((atomic_value*)dst)[i], src[i]);
} else {
/* copy descending */
for (i = nvals; i > 0; i--)
- atomic_store_explicit(&((atomic_value*)dst)[i-1], src[i-1],
- memory_order_release);
+ atomic_store_release(&((atomic_value*)dst)[i-1], src[i-1]);
}
}
}
diff --git a/runtime/callback.c b/runtime/callback.c
index e5df197023..68df624aab 100644
--- a/runtime/callback.c
+++ b/runtime/callback.c
@@ -27,6 +27,22 @@
#include "caml/mlvalues.h"
#include "caml/platform.h"
+/* A note about callbacks and GC. For best performance, a callback such as
+ [caml_callback_exn(value closure, value arg)]
+ should not extend the lifetime of the values [closure]
+ and [arg] any farther than necessary, that is, they should not be
+ registered as GC roots when the function call actually happens.
+
+ This mirrors the reachability/lifetime guarantees provided by
+ function calls in OCaml code, where the arguments can be collected
+ as soon as they are not used anymore within the function body.
+
+ The closure and its arguments may still have to be registered as
+ GC roots, typically across a call to [alloc_and_clear_stack_parent] below,
+ but registration should stop before the actual callback.
+
+ See #12121 for more discussion. */
+
/*
* These functions are to ensure effects are handled correctly inside
* callbacks. There are two aspects:
@@ -36,7 +52,8 @@
* is executing to ensure that the garbage collector follows the
* stack parent
*/
-Caml_inline value save_and_clear_stack_parent(caml_domain_state* domain_state) {
+Caml_inline value alloc_and_clear_stack_parent(caml_domain_state* domain_state)
+{
struct stack_info* parent_stack = Stack_parent(domain_state->current_stack);
value cont = caml_alloc_1(Cont_tag, Val_ptr(parent_stack));
Stack_parent(domain_state->current_stack) = NULL;
@@ -44,7 +61,8 @@ Caml_inline value save_and_clear_stack_parent(caml_domain_state* domain_state) {
}
Caml_inline void restore_stack_parent(caml_domain_state* domain_state,
- value cont) {
+ value cont)
+{
struct stack_info* parent_stack = Ptr_val(Op_val(cont)[0]);
CAMLassert(Stack_parent(domain_state->current_stack) == NULL);
Stack_parent(domain_state->current_stack) = parent_stack;
@@ -77,8 +95,7 @@ static void init_callback_code(void)
CAMLexport value caml_callbackN_exn(value closure, int narg, value args[])
{
- CAMLparam1(closure);
- CAMLxparamN(args, narg);
+ CAMLparam0(); /* no need to register closure and args as roots, see below */
CAMLlocal1(cont);
value res;
int i;
@@ -100,7 +117,10 @@ CAMLexport value caml_callbackN_exn(value closure, int narg, value args[])
domain_state->current_stack->sp[narg + 2] = Val_long(0); /* extra args */
domain_state->current_stack->sp[narg + 3] = closure;
- cont = save_and_clear_stack_parent(domain_state);
+ cont = alloc_and_clear_stack_parent(domain_state);
+ /* This can call the GC and invalidate the values [closure] and [args].
+ However, they are never used afterwards,
+ as they were copied into the root [domain_state->current_stack]. */
res = caml_interprete(callback_code, sizeof(callback_code));
if (Is_exception_result(res))
@@ -157,15 +177,22 @@ CAMLexport value caml_callback_exn(value closure, value arg)
caml_maybe_expand_stack();
if (Stack_parent(domain_state->current_stack)) {
- CAMLparam2 (closure, arg);
- CAMLlocal1 (cont);
- value res;
+ value cont, res;
- cont = save_and_clear_stack_parent(domain_state);
+ /* [closure] and [arg] need to be preserved across the allocation
+ of the stack parent, but need not and should not be registered
+ as roots past this allocation. */
+ Begin_roots2(closure, arg);
+ cont = alloc_and_clear_stack_parent(domain_state);
+ End_roots();
+
+ Begin_roots1(cont);
res = caml_callback_asm(domain_state, closure, &arg);
+ End_roots();
+
restore_stack_parent(domain_state, cont);
- CAMLreturn (res);
+ return res;
} else {
return caml_callback_asm(domain_state, closure, &arg);
}
@@ -178,16 +205,21 @@ CAMLexport value caml_callback2_exn(value closure, value arg1, value arg2)
caml_maybe_expand_stack();
if (Stack_parent(domain_state->current_stack)) {
- CAMLparam3 (closure, arg1, arg2);
- CAMLlocal1 (cont);
- value res;
+ value cont, res;
+
+ /* Root registration policy: see caml_callback_exn. */
+ Begin_roots3(closure, arg1, arg2);
+ cont = alloc_and_clear_stack_parent(domain_state);
+ End_roots();
- cont = save_and_clear_stack_parent(domain_state);
+ Begin_roots1(cont);
value args[] = {arg1, arg2};
res = caml_callback2_asm(domain_state, closure, args);
+ End_roots();
+
restore_stack_parent(domain_state, cont);
- CAMLreturn (res);
+ return res;
} else {
value args[] = {arg1, arg2};
return caml_callback2_asm(domain_state, closure, args);
@@ -202,51 +234,54 @@ CAMLexport value caml_callback3_exn(value closure,
caml_maybe_expand_stack();
if (Stack_parent(domain_state->current_stack)) {
- CAMLparam4 (closure, arg1, arg2, arg3);
- CAMLlocal1 (cont);
- value res;
+ value cont, res;
+
+ /* Root registration policy: see caml_callback_exn. */
+ Begin_roots4(closure, arg1, arg2, arg3);
+ cont = alloc_and_clear_stack_parent(domain_state);
+ End_roots();
- cont = save_and_clear_stack_parent(domain_state);
+ Begin_root(cont);
value args[] = {arg1, arg2, arg3};
res = caml_callback3_asm(domain_state, closure, args);
+ End_roots();
+
restore_stack_parent(domain_state, cont);
- CAMLreturn (res);
+ return res;
} else {
value args[] = {arg1, arg2, arg3};
return caml_callback3_asm(domain_state, closure, args);
}
}
-CAMLexport value caml_callbackN_exn(value closure, int narg, value args[])
-{
- CAMLparam1 (closure);
- CAMLxparamN (args, narg);
- CAMLlocal1 (res);
- int i;
+CAMLexport value caml_callbackN_exn(value closure, int narg, value args[]) {
+ while (narg >= 3) {
+ /* We apply the first 3 arguments to get a new closure,
+ and continue with the remaining arguments. */
+ value *remaining_args = args + 3;
+ int remaining_narg = narg - 3;
- res = closure;
- for (i = 0; i < narg; /*nothing*/) {
- /* Pass as many arguments as possible */
- switch (narg - i) {
- case 1:
- res = caml_callback_exn(res, args[i]);
- if (Is_exception_result(res)) CAMLreturn (res);
- i += 1;
- break;
- case 2:
- res = caml_callback2_exn(res, args[i], args[i + 1]);
- if (Is_exception_result(res)) CAMLreturn (res);
- i += 2;
- break;
- default:
- res = caml_callback3_exn(res, args[i], args[i + 1], args[i + 2]);
- if (Is_exception_result(res)) CAMLreturn (res);
- i += 3;
- break;
- }
+ /* We need to register the remaining arguments as roots
+ in case a GC occurs during [caml_callback3_exn].
+ Arguments 0, 1 and 2 need not and should not be registered. */
+ Begin_roots_block(remaining_args, remaining_narg);
+ closure = caml_callback3_exn(closure, args[0], args[1], args[2]);
+ End_roots();
+
+ if (Is_exception_result(closure)) return closure;
+
+ args = remaining_args;
+ narg = remaining_narg;
+ }
+ switch (narg) {
+ case 0:
+ return closure;
+ case 1:
+ return caml_callback_exn(closure, args[0]);
+ default: /* case 2: */
+ return caml_callback2_exn(closure, args[0], args[1]);
}
- CAMLreturn (res);
}
#endif
diff --git a/runtime/caml/atomic_refcount.h b/runtime/caml/atomic_refcount.h
index 3e4a239d51..aba5ce7f67 100644
--- a/runtime/caml/atomic_refcount.h
+++ b/runtime/caml/atomic_refcount.h
@@ -21,7 +21,7 @@
#include "camlatomic.h"
Caml_inline void caml_atomic_refcount_init(atomic_uintnat* refc, uintnat n){
- atomic_store_rel(refc, n);
+ atomic_store_release(refc, n);
}
Caml_inline uintnat caml_atomic_refcount_decr(atomic_uintnat* refcount){
diff --git a/runtime/caml/config.h b/runtime/caml/config.h
index e03bb7f928..1d7b4b0542 100644
--- a/runtime/caml/config.h
+++ b/runtime/caml/config.h
@@ -49,7 +49,6 @@
#ifndef CAML_CONFIG_H_NO_TYPEDEFS
#include <stddef.h>
-#include <stdbool.h>
#if defined(HAS_LOCALE_H) || defined(HAS_XLOCALE_H)
#define HAS_LOCALE
diff --git a/runtime/caml/domain.h b/runtime/caml/domain.h
index 17c011ecee..49194ae73d 100644
--- a/runtime/caml/domain.h
+++ b/runtime/caml/domain.h
@@ -92,7 +92,7 @@ CAMLextern atomic_uintnat caml_num_domains_running;
Caml_inline intnat caml_domain_alone(void)
{
- return atomic_load_acq(&caml_num_domains_running) == 1;
+ return atomic_load_acquire(&caml_num_domains_running) == 1;
}
#ifdef DEBUG
diff --git a/runtime/caml/exec.h b/runtime/caml/exec.h
index 2fb024c9ae..6d5ed7d785 100644
--- a/runtime/caml/exec.h
+++ b/runtime/caml/exec.h
@@ -60,7 +60,7 @@ struct exec_trailer {
/* Magic number for this release */
-#define EXEC_MAGIC "Caml1999X032"
+#define EXEC_MAGIC "Caml1999X033"
#endif /* CAML_INTERNALS */
diff --git a/runtime/caml/fiber.h b/runtime/caml/fiber.h
index 133a3ba0df..1883c6dd68 100644
--- a/runtime/caml/fiber.h
+++ b/runtime/caml/fiber.h
@@ -98,6 +98,10 @@ CAML_STATIC_ASSERT(sizeof(struct stack_info) ==
* stack is reallocated, this linked list is walked to update the OCaml stack
* pointers. It is also used for DWARF backtraces. */
struct c_stack_link {
+#if defined(_WIN32) || defined(__CYGWIN__)
+ /* Win64 ABI shadow store for argument registers */
+ void* shadow_store[4];
+#endif
/* The reference to the OCaml stack */
struct stack_info* stack;
/* OCaml return address */
diff --git a/runtime/caml/frame_descriptors.h b/runtime/caml/frame_descriptors.h
index 3dc73e84e4..71142a5550 100644
--- a/runtime/caml/frame_descriptors.h
+++ b/runtime/caml/frame_descriptors.h
@@ -21,6 +21,7 @@
#ifdef CAML_INTERNALS
+#include <stdbool.h>
#include "config.h"
/* The compiler generates a "frame descriptor" for every potential
diff --git a/runtime/caml/gc_stats.h b/runtime/caml/gc_stats.h
index 752238081f..80227b33c2 100644
--- a/runtime/caml/gc_stats.h
+++ b/runtime/caml/gc_stats.h
@@ -56,7 +56,6 @@ struct alloc_stats {
uint64_t minor_words;
uint64_t promoted_words;
uint64_t major_words;
- uint64_t minor_collections;
uint64_t forced_major_collections;
};
void caml_accum_alloc_stats(
diff --git a/runtime/caml/lf_skiplist.h b/runtime/caml/lf_skiplist.h
index f35f112256..db6544c867 100644
--- a/runtime/caml/lf_skiplist.h
+++ b/runtime/caml/lf_skiplist.h
@@ -95,8 +95,7 @@ extern void caml_lf_skiplist_free_garbage(struct lf_skiplist *sk);
#define LF_SK_UNMARK(p) ((struct lf_skipcell *)(((uintptr_t)(p)) & ~1))
#define LF_SK_EXTRACT(from, mark_to, ptr_to) \
{ \
- uintptr_t tmp = \
- (uintptr_t)atomic_load_explicit(&from, memory_order_acquire); \
+ uintptr_t tmp = (uintptr_t)atomic_load_acquire(&(from)); \
mark_to = LF_SK_IS_MARKED(tmp); \
ptr_to = LF_SK_UNMARK(tmp); \
}
diff --git a/runtime/caml/misc.h b/runtime/caml/misc.h
index a9790d8a77..ed458e833f 100644
--- a/runtime/caml/misc.h
+++ b/runtime/caml/misc.h
@@ -457,6 +457,7 @@ struct ext_table {
extern void caml_ext_table_init(struct ext_table * tbl, int init_capa);
extern int caml_ext_table_add(struct ext_table * tbl, void * data);
+extern int caml_ext_table_add_noexc(struct ext_table * tbl, void * data);
extern void caml_ext_table_remove(struct ext_table * tbl, void * data);
extern void caml_ext_table_free(struct ext_table * tbl, int free_entries);
extern void caml_ext_table_clear(struct ext_table * tbl, int free_entries);
diff --git a/runtime/caml/platform.h b/runtime/caml/platform.h
index 77027405be..373419e3c9 100644
--- a/runtime/caml/platform.h
+++ b/runtime/caml/platform.h
@@ -49,27 +49,16 @@ Caml_inline void cpu_relax(void) {
#endif
}
-/* Loads and stores with acquire and release semantics respectively */
+/* Loads and stores with acquire, release and relaxed semantics */
-Caml_inline uintnat atomic_load_acq(atomic_uintnat* p)
-{
- return atomic_load_explicit(p, memory_order_acquire);
-}
-
-Caml_inline uintnat atomic_load_relaxed(atomic_uintnat* p)
-{
- return atomic_load_explicit(p, memory_order_relaxed);
-}
-
-Caml_inline void atomic_store_rel(atomic_uintnat* p, uintnat v)
-{
- atomic_store_explicit(p, v, memory_order_release);
-}
-
-Caml_inline void atomic_store_relaxed(atomic_uintnat* p, uintnat v)
-{
- atomic_store_explicit(p, v, memory_order_relaxed);
-}
+#define atomic_load_acquire(p) \
+ atomic_load_explicit((p), memory_order_acquire)
+#define atomic_load_relaxed(p) \
+ atomic_load_explicit((p), memory_order_relaxed)
+#define atomic_store_release(p, v) \
+ atomic_store_explicit((p), (v), memory_order_release)
+#define atomic_store_relaxed(p, v) \
+ atomic_store_explicit((p), (v), memory_order_relaxed)
/* Spin-wait loops */
@@ -94,7 +83,7 @@ CAMLextern unsigned caml_plat_spin_wait(unsigned spins,
Caml_inline uintnat atomic_load_wait_nonzero(atomic_uintnat* p) {
SPIN_WAIT {
- uintnat v = atomic_load_acq(p);
+ uintnat v = atomic_load_acquire(p);
if (v) return v;
}
}
diff --git a/runtime/codefrag.c b/runtime/codefrag.c
index d1659563c8..9237995fa2 100644
--- a/runtime/codefrag.c
+++ b/runtime/codefrag.c
@@ -95,7 +95,7 @@ void caml_remove_code_fragment(struct code_fragment *cf) {
cf_cell->cf = cf;
do {
- cf_cell->next = atomic_load_explicit(&garbage_head, memory_order_acquire);
+ cf_cell->next = atomic_load_acquire(&garbage_head);
} while (!atomic_compare_exchange_strong(&garbage_head, &cf_cell->next,
cf_cell));
}
@@ -167,7 +167,7 @@ void caml_code_fragment_cleanup (void)
caml_lf_skiplist_free_garbage(&code_fragments_by_pc);
caml_lf_skiplist_free_garbage(&code_fragments_by_num);
- curr = atomic_load_explicit(&garbage_head, memory_order_acquire);
+ curr = atomic_load_acquire(&garbage_head);
while (curr != NULL) {
struct code_fragment_garbage *next = curr->next;
@@ -178,5 +178,5 @@ void caml_code_fragment_cleanup (void)
curr = next;
}
- atomic_store_explicit(&garbage_head, NULL, memory_order_release);
+ atomic_store_release(&garbage_head, NULL);
}
diff --git a/runtime/compare.c b/runtime/compare.c
index 8348f99dda..eb48994ce4 100644
--- a/runtime/compare.c
+++ b/runtime/compare.c
@@ -25,7 +25,7 @@
/* Structural comparison on trees. */
-struct compare_item { volatile value * v1, * v2; mlsize_t count; };
+struct compare_item { value v1, v2, offset, size; };
#define COMPARE_STACK_INIT_SIZE 8
#define COMPARE_STACK_MIN_ALLOC_SIZE 32
@@ -37,6 +37,8 @@ struct compare_stack {
struct compare_item* limit;
};
+#define COMPARE_POLL_PERIOD 1024
+
/* Free the compare stack if needed */
static void compare_free_stack(struct compare_stack* stk)
{
@@ -84,7 +86,6 @@ static struct compare_item * compare_resize_stack(struct compare_stack* stk,
return newstack + sp_offset;
}
-
static intnat do_compare_val(struct compare_stack* stk,
value v1, value v2, int total);
@@ -99,6 +100,24 @@ static intnat compare_val(value v1, value v2, int total)
return res;
}
+static void run_pending_actions(struct compare_stack* stk,
+ struct compare_item* sp)
+{
+ value exn;
+ value* roots_start = (value*)(stk->stack);
+ size_t roots_length =
+ (sp - stk->stack)
+ * sizeof(struct compare_item) / sizeof(value);
+ Begin_roots_block(roots_start, roots_length);
+ exn = caml_do_pending_actions_exn();
+ End_roots();
+ if (Is_exception_result(exn)) {
+ exn = Extract_exception(exn);
+ compare_free_stack(stk);
+ caml_raise(exn);
+ }
+}
+
/* Structural comparison */
@@ -118,191 +137,212 @@ static intnat do_compare_val(struct compare_stack* stk,
{
struct compare_item * sp;
tag_t t1, t2;
+ int poll_timer;
sp = stk->stack;
while (1) {
- if (v1 == v2 && total) goto next_item;
- if (Is_long(v1)) {
- if (v1 == v2) goto next_item;
- if (Is_long(v2))
- return Long_val(v1) - Long_val(v2);
- /* Subtraction above cannot overflow and cannot result in UNORDERED */
- switch (Tag_val(v2)) {
- case Forward_tag:
- v2 = Forward_val(v2);
- continue;
- case Custom_tag: {
- int res;
- int (*compare)(value v1, value v2) = Custom_ops_val(v2)->compare_ext;
- if (compare == NULL) break; /* for backward compatibility */
- Caml_state->compare_unordered = 0;
- res = compare(v1, v2);
- if (Caml_state->compare_unordered && !total) return UNORDERED;
- if (res != 0) return res;
- goto next_item;
- }
- default: /*fallthrough*/;
- }
+ poll_timer = COMPARE_POLL_PERIOD;
+ while (--poll_timer > 0) {
+ if (v1 == v2 && total) goto next_item;
+ if (Is_long(v1)) {
+ if (v1 == v2) goto next_item;
+ if (Is_long(v2))
+ return Long_val(v1) - Long_val(v2);
+ /* Subtraction above cannot overflow and cannot result in UNORDERED */
+ switch (Tag_val(v2)) {
+ case Forward_tag:
+ v2 = Forward_val(v2);
+ continue;
+ case Custom_tag: {
+ int res;
+ int (*compare)(value v1, value v2) =
+ Custom_ops_val(v2)->compare_ext;
+ if (compare == NULL) break; /* for backward compatibility */
+ Caml_state->compare_unordered = 0;
+ res = compare(v1, v2);
+ if (Caml_state->compare_unordered && !total) return UNORDERED;
+ if (res != 0) return res;
+ goto next_item;
+ }
+ default: /*fallthrough*/;
+ }
- return LESS; /* v1 long < v2 block */
- }
- if (Is_long(v2)) {
- switch (Tag_val(v1)) {
- case Forward_tag:
- v1 = Forward_val(v1);
- continue;
- case Custom_tag: {
- int res;
- int (*compare)(value v1, value v2) = Custom_ops_val(v1)->compare_ext;
- if (compare == NULL) break; /* for backward compatibility */
- Caml_state->compare_unordered = 0;
- res = compare(v1, v2);
- if (Caml_state->compare_unordered && !total) return UNORDERED;
- if (res != 0) return res;
- goto next_item;
- }
- default: /*fallthrough*/;
- }
- return GREATER; /* v1 block > v2 long */
- }
- t1 = Tag_val(v1);
- t2 = Tag_val(v2);
- if (t1 != t2) {
- /* Besides long/block comparisons, the only forms of
- heterogeneous comparisons we support are:
- - Forward_tag pointers, which may point to values of any type, and
- - comparing Infix_tag and Closure_tag functions (#9521).
+ return LESS; /* v1 long < v2 block */
+ }
+ if (Is_long(v2)) {
+ switch (Tag_val(v1)) {
+ case Forward_tag:
+ v1 = Forward_val(v1);
+ continue;
+ case Custom_tag: {
+ int res;
+ int (*compare)(value v1, value v2) =
+ Custom_ops_val(v1)->compare_ext;
+ if (compare == NULL) break; /* for backward compatibility */
+ Caml_state->compare_unordered = 0;
+ res = compare(v1, v2);
+ if (Caml_state->compare_unordered && !total) return UNORDERED;
+ if (res != 0) return res;
+ goto next_item;
+ }
+ default: /*fallthrough*/;
+ }
+ return GREATER; /* v1 block > v2 long */
+ }
+ t1 = Tag_val(v1);
+ t2 = Tag_val(v2);
+ if (t1 != t2) {
+ /* Besides long/block comparisons, the only forms of
+ heterogeneous comparisons we support are:
+ - Forward_tag pointers, which may point to values of any type, and
+ - comparing Infix_tag and Closure_tag functions (#9521).
- Other heterogeneous cases may still happen due to
- existential types, and we just compare the tags.
- */
- if (t1 == Forward_tag) { v1 = Forward_val (v1); continue; }
- if (t2 == Forward_tag) { v2 = Forward_val (v2); continue; }
- if (t1 == Infix_tag) t1 = Closure_tag;
- if (t2 == Infix_tag) t2 = Closure_tag;
- if (t1 != t2)
- return (intnat)t1 - (intnat)t2;
- }
- switch(t1) {
- case Forward_tag: {
- v1 = Forward_val (v1);
- v2 = Forward_val (v2);
- continue;
- }
- case String_tag: {
- mlsize_t len1, len2;
- int res;
- if (v1 == v2) break;
- len1 = caml_string_length(v1);
- len2 = caml_string_length(v2);
- res = memcmp(String_val(v1), String_val(v2), len1 <= len2 ? len1 : len2);
- if (res < 0) return LESS;
- if (res > 0) return GREATER;
- if (len1 != len2) return len1 - len2;
- break;
- }
- case Double_tag: {
- double d1 = Double_val(v1);
- double d2 = Double_val(v2);
- if (d1 < d2) return LESS;
- if (d1 > d2) return GREATER;
- if (d1 != d2) {
- if (! total) return UNORDERED;
- /* One or both of d1 and d2 is NaN. Order according to the
- convention NaN = NaN and NaN < f for all other floats f. */
- if (d1 == d1) return GREATER; /* d1 is not NaN, d2 is NaN */
- if (d2 == d2) return LESS; /* d2 is not NaN, d1 is NaN */
- /* d1 and d2 are both NaN, thus equal: continue comparison */
+ Other heterogeneous cases may still happen due to
+ existential types, and we just compare the tags.
+ */
+ if (t1 == Forward_tag) { v1 = Forward_val (v1); continue; }
+ if (t2 == Forward_tag) { v2 = Forward_val (v2); continue; }
+ if (t1 == Infix_tag) t1 = Closure_tag;
+ if (t2 == Infix_tag) t2 = Closure_tag;
+ if (t1 != t2)
+ return (intnat)t1 - (intnat)t2;
}
- break;
- }
- case Double_array_tag: {
- mlsize_t sz1 = Wosize_val(v1) / Double_wosize;
- mlsize_t sz2 = Wosize_val(v2) / Double_wosize;
- mlsize_t i;
- if (sz1 != sz2) return sz1 - sz2;
- for (i = 0; i < sz1; i++) {
- double d1 = Double_flat_field(v1, i);
- double d2 = Double_flat_field(v2, i);
+ switch(t1) {
+ case Forward_tag: {
+ v1 = Forward_val (v1);
+ v2 = Forward_val (v2);
+ continue;
+ }
+ case String_tag: {
+ mlsize_t len1, len2;
+ int res;
+ if (v1 == v2) break;
+ len1 = caml_string_length(v1);
+ len2 = caml_string_length(v2);
+ res = memcmp(String_val(v1), String_val(v2),
+ len1 <= len2 ? len1 : len2);
+ if (res < 0) return LESS;
+ if (res > 0) return GREATER;
+ if (len1 != len2) return len1 - len2;
+ break;
+ }
+ case Double_tag: {
+ double d1 = Double_val(v1);
+ double d2 = Double_val(v2);
if (d1 < d2) return LESS;
if (d1 > d2) return GREATER;
if (d1 != d2) {
if (! total) return UNORDERED;
- /* See comment for Double_tag case */
- if (d1 == d1) return GREATER;
- if (d2 == d2) return LESS;
+ /* One or both of d1 and d2 is NaN. Order according to the
+ convention NaN = NaN and NaN < f for all other floats f. */
+ if (d1 == d1) return GREATER; /* d1 is not NaN, d2 is NaN */
+ if (d2 == d2) return LESS; /* d2 is not NaN, d1 is NaN */
+ /* d1 and d2 are both NaN, thus equal: continue comparison */
}
+ break;
}
- break;
- }
- case Abstract_tag:
- compare_free_stack(stk);
- caml_invalid_argument("compare: abstract value");
- case Closure_tag:
- case Infix_tag:
- compare_free_stack(stk);
- caml_invalid_argument("compare: functional value");
- case Cont_tag:
- compare_free_stack(stk);
- caml_invalid_argument("compare: continuation value");
- case Object_tag: {
- intnat oid1 = Oid_val(v1);
- intnat oid2 = Oid_val(v2);
- if (oid1 != oid2) return oid1 - oid2;
- break;
- }
- case Custom_tag: {
- int res;
- int (*compare)(value v1, value v2) = Custom_ops_val(v1)->compare;
- /* Hardening against comparisons between different types */
- if (compare != Custom_ops_val(v2)->compare) {
- return strcmp(Custom_ops_val(v1)->identifier,
- Custom_ops_val(v2)->identifier) < 0
- ? LESS : GREATER;
+ case Double_array_tag: {
+ mlsize_t sz1 = Wosize_val(v1) / Double_wosize;
+ mlsize_t sz2 = Wosize_val(v2) / Double_wosize;
+ mlsize_t i;
+ if (sz1 != sz2) return sz1 - sz2;
+ for (i = 0; i < sz1; i++) {
+ double d1 = Double_flat_field(v1, i);
+ double d2 = Double_flat_field(v2, i);
+ if (d1 < d2) return LESS;
+ if (d1 > d2) return GREATER;
+ if (d1 != d2) {
+ if (! total) return UNORDERED;
+ /* See comment for Double_tag case */
+ if (d1 == d1) return GREATER;
+ if (d2 == d2) return LESS;
+ }
+ }
+ break;
}
- if (compare == NULL) {
+ case Abstract_tag:
compare_free_stack(stk);
caml_invalid_argument("compare: abstract value");
+ case Closure_tag:
+ case Infix_tag:
+ compare_free_stack(stk);
+ caml_invalid_argument("compare: functional value");
+ case Cont_tag:
+ compare_free_stack(stk);
+ caml_invalid_argument("compare: continuation value");
+ case Object_tag: {
+ intnat oid1 = Oid_val(v1);
+ intnat oid2 = Oid_val(v2);
+ if (oid1 != oid2) return oid1 - oid2;
+ break;
}
- Caml_state->compare_unordered = 0;
- res = compare(v1, v2);
- if (Caml_state->compare_unordered && !total) return UNORDERED;
- if (res != 0) return res;
- break;
- }
- default: {
- mlsize_t sz1 = Wosize_val(v1);
- mlsize_t sz2 = Wosize_val(v2);
- /* Compare sizes first for speed */
- if (sz1 != sz2) return sz1 - sz2;
- if (sz1 == 0) break;
- /* Remember that we still have to compare fields 1 ... sz - 1 */
- if (sz1 > 1) {
- sp++;
- if (sp >= stk->limit) sp = compare_resize_stack(stk, sp);
- sp->v1 = &Field(v1, 1);
- sp->v2 = &Field(v2, 1);
- sp->count = sz1 - 1;
+ case Custom_tag: {
+ int res;
+ int (*compare)(value v1, value v2) = Custom_ops_val(v1)->compare;
+ /* Hardening against comparisons between different types */
+ if (compare != Custom_ops_val(v2)->compare) {
+ return strcmp(Custom_ops_val(v1)->identifier,
+ Custom_ops_val(v2)->identifier) < 0
+ ? LESS : GREATER;
+ }
+ if (compare == NULL) {
+ compare_free_stack(stk);
+ caml_invalid_argument("compare: abstract value");
+ }
+ Caml_state->compare_unordered = 0;
+ res = compare(v1, v2);
+ if (Caml_state->compare_unordered && !total) return UNORDERED;
+ if (res != 0) return res;
+ break;
}
- /* Continue comparison with first field */
- v1 = Field(v1, 0);
- v2 = Field(v2, 0);
- continue;
+ default: {
+ mlsize_t sz1 = Wosize_val(v1);
+ mlsize_t sz2 = Wosize_val(v2);
+ /* Compare sizes first for speed */
+ if (sz1 != sz2) return sz1 - sz2;
+ if (sz1 == 0) break;
+ /* Remember that we still have to compare fields 1 ... sz - 1. */
+ if (sz1 > 1) {
+ if (sp >= stk->limit) sp = compare_resize_stack(stk, sp);
+ struct compare_item* next = sp++;
+ next->v1 = v1;
+ next->v2 = v2;
+ next->size = Val_long(sz1);
+ next->offset = Val_long(1);
+ }
+ /* Continue comparison with first field */
+ v1 = Field(v1, 0);
+ v2 = Field(v2, 0);
+ continue;
+ }
+ }
+ next_item:
+ /* Pop one more item to compare, if any */
+ if (sp == stk->stack) return EQUAL; /* we're done */
+
+ struct compare_item* last = sp-1;
+ v1 = Field(last->v1, Long_val(last->offset));
+ v2 = Field(last->v2, Long_val(last->offset));
+ last->offset += 2;/* Long_val(last->offset) += 1 */
+ if (last->offset == last->size) sp--;
}
+ /* Poll for actions */
+ if (caml_check_pending_actions()) {
+ /* Preserve v1, v2 if a GC occurs. Registering v1 and v2 directly
+ as roots would prevent them from being allocated to registers. */
+ value root_v1 = v1, root_v2 = v2;
+ Begin_roots2(root_v1, root_v2);
+ run_pending_actions(stk, sp);
+ v1 = root_v1; v2 = root_v2;
+ End_roots();
}
- next_item:
- /* Pop one more item to compare, if any */
- if (sp == stk->stack) return EQUAL; /* we're done */
- v1 = *((sp->v1)++);
- v2 = *((sp->v2)++);
- if (--(sp->count) == 0) sp--;
+ /* Resume comparison after resetting poll_timer */
}
}
CAMLprim value caml_compare(value v1, value v2)
{
intnat res = compare_val(v1, v2, 1);
- /* Free stack if needed */
if (res < 0)
return Val_int(LESS);
else if (res > 0)
diff --git a/runtime/domain.c b/runtime/domain.c
index 88d7c1469c..91325c4bfc 100644
--- a/runtime/domain.c
+++ b/runtime/domain.c
@@ -294,22 +294,22 @@ CAMLexport caml_domain_state* caml_get_domain_state(void)
Caml_inline void interrupt_domain(struct interruptor* s)
{
- atomic_store_rel(s->interrupt_word, (uintnat)(-1));
+ atomic_store_release(s->interrupt_word, (uintnat)(-1));
}
int caml_incoming_interrupts_queued(void)
{
- return atomic_load_acq(&domain_self->interruptor.interrupt_pending);
+ return atomic_load_acquire(&domain_self->interruptor.interrupt_pending);
}
/* must NOT be called with s->lock held */
static void stw_handler(caml_domain_state* domain);
static uintnat handle_incoming(struct interruptor* s)
{
- uintnat handled = atomic_load_acq(&s->interrupt_pending);
+ uintnat handled = atomic_load_acquire(&s->interrupt_pending);
CAMLassert (s->running);
if (handled) {
- atomic_store_rel(&s->interrupt_pending, 0);
+ atomic_store_release(&s->interrupt_pending, 0);
stw_handler(domain_self->state);
}
@@ -330,7 +330,7 @@ void caml_handle_incoming_interrupts(void)
int caml_send_interrupt(struct interruptor* target)
{
/* signal that there is an interrupt pending */
- atomic_store_rel(&target->interrupt_pending, 1);
+ atomic_store_release(&target->interrupt_pending, 1);
/* Signal the condition variable, in case the target is
itself waiting for an interrupt to be processed elsewhere */
@@ -349,7 +349,7 @@ static void caml_wait_interrupt_serviced(struct interruptor* target)
/* Often, interrupt handlers are fast, so spin for a bit before waiting */
for (i=0; i<1000; i++) {
- if (!atomic_load_acq(&target->interrupt_pending)) {
+ if (!atomic_load_acquire(&target->interrupt_pending)) {
return;
}
cpu_relax();
@@ -357,7 +357,7 @@ static void caml_wait_interrupt_serviced(struct interruptor* target)
{
SPIN_WAIT {
- if (!atomic_load_acq(&target->interrupt_pending))
+ if (!atomic_load_acquire(&target->interrupt_pending))
return;
}
}
@@ -453,7 +453,7 @@ static void free_minor_heap(void) {
domain_state->young_end = NULL;
domain_state->young_ptr = NULL;
domain_state->young_trigger = NULL;
- atomic_store_rel(&domain_state->young_limit,
+ atomic_store_release(&domain_state->young_limit,
(uintnat) domain_state->young_start);
}
@@ -545,7 +545,7 @@ static void domain_create(uintnat initial_minor_heap_wsize) {
caml_plat_lock(&all_domains_lock);
/* Wait until any in-progress STW sections end. */
- while (atomic_load_acq(&stw_leader)) {
+ while (atomic_load_acquire(&stw_leader)) {
/* [caml_plat_wait] releases [all_domains_lock] until the current
STW section ends, and then takes the lock again. */
caml_plat_wait(&all_domains_cond);
@@ -938,7 +938,7 @@ static void* backup_thread_func(void* v)
domain_self = di;
caml_state = di->state;
- msg = atomic_load_acq (&di->backup_thread_msg);
+ msg = atomic_load_acquire (&di->backup_thread_msg);
while (msg != BT_TERMINATE) {
CAMLassert (msg <= BT_TERMINATE);
switch (msg) {
@@ -958,7 +958,7 @@ static void* backup_thread_func(void* v)
* Will be woken from caml_leave_blocking_section
*/
caml_plat_lock(&s->lock);
- msg = atomic_load_acq (&di->backup_thread_msg);
+ msg = atomic_load_acquire (&di->backup_thread_msg);
if (msg == BT_IN_BLOCKING_SECTION &&
!caml_incoming_interrupts_queued())
caml_plat_wait(&s->cond);
@@ -970,7 +970,7 @@ static void* backup_thread_func(void* v)
* or domain_terminate
*/
caml_plat_lock(&di->domain_lock);
- msg = atomic_load_acq (&di->backup_thread_msg);
+ msg = atomic_load_acquire (&di->backup_thread_msg);
if (msg == BT_ENTERING_OCAML)
caml_plat_wait(&di->domain_cond);
caml_plat_unlock(&di->domain_lock);
@@ -979,11 +979,11 @@ static void* backup_thread_func(void* v)
cpu_relax();
break;
};
- msg = atomic_load_acq (&di->backup_thread_msg);
+ msg = atomic_load_acquire (&di->backup_thread_msg);
}
/* doing terminate */
- atomic_store_rel(&di->backup_thread_msg, BT_INIT);
+ atomic_store_release(&di->backup_thread_msg, BT_INIT);
return 0;
}
@@ -999,7 +999,7 @@ static void install_backup_thread (dom_internal* di)
CAMLassert (di->backup_thread_msg == BT_INIT || /* Using fresh domain */
di->backup_thread_msg == BT_TERMINATE); /* Reusing domain */
- while (atomic_load_acq(&di->backup_thread_msg) != BT_INIT) {
+ while (atomic_load_acquire(&di->backup_thread_msg) != BT_INIT) {
/* Give a chance for backup thread on this domain to terminate */
caml_plat_unlock (&di->domain_lock);
cpu_relax ();
@@ -1012,7 +1012,7 @@ static void install_backup_thread (dom_internal* di)
pthread_sigmask(SIG_BLOCK, &mask, &old_mask);
#endif
- atomic_store_rel(&di->backup_thread_msg, BT_ENTERING_OCAML);
+ atomic_store_release(&di->backup_thread_msg, BT_ENTERING_OCAML);
err = pthread_create(&di->backup_thread, 0, backup_thread_func, (void*)di);
#ifndef _WIN32
@@ -1227,11 +1227,11 @@ void caml_global_barrier_end(barrier_status b)
uintnat sense = b & BARRIER_SENSE_BIT;
if (caml_global_barrier_is_final(b)) {
/* last domain into the barrier, flip sense */
- atomic_store_rel(&stw_request.barrier, sense ^ BARRIER_SENSE_BIT);
+ atomic_store_release(&stw_request.barrier, sense ^ BARRIER_SENSE_BIT);
} else {
/* wait until another domain flips the sense */
SPIN_WAIT {
- uintnat barrier = atomic_load_acq(&stw_request.barrier);
+ uintnat barrier = atomic_load_acquire(&stw_request.barrier);
if ((barrier & BARRIER_SENSE_BIT) != sense) break;
}
}
@@ -1259,7 +1259,7 @@ static void decrement_stw_domains_still_processing(void)
if( am_last ) {
/* release the STW lock to allow new STW sections */
caml_plat_lock(&all_domains_lock);
- atomic_store_rel(&stw_leader, 0);
+ atomic_store_release(&stw_leader, 0);
caml_plat_broadcast(&all_domains_cond);
caml_gc_log("clearing stw leader");
caml_plat_unlock(&all_domains_lock);
@@ -1272,7 +1272,7 @@ static void stw_handler(caml_domain_state* domain)
CAML_EV_BEGIN(EV_STW_API_BARRIER);
{
SPIN_WAIT {
- if (atomic_load_acq(&stw_request.domains_still_running) == 0)
+ if (atomic_load_acquire(&stw_request.domains_still_running) == 0)
break;
if (stw_request.enter_spin_callback)
@@ -1384,21 +1384,21 @@ int caml_try_run_on_all_domains_with_spin_work(
situations. Without this read, [stw_leader] would be protected by
[all_domains_lock] and could be a non-atomic variable.
*/
- if (atomic_load_acq(&stw_leader) ||
+ if (atomic_load_acquire(&stw_leader) ||
!caml_plat_try_lock(&all_domains_lock)) {
caml_handle_incoming_interrupts();
return 0;
}
/* see if there is a stw_leader already */
- if (atomic_load_acq(&stw_leader)) {
+ if (atomic_load_acquire(&stw_leader)) {
caml_plat_unlock(&all_domains_lock);
caml_handle_incoming_interrupts();
return 0;
}
/* we have the lock and can claim the stw_leader */
- atomic_store_rel(&stw_leader, (uintnat)domain_self);
+ atomic_store_release(&stw_leader, (uintnat)domain_self);
CAML_EV_BEGIN(EV_STW_LEADER);
caml_gc_log("causing STW");
@@ -1409,10 +1409,10 @@ int caml_try_run_on_all_domains_with_spin_work(
stw_request.enter_spin_data = enter_spin_data;
stw_request.callback = handler;
stw_request.data = data;
- atomic_store_rel(&stw_request.barrier, 0);
- atomic_store_rel(&stw_request.domains_still_running, 1);
+ atomic_store_release(&stw_request.barrier, 0);
+ atomic_store_release(&stw_request.domains_still_running, 1);
stw_request.num_domains = stw_domains.participating_domains;
- atomic_store_rel(&stw_request.num_domains_still_processing,
+ atomic_store_release(&stw_request.num_domains_still_processing,
stw_domains.participating_domains);
if( leader_setup ) {
@@ -1462,7 +1462,7 @@ int caml_try_run_on_all_domains_with_spin_work(
}
/* release from the enter barrier */
- atomic_store_rel(&stw_request.domains_still_running, 0);
+ atomic_store_release(&stw_request.domains_still_running, 0);
#ifdef DEBUG
domain_state->inside_stw_handler = 1;
@@ -1511,7 +1511,7 @@ void caml_reset_young_limit(caml_domain_state * dom_st)
|| dom_st->major_slice_epoch < atomic_load (&caml_major_slice_epoch)
|| atomic_load_relaxed(&dom_st->requested_external_interrupt)
|| dom_st->action_pending) {
- atomic_store_rel(&dom_st->young_limit, (uintnat)-1);
+ atomic_store_release(&dom_st->young_limit, (uintnat)-1);
CAMLassert(caml_check_gc_interrupt(dom_st));
}
}
@@ -1599,7 +1599,7 @@ void caml_poll_gc_work(void)
CAML_EV_END(EV_MAJOR);
}
- if (atomic_load_acq(&d->requested_external_interrupt)) {
+ if (atomic_load_acquire(&d->requested_external_interrupt)) {
caml_domain_external_interrupt_hook();
}
caml_reset_young_limit(d);
@@ -1621,7 +1621,7 @@ void caml_handle_gc_interrupt(void)
CAMLexport int caml_bt_is_in_blocking_section(void)
{
- uintnat status = atomic_load_acq(&domain_self->backup_thread_msg);
+ uintnat status = atomic_load_acquire(&domain_self->backup_thread_msg);
return status == BT_IN_BLOCKING_SECTION;
}
@@ -1650,7 +1650,7 @@ CAMLexport void caml_bt_enter_ocaml(void)
CAMLassert(caml_domain_alone() || self->backup_thread_running);
if (self->backup_thread_running) {
- atomic_store_rel(&self->backup_thread_msg, BT_ENTERING_OCAML);
+ atomic_store_release(&self->backup_thread_msg, BT_ENTERING_OCAML);
}
}
@@ -1668,7 +1668,7 @@ CAMLexport void caml_bt_exit_ocaml(void)
CAMLassert(caml_domain_alone() || self->backup_thread_running);
if (self->backup_thread_running) {
- atomic_store_rel(&self->backup_thread_msg, BT_IN_BLOCKING_SECTION);
+ atomic_store_release(&self->backup_thread_msg, BT_IN_BLOCKING_SECTION);
/* Wakeup backup thread if it is sleeping */
caml_plat_signal(&self->domain_cond);
}
@@ -1827,7 +1827,7 @@ static void domain_terminate (void)
/* signal the domain termination to the backup thread
NB: for a program with no additional domains, the backup thread
will not have been started */
- atomic_store_rel(&domain_self->backup_thread_msg, BT_TERMINATE);
+ atomic_store_release(&domain_self->backup_thread_msg, BT_TERMINATE);
caml_plat_signal(&domain_self->domain_cond);
caml_plat_unlock(&domain_self->domain_lock);
diff --git a/runtime/extern.c b/runtime/extern.c
index 9d9746ecf3..4301c3df13 100644
--- a/runtime/extern.c
+++ b/runtime/extern.c
@@ -120,30 +120,44 @@ struct caml_extern_state {
struct output_block * extern_output_block;
};
-static struct caml_extern_state* get_extern_state (void)
+static void extern_init_stack(struct caml_extern_state* s)
+{
+ /* (Re)initialize the globals for next time around */
+ s->extern_stack = s->extern_stack_init;
+ s->extern_stack_limit = s->extern_stack + EXTERN_STACK_INIT_SIZE;
+}
+
+static struct caml_extern_state* prepare_extern_state (void)
{
Caml_check_caml_state();
- struct caml_extern_state* extern_state;
+ struct caml_extern_state* s;
if (Caml_state->extern_state != NULL)
return Caml_state->extern_state;
- extern_state =
- caml_stat_alloc_noexc(sizeof(struct caml_extern_state));
- if (extern_state == NULL) {
- return NULL;
- }
+ s = caml_stat_alloc(sizeof(struct caml_extern_state));
+
+ s->extern_flags = 0;
+ s->obj_counter = 0;
+ s->size_32 = 0;
+ s->size_64 = 0;
+ extern_init_stack(s);
+
+ Caml_state->extern_state = s;
+ return s;
+}
+
+static struct caml_extern_state* get_extern_state (void)
+{
+ Caml_check_caml_state();
- extern_state->extern_flags = 0;
- extern_state->obj_counter = 0;
- extern_state->size_32 = 0;
- extern_state->size_64 = 0;
- extern_state->extern_stack = extern_state->extern_stack_init;
- extern_state->extern_stack_limit =
- extern_state->extern_stack + EXTERN_STACK_INIT_SIZE;
+ if (Caml_state->extern_state == NULL)
+ caml_fatal_error (
+ "extern_state not initialized:"
+ "this function can only be called from a `caml_output_*` entrypoint."
+ );
- Caml_state->extern_state = extern_state;
- return extern_state;
+ return Caml_state->extern_state;
}
void caml_free_extern_state (void)
@@ -174,17 +188,15 @@ CAMLnoreturn_end;
static void free_extern_output(struct caml_extern_state* s);
-/* Free the extern stack if needed */
static void extern_free_stack(struct caml_extern_state* s)
{
+ /* Free the extern stack if needed */
if (s->extern_stack != s->extern_stack_init) {
caml_stat_free(s->extern_stack);
- /* Reinitialize the globals for next time around */
- s->extern_stack = s->extern_stack_init;
- s->extern_stack_limit = s->extern_stack + EXTERN_STACK_INIT_SIZE;
}
-}
+ extern_init_stack(s);
+}
static struct extern_item * extern_resize_stack(struct caml_extern_state* s,
struct extern_item * sp)
@@ -1072,7 +1084,7 @@ void caml_output_val(struct channel *chan, value v, value flags)
char header[MAX_INTEXT_HEADER_SIZE];
int header_len;
struct output_block * blk, * nextblk;
- struct caml_extern_state* s = get_extern_state ();
+ struct caml_extern_state* s = prepare_extern_state ();
if (! caml_channel_binary_mode(chan))
caml_failwith("output_value: not a binary channel");
@@ -1110,7 +1122,7 @@ CAMLprim value caml_output_value_to_bytes(value v, value flags)
intnat data_len, ofs;
value res;
struct output_block * blk, * nextblk;
- struct caml_extern_state* s = get_extern_state ();
+ struct caml_extern_state* s = prepare_extern_state ();
init_extern_output(s);
data_len = extern_value(s, v, flags, header, &header_len);
@@ -1143,7 +1155,7 @@ CAMLexport intnat caml_output_value_to_block(value v, value flags,
char header[MAX_INTEXT_HEADER_SIZE];
int header_len;
intnat data_len;
- struct caml_extern_state* s = get_extern_state ();
+ struct caml_extern_state* s = prepare_extern_state ();
/* At this point we don't know the size of the header.
Guess that it is small, and fix up later if not. */
@@ -1180,7 +1192,7 @@ CAMLexport void caml_output_value_to_malloc(value v, value flags,
intnat data_len;
char * res;
struct output_block * blk, * nextblk;
- struct caml_extern_state* s = get_extern_state ();
+ struct caml_extern_state* s = prepare_extern_state ();
init_extern_output(s);
data_len = extern_value(s, v, flags, header, &header_len);
@@ -1340,7 +1352,7 @@ CAMLprim value caml_obj_reachable_words(value v)
struct extern_item * sp;
uintnat h = 0;
uintnat pos = 0;
- struct caml_extern_state *s = get_extern_state ();
+ struct caml_extern_state *s = prepare_extern_state ();
s->obj_counter = 0;
s->extern_flags = 0;
diff --git a/runtime/fail_nat.c b/runtime/fail_nat.c
index 2245f933b3..bb891b940f 100644
--- a/runtime/fail_nat.c
+++ b/runtime/fail_nat.c
@@ -197,7 +197,7 @@ CAMLexport value caml_raise_if_exception(value res)
static value array_bound_exn(void)
{
static atomic_uintnat exn_cache = ATOMIC_UINTNAT_INIT(0);
- const value* exn = (const value*)atomic_load_acq(&exn_cache);
+ const value* exn = (const value*)atomic_load_acquire(&exn_cache);
if (!exn) {
exn = caml_named_value("Pervasives.array_bound_error");
if (!exn) {
@@ -205,7 +205,7 @@ static value array_bound_exn(void)
"Invalid_argument(\"index out of bounds\")\n");
exit(2);
}
- atomic_store_rel(&exn_cache, (uintnat)exn);
+ atomic_store_release(&exn_cache, (uintnat)exn);
}
return *exn;
}
diff --git a/runtime/fiber.c b/runtime/fiber.c
index 52d68fbbff..d86daf9141 100644
--- a/runtime/fiber.c
+++ b/runtime/fiber.c
@@ -670,14 +670,14 @@ static const value * cache_named_exception(const value * _Atomic * cache,
const char * name)
{
const value * exn;
- exn = atomic_load_explicit(cache, memory_order_acquire);
+ exn = atomic_load_acquire(cache);
if (exn == NULL) {
exn = caml_named_value(name);
if (exn == NULL) {
fprintf(stderr, "Fatal error: exception %s\n", name);
exit(2);
}
- atomic_store_explicit(cache, exn, memory_order_release);
+ atomic_store_release(cache, exn);
}
return exn;
}
diff --git a/runtime/gc_ctrl.c b/runtime/gc_ctrl.c
index 46a4145e15..1b43aca8c8 100644
--- a/runtime/gc_ctrl.c
+++ b/runtime/gc_ctrl.c
@@ -56,16 +56,17 @@ CAMLprim value caml_gc_quick_stat(value v)
CAMLlocal1 (res);
/* get a copy of these before allocating anything... */
- intnat majcoll;
+ intnat majcoll, mincoll;
struct gc_stats s;
caml_compute_gc_stats(&s);
majcoll = caml_major_cycles_completed;
+ mincoll = atomic_load(&caml_minor_collections_count);
res = caml_alloc_tuple (17);
Store_field (res, 0, caml_copy_double ((double)s.alloc_stats.minor_words));
Store_field (res, 1, caml_copy_double ((double)s.alloc_stats.promoted_words));
Store_field (res, 2, caml_copy_double ((double)s.alloc_stats.major_words));
- Store_field (res, 3, Val_long (s.alloc_stats.minor_collections));
+ Store_field (res, 3, Val_long (mincoll));
Store_field (res, 4, Val_long (majcoll));
Store_field (res, 5, Val_long (
s.heap_stats.pool_words + s.heap_stats.large_words));
diff --git a/runtime/gc_stats.c b/runtime/gc_stats.c
index 4435521b68..c869de0f13 100644
--- a/runtime/gc_stats.c
+++ b/runtime/gc_stats.c
@@ -54,7 +54,6 @@ void caml_accum_alloc_stats(
acc->minor_words += s->minor_words;
acc->promoted_words += s->promoted_words;
acc->major_words += s->major_words;
- acc->minor_collections += s->minor_collections;
acc->forced_major_collections += s->forced_major_collections;
}
@@ -65,7 +64,6 @@ void caml_collect_alloc_stats_sample(
sample->minor_words = local->stat_minor_words;
sample->promoted_words = local->stat_promoted_words;
sample->major_words = local->stat_major_words;
- sample->minor_collections = atomic_load(&caml_minor_collections_count);
sample->forced_major_collections = local->stat_forced_major_collections;
}
@@ -96,7 +94,7 @@ void caml_orphan_alloc_stats(caml_domain_state *domain) {
caml_collect_alloc_stats_sample(domain, &alloc_stats);
caml_reset_domain_alloc_stats(domain);
- /* push them into the oprhan stats */
+ /* push them into the orphan stats */
caml_plat_lock(&orphan_lock);
caml_accum_alloc_stats(&orphaned_alloc_stats, &alloc_stats);
caml_plat_unlock(&orphan_lock);
diff --git a/runtime/interp.c b/runtime/interp.c
index 891096debf..92f6dd7d3e 100644
--- a/runtime/interp.c
+++ b/runtime/interp.c
@@ -1211,8 +1211,7 @@ value caml_interprete(code_t prog, asize_t prog_size)
accu = Val_int(*pc++);
/* We use relaxed atomic accesses to avoid racing with other domains
updating the cache */
- ofs = atomic_load_explicit((_Atomic opcode_t *)pc, memory_order_relaxed)
- & Field(meths,1);
+ ofs = atomic_load_relaxed((_Atomic opcode_t *)pc) & Field(meths,1);
if (*(value*)(((char*)&Field(meths,3)) + ofs) == accu) {
#ifdef CAML_TEST_CACHE
hits++;
@@ -1227,8 +1226,7 @@ value caml_interprete(code_t prog, asize_t prog_size)
if (accu < Field(meths,mi)) hi = mi-2;
else li = mi;
}
- atomic_store_explicit((_Atomic opcode_t *)pc, (li-3)*sizeof(value),
- memory_order_relaxed);
+ atomic_store_relaxed((_Atomic opcode_t *)pc, (li-3)*sizeof(value));
accu = Field (meths, li-1);
}
pc++;
diff --git a/runtime/lf_skiplist.c b/runtime/lf_skiplist.c
index 6cbe46d874..59434fee82 100644
--- a/runtime/lf_skiplist.c
+++ b/runtime/lf_skiplist.c
@@ -74,8 +74,7 @@ static int random_level(void) {
(Knuth vol 2 p. 106, line 15 of table 1), additive = 25173. */
while( 1 ) {
- uint32_t curr =
- atomic_load_explicit(&random_seed, memory_order_relaxed);
+ uint32_t curr = atomic_load_relaxed(&random_seed);
r = curr * 69069 + 25173;
@@ -97,7 +96,7 @@ static int random_level(void) {
/* Initialize a skip list */
void caml_lf_skiplist_init(struct lf_skiplist *sk) {
- atomic_store_explicit(&sk->search_level, 0, memory_order_relaxed);
+ atomic_store_relaxed(&sk->search_level, 0);
/* This concurrent skip list has two sentinel nodes, the first [head] is
less than any possible key in the data structure and the second [tail] is
@@ -125,11 +124,9 @@ void caml_lf_skiplist_init(struct lf_skiplist *sk) {
/* each level in the skip list starts of being just head pointing to tail */
for (int j = 0; j < NUM_LEVELS; j++) {
- atomic_store_explicit
- (&sk->head->forward[j], sk->tail, memory_order_release);
+ atomic_store_release(&sk->head->forward[j], sk->tail);
- atomic_store_explicit
- (&sk->tail->forward[j], NULL, memory_order_release);
+ atomic_store_release(&sk->tail->forward[j], NULL);
}
}
@@ -172,8 +169,7 @@ retry:
compare-and-swap.
*/
for (int level = NUM_LEVELS - 1; level >= 0; level--) {
- curr = LF_SK_UNMARK(
- atomic_load_explicit(&pred->forward[level], memory_order_acquire));
+ curr = LF_SK_UNMARK(atomic_load_acquire(&pred->forward[level]));
while (1) {
int is_marked;
@@ -210,10 +206,9 @@ retry:
This is why we need to a retry loop and yet another CAS. */
while (1) {
struct lf_skipcell *_Atomic current_garbage_head =
- atomic_load_explicit(&sk->garbage_head, memory_order_acquire);
+ atomic_load_acquire(&sk->garbage_head);
- atomic_store_explicit(&curr->garbage_next, current_garbage_head,
- memory_order_release);
+ atomic_store_release(&curr->garbage_next, current_garbage_head);
if (atomic_compare_exchange_strong(
&sk->garbage_head,
@@ -225,8 +220,7 @@ retry:
/* Now try to load the current node again. We need to check it too
hasn't been marked. If it has we repeat the process */
- curr = LF_SK_UNMARK(atomic_load_explicit(&pred->forward[level],
- memory_order_acquire));
+ curr = LF_SK_UNMARK(atomic_load_acquire(&pred->forward[level]));
LF_SK_EXTRACT(curr->forward[level], is_marked, succ);
}
@@ -271,11 +265,9 @@ static struct lf_skipcell *lf_skiplist_lookup(struct lf_skiplist *sk,
level then our only cost is an increased number of nodes searched. If we
did the same thing in the find function above then we'd also fail to snip
out marked nodes. If we did that for long enough we might leak memory. */
- for (int level =
- atomic_load_explicit(&sk->search_level, memory_order_relaxed);
+ for (int level = atomic_load_relaxed(&sk->search_level);
level >= 0; level--) {
- curr = LF_SK_UNMARK(
- atomic_load_explicit(&pred->forward[level], memory_order_acquire));
+ curr = LF_SK_UNMARK(atomic_load_acquire(&pred->forward[level]));
while (1) {
LF_SK_EXTRACT(curr->forward[level], marked, succ);
while (marked) {
@@ -355,8 +347,7 @@ int caml_lf_skiplist_insert(struct lf_skiplist *sk, uintnat key, uintnat data) {
if (found) {
/* Already present; update data */
- atomic_store_explicit((atomic_uintnat*)&succs[0]->data, data,
- memory_order_relaxed);
+ atomic_store_relaxed((atomic_uintnat*)&succs[0]->data, data);
return 1;
} else {
/* node does not exist. We need to generate a random top_level and
@@ -374,11 +365,10 @@ int caml_lf_skiplist_insert(struct lf_skiplist *sk, uintnat key, uintnat data) {
new_cell->top_level = top_level;
new_cell->key = key;
new_cell->data = data;
- atomic_store_explicit(&new_cell->garbage_next,NULL,memory_order_relaxed);
+ atomic_store_relaxed(&new_cell->garbage_next,NULL);
for (int level = 0; level <= top_level; level++) {
- atomic_store_explicit(&new_cell->forward[level], succs[level],
- memory_order_release);
+ atomic_store_release(&new_cell->forward[level], succs[level]);
}
/* Now we need to actually slip the node in. We start at the bottom-most
@@ -426,10 +416,8 @@ int caml_lf_skiplist_insert(struct lf_skiplist *sk, uintnat key, uintnat data) {
/* If we put the new node at a higher level than the current
[search_level] then to speed up searches we need to bump it. We don't
care too much if this fails though. */
- if (top_level >
- atomic_load_explicit(&sk->search_level, memory_order_relaxed)) {
- atomic_store_explicit(&sk->search_level, top_level,
- memory_order_relaxed);
+ if (top_level > atomic_load_relaxed(&sk->search_level)) {
+ atomic_store_relaxed(&sk->search_level, top_level);
}
return 1;
@@ -500,17 +488,15 @@ int caml_lf_skiplist_remove(struct lf_skiplist *sk, uintnat key) {
skiplist */
void caml_lf_skiplist_free_garbage(struct lf_skiplist *sk) {
- struct lf_skipcell *curr =
- atomic_load_explicit(&sk->garbage_head, memory_order_acquire);
+ struct lf_skipcell *curr = atomic_load_acquire(&sk->garbage_head);
struct lf_skipcell *head = sk->head;
while (curr != head) {
- struct lf_skipcell *next = atomic_load_explicit
- (&curr->garbage_next, memory_order_relaxed);
+ struct lf_skipcell *next = atomic_load_relaxed(&curr->garbage_next);
// acquire not useful, if executed in STW
caml_stat_free(curr);
curr = next;
}
- atomic_store_explicit(&sk->garbage_head, sk->head, memory_order_release);
+ atomic_store_release(&sk->garbage_head, sk->head);
}
diff --git a/runtime/major_gc.c b/runtime/major_gc.c
index 3ed9bba0a8..7f1dac022d 100644
--- a/runtime/major_gc.c
+++ b/runtime/major_gc.c
@@ -44,14 +44,14 @@
#define MARK_STACK_INIT_SIZE (1 << 12)
/* The mark stack consists of two parts:
- 1. the stack - consisting of spans of fields that need to be marked, and
- 2. the compressed stack - consisting of entries (k, bitfield)
- where the bitfield represents word offsets from k that need to
- be marked.
+ 1. the stack - a dynamic array of spans of fields that need to be marked, and
+ 2. the compressed stack - a bitset of fields that need to be marked.
The stack is bounded relative to the heap size. When the stack
overflows the bound, then entries from the stack are compressed and
- transferred into the compressed stack.
+ transferred into the compressed stack, expect for "large" entries,
+ spans of more than BITS_PER_WORD entries, that are more compactly
+ represented as spans and remain on the uncompressed stack.
When the stack is empty, the compressed stack is processed.
The compressed stack iterator marks the point up to which
@@ -196,8 +196,8 @@ static void ephe_next_cycle (void)
caml_plat_lock(&ephe_lock);
atomic_fetch_add(&ephe_cycle_info.ephe_cycle, +1);
- CAMLassert(atomic_load_acq(&ephe_cycle_info.num_domains_done) <=
- atomic_load_acq(&ephe_cycle_info.num_domains_todo));
+ CAMLassert(atomic_load_acquire(&ephe_cycle_info.num_domains_done) <=
+ atomic_load_acquire(&ephe_cycle_info.num_domains_todo));
atomic_store(&ephe_cycle_info.num_domains_done, 0);
caml_plat_unlock(&ephe_lock);
@@ -216,8 +216,8 @@ static void ephe_todo_list_emptied (void)
/* Since the todo list is empty, this domain does not need to participate in
* further ephemeron cycles. */
atomic_fetch_add(&ephe_cycle_info.num_domains_todo, -1);
- CAMLassert(atomic_load_acq(&ephe_cycle_info.num_domains_done) <=
- atomic_load_acq(&ephe_cycle_info.num_domains_todo));
+ CAMLassert(atomic_load_acquire(&ephe_cycle_info.num_domains_done) <=
+ atomic_load_acquire(&ephe_cycle_info.num_domains_todo));
caml_plat_unlock(&ephe_lock);
}
@@ -225,18 +225,18 @@ static void ephe_todo_list_emptied (void)
/* Record that ephemeron marking was done for the given ephemeron cycle. */
static void record_ephe_marking_done (uintnat ephe_cycle)
{
- CAMLassert (ephe_cycle <= atomic_load_acq(&ephe_cycle_info.ephe_cycle));
+ CAMLassert (ephe_cycle <= atomic_load_acquire(&ephe_cycle_info.ephe_cycle));
CAMLassert (Caml_state->marking_done);
- if (ephe_cycle < atomic_load_acq(&ephe_cycle_info.ephe_cycle))
+ if (ephe_cycle < atomic_load_acquire(&ephe_cycle_info.ephe_cycle))
return;
caml_plat_lock(&ephe_lock);
if (ephe_cycle == atomic_load(&ephe_cycle_info.ephe_cycle)) {
Caml_state->ephe_info->cycle = ephe_cycle;
atomic_fetch_add(&ephe_cycle_info.num_domains_done, +1);
- CAMLassert(atomic_load_acq(&ephe_cycle_info.num_domains_done) <=
- atomic_load_acq(&ephe_cycle_info.num_domains_todo));
+ CAMLassert(atomic_load_acquire(&ephe_cycle_info.num_domains_done) <=
+ atomic_load_acquire(&ephe_cycle_info.num_domains_todo));
}
caml_plat_unlock(&ephe_lock);
}
@@ -939,10 +939,22 @@ again:
return budget;
}
-/* compressed mark stack */
-#define PAGE_MASK (~(uintnat)(BITS_PER_WORD-1))
-#define PTR_TO_PAGE(v) (((uintnat)(v)/sizeof(value)) & PAGE_MASK)
-#define PTR_TO_PAGE_OFFSET(v) ((((uintnat)(v)/sizeof(value)) & ~PAGE_MASK))
+/* Compressed mark stack
+
+ We use a bitset, implemented as a hashtable storing word-sized
+ integers (uintnat). Each integer represents a "chunk" of addresses
+ that may or may not be present in the stack.
+ */
+static const uintnat chunk_mask = ~(uintnat)(BITS_PER_WORD-1);
+static inline uintnat ptr_to_chunk(value *ptr) {
+ return ((uintnat)(ptr) / sizeof(value)) & chunk_mask;
+}
+static inline uintnat ptr_to_chunk_offset(value *ptr) {
+ return ((uintnat)(ptr) / sizeof(value)) & ~chunk_mask;
+}
+static inline value* chunk_and_offset_to_ptr(uintnat chunk, uintnat offset) {
+ return (value*)((chunk + offset) * sizeof(value));
+}
/* mark until the budget runs out or marking is done */
static intnat mark(intnat budget) {
@@ -950,12 +962,11 @@ static intnat mark(intnat budget) {
while (budget > 0 && !domain_state->marking_done) {
budget = do_some_marking(domain_state->mark_stack, budget);
if (budget > 0) {
- int i;
struct mark_stack* mstk = domain_state->mark_stack;
addrmap_iterator it = mstk->compressed_stack_iter;
if (caml_addrmap_iter_ok(&mstk->compressed_stack, it)) {
- uintnat k = caml_addrmap_iter_key(&mstk->compressed_stack, it);
- value v = caml_addrmap_iter_value(&mstk->compressed_stack, it);
+ uintnat chunk = caml_addrmap_iter_key(&mstk->compressed_stack, it);
+ uintnat bitset = caml_addrmap_iter_value(&mstk->compressed_stack, it);
/* NB: must update the iterator here, as possible that
mark_slice_darken could lead to the mark stack being pruned
@@ -963,9 +974,9 @@ static intnat mark(intnat budget) {
mstk->compressed_stack_iter =
caml_addrmap_next(&mstk->compressed_stack, it);
- for(i=0; i<BITS_PER_WORD; i++) {
- if(v & ((uintnat)1 << i)) {
- value* p = (value*)((k + i)*sizeof(value));
+ for(int ofs=0; ofs<BITS_PER_WORD; ofs++) {
+ if(bitset & ((uintnat)1 << ofs)) {
+ value* p = chunk_and_offset_to_ptr(chunk, ofs);
mark_slice_darken(domain_state->mark_stack, *p, &budget);
}
}
@@ -998,10 +1009,8 @@ void caml_darken_cont(value cont)
if (Ptr_val(stk) != NULL)
caml_scan_stack(&caml_darken, darken_scanning_flags, Caml_state,
Ptr_val(stk), 0);
- atomic_store_explicit(
- Hp_atomic_val(cont),
- With_status_hd(hd, caml_global_heap_state.MARKED),
- memory_order_release);
+ atomic_store_release(Hp_atomic_val(cont),
+ With_status_hd(hd, caml_global_heap_state.MARKED));
}
}
}
@@ -1157,8 +1166,8 @@ static void cycle_all_domains_callback(caml_domain_state* domain, void* unused,
CAML_EV_BEGIN(EV_MAJOR_GC_CYCLE_DOMAINS);
CAMLassert(domain == Caml_state);
- CAMLassert(atomic_load_acq(&ephe_cycle_info.num_domains_todo) ==
- atomic_load_acq(&ephe_cycle_info.num_domains_done));
+ CAMLassert(atomic_load_acquire(&ephe_cycle_info.num_domains_todo) ==
+ atomic_load_acquire(&ephe_cycle_info.num_domains_done));
CAMLassert(atomic_load(&num_domains_to_mark) == 0);
CAMLassert(atomic_load(&num_domains_to_sweep) == 0);
CAMLassert(atomic_load(&num_domains_to_ephe_sweep) == 0);
@@ -1235,20 +1244,22 @@ static void cycle_all_domains_callback(caml_domain_state* domain, void* unused,
domain->swept_words = 0;
num_domains_in_stw = (uintnat)caml_global_barrier_num_domains();
- atomic_store_rel(&num_domains_to_sweep, num_domains_in_stw);
- atomic_store_rel(&num_domains_to_mark, num_domains_in_stw);
+ atomic_store_release(&num_domains_to_sweep, num_domains_in_stw);
+ atomic_store_release(&num_domains_to_mark, num_domains_in_stw);
caml_gc_phase = Phase_sweep_and_mark_main;
atomic_store(&ephe_cycle_info.num_domains_todo, num_domains_in_stw);
atomic_store(&ephe_cycle_info.ephe_cycle, 1);
atomic_store(&ephe_cycle_info.num_domains_done, 0);
- atomic_store_rel(&num_domains_to_ephe_sweep, 0);
+ atomic_store_release(&num_domains_to_ephe_sweep, 0);
/* Will be set to the correct number when switching to
[Phase_sweep_ephe] */
- atomic_store_rel(&num_domains_to_final_update_first, num_domains_in_stw);
- atomic_store_rel(&num_domains_to_final_update_last, num_domains_in_stw);
+ atomic_store_release(&num_domains_to_final_update_first,
+ num_domains_in_stw);
+ atomic_store_release(&num_domains_to_final_update_last,
+ num_domains_in_stw);
atomic_store(&domain_global_roots_started, WORK_UNSTARTED);
@@ -1355,11 +1366,11 @@ static int is_complete_phase_sweep_and_mark_main (void)
{
return
caml_gc_phase == Phase_sweep_and_mark_main &&
- atomic_load_acq (&num_domains_to_sweep) == 0 &&
- atomic_load_acq (&num_domains_to_mark) == 0 &&
+ atomic_load_acquire (&num_domains_to_sweep) == 0 &&
+ atomic_load_acquire (&num_domains_to_mark) == 0 &&
/* Marking is done */
- atomic_load_acq(&ephe_cycle_info.num_domains_todo) ==
- atomic_load_acq(&ephe_cycle_info.num_domains_done) &&
+ atomic_load_acquire(&ephe_cycle_info.num_domains_todo) ==
+ atomic_load_acquire(&ephe_cycle_info.num_domains_done) &&
/* Ephemeron marking is done */
no_orphaned_work();
/* All orphaned ephemerons have been adopted */
@@ -1369,12 +1380,12 @@ static int is_complete_phase_mark_final (void)
{
return
caml_gc_phase == Phase_mark_final &&
- atomic_load_acq (&num_domains_to_final_update_first) == 0 &&
+ atomic_load_acquire (&num_domains_to_final_update_first) == 0 &&
/* updated finalise first values */
- atomic_load_acq (&num_domains_to_mark) == 0 &&
+ atomic_load_acquire (&num_domains_to_mark) == 0 &&
/* Marking is done */
- atomic_load_acq(&ephe_cycle_info.num_domains_todo) ==
- atomic_load_acq(&ephe_cycle_info.num_domains_done) &&
+ atomic_load_acquire(&ephe_cycle_info.num_domains_todo) ==
+ atomic_load_acquire(&ephe_cycle_info.num_domains_done) &&
/* Ephemeron marking is done */
no_orphaned_work();
/* All orphaned ephemerons have been adopted */
@@ -1384,9 +1395,9 @@ static int is_complete_phase_sweep_ephe (void)
{
return
caml_gc_phase == Phase_sweep_ephe &&
- atomic_load_acq (&num_domains_to_ephe_sweep) == 0 &&
+ atomic_load_acquire (&num_domains_to_ephe_sweep) == 0 &&
/* All domains have swept their ephemerons */
- atomic_load_acq (&num_domains_to_final_update_last) == 0 &&
+ atomic_load_acquire (&num_domains_to_final_update_last) == 0 &&
/* All domains have updated finalise last values */
no_orphaned_work();
/* All orphaned structures have been adopted */
@@ -1405,7 +1416,7 @@ static void try_complete_gc_phase (caml_domain_state* domain, void* unused,
caml_gc_phase = Phase_mark_final;
} else if (is_complete_phase_mark_final()) {
caml_gc_phase = Phase_sweep_ephe;
- atomic_store_rel(&num_domains_to_ephe_sweep, participant_count);
+ atomic_store_release(&num_domains_to_ephe_sweep, participant_count);
for (int i = 0; i < participant_count; i++)
participating[i]->ephe_info->must_sweep_ephe = 1;
}
@@ -1549,7 +1560,7 @@ mark_again:
/* Ephemerons */
if (caml_gc_phase != Phase_sweep_ephe) {
/* Ephemeron Marking */
- saved_ephe_cycle = atomic_load_acq(&ephe_cycle_info.ephe_cycle);
+ saved_ephe_cycle = atomic_load_acquire(&ephe_cycle_info.ephe_cycle);
if (domain_state->ephe_info->todo != (value) NULL &&
saved_ephe_cycle > domain_state->ephe_info->cycle) {
CAML_EV_BEGIN(EV_MAJOR_EPHE_MARK);
@@ -1756,19 +1767,20 @@ void caml_finish_sweeping (void)
CAML_EV_END(EV_MAJOR_FINISH_SWEEPING);
}
-Caml_inline int add_addr(struct addrmap* amap, value v) {
- uintnat k = PTR_TO_PAGE(v);
- uintnat flag = (uintnat)1 << PTR_TO_PAGE_OFFSET(v);
+Caml_inline int add_addr(struct addrmap* amap, value* ptr) {
+ uintnat chunk = ptr_to_chunk(ptr);
+ uintnat offset = ptr_to_chunk_offset(ptr);
+ uintnat flag = (uintnat)1 << offset;
int new_entry = 0;
- value* amap_pos = caml_addrmap_insert_pos(amap, k);
+ value* amap_pos = caml_addrmap_insert_pos(amap, chunk);
if (*amap_pos == ADDRMAP_NOT_PRESENT) {
new_entry = 1;
*amap_pos = 0;
}
- CAMLassert(v == (value)((k + PTR_TO_PAGE_OFFSET(v))*sizeof(value)));
+ CAMLassert(ptr == chunk_and_offset_to_ptr(chunk, offset));
if (!(*amap_pos & flag)) {
*amap_pos |= flag;
@@ -1813,7 +1825,7 @@ static void mark_stack_prune(struct mark_stack* stk)
} else {
while(me.start < me.end) {
compressed_entries += add_addr(&stk->compressed_stack,
- (uintnat)me.start);
+ me.start);
me.start++;
}
}
diff --git a/runtime/memory.c b/runtime/memory.c
index 3af3a6f72b..1907d5ce84 100644
--- a/runtime/memory.c
+++ b/runtime/memory.c
@@ -152,8 +152,7 @@ CAMLexport CAMLweakdef void caml_modify (volatile value *fp, value val)
/* See Note [MM] above */
atomic_thread_fence(memory_order_acquire);
- atomic_store_explicit(&Op_atomic_val((value)fp)[0], val,
- memory_order_release);
+ atomic_store_release(&Op_atomic_val((value)fp)[0], val);
}
/* Dependent memory is all memory blocks allocated out of the heap
diff --git a/runtime/minor_gc.c b/runtime/minor_gc.c
index 55476b9026..faad61c915 100644
--- a/runtime/minor_gc.c
+++ b/runtime/minor_gc.c
@@ -172,7 +172,7 @@ static void spin_on_header(value v) {
}
Caml_inline header_t get_header_val(value v) {
- header_t hd = atomic_load_explicit(Hp_atomic_val(v), memory_order_acquire);
+ header_t hd = atomic_load_acquire(Hp_atomic_val(v));
if (!Is_update_in_progress(hd))
return hd;
@@ -210,9 +210,9 @@ static int try_update_object_header(value v, volatile value *p, value result,
header_t desired_hd = In_progress_update_val;
if( atomic_compare_exchange_strong(Hp_atomic_val(v), &hd, desired_hd) ) {
/* Success. Now we can write the forwarding pointer. */
- atomic_store_explicit(Op_atomic_val(v), result, memory_order_relaxed);
+ atomic_store_relaxed(Op_atomic_val(v), result);
/* And update header ('release' ensures after update of fwd pointer) */
- atomic_store_rel(Hp_atomic_val(v), 0);
+ atomic_store_release(Hp_atomic_val(v), 0);
/* Let the caller know we were responsible for the update */
success = 1;
} else {
@@ -675,7 +675,7 @@ void caml_do_opportunistic_major_slice
if needed.
*/
void caml_empty_minor_heap_setup(caml_domain_state* domain_unused) {
- atomic_store_explicit(&domains_finished_minor_gc, 0, memory_order_release);
+ atomic_store_release(&domains_finished_minor_gc, 0);
/* Increment the total number of minor collections done in the program */
atomic_fetch_add (&caml_minor_collections_count, 1);
}
@@ -706,10 +706,8 @@ caml_stw_empty_minor_heap_no_major_slice(caml_domain_state* domain,
CAML_EV_BEGIN(EV_MINOR_LEAVE_BARRIER);
{
SPIN_WAIT {
- if( atomic_load_explicit
- (&domains_finished_minor_gc, memory_order_acquire)
- ==
- participating_count ) {
+ if (atomic_load_acquire(&domains_finished_minor_gc) ==
+ participating_count) {
break;
}
diff --git a/runtime/misc.c b/runtime/misc.c
index 43fc5d600a..fd584cb719 100644
--- a/runtime/misc.c
+++ b/runtime/misc.c
@@ -30,6 +30,7 @@ __declspec(noreturn) void __cdecl abort(void);
#include <stdarg.h>
#include <stdlib.h>
#include "caml/config.h"
+#include "caml/fail.h"
#include "caml/misc.h"
#include "caml/memory.h"
#include "caml/osdeps.h"
@@ -136,20 +137,35 @@ CAMLexport void caml_fatal_error_arg2 (const char *fmt1, const char *arg1,
exit(2);
}
+#ifdef ARCH_SIXTYFOUR
+#define MAX_EXT_TABLE_CAPACITY INT_MAX
+#else
+#define MAX_EXT_TABLE_CAPACITY ((asize_t) (-1) / sizeof(void *))
+#endif
+
void caml_ext_table_init(struct ext_table * tbl, int init_capa)
{
+ CAMLassert (init_capa <= MAX_EXT_TABLE_CAPACITY);
tbl->size = 0;
tbl->capacity = init_capa;
- tbl->contents = caml_stat_alloc(sizeof(void *) * init_capa);
+ tbl->contents = caml_stat_alloc(sizeof(void *) * (asize_t) init_capa);
}
-int caml_ext_table_add(struct ext_table * tbl, caml_stat_block data)
+int caml_ext_table_add_noexc(struct ext_table * tbl, caml_stat_block data)
{
int res;
if (tbl->size >= tbl->capacity) {
- tbl->capacity *= 2;
- tbl->contents =
- caml_stat_resize(tbl->contents, sizeof(void *) * tbl->capacity);
+ if (tbl->capacity == MAX_EXT_TABLE_CAPACITY) return -1; /* overflow */
+ int new_capacity =
+ tbl->capacity <= MAX_EXT_TABLE_CAPACITY / 2
+ ? tbl->capacity * 2
+ : MAX_EXT_TABLE_CAPACITY;
+ void ** new_contents =
+ caml_stat_resize_noexc(tbl->contents,
+ sizeof(void *) * (asize_t) new_capacity);
+ if (new_contents == NULL) return -1;
+ tbl->capacity = new_capacity;
+ tbl->contents = new_contents;
}
res = tbl->size;
tbl->contents[res] = data;
@@ -157,6 +173,13 @@ int caml_ext_table_add(struct ext_table * tbl, caml_stat_block data)
return res;
}
+int caml_ext_table_add(struct ext_table * tbl, caml_stat_block data)
+{
+ int res = caml_ext_table_add_noexc(tbl, data);
+ if (res == -1) caml_raise_out_of_memory();
+ return res;
+}
+
void caml_ext_table_remove(struct ext_table * tbl, caml_stat_block data)
{
int i;
diff --git a/runtime/obj.c b/runtime/obj.c
index cdaa4c1766..56db69f5fa 100644
--- a/runtime/obj.c
+++ b/runtime/obj.c
@@ -44,7 +44,7 @@ static int obj_tag (value arg)
/* The acquire load ensures that reading the field of a Forward_tag
block in stdlib/camlinternalLazy.ml:force_gen has the necessary
synchronization. */
- hd = (header_t)atomic_load_acq(Hp_atomic_val(arg));
+ hd = (header_t)atomic_load_acquire(Hp_atomic_val(arg));
return Tag_hd(hd);
}
}
diff --git a/runtime/platform.c b/runtime/platform.c
index 34544b8bf5..b3bf88a7aa 100644
--- a/runtime/platform.c
+++ b/runtime/platform.c
@@ -165,7 +165,7 @@ void* caml_mem_map(uintnat size, uintnat alignment, int reserve_only)
if (mmap_blocks.head == NULL) {
/* The first call to caml_mem_map should be during caml_init_domains, called
by caml_init_gc during startup - i.e. before any domains have started. */
- CAMLassert(atomic_load_acq(&caml_num_domains_running) <= 1);
+ CAMLassert(atomic_load_acquire(&caml_num_domains_running) <= 1);
caml_lf_skiplist_init(&mmap_blocks);
}
#endif
diff --git a/runtime/runtime_events.c b/runtime/runtime_events.c
index 921b3cd538..1e5e141c0f 100644
--- a/runtime/runtime_events.c
+++ b/runtime/runtime_events.c
@@ -182,7 +182,7 @@ static void runtime_events_teardown_raw(int remove_file) {
caml_stat_free(current_ring_loc);
current_metadata = NULL;
- atomic_store_rel(&runtime_events_enabled, 0);
+ atomic_store_release(&runtime_events_enabled, 0);
}
/* Stop-the-world which calls the teardown code */
@@ -204,7 +204,7 @@ void caml_runtime_events_post_fork(void) {
new domain can have run yet. Let's be double sure. */
CAMLassert(caml_domain_alone());
- if (atomic_load_acq(&runtime_events_enabled)) {
+ if (atomic_load_acquire(&runtime_events_enabled)) {
/* In the child we need to tear down the various structures used for the
existing runtime_events from the parent. In doing so we need to make sure we
don't remove the runtime_events file itself as that may still be used by
@@ -220,7 +220,7 @@ void caml_runtime_events_post_fork(void) {
/* Return the current location for the ring buffers of this process. This is
used in the consumer to read the ring buffers of the current process */
char_os* caml_runtime_events_current_location(void) {
- if( atomic_load_acq(&runtime_events_enabled) ) {
+ if( atomic_load_acquire(&runtime_events_enabled) ) {
return current_ring_loc;
} else {
return NULL;
@@ -230,7 +230,7 @@ char_os* caml_runtime_events_current_location(void) {
/* Write a lifecycle event and then trigger a stop the world to tear down the
ring buffers */
void caml_runtime_events_destroy(void) {
- if (atomic_load_acq(&runtime_events_enabled)) {
+ if (atomic_load_acquire(&runtime_events_enabled)) {
write_to_ring(
EV_RUNTIME, (ev_message_type){.runtime=EV_LIFECYCLE}, EV_RING_STOP, 0,
NULL, 0);
@@ -242,7 +242,7 @@ void caml_runtime_events_destroy(void) {
caml_try_run_on_all_domains(&stw_teardown_runtime_events,
&remove_file, NULL);
}
- while( atomic_load_acq(&runtime_events_enabled) );
+ while( atomic_load_acquire(&runtime_events_enabled) );
}
}
@@ -251,7 +251,7 @@ void caml_runtime_events_destroy(void) {
domain running. */
static void runtime_events_create_raw(void) {
/* Don't initialise runtime_events twice */
- if (!atomic_load_acq(&runtime_events_enabled)) {
+ if (!atomic_load_acquire(&runtime_events_enabled)) {
int ret, ring_headers_length, ring_data_length;
#ifdef _WIN32
DWORD pid = GetCurrentProcessId();
@@ -386,10 +386,10 @@ static void runtime_events_create_raw(void) {
// runtime_events_enabled to 1
caml_plat_lock(&user_events_lock);
value current_user_event = user_events;
- atomic_store_rel(&runtime_events_enabled, 1);
+ atomic_store_release(&runtime_events_enabled, 1);
caml_plat_unlock(&user_events_lock);
- atomic_store_rel(&runtime_events_paused, 0);
+ atomic_store_release(&runtime_events_paused, 0);
caml_ev_lifecycle(EV_RING_START, pid);
@@ -421,7 +421,7 @@ stw_create_runtime_events(caml_domain_state *domain_state, void *data,
}
CAMLprim value caml_runtime_events_start(void) {
- while (!atomic_load_acq(&runtime_events_enabled)) {
+ while (!atomic_load_acquire(&runtime_events_enabled)) {
caml_try_run_on_all_domains(&stw_create_runtime_events, NULL, NULL);
}
@@ -429,7 +429,7 @@ CAMLprim value caml_runtime_events_start(void) {
}
CAMLprim value caml_runtime_events_pause(void) {
- if (!atomic_load_acq(&runtime_events_enabled)) return Val_unit;
+ if (!atomic_load_acquire(&runtime_events_enabled)) return Val_unit;
uintnat not_paused = 0;
@@ -441,7 +441,7 @@ CAMLprim value caml_runtime_events_pause(void) {
}
CAMLprim value caml_runtime_events_resume(void) {
- if (!atomic_load_acq(&runtime_events_enabled)) return Val_unit;
+ if (!atomic_load_acquire(&runtime_events_enabled)) return Val_unit;
uintnat paused = 1;
@@ -478,10 +478,8 @@ static void write_to_ring(ev_category category, ev_message_type type,
/* the head and tail indexes for the current domain's ring buffer (out of
the header) */
- uint64_t ring_head = atomic_load_explicit(&domain_ring_header->ring_head,
- memory_order_acquire);
- uint64_t ring_tail = atomic_load_explicit(&domain_ring_header->ring_tail,
- memory_order_acquire);
+ uint64_t ring_head = atomic_load_acquire(&domain_ring_header->ring_head);
+ uint64_t ring_tail = atomic_load_acquire(&domain_ring_header->ring_tail);
/* since rings can only be powers of two in size, we use this mask to cheaply
convert the head and tail indexes in to the physical offset in the ring
@@ -519,8 +517,8 @@ static void write_to_ring(ev_category category, ev_message_type type,
ring_head += RUNTIME_EVENTS_ITEM_LENGTH(head_header);
- atomic_store_explicit(&domain_ring_header->ring_head, ring_head,
- memory_order_release); // advance the ring head
+ // advance the ring head
+ atomic_store_release(&domain_ring_header->ring_head, ring_head);
}
if (padding_required > 0) {
@@ -532,8 +530,7 @@ static void write_to_ring(ev_category category, ev_message_type type,
ring_tail += ring_distance_to_end;
- atomic_store_explicit(&domain_ring_header->ring_tail, ring_tail,
- memory_order_release);
+ atomic_store_release(&domain_ring_header->ring_tail, ring_tail);
ring_tail_offset = 0;
}
@@ -553,17 +550,16 @@ static void write_to_ring(ev_category category, ev_message_type type,
memcpy(&ring_ptr[ring_tail_offset], content + word_offset,
event_length * sizeof(uint64_t));
}
- atomic_store_explicit(&domain_ring_header->ring_tail,
- ring_tail + length_with_header_ts,
- memory_order_release);
+ atomic_store_release(&domain_ring_header->ring_tail,
+ ring_tail + length_with_header_ts);
}
/* Functions for putting runtime data on to the runtime_events */
static inline int ring_is_active(void) {
return
- atomic_load_explicit(&runtime_events_enabled, memory_order_relaxed)
- && !atomic_load_explicit(&runtime_events_paused, memory_order_relaxed);
+ atomic_load_relaxed(&runtime_events_enabled)
+ && !atomic_load_relaxed(&runtime_events_paused);
}
void caml_ev_begin(ev_runtime_phase phase) {
@@ -680,7 +676,7 @@ CAMLprim value caml_runtime_events_user_register(value event_name,
// critical section: when we update the user_events list we need to make sure
// it is not updated while we construct the pointer to the next element
- if (atomic_load_acq(&runtime_events_enabled)) {
+ if (atomic_load_acquire(&runtime_events_enabled)) {
// Ring buffer is already available, we register the name
events_register_write_buffer(index, event_name);
}
diff --git a/runtime/shared_heap.c b/runtime/shared_heap.c
index 0859801a01..19888b9751 100644
--- a/runtime/shared_heap.c
+++ b/runtime/shared_heap.c
@@ -480,7 +480,7 @@ static intnat pool_sweep(struct caml_heap_state* local, pool** plist,
{
int i;
mlsize_t wo = Wosize_whsize(wh);
- for (i = 2; i < wo; i++) {
+ for (i = 1; i < wo; i++) {
Field(Val_hp(p), i) = Debug_free_major;
}
}
diff --git a/runtime/signals.c b/runtime/signals.c
index cf9774d199..5a21024ad4 100644
--- a/runtime/signals.c
+++ b/runtime/signals.c
@@ -285,7 +285,7 @@ CAMLno_tsan /* When called from [caml_record_signal], these memory
void caml_set_action_pending(caml_domain_state * dom_st)
{
dom_st->action_pending = 1;
- atomic_store_rel(&dom_st->young_limit, (uintnat)-1);
+ atomic_store_release(&dom_st->young_limit, (uintnat)-1);
}
CAMLexport int caml_check_pending_actions(void)
diff --git a/runtime/sys.c b/runtime/sys.c
index 0c93b788b1..26c7246b00 100644
--- a/runtime/sys.c
+++ b/runtime/sys.c
@@ -169,7 +169,7 @@ CAMLexport void caml_do_exit(int retcode)
(intnat) majwords);
caml_gc_message(0x400,
"minor_collections: %"ARCH_INTNAT_PRINTF_FORMAT"d\n",
- (intnat) s.alloc_stats.minor_collections);
+ (intnat) atomic_load(&caml_minor_collections_count));
caml_gc_message(0x400,
"major_collections: %"ARCH_INTNAT_PRINTF_FORMAT"d\n",
caml_major_cycles_completed);
diff --git a/runtime/unix.c b/runtime/unix.c
index 0877ec37a0..a71980497c 100644
--- a/runtime/unix.c
+++ b/runtime/unix.c
@@ -354,7 +354,8 @@ CAMLexport int caml_read_directory(char * dirname, struct ext_table * contents)
e = readdir(d);
if (e == NULL) break;
if (strcmp(e->d_name, ".") == 0 || strcmp(e->d_name, "..") == 0) continue;
- caml_ext_table_add(contents, caml_stat_strdup(e->d_name));
+ int rc = caml_ext_table_add_noexc(contents, caml_stat_strdup(e->d_name));
+ if (rc == -1) { closedir(d); errno = ENOMEM; return -1; }
}
closedir(d);
return 0;
diff --git a/runtime/weak.c b/runtime/weak.c
index 1c5444b524..6ac6e22568 100644
--- a/runtime/weak.c
+++ b/runtime/weak.c
@@ -275,61 +275,93 @@ CAMLprim value caml_weak_get (value ar, value n)
return caml_ephe_get_key(ar, n);
}
-static value ephe_get_field_copy (value e, mlsize_t offset)
+/* Copy the contents of an object from `from` to `to` (which is
+ * already allocated and has the necessary header word). Darken
+ * any pointer fields. */
+
+static void ephe_copy_and_darken(value from, value to)
{
- CAMLparam1 (e);
- CAMLlocal2 (res, elt);
- mlsize_t i, infix_offs = 0;
- value v; /* Caution: this is NOT a local root. */
- value f;
+ mlsize_t i = 0; /* size of non-scannable prefix */
- clean_field(e, offset);
- v = Field(e, offset);
- if (v == caml_ephe_none) {
- res = Val_none;
- goto out;
+ CAMLassert(Is_block(from));
+ CAMLassert(Is_block(to));
+ CAMLassert(Tag_val(from) == Tag_val(to));
+ CAMLassert(Tag_val(from) != Infix_tag);
+ CAMLassert(Wosize_val(from) == Wosize_val(to));
+
+ if (Tag_val(from) > No_scan_tag) {
+ i = Wosize_val(to);
+ }
+ else if (Tag_val(from) == Closure_tag) {
+ i = Start_env_closinfo(Closinfo_val(from));
}
- /** Don't copy custom_block #7279 */
- if (Is_block(v) && Tag_val(v) != Custom_tag) {
- if (Tag_val(v) == Infix_tag) {
- infix_offs = Infix_offset_val(v);
- v -= infix_offs;
- }
- elt = caml_alloc (Wosize_val(v), Tag_val(v));
+ /* Copy non-scannable prefix */
+ memcpy (Bp_val(to), Bp_val(from), Bsize_wsize(i));
+
+ /* Copy and darken scannable fields */
+ caml_domain_state* domain_state = Caml_state;
+ while (i < Wosize_val(to)) {
+ value field = Field(from, i);
+ caml_darken (domain_state, field, 0);
+ Store_field(to, i, field);
+ ++ i;
+ }
+}
+static value ephe_get_field_copy (value e, mlsize_t offset)
+{
+ CAMLparam1 (e);
+ CAMLlocal3 (res, val, copy);
+ mlsize_t infix_offs = 0;
+
+ copy = Val_unit;
+ /* Loop in case allocating the copy triggers a GC which modifies the
+ * ephemeron or the value. In the common case, we go around this
+ * loop 1.5 times. */
+ while (1) {
clean_field(e, offset);
- v = Field(e, offset);
- if (v == caml_ephe_none) CAMLreturn (Val_none);
+ val = Field(e, offset);
- if (Tag_val(v) == Infix_tag) {
- infix_offs = Infix_offset_val(v);
- v -= infix_offs;
+ if (val == caml_ephe_none) {
+ res = Val_none;
+ goto out;
}
+ infix_offs = 0;
- if (Tag_val(v) < No_scan_tag) {
- caml_domain_state* domain_state = Caml_state;
- i = 0;
- if (Tag_val (v) == Closure_tag) {
- /* Direct copy of the code pointers and closure info fields */
- i = Start_env_closinfo(Closinfo_val(v));
- memcpy (Bp_val (elt), Bp_val (v), Bsize_wsize (i));
- }
- /* Field-by-field copy and darkening of the remaining fields */
- for (/*nothing*/; i < Wosize_val(v); i++) {
- f = Field(v, i);
- caml_darken (domain_state, f, 0);
- Store_field(elt, i, f);
- }
- } else {
- memmove (Bp_val(elt), Bp_val(v), Bosize_val(v));
+ /* Don't copy immediates or custom blocks #7279 */
+ if (!Is_block(val) || Tag_val(val) == Custom_tag) {
+ copy = val;
+ goto some;
}
- } else {
- Field(e, offset) = elt = v;
+
+ if (Tag_val(val) == Infix_tag) {
+ infix_offs = Infix_offset_val(val);
+ val -= infix_offs;
+ }
+
+ if (copy != Val_unit &&
+ (Tag_val(val) == Tag_val(copy)) &&
+ (Wosize_val(val) == Wosize_val(copy))) {
+ /* The copy we allocated (on a previous iteration) is large
+ * enough and has the right header bits for us to copy the
+ * contents of val into it. Note that we don't care whether val
+ * has changed since we allocated copy. */
+ break;
+ }
+
+ /* This allocation could provoke a GC, which could change the
+ * header or size of val (e.g. in a finalizer). So we go around
+ * the loop to read val again. */
+ copy = caml_alloc (Wosize_val(val), Tag_val(val));
+ val = Val_unit;
}
- res = caml_alloc_small (1, Tag_some);
- Field(res, 0) = elt + infix_offs;
- out:
+
+ ephe_copy_and_darken(val, copy);
+
+some:
+ res = caml_alloc_some(copy + infix_offs);
+out:
/* run GC and memprof callbacks */
caml_process_pending_actions();
CAMLreturn(res);
diff --git a/runtime/win32.c b/runtime/win32.c
index 70c90f7a11..599805145f 100644
--- a/runtime/win32.c
+++ b/runtime/win32.c
@@ -445,7 +445,9 @@ CAMLexport int caml_read_directory(wchar_t * dirname,
}
do {
if (wcscmp(fileinfo.name, L".") != 0 && wcscmp(fileinfo.name, L"..") != 0) {
- caml_ext_table_add(contents, caml_stat_strdup_of_utf16(fileinfo.name));
+ res = caml_ext_table_add_noexc(contents,
+ caml_stat_strdup_of_utf16(fileinfo.name));
+ if (res == -1) { _findclose(h); errno = ENOMEM; return -1; }
}
} while (_wfindnext(h, &fileinfo) == 0);
_findclose(h);
diff --git a/stdlib/dune b/stdlib/dune
index 81e679b156..bd873643fd 100644
--- a/stdlib/dune
+++ b/stdlib/dune
@@ -23,26 +23,6 @@
(preprocess
(per_module
((action
- (progn
- (run sed -i s/%atomic_load/%identity/ %{input-file})
- (run sed -i s/%atomic_cas/%obj_set_field/ %{input-file})
- (run awk -f %{dep:expand_module_aliases.awk} %{input-file})))
+ (run awk -f %{dep:expand_module_aliases.awk} %{input-file}))
stdlib)
- ;; AWFUL HACKS: remove once 5.0 is released
- ;; (this is needed because we're building with a compiler which doesn't
- ;; know these primitives yet)
- ;; It's especially ugly because the compiler insists on checking arity...
- ((action
- (progn
- (run sed -i s/%atomic_load/%identity/ %{input-file})
- (run sed -i s/%atomic_cas/%obj_set_field/ %{input-file})
- (run sed s/%atomic_[a-z_]*/%addint/ %{input-file})))
- atomic)
- ((action (run sed s/%dls_get/%identity/ %{input-file}))
- domain)
- ((action
- (progn
- (run sed -i s/%perform/%identity/ %{input-file})
- (run sed s/%r[a-z]*/%obj_set_field/ %{input-file})))
- effect)
)))
diff --git a/stdlib/format.mli b/stdlib/format.mli
index b2544b8e6c..aba1303f4f 100644
--- a/stdlib/format.mli
+++ b/stdlib/format.mli
@@ -1356,7 +1356,8 @@ val sprintf : ('a, unit, string) format -> 'a
(** Same as [printf] above, but instead of printing on a formatter,
returns a string containing the result of formatting the arguments.
Note that the pretty-printer queue is flushed at the end of {e each
- call} to [sprintf].
+ call} to [sprintf]. Note that if your format string contains a [%a],
+ you should use [asprintf].
In case of multiple and related calls to [sprintf] to output
material on a single string, you should consider using [fprintf]
diff --git a/stdlib/marshal.mli b/stdlib/marshal.mli
index c13b239d84..357c5a0eb6 100644
--- a/stdlib/marshal.mli
+++ b/stdlib/marshal.mli
@@ -102,7 +102,7 @@ val to_channel : out_channel -> 'a -> extern_flags list -> unit
If [flags] contains [Marshal.Compression], the marshaled data
representing value [v] is compressed before being written to
channel [chan]. Decompression takes place automatically in
- the unmarshaling functions {!input_value}, {!Marshal.from_channel},
+ the unmarshaling functions {!Stdlib.input_value}, {!Marshal.from_channel},
{!Marshal.from_string}, etc. For large values [v], compression
typically reduces the size of marshaled data by a factor 2 to 4,
but slows down marshaling and, to a lesser extent, unmarshaling.
@@ -203,14 +203,14 @@ val compression_supported : unit -> bool
(** Indicates whether the compressed data format is supported.
If [Marshal.compression_supported()] is [true], compressed data
- is unmarshaled safely by {!input_value}, {!Marshal.from_channel},
+ is unmarshaled safely by {!Stdlib.input_value}, {!Marshal.from_channel},
{!Marshal.from_string} and related functions. Moreover, the
[Marshal.Compression] flag is honored by the {!Marshal.to_channel},
{!Marshal.to_string} and related functions, resulting in the
production of compressed data.
If [Marshal.compression_supported()] is [false], compressed data
- causes {!input_value}, {!Marshal.from_channel},
+ causes {!Stdlib.input_value}, {!Marshal.from_channel},
{!Marshal.from_string} and related functions to fail and a
[Failure] exception to be raised. Moreover,
{!Marshal.to_channel}, {!Marshal.to_string} and related functions
diff --git a/stdlib/sys.mli b/stdlib/sys.mli
index e214603e5c..b7d4486529 100644
--- a/stdlib/sys.mli
+++ b/stdlib/sys.mli
@@ -53,10 +53,11 @@ external remove : string -> unit = "caml_sys_remove"
(** Remove the given file name from the file system. *)
external rename : string -> string -> unit = "caml_sys_rename"
-(** Rename a file. [rename oldpath newpath] renames the file
- called [oldpath], giving it [newpath] as its new name,
- moving it between directories if needed. If [newpath] already
- exists, its contents will be replaced with those of [oldpath].
+(** Rename a file or directory. [rename oldpath newpath] renames the
+ file or directory called [oldpath], giving it [newpath] as its new name,
+ moving it between (parent) directories if needed. If a file named
+ [newpath] already exists, its contents will be replaced with those of
+ [oldpath].
Depending on the operating system, the metadata (permissions,
owner, etc) of [newpath] can either be preserved or be replaced by
those of [oldpath].
diff --git a/testsuite/HACKING.adoc b/testsuite/HACKING.adoc
index fcdc392176..05bc9bad71 100644
--- a/testsuite/HACKING.adoc
+++ b/testsuite/HACKING.adoc
@@ -13,6 +13,13 @@ a specific sub-directory.
There are many kind of tests already, so the easiest way to start is
to extend or copy an existing test.
+Note: in april 2023, the test scripting language has changed: the
+org-mode-based syntax was replaced by at C-like syntax. ocamltest
+includes options to translate from the old to the new syntax:
+`-translate`, `-compact`, `-keep-lines`, `-keep-chars`. Look at
+`tools/translate-all-tests` for an example using them. These options
+will be removed after a transitional period.
+
== Sorts of tests
A test is specified in a `.ml` file containing a `TEST` block which is
diff --git a/testsuite/tests/afl-instrumentation/afl-fuzz-test.ml b/testsuite/tests/afl-instrumentation/afl-fuzz-test.ml
index 8547b388a3..4880f613a8 100644
--- a/testsuite/tests/afl-instrumentation/afl-fuzz-test.ml
+++ b/testsuite/tests/afl-instrumentation/afl-fuzz-test.ml
@@ -1,12 +1,14 @@
-(* TEST (* Just a test-driver *)
- * native-compiler
- ** script
- script = "sh ${test_source_directory}/has-afl-fuzz.sh"
- readonly_files = "readline.ml"
- *** setup-ocamlopt.byte-build-env
- **** ocamlopt.byte
- program = "${test_build_directory}/readline"
- flags = "-afl-instrument"
- all_modules = "readline.ml"
- ***** run
+(* TEST
+ native-compiler;
+ script = "sh ${test_source_directory}/has-afl-fuzz.sh";
+ readonly_files = "readline.ml";
+ script;
+ setup-ocamlopt.byte-build-env;
+ program = "${test_build_directory}/readline";
+ flags = "-afl-instrument";
+ all_modules = "readline.ml";
+ ocamlopt.byte;
+ run;
*)
+
+(* No code here, this file is a pure test script. *)
diff --git a/testsuite/tests/afl-instrumentation/afl-showmap-test.ml b/testsuite/tests/afl-instrumentation/afl-showmap-test.ml
index 5efc626874..d63739a4fc 100644
--- a/testsuite/tests/afl-instrumentation/afl-showmap-test.ml
+++ b/testsuite/tests/afl-instrumentation/afl-showmap-test.ml
@@ -1,16 +1,18 @@
-(* TEST (* Just a test-driver *)
- * native-compiler
- ** script
- script = "sh ${test_source_directory}/has-afl-showmap.sh"
- readonly_files = "harness.ml test.ml"
- *** setup-ocamlopt.byte-build-env
- **** ocamlopt.byte
- module = "test.ml"
- flags = "-afl-instrument"
- ***** ocamlopt.byte
- module = ""
- program = "${test_build_directory}/test"
- flags = "-afl-inst-ratio 0"
- all_modules = "test.cmx harness.ml"
- ****** run
+(* TEST
+ native-compiler;
+ script = "sh ${test_source_directory}/has-afl-showmap.sh";
+ readonly_files = "harness.ml test.ml";
+ script;
+ setup-ocamlopt.byte-build-env;
+ module = "test.ml";
+ flags = "-afl-instrument";
+ ocamlopt.byte;
+ module = "";
+ program = "${test_build_directory}/test";
+ flags = "-afl-inst-ratio 0";
+ all_modules = "test.cmx harness.ml";
+ ocamlopt.byte;
+ run;
*)
+
+(* No code here, this file is a pure test script. *)
diff --git a/testsuite/tests/arch-power/exn_raise.ml b/testsuite/tests/arch-power/exn_raise.ml
index a68eb875ed..1ed4622f43 100644
--- a/testsuite/tests/arch-power/exn_raise.ml
+++ b/testsuite/tests/arch-power/exn_raise.ml
@@ -1,9 +1,9 @@
(* TEST
- * arch_power
- ** native
- *** ocamlopt.byte
- ocamlopt_flags = "-flarge-toc"
- **** run
+ arch_power;
+ native;
+ ocamlopt_flags = "-flarge-toc";
+ ocamlopt.byte;
+ run;
*)
(* GPR#8506
diff --git a/testsuite/tests/asmcomp/bind_tuples.ml b/testsuite/tests/asmcomp/bind_tuples.ml
index 156b08721e..384965b428 100644
--- a/testsuite/tests/asmcomp/bind_tuples.ml
+++ b/testsuite/tests/asmcomp/bind_tuples.ml
@@ -1,5 +1,5 @@
(* TEST
- * native
+ native;
*)
(* Check the effectiveness of optimized compilation of tuple binding
diff --git a/testsuite/tests/asmcomp/compare.ml b/testsuite/tests/asmcomp/compare.ml
index b51116e372..1a14c4dd32 100644
--- a/testsuite/tests/asmcomp/compare.ml
+++ b/testsuite/tests/asmcomp/compare.ml
@@ -1,5 +1,5 @@
(* TEST
- * native
+ native;
*)
let[@inline never] float () = print_string "hello\n"; 42.
let[@inline never] f () = compare (float ()) 0.5;;
diff --git a/testsuite/tests/asmcomp/evaluation_order.ml b/testsuite/tests/asmcomp/evaluation_order.ml
index 2fb7f917ff..f9cce72ef5 100644
--- a/testsuite/tests/asmcomp/evaluation_order.ml
+++ b/testsuite/tests/asmcomp/evaluation_order.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
external caml_bytes_get_16 : bytes -> int -> int = "%caml_bytes_get16"
external caml_bytes_set_16 : bytes -> int -> int -> unit = "%caml_bytes_set16"
diff --git a/testsuite/tests/asmcomp/func_sections.ml b/testsuite/tests/asmcomp/func_sections.ml
index 7a58afc60c..bdfcaf4529 100644
--- a/testsuite/tests/asmcomp/func_sections.ml
+++ b/testsuite/tests/asmcomp/func_sections.ml
@@ -1,18 +1,23 @@
(* TEST
-* function_sections
-flags = "-S -function-sections"
-** arch_arm
-*** native
-reference = "${test_source_directory}/func_sections.arm.reference"
-** arch_arm64
-*** native
-reference = "${test_source_directory}/func_sections.arm.reference"
-** arch_amd64
-*** native
-reference = "${test_source_directory}/func_sections.reference"
-** arch_i386
-*** native
-reference = "${test_source_directory}/func_sections.reference"
+ flags = "-S -function-sections";
+ function_sections;
+ {
+ arch_arm;
+ reference = "${test_source_directory}/func_sections.arm.reference";
+ native;
+ }{
+ arch_arm64;
+ reference = "${test_source_directory}/func_sections.arm.reference";
+ native;
+ }{
+ arch_amd64;
+ reference = "${test_source_directory}/func_sections.reference";
+ native;
+ }{
+ arch_i386;
+ reference = "${test_source_directory}/func_sections.reference";
+ native;
+ }
*)
(* We have a separate reference output for ARM because
diff --git a/testsuite/tests/asmcomp/lift_mutable_let_flambda.ml b/testsuite/tests/asmcomp/lift_mutable_let_flambda.ml
index 8c8b017d49..7f2758ef94 100644
--- a/testsuite/tests/asmcomp/lift_mutable_let_flambda.ml
+++ b/testsuite/tests/asmcomp/lift_mutable_let_flambda.ml
@@ -1,6 +1,6 @@
(* TEST
- * flambda
- ** native
+ flambda;
+ native;
*)
type t = T of { pos : int }
diff --git a/testsuite/tests/asmcomp/optargs.ml b/testsuite/tests/asmcomp/optargs.ml
index 65e4152bf2..32aafd48e0 100644
--- a/testsuite/tests/asmcomp/optargs.ml
+++ b/testsuite/tests/asmcomp/optargs.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-g"
- * native
+ flags = "-g";
+ native;
*)
(* Check the effectiveness of inlining the wrapper which fills in
diff --git a/testsuite/tests/asmcomp/poll_attr_both.ml b/testsuite/tests/asmcomp/poll_attr_both.ml
index d67d2fd973..56f6fe4a7f 100644
--- a/testsuite/tests/asmcomp/poll_attr_both.ml
+++ b/testsuite/tests/asmcomp/poll_attr_both.ml
@@ -1,13 +1,13 @@
-(* TEST
- * setup-ocamlopt.byte-build-env
- ** ocamlopt.byte
-ocamlopt_byte_exit_status = "2"
- *** check-ocamlopt.byte-output
-
- * setup-ocamlopt.opt-build-env
- ** ocamlopt.opt
-ocamlopt_opt_exit_status = "2"
- *** check-ocamlopt.opt-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
*)
let[@inline never][@local never] v x = x + 1
@@ -19,3 +19,17 @@ let[@poll error] c x =
ignore(Sys.opaque_identity(42))
done;
x2 + !y
+
+(* TEST
+ {
+ setup-ocamlopt.byte-build-env;
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }{
+ setup-ocamlopt.opt-build-env;
+ ocamlopt_opt_exit_status = "2";
+ ocamlopt.opt;
+ check-ocamlopt.opt-output;
+ }
+*)
diff --git a/testsuite/tests/asmcomp/poll_attr_inserted.ml b/testsuite/tests/asmcomp/poll_attr_inserted.ml
index 0ea17755b7..2738fe4558 100644
--- a/testsuite/tests/asmcomp/poll_attr_inserted.ml
+++ b/testsuite/tests/asmcomp/poll_attr_inserted.ml
@@ -1,13 +1,15 @@
(* TEST
- * setup-ocamlopt.byte-build-env
- ** ocamlopt.byte
-ocamlopt_byte_exit_status = "2"
- *** check-ocamlopt.byte-output
-
- * setup-ocamlopt.opt-build-env
- ** ocamlopt.opt
-ocamlopt_opt_exit_status = "2"
- *** check-ocamlopt.opt-output
+ {
+ setup-ocamlopt.byte-build-env;
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }{
+ setup-ocamlopt.opt-build-env;
+ ocamlopt_opt_exit_status = "2";
+ ocamlopt.opt;
+ check-ocamlopt.opt-output;
+ }
*)
let[@poll error] c x =
diff --git a/testsuite/tests/asmcomp/poll_attr_prologue.ml b/testsuite/tests/asmcomp/poll_attr_prologue.ml
index 41b3f6b92f..4e32b79f40 100644
--- a/testsuite/tests/asmcomp/poll_attr_prologue.ml
+++ b/testsuite/tests/asmcomp/poll_attr_prologue.ml
@@ -1,16 +1,30 @@
-(* TEST
- * setup-ocamlopt.byte-build-env
- ** ocamlopt.byte
-ocamlopt_byte_exit_status = "2"
- *** check-ocamlopt.byte-output
-
- * setup-ocamlopt.opt-build-env
- ** ocamlopt.opt
-ocamlopt_opt_exit_status = "2"
- *** check-ocamlopt.opt-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
*)
let[@poll error] rec c x l =
match l with
| [] -> 0
| _ :: tl -> (c[@tailcall]) (x+1) tl
+
+(* TEST
+ {
+ setup-ocamlopt.byte-build-env;
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }{
+ setup-ocamlopt.opt-build-env;
+ ocamlopt_opt_exit_status = "2";
+ ocamlopt.opt;
+ check-ocamlopt.opt-output;
+ }
+*)
diff --git a/testsuite/tests/asmcomp/poll_attr_user.ml b/testsuite/tests/asmcomp/poll_attr_user.ml
index e807bd60d4..9b68489f26 100644
--- a/testsuite/tests/asmcomp/poll_attr_user.ml
+++ b/testsuite/tests/asmcomp/poll_attr_user.ml
@@ -1,13 +1,13 @@
-(* TEST
- * setup-ocamlopt.byte-build-env
- ** ocamlopt.byte
-ocamlopt_byte_exit_status = "2"
- *** check-ocamlopt.byte-output
-
- * setup-ocamlopt.opt-build-env
- ** ocamlopt.opt
-ocamlopt_opt_exit_status = "2"
- *** check-ocamlopt.opt-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
*)
let[@inline never][@local never] v x = x + 1
@@ -19,3 +19,17 @@ let[@poll error] c x =
ignore(Sys.opaque_identity(ref 42))
done;
x2 + !y
+
+(* TEST
+ {
+ setup-ocamlopt.byte-build-env;
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }{
+ setup-ocamlopt.opt-build-env;
+ ocamlopt_opt_exit_status = "2";
+ ocamlopt.opt;
+ check-ocamlopt.opt-output;
+ }
+*)
diff --git a/testsuite/tests/asmcomp/polling_insertion.ml b/testsuite/tests/asmcomp/polling_insertion.ml
index f19ae93293..9574ddbe57 100644
--- a/testsuite/tests/asmcomp/polling_insertion.ml
+++ b/testsuite/tests/asmcomp/polling_insertion.ml
@@ -1,8 +1,8 @@
(* TEST
- modules = "polling.c"
- compare_programs = "false"
- * arch64
- ** native
+ modules = "polling.c";
+ compare_programs = "false";
+ arch64;
+ native;
*)
(* This set of tests examine poll insertion behaviour. We do this by requesting
diff --git a/testsuite/tests/asmcomp/prevent_fma.ml b/testsuite/tests/asmcomp/prevent_fma.ml
index 6ce124fce0..79506c9c88 100644
--- a/testsuite/tests/asmcomp/prevent_fma.ml
+++ b/testsuite/tests/asmcomp/prevent_fma.ml
@@ -1,5 +1,5 @@
(* TEST
- * native
+ native;
*)
let ( *. ) x y = Sys.opaque_identity (x *. y)
diff --git a/testsuite/tests/asmcomp/register_typing.ml b/testsuite/tests/asmcomp/register_typing.ml
index 3bf3104f20..424aa16ab3 100644
--- a/testsuite/tests/asmcomp/register_typing.ml
+++ b/testsuite/tests/asmcomp/register_typing.ml
@@ -1,5 +1,5 @@
(* TEST
- * native
+ native;
*)
type 'a typ = Int : int typ | Ptr : int list typ
diff --git a/testsuite/tests/asmcomp/register_typing_switch.ml b/testsuite/tests/asmcomp/register_typing_switch.ml
index 73960c4bcc..f6a3367d7b 100644
--- a/testsuite/tests/asmcomp/register_typing_switch.ml
+++ b/testsuite/tests/asmcomp/register_typing_switch.ml
@@ -1,5 +1,5 @@
(* TEST
- * native
+ native;
*)
type 'a typ = Int : int typ | Ptr : int list typ | Int2 : int typ
diff --git a/testsuite/tests/asmcomp/select_addr.ml b/testsuite/tests/asmcomp/select_addr.ml
new file mode 100644
index 0000000000..25718bbc32
--- /dev/null
+++ b/testsuite/tests/asmcomp/select_addr.ml
@@ -0,0 +1,14 @@
+(* TEST *)
+
+let[@inline never][@local never] f n =
+ let n = Int64.of_int n in
+ let open Int64 in
+ to_int (add n (of_int Int.min_int))
+
+let _ =
+ (* The test only works on architectures where Sys.int_size is 63,
+ as it depends on the exact value of Int.min_int. *)
+ if Sys.int_size <> 63 then
+ Printf.printf "0x4000000000000001\n"
+ else
+ Printf.printf "0x%x\n%!" (f 1)
diff --git a/testsuite/tests/asmcomp/select_addr.reference b/testsuite/tests/asmcomp/select_addr.reference
new file mode 100644
index 0000000000..f7cd3db8cb
--- /dev/null
+++ b/testsuite/tests/asmcomp/select_addr.reference
@@ -0,0 +1 @@
+0x4000000000000001
diff --git a/testsuite/tests/asmcomp/staticalloc.ml b/testsuite/tests/asmcomp/staticalloc.ml
index 8f241847f8..38d5587f0f 100644
--- a/testsuite/tests/asmcomp/staticalloc.ml
+++ b/testsuite/tests/asmcomp/staticalloc.ml
@@ -1,7 +1,7 @@
(* TEST
- include config
- * native
- flags = "config.cmx"
+ include config;
+ flags = "config.cmx";
+ native;
*)
(* Check the effectiveness of structured constant propagation and
diff --git a/testsuite/tests/asmcomp/unrolling_flambda.ml b/testsuite/tests/asmcomp/unrolling_flambda.ml
index dcfcb03303..c7c47b3383 100644
--- a/testsuite/tests/asmcomp/unrolling_flambda.ml
+++ b/testsuite/tests/asmcomp/unrolling_flambda.ml
@@ -1,6 +1,6 @@
(* TEST
- * flambda
- ** native
+ flambda;
+ native;
*)
let rec f x =
diff --git a/testsuite/tests/asmcomp/unrolling_flambda2.ml b/testsuite/tests/asmcomp/unrolling_flambda2.ml
index 3079b7327e..70843c69ec 100644
--- a/testsuite/tests/asmcomp/unrolling_flambda2.ml
+++ b/testsuite/tests/asmcomp/unrolling_flambda2.ml
@@ -1,6 +1,6 @@
(* TEST
- * flambda
- ** native
+ flambda;
+ native;
*)
type t = { fn : t -> t -> int -> unit -> unit }
diff --git a/testsuite/tests/asmgen/arith.cmm b/testsuite/tests/asmgen/arith.cmm
index 3ba0fd333a..464bd96c1c 100644
--- a/testsuite/tests/asmgen/arith.cmm
+++ b/testsuite/tests/asmgen/arith.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "mainarith.c"
-arguments = "mainarith.c"
-* asmgen
+ readonly_files = "mainarith.c";
+ arguments = "mainarith.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/catch-float.cmm b/testsuite/tests/asmgen/catch-float.cmm
index c51eb3c37a..e679a0e291 100644
--- a/testsuite/tests/asmgen/catch-float.cmm
+++ b/testsuite/tests/asmgen/catch-float.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DFLOAT_CATCH -DFUN=catch_float main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DFLOAT_CATCH -DFUN=catch_float main.c";
+ asmgen;
*)
(function "catch_float" (b:int)
diff --git a/testsuite/tests/asmgen/catch-multiple.cmm b/testsuite/tests/asmgen/catch-multiple.cmm
index 3887c5b891..498235ad72 100644
--- a/testsuite/tests/asmgen/catch-multiple.cmm
+++ b/testsuite/tests/asmgen/catch-multiple.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=catch_multiple main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=catch_multiple main.c";
+ asmgen;
*)
(*
diff --git a/testsuite/tests/asmgen/catch-rec-deadhandler.cmm b/testsuite/tests/asmgen/catch-rec-deadhandler.cmm
index 143f880ebc..0eea037a63 100644
--- a/testsuite/tests/asmgen/catch-rec-deadhandler.cmm
+++ b/testsuite/tests/asmgen/catch-rec-deadhandler.cmm
@@ -1,10 +1,10 @@
(* TEST
-flags = "-dlive"
-readonly_files = "main.c"
-arguments = "-DUNIT_INT -DFUN=catch_rec_deadhandler main.c"
-* asmgen
-** run
-*** check-program-output
+ flags = "-dlive";
+ readonly_files = "main.c";
+ arguments = "-DUNIT_INT -DFUN=catch_rec_deadhandler main.c";
+ asmgen;
+ run;
+ check-program-output;
*)
(function "catch_rec_deadhandler" ()
diff --git a/testsuite/tests/asmgen/catch-rec.cmm b/testsuite/tests/asmgen/catch-rec.cmm
index 51089d3250..37288f8dab 100644
--- a/testsuite/tests/asmgen/catch-rec.cmm
+++ b/testsuite/tests/asmgen/catch-rec.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=catch_fact main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=catch_fact main.c";
+ asmgen;
*)
(function "catch_fact" (b:int)
diff --git a/testsuite/tests/asmgen/catch-try-float.cmm b/testsuite/tests/asmgen/catch-try-float.cmm
index 31df3d3ac5..7aa7234395 100644
--- a/testsuite/tests/asmgen/catch-try-float.cmm
+++ b/testsuite/tests/asmgen/catch-try-float.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DFLOAT_CATCH -DFUN=catch_try_float main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DFLOAT_CATCH -DFUN=catch_try_float main.c";
+ asmgen;
*)
(function "catch_try_float" (b:float)
diff --git a/testsuite/tests/asmgen/catch-try.cmm b/testsuite/tests/asmgen/catch-try.cmm
index 280a9e17cd..b5253843ed 100644
--- a/testsuite/tests/asmgen/catch-try.cmm
+++ b/testsuite/tests/asmgen/catch-try.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=catch_exit main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=catch_exit main.c";
+ asmgen;
*)
(function "catch_exit" (b:int)
diff --git a/testsuite/tests/asmgen/checkbound.cmm b/testsuite/tests/asmgen/checkbound.cmm
index 616c1edc77..a2607b49d2 100644
--- a/testsuite/tests/asmgen/checkbound.cmm
+++ b/testsuite/tests/asmgen/checkbound.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DCHECKBOUND main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DCHECKBOUND main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/even-odd-spill-float.cmm b/testsuite/tests/asmgen/even-odd-spill-float.cmm
index dc8169b462..a907b71fc2 100644
--- a/testsuite/tests/asmgen/even-odd-spill-float.cmm
+++ b/testsuite/tests/asmgen/even-odd-spill-float.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_FLOAT -DFUN=is_even main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_FLOAT -DFUN=is_even main.c";
+ asmgen;
*)
("format_odd": string "odd %d\n\000")
diff --git a/testsuite/tests/asmgen/even-odd-spill.cmm b/testsuite/tests/asmgen/even-odd-spill.cmm
index 9e392445ce..7d3a8040b5 100644
--- a/testsuite/tests/asmgen/even-odd-spill.cmm
+++ b/testsuite/tests/asmgen/even-odd-spill.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=is_even main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=is_even main.c";
+ asmgen;
*)
("format_odd": string "odd %d\n\000")
diff --git a/testsuite/tests/asmgen/even-odd.cmm b/testsuite/tests/asmgen/even-odd.cmm
index a9e20ad894..5143101701 100644
--- a/testsuite/tests/asmgen/even-odd.cmm
+++ b/testsuite/tests/asmgen/even-odd.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=is_even main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=is_even main.c";
+ asmgen;
*)
(function "is_even" (b:int)
diff --git a/testsuite/tests/asmgen/fib.cmm b/testsuite/tests/asmgen/fib.cmm
index b5a0b5673e..6399a6c6cd 100644
--- a/testsuite/tests/asmgen/fib.cmm
+++ b/testsuite/tests/asmgen/fib.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=fib main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=fib main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/immediates.cmm b/testsuite/tests/asmgen/immediates.cmm
index f61de1ae1e..023b195408 100644
--- a/testsuite/tests/asmgen/immediates.cmm
+++ b/testsuite/tests/asmgen/immediates.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "mainimmed.c"
-arguments = "-I ${test_source_directory} mainimmed.c"
-* asmgen
+ readonly_files = "mainimmed.c";
+ arguments = "-I ${test_source_directory} mainimmed.c";
+ asmgen;
*)
(* Regenerate with cpp -P immediates.cmmpp > immediates.cmm *)
(function "testimm" ()
diff --git a/testsuite/tests/asmgen/integr.cmm b/testsuite/tests/asmgen/integr.cmm
index 92d1cb0736..4ebee453fa 100644
--- a/testsuite/tests/asmgen/integr.cmm
+++ b/testsuite/tests/asmgen/integr.cmm
@@ -1,9 +1,9 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_FLOAT -DFUN=test main.c"
-* skip
-reason = "This test is currently broken"
-** asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_FLOAT -DFUN=test main.c";
+ reason = "This test is currently broken";
+ skip;
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/invariants.cmm b/testsuite/tests/asmgen/invariants.cmm
index 6e93a46e69..8409ade0cb 100644
--- a/testsuite/tests/asmgen/invariants.cmm
+++ b/testsuite/tests/asmgen/invariants.cmm
@@ -1,8 +1,8 @@
(* TEST
-* native-compiler
-** setup-simple-build-env
-*** codegen
-codegen_exit_status = "2"
+ native-compiler;
+ setup-simple-build-env;
+ codegen_exit_status = "2";
+ codegen;
*)
(*
diff --git a/testsuite/tests/asmgen/pgcd.cmm b/testsuite/tests/asmgen/pgcd.cmm
index 74e3c42395..1c669f1f3c 100644
--- a/testsuite/tests/asmgen/pgcd.cmm
+++ b/testsuite/tests/asmgen/pgcd.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=pgcd_30030 main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=pgcd_30030 main.c";
+ asmgen;
*)
(function "pgcd_30030" (a:int)
diff --git a/testsuite/tests/asmgen/quicksort.cmm b/testsuite/tests/asmgen/quicksort.cmm
index 58029cd16d..b5cb49fb0f 100644
--- a/testsuite/tests/asmgen/quicksort.cmm
+++ b/testsuite/tests/asmgen/quicksort.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DSORT -DFUN=quicksort main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DSORT -DFUN=quicksort main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/quicksort2.cmm b/testsuite/tests/asmgen/quicksort2.cmm
index 5c07a7cf5b..7f0c3cd3a0 100644
--- a/testsuite/tests/asmgen/quicksort2.cmm
+++ b/testsuite/tests/asmgen/quicksort2.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DSORT -DFUN=quicksort main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DSORT -DFUN=quicksort main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/soli.cmm b/testsuite/tests/asmgen/soli.cmm
index 568765116b..fccecc0a7f 100644
--- a/testsuite/tests/asmgen/soli.cmm
+++ b/testsuite/tests/asmgen/soli.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DUNIT_INT -DFUN=solitaire main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DUNIT_INT -DFUN=solitaire main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/tagged-fib.cmm b/testsuite/tests/asmgen/tagged-fib.cmm
index a2da4487b6..7ff1255d48 100644
--- a/testsuite/tests/asmgen/tagged-fib.cmm
+++ b/testsuite/tests/asmgen/tagged-fib.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_INT -DFUN=fib main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_INT -DFUN=fib main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/tagged-integr.cmm b/testsuite/tests/asmgen/tagged-integr.cmm
index 453e73543a..7a3cb2e98e 100644
--- a/testsuite/tests/asmgen/tagged-integr.cmm
+++ b/testsuite/tests/asmgen/tagged-integr.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DINT_FLOAT -DFUN=test main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DINT_FLOAT -DFUN=test main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/tagged-quicksort.cmm b/testsuite/tests/asmgen/tagged-quicksort.cmm
index 8ba8e74497..401856b963 100644
--- a/testsuite/tests/asmgen/tagged-quicksort.cmm
+++ b/testsuite/tests/asmgen/tagged-quicksort.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DSORT -DFUN=quicksort main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DSORT -DFUN=quicksort main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/tagged-tak.cmm b/testsuite/tests/asmgen/tagged-tak.cmm
index 8bb28a0ee0..0a79f660eb 100644
--- a/testsuite/tests/asmgen/tagged-tak.cmm
+++ b/testsuite/tests/asmgen/tagged-tak.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DUNIT_INT -DFUN=takmain main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DUNIT_INT -DFUN=takmain main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/asmgen/tak.cmm b/testsuite/tests/asmgen/tak.cmm
index 3e8430b5c3..0d7220885e 100644
--- a/testsuite/tests/asmgen/tak.cmm
+++ b/testsuite/tests/asmgen/tak.cmm
@@ -1,7 +1,7 @@
(* TEST
-readonly_files = "main.c"
-arguments = "-DUNIT_INT -DFUN=takmain main.c"
-* asmgen
+ readonly_files = "main.c";
+ arguments = "-DUNIT_INT -DFUN=takmain main.c";
+ asmgen;
*)
(**************************************************************************)
diff --git a/testsuite/tests/ast-invariants/test.ml b/testsuite/tests/ast-invariants/test.ml
index b5dbd1cbbb..47f2864412 100644
--- a/testsuite/tests/ast-invariants/test.ml
+++ b/testsuite/tests/ast-invariants/test.ml
@@ -1,9 +1,9 @@
(* TEST
- include ocamlcommon
- * hasunix
- include unix
- arguments = "${ocamlsrcdir}"
- ** native
+ include ocamlcommon;
+ include unix;
+ arguments = "${ocamlsrcdir}";
+ hasunix;
+ native;
*)
(* This test checks all ml files in the ocaml repository that are accepted
diff --git a/testsuite/tests/backtrace/backtrace.ml b/testsuite/tests/backtrace/backtrace.ml
index 5f41e8631a..598d69d0ad 100644
--- a/testsuite/tests/backtrace/backtrace.ml
+++ b/testsuite/tests/backtrace/backtrace.ml
@@ -21,6 +21,6 @@ let _ =
ignore (g Sys.argv.(1))
(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+ flags = "-g";
+ ocamlrunparam += ",b=1";
*)
diff --git a/testsuite/tests/backtrace/backtrace2.ml b/testsuite/tests/backtrace/backtrace2.ml
index 747969a48f..d4b18e446d 100644
--- a/testsuite/tests/backtrace/backtrace2.ml
+++ b/testsuite/tests/backtrace/backtrace2.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* A test for stack backtraces *)
@@ -76,3 +76,8 @@ let _ =
run test_lazy [| () |];
run test_lazy [| () |];
()
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace3.ml b/testsuite/tests/backtrace/backtrace3.ml
index c91f0a030d..3a41f2cfa5 100644
--- a/testsuite/tests/backtrace/backtrace3.ml
+++ b/testsuite/tests/backtrace/backtrace3.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* A test for stack backtraces *)
@@ -61,3 +61,8 @@ let _ =
run [| "g" |];
run [| "h" |];
run [| |]
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_bounds_exn.ml b/testsuite/tests/backtrace/backtrace_bounds_exn.ml
index 5eb0975388..1c08933f96 100644
--- a/testsuite/tests/backtrace/backtrace_bounds_exn.ml
+++ b/testsuite/tests/backtrace/backtrace_bounds_exn.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* #11436: bad backtrace for out-of-bounds exception *)
@@ -18,3 +18,8 @@ let _ =
Printexc.print_backtrace stdout;
print_endline "OK"
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_c_exn.ml b/testsuite/tests/backtrace/backtrace_c_exn.ml
index 9b0077d509..2f4ccea1b6 100644
--- a/testsuite/tests/backtrace/backtrace_c_exn.ml
+++ b/testsuite/tests/backtrace/backtrace_c_exn.ml
@@ -1,7 +1,7 @@
-(* TEST
- modules = "backtrace_c_exn_.c"
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
*)
(* https://github.com/ocaml-multicore/ocaml-multicore/issues/498 *)
@@ -18,3 +18,9 @@ let () =
| exn ->
Printexc.to_string exn |> print_endline;
Printexc.print_backtrace stdout
+
+(* TEST
+ modules = "backtrace_c_exn_.c";
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_deprecated.ml b/testsuite/tests/backtrace/backtrace_deprecated.ml
index 41b3c4be6b..750446a64b 100644
--- a/testsuite/tests/backtrace/backtrace_deprecated.ml
+++ b/testsuite/tests/backtrace/backtrace_deprecated.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* A test for stack backtraces *)
@@ -40,3 +40,8 @@ let _ =
run [| "c" |];
run [| "d" |];
run [| |]
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_dynlink.flambda.reference b/testsuite/tests/backtrace/backtrace_dynlink.flambda.reference
index 37960f371f..0db2568b05 100644
--- a/testsuite/tests/backtrace/backtrace_dynlink.flambda.reference
+++ b/testsuite/tests/backtrace/backtrace_dynlink.flambda.reference
@@ -2,19 +2,24 @@ Raised by primitive operation at Backtrace_dynlink_plugin in file "backtrace_dyn
Called from Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 87, characters 12-29
Called from Stdlib__List.iter in file "list.ml" (inlined), line 112, characters 12-15
Called from Dynlink.Native.run in file "otherlibs/dynlink/native/dynlink.ml", line 86, characters 4-273
-Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 363, characters 13-56
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 361, characters 11-54
Called from Stdlib__List.iter in file "list.ml" (inlined), line 112, characters 12-15
-Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 359, characters 8-392
-Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 374, characters 26-45
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 357, characters 6-372
+Called from Stdlib__Fun.protect in file "fun.ml" (inlined), line 33, characters 8-15
+Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 350, characters 4-662
+Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 369, characters 26-45
Called from Backtrace_dynlink in file "backtrace_dynlink.ml", line 39, characters 4-52
execution of module initializers in the shared library failed: Failure("SUCCESS")
Raised by primitive operation at Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 87, characters 12-29
Re-raised at Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 89, characters 10-149
Called from Stdlib__List.iter in file "list.ml" (inlined), line 112, characters 12-15
Called from Dynlink.Native.run in file "otherlibs/dynlink/native/dynlink.ml", line 86, characters 4-273
-Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 363, characters 13-56
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 361, characters 11-54
Called from Stdlib__List.iter in file "list.ml" (inlined), line 112, characters 12-15
-Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 359, characters 8-392
-Re-raised at Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 372, characters 8-17
-Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 374, characters 26-45
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 357, characters 6-372
+Called from Stdlib__Fun.protect in file "fun.ml" (inlined), line 33, characters 8-15
+Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 350, characters 4-662
+Re-raised at Stdlib__Fun.protect in file "fun.ml" (inlined), line 38, characters 6-52
+Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 350, characters 4-662
+Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 369, characters 26-45
Called from Backtrace_dynlink in file "backtrace_dynlink.ml", line 39, characters 4-52
diff --git a/testsuite/tests/backtrace/backtrace_dynlink.ml b/testsuite/tests/backtrace/backtrace_dynlink.ml
index 3252f53f67..7caf291801 100644
--- a/testsuite/tests/backtrace/backtrace_dynlink.ml
+++ b/testsuite/tests/backtrace/backtrace_dynlink.ml
@@ -1,32 +1,32 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-include dynlink
-
-readonly_files = "backtrace_dynlink_plugin.ml"
-
-libraries = ""
-
-* shared-libraries
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "backtrace_dynlink.ml"
-flags = "-g"
-**** ocamlopt.byte
-program = "backtrace_dynlink_plugin.cmxs"
-flags = "-shared -g"
-all_modules = "backtrace_dynlink_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/main.exe"
-libraries = "dynlink"
-all_modules = "backtrace_dynlink.cmx"
-***** run
-ocamlrunparam += ",b=1"
-****** no-flambda
-******* check-program-output
-****** flambda
-reference = "${test_source_directory}/backtrace_dynlink.flambda.reference"
-******* check-program-output
*)
(* test for backtrace and stack unwinding with dynlink. *)
@@ -44,3 +44,37 @@ let () =
| exn ->
Printexc.to_string exn |> print_endline;
print_endline "ERROR"
+
+(* TEST
+ include dynlink;
+ readonly_files = "backtrace_dynlink_plugin.ml";
+ libraries = "";
+ shared-libraries;
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "backtrace_dynlink.ml";
+ flags = "-g";
+ ocamlopt.byte;
+ }{
+ program = "backtrace_dynlink_plugin.cmxs";
+ flags = "-shared -g";
+ all_modules = "backtrace_dynlink_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/main.exe";
+ libraries = "dynlink";
+ all_modules = "backtrace_dynlink.cmx";
+ ocamlopt.byte;
+ ocamlrunparam += ",b=1";
+ run;
+ {
+ no-flambda;
+ check-program-output;
+ }{
+ reference = "${test_source_directory}/backtrace_dynlink.flambda.reference";
+ flambda;
+ check-program-output;
+ }
+ }
+*)
diff --git a/testsuite/tests/backtrace/backtrace_dynlink.reference b/testsuite/tests/backtrace/backtrace_dynlink.reference
index 3f4fa74593..a0f23ec5b9 100644
--- a/testsuite/tests/backtrace/backtrace_dynlink.reference
+++ b/testsuite/tests/backtrace/backtrace_dynlink.reference
@@ -1,18 +1,18 @@
Raised by primitive operation at Backtrace_dynlink_plugin in file "backtrace_dynlink_plugin.ml", line 6, characters 13-38
Called from Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 87, characters 12-29
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 363, characters 13-56
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 361, characters 11-54
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 359, characters 8-392
-Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 374, characters 26-45
+Called from Stdlib__Fun.protect in file "fun.ml", line 33, characters 8-15
+Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 369, characters 26-45
Called from Backtrace_dynlink in file "backtrace_dynlink.ml", line 39, characters 4-52
execution of module initializers in the shared library failed: Failure("SUCCESS")
Raised by primitive operation at Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 87, characters 12-29
Re-raised at Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 89, characters 10-149
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 363, characters 13-56
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 361, characters 11-54
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 359, characters 8-392
-Re-raised at Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 372, characters 8-17
-Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 374, characters 26-45
+Called from Stdlib__Fun.protect in file "fun.ml", line 33, characters 8-15
+Re-raised at Stdlib__Fun.protect in file "fun.ml", line 38, characters 6-52
+Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 369, characters 26-45
Called from Backtrace_dynlink in file "backtrace_dynlink.ml", line 39, characters 4-52
diff --git a/testsuite/tests/backtrace/backtrace_effects.ml b/testsuite/tests/backtrace/backtrace_effects.ml
index 352b32cbd7..762e27549e 100644
--- a/testsuite/tests/backtrace/backtrace_effects.ml
+++ b/testsuite/tests/backtrace/backtrace_effects.ml
@@ -1,7 +1,7 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
- exit_status = "2"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
*)
open Effect
@@ -39,3 +39,9 @@ let baz () =
| _ -> None }
let _ = baz ()
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ exit_status = "2";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_effects_nested.ml b/testsuite/tests/backtrace/backtrace_effects_nested.ml
index 37638a200a..e9da62ab51 100644
--- a/testsuite/tests/backtrace/backtrace_effects_nested.ml
+++ b/testsuite/tests/backtrace/backtrace_effects_nested.ml
@@ -1,12 +1,12 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
-flags = "-g"
-* bytecode
-* no-flambda
-** native
-* flambda
-reference = "${test_source_directory}/backtrace_effects_nested.flambda.reference"
-** native
*)
@@ -43,3 +43,17 @@ let f () =
| _ -> None }
let () = f ()
+
+(* TEST
+ flags = "-g";
+ {
+ bytecode;
+ }{
+ no-flambda;
+ native;
+ }{
+ reference = "${test_source_directory}/backtrace_effects_nested.flambda.reference";
+ flambda;
+ native;
+ }
+*)
diff --git a/testsuite/tests/backtrace/backtrace_or_exception.ml b/testsuite/tests/backtrace/backtrace_or_exception.ml
index dc8f53c077..6f9fc0af44 100644
--- a/testsuite/tests/backtrace/backtrace_or_exception.ml
+++ b/testsuite/tests/backtrace/backtrace_or_exception.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
exception Exn
@@ -46,3 +46,8 @@ let _ =
run without_reraise;
run with_reraise;
run trickier
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_slots.ml b/testsuite/tests/backtrace/backtrace_slots.ml
index d6b95a0d4e..22e3e9a13c 100644
--- a/testsuite/tests/backtrace/backtrace_slots.ml
+++ b/testsuite/tests/backtrace/backtrace_slots.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* A test for stack backtraces *)
@@ -62,3 +62,8 @@ let _ =
run [| "c" |];
run [| "d" |];
run [| |]
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/backtrace/backtrace_systhreads.ml b/testsuite/tests/backtrace/backtrace_systhreads.ml
index 1b6b158cef..e6e7bd97c4 100644
--- a/testsuite/tests/backtrace/backtrace_systhreads.ml
+++ b/testsuite/tests/backtrace/backtrace_systhreads.ml
@@ -1,10 +1,10 @@
-(* TEST
-flags = "-g"
-ocamlrunparam += ",b=1"
-* hassysthreads
-include systhreads
-** bytecode
-** native
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
*)
let throw_exn msg = failwith msg [@@inline never]
@@ -38,3 +38,15 @@ let () =
List.iter Thread.join threads;
Condition.signal cond;
Thread.join backtrace_thread
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
diff --git a/testsuite/tests/backtrace/backtraces_and_finalizers.ml b/testsuite/tests/backtrace/backtraces_and_finalizers.ml
index 60c02f48ea..a204b9affc 100644
--- a/testsuite/tests/backtrace/backtraces_and_finalizers.ml
+++ b/testsuite/tests/backtrace/backtraces_and_finalizers.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-g -inline 0"
- ocamlrunparam += ",b=1"
- * native
+ flags = "-g -inline 0";
+ ocamlrunparam += ",b=1";
+ native;
*)
let finaliser _ = try raise Exit with _ -> ()
diff --git a/testsuite/tests/backtrace/callstack.ml b/testsuite/tests/backtrace/callstack.ml
index 5c33816e06..4c115351e1 100644
--- a/testsuite/tests/backtrace/callstack.ml
+++ b/testsuite/tests/backtrace/callstack.ml
@@ -1,10 +1,10 @@
-(* TEST
- flags = "-g"
- * hassysthreads
- include systhreads
- ** no-flambda
- *** native
- *** bytecode
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
*)
let[@inline never] f0 () =
@@ -29,3 +29,15 @@ let () =
the callstack, which breaks the test. *)
let () = Printf.printf "new thread:\n"
let () = Thread.join (Thread.create f3 ())
+
+(* TEST
+ flags = "-g";
+ include systhreads;
+ hassysthreads;
+ no-flambda;
+ {
+ native;
+ }{
+ bytecode;
+ }
+*)
diff --git a/testsuite/tests/backtrace/event_after_prim.ml b/testsuite/tests/backtrace/event_after_prim.ml
index 6af09a5fa4..f8f54c4f40 100644
--- a/testsuite/tests/backtrace/event_after_prim.ml
+++ b/testsuite/tests/backtrace/event_after_prim.ml
@@ -1,5 +1,5 @@
-(* TEST
- flags = "-g"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
let f n b =
@@ -12,3 +12,7 @@ let () =
| _ -> assert false
| exception _ ->
Printexc.print_backtrace stdout
+
+(* TEST
+ flags = "-g";
+*)
diff --git a/testsuite/tests/backtrace/inline_test.ml b/testsuite/tests/backtrace/inline_test.ml
index f8ffe38f7e..1c3b024d5a 100644
--- a/testsuite/tests/backtrace/inline_test.ml
+++ b/testsuite/tests/backtrace/inline_test.ml
@@ -1,11 +1,11 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
- * bytecode
- * native
- * native
- ocamlopt_flags = "-O3"
- compiler_directory_suffix = ".O3"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
*)
(* A test for inlined stack backtraces *)
@@ -24,3 +24,17 @@ let i x =
let () =
i ()
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ {
+ bytecode;
+ }{
+ native;
+ }{
+ ocamlopt_flags = "-O3";
+ compiler_directory_suffix = ".O3";
+ native;
+ }
+*)
diff --git a/testsuite/tests/backtrace/inline_traversal_test.ml b/testsuite/tests/backtrace/inline_traversal_test.ml
index d70c7fc52e..8fa5803b88 100644
--- a/testsuite/tests/backtrace/inline_traversal_test.ml
+++ b/testsuite/tests/backtrace/inline_traversal_test.ml
@@ -1,11 +1,11 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
- * bytecode
- * native
- * native
- ocamlopt_flags = "-O3"
- compiler_directory_suffix = ".O3"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
*)
(* A test for inlined stack backtraces *)
@@ -52,3 +52,17 @@ let () =
Printf.printf "Frame %d\n" i;
print_slots (Some slot)
done
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ {
+ bytecode;
+ }{
+ native;
+ }{
+ ocamlopt_flags = "-O3";
+ compiler_directory_suffix = ".O3";
+ native;
+ }
+*)
diff --git a/testsuite/tests/backtrace/lazy.ml b/testsuite/tests/backtrace/lazy.ml
index c6a0626b42..362539a9f7 100644
--- a/testsuite/tests/backtrace/lazy.ml
+++ b/testsuite/tests/backtrace/lazy.ml
@@ -24,12 +24,13 @@ let () =
(* TEST
-
-flags = "-g"
-* no-flambda
-** native
-* flambda
-reference = "${test_source_directory}/lazy.flambda.reference"
-** native
-
+ flags = "-g";
+ {
+ no-flambda;
+ native;
+ }{
+ reference = "${test_source_directory}/lazy.flambda.reference";
+ flambda;
+ native;
+ }
*)
diff --git a/testsuite/tests/backtrace/methods.ml b/testsuite/tests/backtrace/methods.ml
index f016fb51c9..7a449c4a27 100644
--- a/testsuite/tests/backtrace/methods.ml
+++ b/testsuite/tests/backtrace/methods.ml
@@ -1,5 +1,5 @@
-(* TEST
- flags = "-g"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
let[@inline never] id x = Sys.opaque_identity x
@@ -26,3 +26,7 @@ let () =
| _ -> assert false
| exception Exit ->
Printexc.print_backtrace stdout
+
+(* TEST
+ flags = "-g";
+*)
diff --git a/testsuite/tests/backtrace/names.ml b/testsuite/tests/backtrace/names.ml
index 06fc9ddffd..89952926b3 100644
--- a/testsuite/tests/backtrace/names.ml
+++ b/testsuite/tests/backtrace/names.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- *)
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+*)
let id x = Sys.opaque_identity x
@@ -121,3 +121,7 @@ let () =
| _ -> assert false
| exception Exit ->
Printexc.print_backtrace stdout
+
+(* TEST
+ flags = "-g";
+*)
diff --git a/testsuite/tests/backtrace/pr2195.ml b/testsuite/tests/backtrace/pr2195.ml
index e0442a3405..e45ea55d90 100644
--- a/testsuite/tests/backtrace/pr2195.ml
+++ b/testsuite/tests/backtrace/pr2195.ml
@@ -1,18 +1,18 @@
-(* TEST
- flags += "-g"
- exit_status = "2"
- * bytecode
- ocamlrunparam += ",b=0"
- reference = "${test_source_directory}/pr2195-nolocs.byte.reference"
- * bytecode
- ocamlrunparam += ",b=1"
- reference = "${test_source_directory}/pr2195-nolocs.byte.reference"
- * bytecode
- ocamlrunparam += ",b=2"
- reference = "${test_source_directory}/pr2195-locs.byte.reference"
- * native
- reference = "${test_source_directory}/pr2195.opt.reference"
- compare_programs = "false"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
+
*)
let () =
@@ -27,3 +27,25 @@ let () =
(* The message is platform-specific, so convert the exception to Exit *)
let bt = Printexc.get_raw_backtrace () in
Printexc.raise_with_backtrace Exit bt
+
+(* TEST
+ flags += "-g";
+ exit_status = "2";
+ {
+ ocamlrunparam += ",b=0";
+ reference = "${test_source_directory}/pr2195-nolocs.byte.reference";
+ bytecode;
+ }{
+ ocamlrunparam += ",b=1";
+ reference = "${test_source_directory}/pr2195-nolocs.byte.reference";
+ bytecode;
+ }{
+ ocamlrunparam += ",b=2";
+ reference = "${test_source_directory}/pr2195-locs.byte.reference";
+ bytecode;
+ }{
+ reference = "${test_source_directory}/pr2195.opt.reference";
+ compare_programs = "false";
+ native;
+ }
+*)
diff --git a/testsuite/tests/backtrace/pr6920_why_at.ml b/testsuite/tests/backtrace/pr6920_why_at.ml
index 1a0583a62f..9101066b11 100644
--- a/testsuite/tests/backtrace/pr6920_why_at.ml
+++ b/testsuite/tests/backtrace/pr6920_why_at.ml
@@ -1,8 +1,8 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
- ocamlopt_flags = "-inline 0"
- exit_status = "2"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
let why : unit -> unit = fun () -> raise Exit [@@inline never]
@@ -13,3 +13,10 @@ let f () =
let () =
f ()
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ ocamlopt_flags = "-inline 0";
+ exit_status = "2";
+*)
diff --git a/testsuite/tests/backtrace/pr6920_why_swallow.ml b/testsuite/tests/backtrace/pr6920_why_swallow.ml
index b1e5d60f16..05c8188583 100644
--- a/testsuite/tests/backtrace/pr6920_why_swallow.ml
+++ b/testsuite/tests/backtrace/pr6920_why_swallow.ml
@@ -1,8 +1,8 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
- ocamlopt_flags = "-inline 0"
- exit_status = "2"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
let why : unit -> unit = fun () -> raise Exit [@@inline never]
@@ -15,3 +15,10 @@ let f () =
let () =
f ()
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ ocamlopt_flags = "-inline 0";
+ exit_status = "2";
+*)
diff --git a/testsuite/tests/backtrace/raw_backtrace.ml b/testsuite/tests/backtrace/raw_backtrace.ml
index a685133a7b..44d9ce5b3a 100644
--- a/testsuite/tests/backtrace/raw_backtrace.ml
+++ b/testsuite/tests/backtrace/raw_backtrace.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* A test for stack backtraces *)
@@ -60,3 +60,8 @@ let _ =
run [| "e" |];
run [| "f" |];
run [| |]
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/badly-ordered-deps/main.ml b/testsuite/tests/badly-ordered-deps/main.ml
index ff4d1c90a1..ba6c6cfb97 100644
--- a/testsuite/tests/badly-ordered-deps/main.ml
+++ b/testsuite/tests/badly-ordered-deps/main.ml
@@ -1,26 +1,19 @@
(* TEST
+ modules = "lib.ml";
+ setup-ocamlc.byte-build-env;
+ all_modules = "main.ml";
+ compile_only = "true";
+ ocamlc.byte;
+ all_modules = "lib.ml";
+ ocamlc.byte;
+ all_modules = "lib.cmo main.cmo";
+ compile_only = "false";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
-(* Make sure ocamlc prints badly ordeered dependencies only once.
+(* Make sure ocamlc prints badly ordered dependencies only once.
See issue #12074. We test with ocamlc.byte only. *)
-modules = "lib.ml"
-
-* setup-ocamlc.byte-build-env
-
-** ocamlc.byte
-all_modules = "main.ml"
-compile_only = "true"
-
-*** ocamlc.byte
-all_modules = "lib.ml"
-
-**** ocamlc.byte
-all_modules = "lib.cmo main.cmo"
-compile_only = "false"
-ocamlc_byte_exit_status = "2"
-
-***** check-ocamlc.byte-output
-
-*)
-
let value = ()
diff --git a/testsuite/tests/basic-io-2/io.ml b/testsuite/tests/basic-io-2/io.ml
index 016ac1549b..75117f0e95 100644
--- a/testsuite/tests/basic-io-2/io.ml
+++ b/testsuite/tests/basic-io-2/io.ml
@@ -1,6 +1,6 @@
(* TEST
- arguments = "io.ml"
- readonly_files = "test-file-short-lines"
+ arguments = "io.ml";
+ readonly_files = "test-file-short-lines";
*)
(* Test a file copy function *)
diff --git a/testsuite/tests/basic-io/wc.ml b/testsuite/tests/basic-io/wc.ml
index 33e7911597..9e88d54c40 100644
--- a/testsuite/tests/basic-io/wc.ml
+++ b/testsuite/tests/basic-io/wc.ml
@@ -1,5 +1,5 @@
(* TEST
- arguments = "wc.ml"
+ arguments = "wc.ml";
*)
(* Counts characters, lines and words in one or several files. *)
diff --git a/testsuite/tests/basic-manyargs/manyargs.ml b/testsuite/tests/basic-manyargs/manyargs.ml
index 53d3a59592..21f5776d80 100644
--- a/testsuite/tests/basic-manyargs/manyargs.ml
+++ b/testsuite/tests/basic-manyargs/manyargs.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "manyargsprim.c"
+ modules = "manyargsprim.c";
*)
let manyargs a b c d e f g h i j k l m n o =
diff --git a/testsuite/tests/basic-modules/anonymous.ml b/testsuite/tests/basic-modules/anonymous.ml
index 20e67cca17..5c6affca9e 100644
--- a/testsuite/tests/basic-modules/anonymous.ml
+++ b/testsuite/tests/basic-modules/anonymous.ml
@@ -1,19 +1,19 @@
-(* TEST
-flags = "-c -nostdlib -nopervasives -dlambda -dno-unique-ids"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/anonymous.ocamlc.reference"
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-*** no-flambda
-**** check-ocamlopt.byte-output
-compiler_reference = "${test_source_directory}/anonymous.ocamlopt.reference"
-*** flambda
-**** check-ocamlc.byte-output
-compiler_reference =
- "${test_source_directory}/anonymous.ocamlopt.flambda.reference"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
*)
module _ = struct
@@ -53,3 +53,25 @@ end
let drop _ = ()
let () = drop s.cell
+
+(* TEST
+ flags = "-c -nostdlib -nopervasives -dlambda -dno-unique-ids";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/anonymous.ocamlc.reference";
+ check-ocamlc.byte-output;
+ }{
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ {
+ no-flambda;
+ compiler_reference = "${test_source_directory}/anonymous.ocamlopt.reference";
+ check-ocamlopt.byte-output;
+ }{
+ flambda;
+ compiler_reference = "${test_source_directory}/anonymous.ocamlopt.flambda.reference";
+ check-ocamlc.byte-output;
+ }
+ }
+*)
diff --git a/testsuite/tests/basic-modules/main.ml b/testsuite/tests/basic-modules/main.ml
index bd6d4ff344..8abcf6c3a8 100644
--- a/testsuite/tests/basic-modules/main.ml
+++ b/testsuite/tests/basic-modules/main.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "offset.ml pr6726.ml pr7427.ml pr4008.ml"
+ modules = "offset.ml pr6726.ml pr7427.ml pr4008.ml";
*)
(* PR#6435 *)
diff --git a/testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml b/testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
index b0fdd12c31..0db608aef6 100644
--- a/testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
+++ b/testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module rec A: sig val x: int end = struct let x = B.x end
diff --git a/testsuite/tests/basic-more/bounds.ml b/testsuite/tests/basic-more/bounds.ml
index 9915853f6c..2ffd972e30 100644
--- a/testsuite/tests/basic-more/bounds.ml
+++ b/testsuite/tests/basic-more/bounds.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(* Test bound checks *)
diff --git a/testsuite/tests/basic-more/div_by_zero.ml b/testsuite/tests/basic-more/div_by_zero.ml
index 7cd910768e..5c033e24d7 100644
--- a/testsuite/tests/basic-more/div_by_zero.ml
+++ b/testsuite/tests/basic-more/div_by_zero.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let check f n =
diff --git a/testsuite/tests/basic-more/function_in_ref.ml b/testsuite/tests/basic-more/function_in_ref.ml
index 481384095d..fd4446cbba 100644
--- a/testsuite/tests/basic-more/function_in_ref.ml
+++ b/testsuite/tests/basic-more/function_in_ref.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let f x = x + 1
diff --git a/testsuite/tests/basic-more/if_in_if.ml b/testsuite/tests/basic-more/if_in_if.ml
index cf3525d2fe..ad51f970c3 100644
--- a/testsuite/tests/basic-more/if_in_if.ml
+++ b/testsuite/tests/basic-more/if_in_if.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let sequor b1 b2 =
diff --git a/testsuite/tests/basic-more/morematch.ml b/testsuite/tests/basic-more/morematch.ml
index 998daee62c..130c1edad6 100644
--- a/testsuite/tests/basic-more/morematch.ml
+++ b/testsuite/tests/basic-more/morematch.ml
@@ -1,5 +1,5 @@
-(* TEST
- include testing
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
(**************************************************************)
@@ -1157,3 +1157,7 @@ let pr5758 x str =
let () =
test "pr5758" (pr5758 1.) "A" "Matched A"
;;
+
+(* TEST
+ include testing;
+*)
diff --git a/testsuite/tests/basic-more/opaque_prim.ml b/testsuite/tests/basic-more/opaque_prim.ml
index bdb60250ee..3456f5339e 100644
--- a/testsuite/tests/basic-more/opaque_prim.ml
+++ b/testsuite/tests/basic-more/opaque_prim.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let f x = Sys.opaque_identity x
diff --git a/testsuite/tests/basic-more/pr10338.ml b/testsuite/tests/basic-more/pr10338.ml
index 7697f377f8..2f63667b2a 100644
--- a/testsuite/tests/basic-more/pr10338.ml
+++ b/testsuite/tests/basic-more/pr10338.ml
@@ -1,4 +1,4 @@
-(* TEST *)
+(* TEST_BELOW*)
(* exercise push_defaults *)
@@ -24,3 +24,6 @@ print_endline (f (module struct exception Ex end) Exit);;
let f ?(x = assert false) ((module M) : (module E)) () = 1;;
(* so partial application of the module doesn't raise *)
let partial = f (module struct exception Ex end);;
+
+(* TEST
+*)
diff --git a/testsuite/tests/basic-more/pr1271.ml b/testsuite/tests/basic-more/pr1271.ml
index adbb8734ff..9c67dd9c34 100644
--- a/testsuite/tests/basic-more/pr1271.ml
+++ b/testsuite/tests/basic-more/pr1271.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(* GPR#1271 *)
diff --git a/testsuite/tests/basic-more/pr2719.ml b/testsuite/tests/basic-more/pr2719.ml
index cb69aeae34..7bddbf9345 100644
--- a/testsuite/tests/basic-more/pr2719.ml
+++ b/testsuite/tests/basic-more/pr2719.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
open Printf
diff --git a/testsuite/tests/basic-more/pr6216.ml b/testsuite/tests/basic-more/pr6216.ml
index 3f6b410993..89dba12f28 100644
--- a/testsuite/tests/basic-more/pr6216.ml
+++ b/testsuite/tests/basic-more/pr6216.ml
@@ -1,6 +1,6 @@
(* TEST
- include testing
- ocamlopt_flags ="-inline 20"
+ include testing;
+ ocamlopt_flags = "-inline 20";
*)
(* PR6216: wrong inlining of GADT match *)
diff --git a/testsuite/tests/basic-more/record_evaluation_order.ml b/testsuite/tests/basic-more/record_evaluation_order.ml
index f8d1d568b3..66780ea237 100644
--- a/testsuite/tests/basic-more/record_evaluation_order.ml
+++ b/testsuite/tests/basic-more/record_evaluation_order.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
type r =
diff --git a/testsuite/tests/basic-more/robustmatch.ml b/testsuite/tests/basic-more/robustmatch.ml
index e4768d0a66..5aea6d1f53 100644
--- a/testsuite/tests/basic-more/robustmatch.ml
+++ b/testsuite/tests/basic-more/robustmatch.ml
@@ -1,6 +1,6 @@
(* TEST
- flags += "-w +4+8+9+11+12+52+56+57"
- include testing
+ flags += "-w +4+8+9+11+12+52+56+57";
+ include testing;
*)
module GPR1493 = struct
diff --git a/testsuite/tests/basic-more/safer_matching.ml b/testsuite/tests/basic-more/safer_matching.ml
index 0720b4c3fc..668c521968 100644
--- a/testsuite/tests/basic-more/safer_matching.ml
+++ b/testsuite/tests/basic-more/safer_matching.ml
@@ -1,5 +1,5 @@
-(* TEST
- flags += "-safer-matching"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
type 'a dyn = Int : int -> int dyn | Float : float -> float dyn;;
@@ -9,3 +9,7 @@ let f (Float x) = x;;
Format.printf "%f\n%!" (f (Float 3.1415));;
try Printexc.print f (Obj.magic (Int 3)) with _ -> 0.;;
+
+(* TEST
+ flags += "-safer-matching";
+*)
diff --git a/testsuite/tests/basic-more/sequential_and_or.ml b/testsuite/tests/basic-more/sequential_and_or.ml
index 926cb9ab58..16c1367a41 100644
--- a/testsuite/tests/basic-more/sequential_and_or.ml
+++ b/testsuite/tests/basic-more/sequential_and_or.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let r = ref 0
diff --git a/testsuite/tests/basic-more/structural_constants.ml b/testsuite/tests/basic-more/structural_constants.ml
index 66cff92b3f..55a4287c55 100644
--- a/testsuite/tests/basic-more/structural_constants.ml
+++ b/testsuite/tests/basic-more/structural_constants.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
type t1 =
diff --git a/testsuite/tests/basic-more/tbuffer.ml b/testsuite/tests/basic-more/tbuffer.ml
index c3f96b7345..7daff1b576 100644
--- a/testsuite/tests/basic-more/tbuffer.ml
+++ b/testsuite/tests/basic-more/tbuffer.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(* Dummy substitute function. *)
diff --git a/testsuite/tests/basic-more/top_level_patterns.ml b/testsuite/tests/basic-more/top_level_patterns.ml
index aca641fc4f..a253bfe5a0 100644
--- a/testsuite/tests/basic-more/top_level_patterns.ml
+++ b/testsuite/tests/basic-more/top_level_patterns.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
type t =
diff --git a/testsuite/tests/basic-more/tprintf.ml b/testsuite/tests/basic-more/tprintf.ml
index e1cb4c0a7b..d4bde0bbae 100644
--- a/testsuite/tests/basic-more/tprintf.ml
+++ b/testsuite/tests/basic-more/tprintf.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
open Testing;;
diff --git a/testsuite/tests/basic-multdef/usemultdef.ml b/testsuite/tests/basic-multdef/usemultdef.ml
index 477cf4ced5..858b478d0c 100644
--- a/testsuite/tests/basic-multdef/usemultdef.ml
+++ b/testsuite/tests/basic-multdef/usemultdef.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "multdef.ml"
+ modules = "multdef.ml";
*)
let _ = print_int(Multdef.f 1); print_newline(); exit 0
diff --git a/testsuite/tests/basic-private/tlength.ml b/testsuite/tests/basic-private/tlength.ml
index 00ce4cc843..7a43ddff1c 100644
--- a/testsuite/tests/basic-private/tlength.ml
+++ b/testsuite/tests/basic-private/tlength.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "length.ml"
+ modules = "length.ml";
*)
(*
diff --git a/testsuite/tests/basic/constprop.ml.c b/testsuite/tests/basic/constprop.ml.c
index ee23d48992..805aa9d600 100644
--- a/testsuite/tests/basic/constprop.ml.c
+++ b/testsuite/tests/basic/constprop.ml.c
@@ -1,9 +1,12 @@
(* TEST
- flags = "-pp '${c_preprocessor}'"
- ocaml_filetype_flag = "-impl"
- * bytecode
- compare_programs = "false"
- * native
+ flags = "-pp '${c_preprocessor}'";
+ ocaml_filetype_flag = "-impl";
+ {
+ compare_programs = "false";
+ bytecode;
+ }{
+ native;
+ }
*)
(* This file has extension .ml.c because it needs to be preprocessed
diff --git a/testsuite/tests/basic/opt_variants.ml b/testsuite/tests/basic/opt_variants.ml
index 7083a03d7a..c36c1b112a 100644
--- a/testsuite/tests/basic/opt_variants.ml
+++ b/testsuite/tests/basic/opt_variants.ml
@@ -1,5 +1,5 @@
(* TEST
-unset DOES_NOT_EXIST
+ unset DOES_NOT_EXIST;
*)
let () =
diff --git a/testsuite/tests/basic/patmatch_for_multiple.ml b/testsuite/tests/basic/patmatch_for_multiple.ml
index 0f532c5b5f..d3f3f1409e 100644
--- a/testsuite/tests/basic/patmatch_for_multiple.ml
+++ b/testsuite/tests/basic/patmatch_for_multiple.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-drawlambda -dlambda"
- * expect
+ flags = "-drawlambda -dlambda";
+ expect;
*)
(* Note: the tests below contain *both* the -drawlambda and
diff --git a/testsuite/tests/basic/patmatch_incoherence.ml b/testsuite/tests/basic/patmatch_incoherence.ml
index b4b951ca51..ecf6b0b813 100644
--- a/testsuite/tests/basic/patmatch_incoherence.ml
+++ b/testsuite/tests/basic/patmatch_incoherence.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type tlist = { x: 'a. 'a list };;
diff --git a/testsuite/tests/basic/patmatch_split_no_or.ml b/testsuite/tests/basic/patmatch_split_no_or.ml
index 57427d9524..2ceb5c4036 100644
--- a/testsuite/tests/basic/patmatch_split_no_or.ml
+++ b/testsuite/tests/basic/patmatch_split_no_or.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-nostdlib -nopervasives -dlambda"
- * expect
- *)
+ flags = "-nostdlib -nopervasives -dlambda";
+ expect;
+*)
(******************************************************************************)
diff --git a/testsuite/tests/basic/unit_naming.ml b/testsuite/tests/basic/unit_naming.ml
index 6b7a65c255..8bbe391b25 100644
--- a/testsuite/tests/basic/unit_naming.ml
+++ b/testsuite/tests/basic/unit_naming.ml
@@ -1,9 +1,17 @@
-(* TEST
- modules = "camlCase.ml"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- ocamlc_byte_exit_status = "2"
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
print_int Camlcase.answer
+
+(* TEST
+ modules = "camlCase.ml";
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/c-api/alloc_async.ml b/testsuite/tests/c-api/alloc_async.ml
index b8c99a4b07..abbf729bd6 100644
--- a/testsuite/tests/c-api/alloc_async.ml
+++ b/testsuite/tests/c-api/alloc_async.ml
@@ -1,7 +1,7 @@
(* TEST
- modules = "alloc_async_stubs.c"
- * skip
- reason = "alloc async changes: https://github.com/ocaml/ocaml/pull/8897"
+ modules = "alloc_async_stubs.c";
+ reason = "alloc async changes: https://github.com/ocaml/ocaml/pull/8897";
+ skip;
*)
external test : int ref -> unit = "stub"
diff --git a/testsuite/tests/c-api/test_c_thread_has_lock.ml b/testsuite/tests/c-api/test_c_thread_has_lock.ml
index e826001559..a7b176c8d1 100644
--- a/testsuite/tests/c-api/test_c_thread_has_lock.ml
+++ b/testsuite/tests/c-api/test_c_thread_has_lock.ml
@@ -1,7 +1,10 @@
(* TEST
- modules = "test_c_thread_has_lock_cstubs.c"
- * bytecode
- * native
+ modules = "test_c_thread_has_lock_cstubs.c";
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external test_with_lock : unit -> bool = "with_lock"
diff --git a/testsuite/tests/c-api/test_c_thread_has_lock_systhread.ml b/testsuite/tests/c-api/test_c_thread_has_lock_systhread.ml
index 65327be652..ac043c5e92 100644
--- a/testsuite/tests/c-api/test_c_thread_has_lock_systhread.ml
+++ b/testsuite/tests/c-api/test_c_thread_has_lock_systhread.ml
@@ -1,9 +1,12 @@
(* TEST
- modules = "test_c_thread_has_lock_cstubs.c"
- * hassysthreads
- include systhreads
- ** bytecode
- ** native
+ modules = "test_c_thread_has_lock_cstubs.c";
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external test_with_lock : unit -> bool = "with_lock"
diff --git a/testsuite/tests/callback/callback_effects_gc.ml b/testsuite/tests/callback/callback_effects_gc.ml
index 191a23e0ff..50b5ac02f9 100644
--- a/testsuite/tests/callback/callback_effects_gc.ml
+++ b/testsuite/tests/callback/callback_effects_gc.ml
@@ -1,6 +1,6 @@
(* TEST
- ocamlrunparam += ",s=512"
- * native
+ ocamlrunparam += ",s=512";
+ native;
*)
let count = ref 0
diff --git a/testsuite/tests/callback/minor_named.ml b/testsuite/tests/callback/minor_named.ml
index 9bc01b77d5..77b5e03118 100644
--- a/testsuite/tests/callback/minor_named.ml
+++ b/testsuite/tests/callback/minor_named.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "minor_named_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "minor_named_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests Callback.register and caml_named_value on a young object *)
diff --git a/testsuite/tests/callback/nested_fiber.ml b/testsuite/tests/callback/nested_fiber.ml
index 3786e455ef..2d144c09e7 100644
--- a/testsuite/tests/callback/nested_fiber.ml
+++ b/testsuite/tests/callback/nested_fiber.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "nested_fiber_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "nested_fiber_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external caml_to_c : (unit -> 'a) -> 'a = "caml_to_c"
diff --git a/testsuite/tests/callback/signals_alloc.ml b/testsuite/tests/callback/signals_alloc.ml
index 27ed2f7da6..ba3c9fbe3f 100644
--- a/testsuite/tests/callback/signals_alloc.ml
+++ b/testsuite/tests/callback/signals_alloc.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "callbackprim.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "callbackprim.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external raise_sigusr1 : unit -> unit = "raise_sigusr1"
diff --git a/testsuite/tests/callback/stack_overflow.ml b/testsuite/tests/callback/stack_overflow.ml
index 23691dcf6c..9b48df20e9 100644
--- a/testsuite/tests/callback/stack_overflow.ml
+++ b/testsuite/tests/callback/stack_overflow.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "stack_overflow_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "stack_overflow_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external caml_to_c : (unit -> 'a) -> 'a = "caml_to_c"
diff --git a/testsuite/tests/callback/test1.ml b/testsuite/tests/callback/test1.ml
index 7c45945a8b..e481d52aa9 100644
--- a/testsuite/tests/callback/test1.ml
+++ b/testsuite/tests/callback/test1.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test1_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test1_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(**************************************************************************)
diff --git a/testsuite/tests/callback/test2.ml b/testsuite/tests/callback/test2.ml
index 87314864f2..168745a2a5 100644
--- a/testsuite/tests/callback/test2.ml
+++ b/testsuite/tests/callback/test2.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test2_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test2_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests nested calls from C (main C) to OCaml (main OCaml) to C (caml_to_c) to
diff --git a/testsuite/tests/callback/test3.ml b/testsuite/tests/callback/test3.ml
index 6b4f64b739..ce40ae9141 100644
--- a/testsuite/tests/callback/test3.ml
+++ b/testsuite/tests/callback/test3.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test3_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test3_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests nested calls from C (main C) to OCaml (main OCaml) to C (caml_to_c) to
diff --git a/testsuite/tests/callback/test4.ml b/testsuite/tests/callback/test4.ml
index 3c42317d7e..5f51c45158 100644
--- a/testsuite/tests/callback/test4.ml
+++ b/testsuite/tests/callback/test4.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test4_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test4_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests nested calls from C (main C) to OCaml (main OCaml) to C (caml_to_c) to
diff --git a/testsuite/tests/callback/test5.ml b/testsuite/tests/callback/test5.ml
index 62fd8b9b0e..0249f93537 100644
--- a/testsuite/tests/callback/test5.ml
+++ b/testsuite/tests/callback/test5.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test5_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test5_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests nested calls from C (main C) to OCaml (main OCaml) to C (caml_to_c) to
diff --git a/testsuite/tests/callback/test6.ml b/testsuite/tests/callback/test6.ml
index e3ff477f5b..4ecdafdf98 100644
--- a/testsuite/tests/callback/test6.ml
+++ b/testsuite/tests/callback/test6.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test6_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test6_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests nested calls from C (main C) to OCaml (main OCaml) to C (caml_to_c) to
diff --git a/testsuite/tests/callback/test7.ml b/testsuite/tests/callback/test7.ml
index 8883a55f69..b607ec3cfb 100644
--- a/testsuite/tests/callback/test7.ml
+++ b/testsuite/tests/callback/test7.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test7_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test7_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Tests nested calls from C (main C) to OCaml (main OCaml) to C (caml_to_c) to
diff --git a/testsuite/tests/callback/test_finaliser_gc.ml b/testsuite/tests/callback/test_finaliser_gc.ml
index c9c51cabb6..97c98cf89a 100644
--- a/testsuite/tests/callback/test_finaliser_gc.ml
+++ b/testsuite/tests/callback/test_finaliser_gc.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let z = ref (0, 1, 2, 3, 4, 5, 6, 7)
let finaliser_pending = ref true
diff --git a/testsuite/tests/callback/test_signalhandler.ml b/testsuite/tests/callback/test_signalhandler.ml
index a2bbacee72..d94b17c036 100644
--- a/testsuite/tests/callback/test_signalhandler.ml
+++ b/testsuite/tests/callback/test_signalhandler.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- modules = "test_signalhandler_.c"
- * libunix
- ** bytecode
- ** native
+ include unix;
+ modules = "test_signalhandler_.c";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(**************************************************************************)
diff --git a/testsuite/tests/compiler-libs/test_longident.ml b/testsuite/tests/compiler-libs/test_longident.ml
index 33bf09ffec..d30060c7c7 100644
--- a/testsuite/tests/compiler-libs/test_longident.ml
+++ b/testsuite/tests/compiler-libs/test_longident.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-I ${ocamlsrcdir}/parsing"
- include ocamlcommon
- * expect
+ flags = "-I ${ocamlsrcdir}/parsing";
+ include ocamlcommon;
+ expect;
*)
[@@@alert "-deprecated"]
diff --git a/testsuite/tests/compiler-libs/test_untypeast.ml b/testsuite/tests/compiler-libs/test_untypeast.ml
index 97775515fa..0a264642eb 100644
--- a/testsuite/tests/compiler-libs/test_untypeast.ml
+++ b/testsuite/tests/compiler-libs/test_untypeast.ml
@@ -1,8 +1,7 @@
(* TEST
- flags = "-I ${ocamlsrcdir}/typing \
- -I ${ocamlsrcdir}/parsing"
- include ocamlcommon
- * expect
+ flags = "-I ${ocamlsrcdir}/typing -I ${ocamlsrcdir}/parsing";
+ include ocamlcommon;
+ expect;
*)
let res =
diff --git a/testsuite/tests/effects/backtrace.ml b/testsuite/tests/effects/backtrace.ml
index 6257ba75c5..c76a070a14 100644
--- a/testsuite/tests/effects/backtrace.ml
+++ b/testsuite/tests/effects/backtrace.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-g"
- ocamlrunparam += ",b=1"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
open Effect
@@ -52,3 +52,8 @@ let main () =
| _ -> None }
let _ = main ()
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+*)
diff --git a/testsuite/tests/effects/cmphash.ml b/testsuite/tests/effects/cmphash.ml
index 78481d6404..397bc78fde 100644
--- a/testsuite/tests/effects/cmphash.ml
+++ b/testsuite/tests/effects/cmphash.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/evenodd.ml b/testsuite/tests/effects/evenodd.ml
index 035308b58f..c656bfb013 100644
--- a/testsuite/tests/effects/evenodd.ml
+++ b/testsuite/tests/effects/evenodd.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/issue479.ml b/testsuite/tests/effects/issue479.ml
index 228e098d2e..a960dcd8cc 100644
--- a/testsuite/tests/effects/issue479.ml
+++ b/testsuite/tests/effects/issue479.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* https://github.com/ocaml-multicore/ocaml-multicore/issues/479 *)
diff --git a/testsuite/tests/effects/manylive.ml b/testsuite/tests/effects/manylive.ml
index 96e25e23d8..edb4e7593d 100644
--- a/testsuite/tests/effects/manylive.ml
+++ b/testsuite/tests/effects/manylive.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
let f x =
let a0 = ref 1 in
diff --git a/testsuite/tests/effects/marshal.ml b/testsuite/tests/effects/marshal.ml
index 89eee89457..c85c0eaec6 100644
--- a/testsuite/tests/effects/marshal.ml
+++ b/testsuite/tests/effects/marshal.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/overflow.ml b/testsuite/tests/effects/overflow.ml
index a187e9e10d..2bc5da91e3 100644
--- a/testsuite/tests/effects/overflow.ml
+++ b/testsuite/tests/effects/overflow.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/partial.ml b/testsuite/tests/effects/partial.ml
index 50e4b53cfc..64b7d496ac 100644
--- a/testsuite/tests/effects/partial.ml
+++ b/testsuite/tests/effects/partial.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/reperform.ml b/testsuite/tests/effects/reperform.ml
index 8aefdd0587..2ea45bcd4b 100644
--- a/testsuite/tests/effects/reperform.ml
+++ b/testsuite/tests/effects/reperform.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/sched.ml b/testsuite/tests/effects/sched.ml
index 3dc14a2cfc..ca97ecf736 100644
--- a/testsuite/tests/effects/sched.ml
+++ b/testsuite/tests/effects/sched.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/shallow_state.ml b/testsuite/tests/effects/shallow_state.ml
index 56c61b0c3c..90f27a8017 100644
--- a/testsuite/tests/effects/shallow_state.ml
+++ b/testsuite/tests/effects/shallow_state.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Shallow
diff --git a/testsuite/tests/effects/shallow_state_io.ml b/testsuite/tests/effects/shallow_state_io.ml
index 6b1fa649a7..b339ad96b5 100644
--- a/testsuite/tests/effects/shallow_state_io.ml
+++ b/testsuite/tests/effects/shallow_state_io.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Shallow
diff --git a/testsuite/tests/effects/test1.ml b/testsuite/tests/effects/test1.ml
index 5d05359f8a..c91b777696 100644
--- a/testsuite/tests/effects/test1.ml
+++ b/testsuite/tests/effects/test1.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/test10.ml b/testsuite/tests/effects/test10.ml
index 29c5f47f25..5e11b201ab 100644
--- a/testsuite/tests/effects/test10.ml
+++ b/testsuite/tests/effects/test10.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/test11.ml b/testsuite/tests/effects/test11.ml
index 6714473e0e..8d294c0b06 100644
--- a/testsuite/tests/effects/test11.ml
+++ b/testsuite/tests/effects/test11.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Tests RESUMETERM with extra_args != 0 in bytecode,
by calling a handler with a tail-continue that returns a function *)
diff --git a/testsuite/tests/effects/test2.ml b/testsuite/tests/effects/test2.ml
index e9b8289bb2..877e1d3f07 100644
--- a/testsuite/tests/effects/test2.ml
+++ b/testsuite/tests/effects/test2.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Printf
open Effect
diff --git a/testsuite/tests/effects/test3.ml b/testsuite/tests/effects/test3.ml
index d76130eaaa..1a64454399 100644
--- a/testsuite/tests/effects/test3.ml
+++ b/testsuite/tests/effects/test3.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/test4.ml b/testsuite/tests/effects/test4.ml
index f5cf78cbda..6bb57341f4 100644
--- a/testsuite/tests/effects/test4.ml
+++ b/testsuite/tests/effects/test4.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/test5.ml b/testsuite/tests/effects/test5.ml
index 33ed2c23ca..fc8e744870 100644
--- a/testsuite/tests/effects/test5.ml
+++ b/testsuite/tests/effects/test5.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/test6.ml b/testsuite/tests/effects/test6.ml
index 40574561bf..3a327446b5 100644
--- a/testsuite/tests/effects/test6.ml
+++ b/testsuite/tests/effects/test6.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/effects/unhandled_unlinked.ml b/testsuite/tests/effects/unhandled_unlinked.ml
index bc2badb8e8..9ecfbecbc9 100644
--- a/testsuite/tests/effects/unhandled_unlinked.ml
+++ b/testsuite/tests/effects/unhandled_unlinked.ml
@@ -1,5 +1,5 @@
(* TEST
- exit_status= "2"
+ exit_status = "2";
*)
open Effect
diff --git a/testsuite/tests/effects/used_cont.ml b/testsuite/tests/effects/used_cont.ml
index 71a33388ec..bb4b8e6f87 100644
--- a/testsuite/tests/effects/used_cont.ml
+++ b/testsuite/tests/effects/used_cont.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
open Effect
open Effect.Deep
diff --git a/testsuite/tests/embedded/cmcaml.ml b/testsuite/tests/embedded/cmcaml.ml
index 005b489cc9..f176cc57cf 100644
--- a/testsuite/tests/embedded/cmcaml.ml
+++ b/testsuite/tests/embedded/cmcaml.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "cmstub.c cmmain.c"
+ modules = "cmstub.c cmmain.c";
*)
(* OCaml part of the code *)
diff --git a/testsuite/tests/ephe-c-api/test.ml b/testsuite/tests/ephe-c-api/test.ml
index ff1646835a..e84c012ace 100644
--- a/testsuite/tests/ephe-c-api/test.ml
+++ b/testsuite/tests/ephe-c-api/test.ml
@@ -1,7 +1,7 @@
(* TEST
- modules = "stubs.c"
- * skip
- reason = "port the new Ephemeron C-api to multicore : https://github.com/ocaml/ocaml/pull/676"
+ modules = "stubs.c";
+ reason = "port the new Ephemeron C-api to multicore : https://github.com/ocaml/ocaml/pull/676";
+ skip;
*)
(* C version of ephetest.ml *)
diff --git a/testsuite/tests/exotic-syntax/exotic.ml b/testsuite/tests/exotic-syntax/exotic.ml
index 94666e7fab..b0c8834798 100644
--- a/testsuite/tests/exotic-syntax/exotic.ml
+++ b/testsuite/tests/exotic-syntax/exotic.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Exotic OCaml syntax constructs found in the manual that are not *)
(* used in the source of the OCaml distribution (even in the tests). *)
diff --git a/testsuite/tests/extension-constructor/test.ml b/testsuite/tests/extension-constructor/test.ml
index 227f420a96..b4cc334c8a 100644
--- a/testsuite/tests/extension-constructor/test.ml
+++ b/testsuite/tests/extension-constructor/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
type t = ..
diff --git a/testsuite/tests/flambda/afl_lazy.ml b/testsuite/tests/flambda/afl_lazy.ml
index fd5178dac8..657b0d20c2 100644
--- a/testsuite/tests/flambda/afl_lazy.ml
+++ b/testsuite/tests/flambda/afl_lazy.ml
@@ -1,7 +1,7 @@
(* TEST
- * flambda
- ** native
- ocamlopt_flags = "-O3 -afl-instrument"
+ flambda;
+ ocamlopt_flags = "-O3 -afl-instrument";
+ native;
*)
let f l =
diff --git a/testsuite/tests/flambda/approx_meet.ml b/testsuite/tests/flambda/approx_meet.ml
index c8a1276990..4445ae84bc 100644
--- a/testsuite/tests/flambda/approx_meet.ml
+++ b/testsuite/tests/flambda/approx_meet.ml
@@ -1,6 +1,9 @@
(* TEST
- * flambda
- * native
+ {
+ flambda;
+ }{
+ native;
+ }
*)
(* from GPR#1794 *)
diff --git a/testsuite/tests/flambda/gpr2239.ml b/testsuite/tests/flambda/gpr2239.ml
index 22c6555e08..f39ba3eb2a 100644
--- a/testsuite/tests/flambda/gpr2239.ml
+++ b/testsuite/tests/flambda/gpr2239.ml
@@ -1,6 +1,9 @@
(* TEST
- * flambda
- * native
+ {
+ flambda;
+ }{
+ native;
+ }
*)
let do_something () =
diff --git a/testsuite/tests/flambda/gpr998.ml b/testsuite/tests/flambda/gpr998.ml
index dfb06833ec..b1cb64baa1 100644
--- a/testsuite/tests/flambda/gpr998.ml
+++ b/testsuite/tests/flambda/gpr998.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags = "-unbox-closures"
+ ocamlopt_flags = "-unbox-closures";
*)
(* This test attempts to check that unused closures are not deleted
diff --git a/testsuite/tests/flambda/specialise.ml b/testsuite/tests/flambda/specialise.ml
index b5e80c7b99..fc2a57eeb0 100644
--- a/testsuite/tests/flambda/specialise.ml
+++ b/testsuite/tests/flambda/specialise.ml
@@ -1,7 +1,7 @@
(* TEST
- * flambda
- ** native
- ocamlopt_flags = "-O2 -inline-call-cost 1=20 -unbox-closures"
+ flambda;
+ ocamlopt_flags = "-O2 -inline-call-cost 1=20 -unbox-closures";
+ native;
*)
let hide_until_round_2 init_in_hide f_in_hide =
diff --git a/testsuite/tests/float-unboxing/float_subst_boxed_number.ml b/testsuite/tests/float-unboxing/float_subst_boxed_number.ml
index 459e3eba96..fa6ebb268d 100644
--- a/testsuite/tests/float-unboxing/float_subst_boxed_number.ml
+++ b/testsuite/tests/float-unboxing/float_subst_boxed_number.ml
@@ -1,9 +1,9 @@
(* TEST
- include config
- flags = "-w -55"
- ocamlc_flags = "config.cmo"
- ocamlopt_flags = "-inline 20 config.cmx"
- * native
+ include config;
+ flags = "-w -55";
+ ocamlc_flags = "config.cmo";
+ ocamlopt_flags = "-inline 20 config.cmx";
+ native;
*)
let eliminate_intermediate_float_record () =
diff --git a/testsuite/tests/float-unboxing/unbox_under_assign.ml b/testsuite/tests/float-unboxing/unbox_under_assign.ml
index 46a6a18ce3..9365875f94 100644
--- a/testsuite/tests/float-unboxing/unbox_under_assign.ml
+++ b/testsuite/tests/float-unboxing/unbox_under_assign.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
module Float = struct
type _ t =
diff --git a/testsuite/tests/formats-transition/deprecated_unsigned_printers.ml b/testsuite/tests/formats-transition/deprecated_unsigned_printers.ml
index 21f4bf4226..76af1fbdf6 100644
--- a/testsuite/tests/formats-transition/deprecated_unsigned_printers.ml
+++ b/testsuite/tests/formats-transition/deprecated_unsigned_printers.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* %n, %l, %N and %L have a scanf-specific semantics, but are supposed
diff --git a/testsuite/tests/formats-transition/ignored_scan_counters.ml b/testsuite/tests/formats-transition/ignored_scan_counters.ml
index bc625511d0..a597532f80 100644
--- a/testsuite/tests/formats-transition/ignored_scan_counters.ml
+++ b/testsuite/tests/formats-transition/ignored_scan_counters.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Benoit's patch did not support %_[nlNL]; test their behavior *)
diff --git a/testsuite/tests/formats-transition/legacy_incompatible_flags.ml b/testsuite/tests/formats-transition/legacy_incompatible_flags.ml
index 91b0f6f07f..b9978026ce 100644
--- a/testsuite/tests/formats-transition/legacy_incompatible_flags.ml
+++ b/testsuite/tests/formats-transition/legacy_incompatible_flags.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-no-strict-formats"
- * toplevel
+ flags = "-no-strict-formats";
+ toplevel;
*)
(* the legacy parser ignores flags on formatters on which they make no
diff --git a/testsuite/tests/formats-transition/legacy_unfinished_modifiers.ml b/testsuite/tests/formats-transition/legacy_unfinished_modifiers.ml
index 9bbaa178a3..c03de65e20 100644
--- a/testsuite/tests/formats-transition/legacy_unfinished_modifiers.ml
+++ b/testsuite/tests/formats-transition/legacy_unfinished_modifiers.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-no-strict-formats"
- * toplevel
+ flags = "-no-strict-formats";
+ toplevel;
*)
(* test whether padding modifiers are accepted without any padding
diff --git a/testsuite/tests/formatting/errors_batch.ml b/testsuite/tests/formatting/errors_batch.ml
index abf4513da1..6d5bf4611c 100644
--- a/testsuite/tests/formatting/errors_batch.ml
+++ b/testsuite/tests/formatting/errors_batch.ml
@@ -1,5 +1,5 @@
(* TEST
- include ocamlcommon
+ include ocamlcommon;
*)
let () =
diff --git a/testsuite/tests/formatting/margins.ml b/testsuite/tests/formatting/margins.ml
index 036288890e..baa1dace63 100644
--- a/testsuite/tests/formatting/margins.ml
+++ b/testsuite/tests/formatting/margins.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
let () = Format.pp_set_margin Format.std_formatter 20;;
diff --git a/testsuite/tests/formatting/test_locations.ml b/testsuite/tests/formatting/test_locations.ml
index b821f626ae..87bce8c613 100644
--- a/testsuite/tests/formatting/test_locations.ml
+++ b/testsuite/tests/formatting/test_locations.ml
@@ -1,20 +1,37 @@
-(* TEST
-compile_only="true"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags="-g -dno-unique-ids -dno-locations -dsource -dparsetree -dtypedtree -dlambda"
-*** check-ocamlc.byte-output
-compiler_reference =
- "${test_source_directory}/test_locations.dno-locations.ocamlc.reference"
+(* TEST_BELOW
+Filler_text_a
+dded_to_preserve_locations_wh
+ile_translatin
+g_from_old_syntax__Filler_text_added_to_preserve_locations_while_translating_from_o
+ld_syntax__Filler_text_added
+_to_preserve_locatio
+ns_while_translating_from_old_syntax__Filler_text_added_to_preserve_locati
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags="-g -dno-unique-ids -dlocations -dsource -dparsetree -dtypedtree -dlambda"
-*** check-ocamlc.byte-output
-compiler_reference =
- "${test_source_directory}/test_locations.dlocations.ocamlc.reference"
+ons_while_translating_from_ol
+d_syntax__Fill
+er_text_added_to_preserve_locations_while_translating_from_old_syntax__Filler_te
+xt_added_to_preserve_locatio
+ns_while_translating
+_from_old_syntax__Filler_text_added_to_preserve_locations_while_transla
*)
let rec fib = function
| 0 | 1 -> 1
| n -> fib (n - 1) + fib (n - 2)
;;
+
+(* TEST
+ compile_only = "true";
+ {
+ setup-ocamlc.byte-build-env;
+ flags = "-g -dno-unique-ids -dno-locations -dsource -dparsetree -dtypedtree -dlambda";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/test_locations.dno-locations.ocamlc.reference";
+ check-ocamlc.byte-output;
+ }{
+ setup-ocamlc.byte-build-env;
+ flags = "-g -dno-unique-ids -dlocations -dsource -dparsetree -dtypedtree -dlambda";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/test_locations.dlocations.ocamlc.reference";
+ check-ocamlc.byte-output;
+ }
+*)
diff --git a/testsuite/tests/frame-pointers/c_call.ml b/testsuite/tests/frame-pointers/c_call.ml
index c2493b3a99..7d48b4947d 100644
--- a/testsuite/tests/frame-pointers/c_call.ml
+++ b/testsuite/tests/frame-pointers/c_call.ml
@@ -1,10 +1,8 @@
(* TEST
-
-* frame_pointers
-** native
-readonly_files = "fp_backtrace.c c_call_.c"
-all_modules = "${readonly_files} c_call.ml"
-
+ frame_pointers;
+ readonly_files = "fp_backtrace.c c_call_.c";
+ all_modules = "${readonly_files} c_call.ml";
+ native;
*)
external fp_backtrace : unit -> unit = "fp_backtrace"
diff --git a/testsuite/tests/frame-pointers/effects.ml b/testsuite/tests/frame-pointers/effects.ml
index e14633a374..2aa7012606 100644
--- a/testsuite/tests/frame-pointers/effects.ml
+++ b/testsuite/tests/frame-pointers/effects.ml
@@ -1,10 +1,8 @@
(* TEST
-
-* frame_pointers
-** native
-readonly_files = "fp_backtrace.c"
-all_modules = "${readonly_files} effects.ml"
-
+ frame_pointers;
+ readonly_files = "fp_backtrace.c";
+ all_modules = "${readonly_files} effects.ml";
+ native;
*)
open Printf
diff --git a/testsuite/tests/frame-pointers/exception_handler.ml b/testsuite/tests/frame-pointers/exception_handler.ml
index 575f7329bf..6bf5bf470d 100644
--- a/testsuite/tests/frame-pointers/exception_handler.ml
+++ b/testsuite/tests/frame-pointers/exception_handler.ml
@@ -1,10 +1,8 @@
(* TEST
-
-* frame_pointers
-** native
-readonly_files = "fp_backtrace.c"
-all_modules = "${readonly_files} exception_handler.ml"
-
+ frame_pointers;
+ readonly_files = "fp_backtrace.c";
+ all_modules = "${readonly_files} exception_handler.ml";
+ native;
*)
(* https://github.com/ocaml/ocaml/pull/11031 *)
diff --git a/testsuite/tests/frame-pointers/reperform.ml b/testsuite/tests/frame-pointers/reperform.ml
index 1af8452e5f..ec5393907c 100644
--- a/testsuite/tests/frame-pointers/reperform.ml
+++ b/testsuite/tests/frame-pointers/reperform.ml
@@ -1,11 +1,8 @@
(* TEST
-
-* frame_pointers
-** native
-
-readonly_files = "fp_backtrace.c"
-all_modules = "${readonly_files} reperform.ml"
-
+ frame_pointers;
+ readonly_files = "fp_backtrace.c";
+ all_modules = "${readonly_files} reperform.ml";
+ native;
*)
open Effect
diff --git a/testsuite/tests/frame-pointers/stack_realloc.ml b/testsuite/tests/frame-pointers/stack_realloc.ml
index 79e70c2add..fc4e9e9d3b 100644
--- a/testsuite/tests/frame-pointers/stack_realloc.ml
+++ b/testsuite/tests/frame-pointers/stack_realloc.ml
@@ -1,11 +1,8 @@
(* TEST
-
-* frame_pointers
-** native
-
-readonly_files = "fp_backtrace.c stack_realloc_.c"
-all_modules = "${readonly_files} stack_realloc.ml"
-
+ frame_pointers;
+ readonly_files = "fp_backtrace.c stack_realloc_.c";
+ all_modules = "${readonly_files} stack_realloc.ml";
+ native;
*)
open Effect
diff --git a/testsuite/tests/frame-pointers/stack_realloc2.ml b/testsuite/tests/frame-pointers/stack_realloc2.ml
index a3d21bf2bf..a4aea249ea 100644
--- a/testsuite/tests/frame-pointers/stack_realloc2.ml
+++ b/testsuite/tests/frame-pointers/stack_realloc2.ml
@@ -1,11 +1,8 @@
(* TEST
-
-* frame_pointers
-** native
-
-readonly_files = "fp_backtrace.c stack_realloc_.c"
-all_modules = "${readonly_files} stack_realloc2.ml"
-
+ frame_pointers;
+ readonly_files = "fp_backtrace.c stack_realloc_.c";
+ all_modules = "${readonly_files} stack_realloc2.ml";
+ native;
*)
open Effect
diff --git a/testsuite/tests/functors/functors.ml b/testsuite/tests/functors/functors.ml
index 3e40fc6147..0518f71844 100644
--- a/testsuite/tests/functors/functors.ml
+++ b/testsuite/tests/functors/functors.ml
@@ -1,8 +1,8 @@
(* TEST
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- flags = "-dlambda -dno-unique-ids"
- *** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ flags = "-dlambda -dno-unique-ids";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type S = sig
diff --git a/testsuite/tests/gc-roots/globroots.ml b/testsuite/tests/gc-roots/globroots.ml
index 56d1586331..52283d3401 100644
--- a/testsuite/tests/gc-roots/globroots.ml
+++ b/testsuite/tests/gc-roots/globroots.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "globrootsprim.c"
+ modules = "globrootsprim.c";
*)
module type GLOBREF = sig
diff --git a/testsuite/tests/gc-roots/globroots_parallel.ml b/testsuite/tests/gc-roots/globroots_parallel.ml
index 9ef88575b2..3a42308f72 100644
--- a/testsuite/tests/gc-roots/globroots_parallel.ml
+++ b/testsuite/tests/gc-roots/globroots_parallel.ml
@@ -1,6 +1,6 @@
(* TEST
- flags += " -w a "
- modules = "globrootsprim.c globroots.ml"
+ flags += " -w a ";
+ modules = "globrootsprim.c globroots.ml";
*)
open Globroots
diff --git a/testsuite/tests/gc-roots/globroots_parallel_spawn_burn.ml b/testsuite/tests/gc-roots/globroots_parallel_spawn_burn.ml
index c8b36098ac..8acd6913bd 100644
--- a/testsuite/tests/gc-roots/globroots_parallel_spawn_burn.ml
+++ b/testsuite/tests/gc-roots/globroots_parallel_spawn_burn.ml
@@ -1,6 +1,6 @@
(* TEST
- flags += " -w a "
- modules = "globrootsprim.c globroots.ml"
+ flags += " -w a ";
+ modules = "globrootsprim.c globroots.ml";
*)
open Globroots
diff --git a/testsuite/tests/gc-roots/globroots_sequential.ml b/testsuite/tests/gc-roots/globroots_sequential.ml
index 6bf995bf96..8c9f82e257 100644
--- a/testsuite/tests/gc-roots/globroots_sequential.ml
+++ b/testsuite/tests/gc-roots/globroots_sequential.ml
@@ -1,6 +1,6 @@
(* TEST
- flags += " -w a "
- modules = "globrootsprim.c globroots.ml"
+ flags += " -w a ";
+ modules = "globrootsprim.c globroots.ml";
*)
open Globroots
diff --git a/testsuite/tests/generalized-open/accepted_expect.ml b/testsuite/tests/generalized-open/accepted_expect.ml
index 01c94c275b..a373e0cfde 100644
--- a/testsuite/tests/generalized-open/accepted_expect.ml
+++ b/testsuite/tests/generalized-open/accepted_expect.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
open Set.Make(String);;
diff --git a/testsuite/tests/generalized-open/clambda_optim.ml b/testsuite/tests/generalized-open/clambda_optim.ml
index d7ca317ea6..9d24784f85 100644
--- a/testsuite/tests/generalized-open/clambda_optim.ml
+++ b/testsuite/tests/generalized-open/clambda_optim.ml
@@ -1,12 +1,9 @@
(* TEST
-
-compile_only = "true"
-
-* no-flambda
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
-**** check-ocamlopt.byte-output
-
+ compile_only = "true";
+ no-flambda;
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
*)
module Stable = struct
diff --git a/testsuite/tests/generalized-open/expansiveness.ml b/testsuite/tests/generalized-open/expansiveness.ml
index b2a55012f4..0e833d74e9 100644
--- a/testsuite/tests/generalized-open/expansiveness.ml
+++ b/testsuite/tests/generalized-open/expansiveness.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Fn = struct
diff --git a/testsuite/tests/generalized-open/funct_body.ml b/testsuite/tests/generalized-open/funct_body.ml
index 4490f77392..d20f4d2c53 100644
--- a/testsuite/tests/generalized-open/funct_body.ml
+++ b/testsuite/tests/generalized-open/funct_body.ml
@@ -1,8 +1,8 @@
-(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
module type T = sig
@@ -45,3 +45,13 @@ module O = F(M)
let () =
O.f N.x
+
+(* TEST
+ setup-ocamlc.byte-build-env;
+ {
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ }{
+ check-ocamlc.byte-output;
+ }
+*)
diff --git a/testsuite/tests/generalized-open/gpr1506.ml b/testsuite/tests/generalized-open/gpr1506.ml
index a6c8daa105..7663e2d77f 100644
--- a/testsuite/tests/generalized-open/gpr1506.ml
+++ b/testsuite/tests/generalized-open/gpr1506.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = A
diff --git a/testsuite/tests/generalized-open/pr10048.ml b/testsuite/tests/generalized-open/pr10048.ml
index d6f29322b0..8284bae912 100644
--- a/testsuite/tests/generalized-open/pr10048.ml
+++ b/testsuite/tests/generalized-open/pr10048.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Ext (X : sig type 'a t end) = struct
type t = T : 'a X.t -> t
diff --git a/testsuite/tests/generalized-open/shadowing.ml b/testsuite/tests/generalized-open/shadowing.ml
index 589807d367..37a6234662 100644
--- a/testsuite/tests/generalized-open/shadowing.ml
+++ b/testsuite/tests/generalized-open/shadowing.ml
@@ -1,8 +1,11 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "0"
-** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ {
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ }{
+ check-ocamlc.byte-output;
+ }
*)
module Make_sure_val : sig
diff --git a/testsuite/tests/generated-parse-errors/errors.ml b/testsuite/tests/generated-parse-errors/errors.ml
index c1f11f4416..19cf705a07 100644
--- a/testsuite/tests/generated-parse-errors/errors.ml
+++ b/testsuite/tests/generated-parse-errors/errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
#0 "use_file: HASH LIDENT TRUE WITH"
# lident true with
diff --git a/testsuite/tests/int64-unboxing/test.ml b/testsuite/tests/int64-unboxing/test.ml
index d35e52147a..7e00b54ee3 100644
--- a/testsuite/tests/int64-unboxing/test.ml
+++ b/testsuite/tests/int64-unboxing/test.ml
@@ -1,6 +1,6 @@
(* TEST
- modules = "stubs.c"
- * native
+ modules = "stubs.c";
+ native;
*)
external ( + ) : int64 -> int64 -> int64
diff --git a/testsuite/tests/lazy/lazy1.ml b/testsuite/tests/lazy/lazy1.ml
index f88e93da69..e2e0a2a78a 100644
--- a/testsuite/tests/lazy/lazy1.ml
+++ b/testsuite/tests/lazy/lazy1.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
(* Mantis 7301, due to A. Frisch *)
diff --git a/testsuite/tests/lazy/lazy2.ml b/testsuite/tests/lazy/lazy2.ml
index cccbd96d71..e386b97d6a 100644
--- a/testsuite/tests/lazy/lazy2.ml
+++ b/testsuite/tests/lazy/lazy2.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
open Domain
diff --git a/testsuite/tests/lazy/lazy3.ml b/testsuite/tests/lazy/lazy3.ml
index a22a0893b9..ff20beddd2 100644
--- a/testsuite/tests/lazy/lazy3.ml
+++ b/testsuite/tests/lazy/lazy3.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
let f count =
diff --git a/testsuite/tests/lazy/lazy4.ml b/testsuite/tests/lazy/lazy4.ml
index 3988318c79..9d4acdd99f 100644
--- a/testsuite/tests/lazy/lazy4.ml
+++ b/testsuite/tests/lazy/lazy4.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
let r = ref None
diff --git a/testsuite/tests/lazy/lazy5.ml b/testsuite/tests/lazy/lazy5.ml
index 217b84175e..4a8ac59fff 100644
--- a/testsuite/tests/lazy/lazy5.ml
+++ b/testsuite/tests/lazy/lazy5.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
let rec safe_force l =
try Lazy.force l with
diff --git a/testsuite/tests/lazy/lazy6.ml b/testsuite/tests/lazy/lazy6.ml
index 098848769a..9cad998ba3 100644
--- a/testsuite/tests/lazy/lazy6.ml
+++ b/testsuite/tests/lazy/lazy6.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
let flag1 = Atomic.make false
diff --git a/testsuite/tests/lazy/lazy7.ml b/testsuite/tests/lazy/lazy7.ml
index 6c96f32907..ceae7061c9 100644
--- a/testsuite/tests/lazy/lazy7.ml
+++ b/testsuite/tests/lazy/lazy7.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
let num_domains = 4
diff --git a/testsuite/tests/lazy/lazy8.ml b/testsuite/tests/lazy/lazy8.ml
index c9b5781617..1ecf578fad 100644
--- a/testsuite/tests/lazy/lazy8.ml
+++ b/testsuite/tests/lazy/lazy8.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
exception E
diff --git a/testsuite/tests/lazy/minor_major_force.ml b/testsuite/tests/lazy/minor_major_force.ml
index 37f367a9c7..f32fa66421 100644
--- a/testsuite/tests/lazy/minor_major_force.ml
+++ b/testsuite/tests/lazy/minor_major_force.ml
@@ -1,5 +1,5 @@
(* TEST
- ocamlopt_flags += " -O3 "
+ ocamlopt_flags += " -O3 ";
*)
(*
diff --git a/testsuite/tests/let-syntax/let_syntax.ml b/testsuite/tests/let-syntax/let_syntax.ml
index 9824bb5309..67ca3c6fcc 100644
--- a/testsuite/tests/let-syntax/let_syntax.ml
+++ b/testsuite/tests/let-syntax/let_syntax.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let id x = x
diff --git a/testsuite/tests/letrec-check/basic.ml b/testsuite/tests/letrec-check/basic.ml
index 595212802f..caa8c238ed 100644
--- a/testsuite/tests/letrec-check/basic.ml
+++ b/testsuite/tests/letrec-check/basic.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let rec x = (x; ());;
diff --git a/testsuite/tests/letrec-check/extension_constructor.ml b/testsuite/tests/letrec-check/extension_constructor.ml
index 93171ae1dc..007be5b8dd 100644
--- a/testsuite/tests/letrec-check/extension_constructor.ml
+++ b/testsuite/tests/letrec-check/extension_constructor.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Example from Stephen Dolan.
diff --git a/testsuite/tests/letrec-check/flat_float_array.ml b/testsuite/tests/letrec-check/flat_float_array.ml
index e49064cc4d..56912f44c8 100644
--- a/testsuite/tests/letrec-check/flat_float_array.ml
+++ b/testsuite/tests/letrec-check/flat_float_array.ml
@@ -1,6 +1,6 @@
(* TEST
- * flat-float-array
- ** expect
+ flat-float-array;
+ expect;
*)
(* When the -flat-float-array optimization is active (standard in
diff --git a/testsuite/tests/letrec-check/float_unboxing.ml b/testsuite/tests/letrec-check/float_unboxing.ml
index 6ef268f85d..142841312e 100644
--- a/testsuite/tests/letrec-check/float_unboxing.ml
+++ b/testsuite/tests/letrec-check/float_unboxing.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* This program is a minimal example which segfault if
diff --git a/testsuite/tests/letrec-check/labels.ml b/testsuite/tests/letrec-check/labels.ml
index e8b28342b8..46f8bed903 100644
--- a/testsuite/tests/letrec-check/labels.ml
+++ b/testsuite/tests/letrec-check/labels.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f ~x () = x ();;
diff --git a/testsuite/tests/letrec-check/lazy_.ml b/testsuite/tests/letrec-check/lazy_.ml
index 3bec9ec77d..5af54bfe37 100644
--- a/testsuite/tests/letrec-check/lazy_.ml
+++ b/testsuite/tests/letrec-check/lazy_.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let rec a = lazy b and b = 3;;
diff --git a/testsuite/tests/letrec-check/modules.ml b/testsuite/tests/letrec-check/modules.ml
index fc55f76b66..af4e3aeb58 100644
--- a/testsuite/tests/letrec-check/modules.ml
+++ b/testsuite/tests/letrec-check/modules.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let rec x = let module M = struct let f = x end in ();;
diff --git a/testsuite/tests/letrec-check/no_flat_float_array.ml b/testsuite/tests/letrec-check/no_flat_float_array.ml
index 394669bfdc..fd952c4df8 100644
--- a/testsuite/tests/letrec-check/no_flat_float_array.ml
+++ b/testsuite/tests/letrec-check/no_flat_float_array.ml
@@ -1,6 +1,6 @@
(* TEST
- * no-flat-float-array
- ** expect
+ no-flat-float-array;
+ expect;
*)
(* See float_block_disallowed.ml for explanations.
diff --git a/testsuite/tests/letrec-check/objects.ml b/testsuite/tests/letrec-check/objects.ml
index a223450e49..c3066290b0 100644
--- a/testsuite/tests/letrec-check/objects.ml
+++ b/testsuite/tests/letrec-check/objects.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class c = object end
diff --git a/testsuite/tests/letrec-check/pr7215.ml b/testsuite/tests/letrec-check/pr7215.ml
index 0a13bd6e83..487cdc3ede 100644
--- a/testsuite/tests/letrec-check/pr7215.ml
+++ b/testsuite/tests/letrec-check/pr7215.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* From Stephen Dolan *)
diff --git a/testsuite/tests/letrec-check/pr7231.ml b/testsuite/tests/letrec-check/pr7231.ml
index b2ddf3c2b3..7625e4df99 100644
--- a/testsuite/tests/letrec-check/pr7231.ml
+++ b/testsuite/tests/letrec-check/pr7231.ml
@@ -1,5 +1,9 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
let rec r = let rec x () = r and y () = x () in y () in r "oops";;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/letrec-check/pr7706.ml b/testsuite/tests/letrec-check/pr7706.ml
index 87403cd5a2..f566bff7ee 100644
--- a/testsuite/tests/letrec-check/pr7706.ml
+++ b/testsuite/tests/letrec-check/pr7706.ml
@@ -1,8 +1,12 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
let rec x =
let y = if false then (fun z -> 1) else (fun z -> x 4 + 1) in
y;;
let () = ignore (x 42);;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/letrec-check/records.ml b/testsuite/tests/letrec-check/records.ml
index db11d41eb7..2076fd227b 100644
--- a/testsuite/tests/letrec-check/records.ml
+++ b/testsuite/tests/letrec-check/records.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = { x : int; self : t };;
[%%expect {|
diff --git a/testsuite/tests/letrec-check/unboxed.ml b/testsuite/tests/letrec-check/unboxed.ml
index 7c04199ec9..8ef457f3ff 100644
--- a/testsuite/tests/letrec-check/unboxed.ml
+++ b/testsuite/tests/letrec-check/unboxed.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type r = R of r list [@@unboxed]
diff --git a/testsuite/tests/letrec-compilation/pr12153_miscompilation_of_recursive_atoms.ml b/testsuite/tests/letrec-compilation/pr12153_miscompilation_of_recursive_atoms.ml
new file mode 100644
index 0000000000..10ca5d6ea4
--- /dev/null
+++ b/testsuite/tests/letrec-compilation/pr12153_miscompilation_of_recursive_atoms.ml
@@ -0,0 +1,11 @@
+(* TEST *)
+
+let rec empty_int_array : int array =
+ let _ = empty_int_array in [||]
+
+let rec empty_float_array : float array =
+ let _ = empty_float_array in [||]
+
+module type Empty = sig end
+let rec empty_mod : (module Empty) =
+ let _ = empty_mod in (module struct end)
diff --git a/testsuite/tests/lexing/comments.ml b/testsuite/tests/lexing/comments.ml
index a7c9f2758d..99701d9608 100644
--- a/testsuite/tests/lexing/comments.ml
+++ b/testsuite/tests/lexing/comments.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* "*)" *)
diff --git a/testsuite/tests/lexing/escape.ml b/testsuite/tests/lexing/escape.ml
index bcb753131a..8e6abbad05 100644
--- a/testsuite/tests/lexing/escape.ml
+++ b/testsuite/tests/lexing/escape.ml
@@ -1,5 +1,5 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
(* Errors *)
@@ -9,3 +9,7 @@ let invalid = "\999" ;;
let invalid = "\o777" ;;
let invalid = "\o77" ;;
let invalid = "\o99" ;;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/lexing/uchar_esc.ml b/testsuite/tests/lexing/uchar_esc.ml
index 3e7b5379da..77e328acd4 100644
--- a/testsuite/tests/lexing/uchar_esc.ml
+++ b/testsuite/tests/lexing/uchar_esc.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Correct escapes and their encoding *)
diff --git a/testsuite/tests/lf_skiplist/stubs.c b/testsuite/tests/lf_skiplist/stubs.c
index 991483e408..75296cd92b 100644
--- a/testsuite/tests/lf_skiplist/stubs.c
+++ b/testsuite/tests/lf_skiplist/stubs.c
@@ -68,8 +68,7 @@ static uintnat count_marks(struct lf_skiplist *sk) {
while (p) {
for (int k = p->top_level; k >= 0; k--) {
- succ =
- (uintptr_t)atomic_load_explicit(&p->forward[k],memory_order_relaxed);
+ succ = (uintptr_t)atomic_load_relaxed(&p->forward[k]);
if (LF_SK_IS_MARKED(succ)) r++ ;
}
p = LF_SK_UNMARK(succ);
diff --git a/testsuite/tests/lf_skiplist/test.ml b/testsuite/tests/lf_skiplist/test.ml
index f3b11bf411..9a4a19cee7 100644
--- a/testsuite/tests/lf_skiplist/test.ml
+++ b/testsuite/tests/lf_skiplist/test.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "stubs.c"
+ modules = "stubs.c";
*)
external test_skiplist_serial : unit -> unit = "test_skiplist_serial"
diff --git a/testsuite/tests/lf_skiplist/test_parallel.ml b/testsuite/tests/lf_skiplist/test_parallel.ml
index ac02717889..1bbd8166bc 100644
--- a/testsuite/tests/lf_skiplist/test_parallel.ml
+++ b/testsuite/tests/lf_skiplist/test_parallel.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "stubs.c"
+ modules = "stubs.c";
*)
external init_skiplist : unit -> unit = "init_skiplist"
diff --git a/testsuite/tests/lib-arg/test_rest_all.ml b/testsuite/tests/lib-arg/test_rest_all.ml
index b0ac3c1eb5..81475013c1 100644
--- a/testsuite/tests/lib-arg/test_rest_all.ml
+++ b/testsuite/tests/lib-arg/test_rest_all.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type arg = AString of string | ARest of string | ARest_all of string list
diff --git a/testsuite/tests/lib-arg/testerror.ml b/testsuite/tests/lib-arg/testerror.ml
index 6bcf0fdeb8..0bbd5dce9b 100644
--- a/testsuite/tests/lib-arg/testerror.ml
+++ b/testsuite/tests/lib-arg/testerror.ml
@@ -1,5 +1,5 @@
(* TEST
- * native
+ native;
*)
(** Test that the right message errors are emitted by Arg *)
diff --git a/testsuite/tests/lib-array/test_array.ml b/testsuite/tests/lib-array/test_array.ml
index b3399e98de..c5b6143db6 100644
--- a/testsuite/tests/lib-array/test_array.ml
+++ b/testsuite/tests/lib-array/test_array.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let a = Array.make 8 None;;
diff --git a/testsuite/tests/lib-bigarray-2/bigarrcml.ml b/testsuite/tests/lib-bigarray-2/bigarrcml.ml
index 27f83ffae4..643fb86a9f 100644
--- a/testsuite/tests/lib-bigarray-2/bigarrcml.ml
+++ b/testsuite/tests/lib-bigarray-2/bigarrcml.ml
@@ -1,7 +1,5 @@
(* TEST
-
-modules = "bigarrcstub.c"
-
+ modules = "bigarrcstub.c";
*)
open Bigarray
diff --git a/testsuite/tests/lib-bigarray-2/bigarrfml.ml b/testsuite/tests/lib-bigarray-2/bigarrfml.ml
index a31e545c1a..05ba7b2771 100644
--- a/testsuite/tests/lib-bigarray-2/bigarrfml.ml
+++ b/testsuite/tests/lib-bigarray-2/bigarrfml.ml
@@ -1,31 +1,29 @@
(* TEST
-
-readonly_files = "bigarrf.f bigarrfstub.c"
-last_flags = "-cclib -lgfortran"
-
-* script
-script = "sh ${test_source_directory}/has-gfortran.sh"
-
-** setup-ocamlc.byte-build-env
-*** script
-script = "sh ${test_source_directory}/call-gfortran.sh ${cc} -c bigarrf.f"
-**** ocamlc.byte
-all_modules = "bigarrf.o bigarrfstub.c bigarrfml.ml"
-***** run
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-****** check-program-output
-
-** setup-ocamlopt.byte-build-env
-*** script
-script = "sh ${test_source_directory}/call-gfortran.sh ${cc} -c bigarrf.f"
-**** ocamlopt.byte
-all_modules = "bigarrf.o bigarrfstub.c bigarrfml.ml"
-***** run
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-****** check-program-output
-
+ readonly_files = "bigarrf.f bigarrfstub.c";
+ last_flags = "-cclib -lgfortran";
+ script = "sh ${test_source_directory}/has-gfortran.sh";
+ script;
+ {
+ setup-ocamlc.byte-build-env;
+ script = "sh ${test_source_directory}/call-gfortran.sh ${cc} -c bigarrf.f";
+ script;
+ all_modules = "bigarrf.o bigarrfstub.c bigarrfml.ml";
+ ocamlc.byte;
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ run;
+ check-program-output;
+ }{
+ setup-ocamlopt.byte-build-env;
+ script = "sh ${test_source_directory}/call-gfortran.sh ${cc} -c bigarrf.f";
+ script;
+ all_modules = "bigarrf.o bigarrfstub.c bigarrfml.ml";
+ ocamlopt.byte;
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ run;
+ check-program-output;
+ }
*)
open Bigarray
diff --git a/testsuite/tests/lib-bigarray-file/mapfile.ml b/testsuite/tests/lib-bigarray-file/mapfile.ml
index a359cd1bcc..f4008b7d8f 100644
--- a/testsuite/tests/lib-bigarray-file/mapfile.ml
+++ b/testsuite/tests/lib-bigarray-file/mapfile.ml
@@ -1,7 +1,7 @@
(* TEST
- * hasunix
- include unix
- ** native
+ include unix;
+ hasunix;
+ native;
*)
open Bigarray
diff --git a/testsuite/tests/lib-bigarray/bigarrays.ml b/testsuite/tests/lib-bigarray/bigarrays.ml
index e43fc29518..7f055ce8cf 100644
--- a/testsuite/tests/lib-bigarray/bigarrays.ml
+++ b/testsuite/tests/lib-bigarray/bigarrays.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Bigarray
open Printf
diff --git a/testsuite/tests/lib-bigarray/fftba.ml b/testsuite/tests/lib-bigarray/fftba.ml
index a06ad1bc13..ee35acfcb7 100644
--- a/testsuite/tests/lib-bigarray/fftba.ml
+++ b/testsuite/tests/lib-bigarray/fftba.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Bigarray
diff --git a/testsuite/tests/lib-bigarray/pr5115.ml b/testsuite/tests/lib-bigarray/pr5115.ml
index 74cbe51446..9b47d9a9c1 100644
--- a/testsuite/tests/lib-bigarray/pr5115.ml
+++ b/testsuite/tests/lib-bigarray/pr5115.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* PR#5115 - multiple evaluation of bigarray expr *)
diff --git a/testsuite/tests/lib-bigarray/weak_bigarray.ml b/testsuite/tests/lib-bigarray/weak_bigarray.ml
index a0758120c9..76fdee9829 100644
--- a/testsuite/tests/lib-bigarray/weak_bigarray.ml
+++ b/testsuite/tests/lib-bigarray/weak_bigarray.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(** check that custom block are not copied by Weak.get_copy *)
diff --git a/testsuite/tests/lib-bool/test.ml b/testsuite/tests/lib-bool/test.ml
index e5a4bcf905..6a3c92bd16 100644
--- a/testsuite/tests/lib-bool/test.ml
+++ b/testsuite/tests/lib-bool/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let test_not () =
assert (Bool.not false = true);
diff --git a/testsuite/tests/lib-buffer/test.ml b/testsuite/tests/lib-buffer/test.ml
index 7b1ab9a475..d1ba265be3 100644
--- a/testsuite/tests/lib-buffer/test.ml
+++ b/testsuite/tests/lib-buffer/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Printf
;;
diff --git a/testsuite/tests/lib-bytes-utf/test.ml b/testsuite/tests/lib-bytes-utf/test.ml
index ac3483071f..7c5677b565 100644
--- a/testsuite/tests/lib-bytes-utf/test.ml
+++ b/testsuite/tests/lib-bytes-utf/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* UTF codec tests *)
diff --git a/testsuite/tests/lib-bytes/binary.ml b/testsuite/tests/lib-bytes/binary.ml
index 899cdfe099..43ab4b4b8f 100644
--- a/testsuite/tests/lib-bytes/binary.ml
+++ b/testsuite/tests/lib-bytes/binary.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let err x =
match Lazy.force x with
diff --git a/testsuite/tests/lib-bytes/test_bytes.ml b/testsuite/tests/lib-bytes/test_bytes.ml
index 1ea7281c7b..7349a07487 100644
--- a/testsuite/tests/lib-bytes/test_bytes.ml
+++ b/testsuite/tests/lib-bytes/test_bytes.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let test_raises_invalid_argument f x =
diff --git a/testsuite/tests/lib-channels/input_all.ml b/testsuite/tests/lib-channels/input_all.ml
index 711eed7369..1fe6e4b345 100644
--- a/testsuite/tests/lib-channels/input_all.ml
+++ b/testsuite/tests/lib-channels/input_all.ml
@@ -1,11 +1,12 @@
(* TEST
-
-* hassysthreads
-include systhreads
-readonly_files = "input_all.ml"
-** bytecode
-** native
-
+ include systhreads;
+ readonly_files = "input_all.ml";
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let data_file =
diff --git a/testsuite/tests/lib-channels/input_lines.ml b/testsuite/tests/lib-channels/input_lines.ml
index 2c377ee06c..c293278526 100644
--- a/testsuite/tests/lib-channels/input_lines.ml
+++ b/testsuite/tests/lib-channels/input_lines.ml
@@ -1,6 +1,4 @@
-(* TEST
-
-*)
+(* TEST *)
open Printf
diff --git a/testsuite/tests/lib-channels/refcounting.ml b/testsuite/tests/lib-channels/refcounting.ml
index bc0b8dfe66..ec37425739 100644
--- a/testsuite/tests/lib-channels/refcounting.ml
+++ b/testsuite/tests/lib-channels/refcounting.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Test the behavior of channel refcounting. *)
diff --git a/testsuite/tests/lib-digest/md5.ml b/testsuite/tests/lib-digest/md5.ml
index d66ba52257..3d234c7f2f 100644
--- a/testsuite/tests/lib-digest/md5.ml
+++ b/testsuite/tests/lib-digest/md5.ml
@@ -1,5 +1,5 @@
(* TEST
- flags += " -w -a "
+ flags += " -w -a ";
*)
(* Test int32 arithmetic and optimizations using the MD5 algorithm *)
diff --git a/testsuite/tests/lib-dynlink-bytecode/main.ml b/testsuite/tests/lib-dynlink-bytecode/main.ml
index dfeaa5dde9..d8070a4aa8 100644
--- a/testsuite/tests/lib-dynlink-bytecode/main.ml
+++ b/testsuite/tests/lib-dynlink-bytecode/main.ml
@@ -1,58 +1,53 @@
(* TEST
-
-include dynlink
-
-ld_library_path += "${test_build_directory}"
-
-readonly_files = "plug1.ml plug2.ml registry.ml stub1.c stub2.c"
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-compile_only = "true"
-all_modules = "registry.ml stub1.c stub2.c plug1.ml plug2.ml main.ml"
-**** ocamlmklib
-program = "plug1"
-modules = "stub1.${objext}"
-***** ocamlmklib
-program = "plug2"
-modules = "stub2.${objext}"
-****** ocamlmklib
-program = "plug1"
-modules = "plug1.cmo"
-******* ocamlmklib
-program = "plug2"
-modules = "plug2.cmo"
-
-compile_only = "false"
-
-******** ocamlc.byte
-program = "${test_build_directory}/main.exe"
-all_modules = "registry.cmo main.cmo"
-********* run
-arguments = "plug1.cma plug2.cma"
-output = "main.output"
-********** check-program-output
-
-******** ocamlc.byte
-program = "${test_build_directory}/static.exe"
-flags = "-linkall"
-all_modules = "registry.cmo plug1.cma plug2.cma"
-********* run
-output = "static.output"
-********** check-program-output
-reference = "${test_source_directory}/static.reference"
-
-******** ocamlc.byte
-program = "${test_build_directory}/custom.exe"
-flags = "-custom -linkall -I ."
-all_modules = "registry.cmo plug2.cma plug1.cma"
-use_runtime = "false"
-********* run
-output = "custom.output"
-********** check-program-output
-reference = "${test_source_directory}/custom.reference"
-
+ include dynlink;
+ ld_library_path += "${test_build_directory}";
+ readonly_files = "plug1.ml plug2.ml registry.ml stub1.c stub2.c";
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ all_modules = "registry.ml stub1.c stub2.c plug1.ml plug2.ml main.ml";
+ ocamlc.byte;
+ program = "plug1";
+ modules = "stub1.${objext}";
+ ocamlmklib;
+ program = "plug2";
+ modules = "stub2.${objext}";
+ ocamlmklib;
+ program = "plug1";
+ modules = "plug1.cmo";
+ ocamlmklib;
+ program = "plug2";
+ modules = "plug2.cmo";
+ compile_only = "false";
+ ocamlmklib;
+ {
+ program = "${test_build_directory}/main.exe";
+ all_modules = "registry.cmo main.cmo";
+ ocamlc.byte;
+ arguments = "plug1.cma plug2.cma";
+ output = "main.output";
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/static.exe";
+ flags = "-linkall";
+ all_modules = "registry.cmo plug1.cma plug2.cma";
+ ocamlc.byte;
+ output = "static.output";
+ run;
+ reference = "${test_source_directory}/static.reference";
+ check-program-output;
+ }{
+ program = "${test_build_directory}/custom.exe";
+ flags = "-custom -linkall -I .";
+ all_modules = "registry.cmo plug2.cma plug1.cma";
+ use_runtime = "false";
+ ocamlc.byte;
+ output = "custom.output";
+ run;
+ reference = "${test_source_directory}/custom.reference";
+ check-program-output;
+ }
*)
let f x = print_string "This is Main.f\n"; x
diff --git a/testsuite/tests/lib-dynlink-csharp/main.ml b/testsuite/tests/lib-dynlink-csharp/main.ml
index 54798b7578..d6ac12b91e 100644
--- a/testsuite/tests/lib-dynlink-csharp/main.ml
+++ b/testsuite/tests/lib-dynlink-csharp/main.ml
@@ -1,83 +1,80 @@
(* TEST
-
-include dynlink
-
-readonly_files = "entry.c main.cs plugin.ml"
-
-* csharp-compiler
-** shared-libraries
-set csharp_cmd = "${csc} ${csc_flags} /out:main.exe main.cs"
-
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-module = "plugin.ml"
-***** ocamlc.byte
-module = ""
-flags = "-output-obj"
-program = "main.dll"
-all_modules = "dynlink.cma main.ml entry.c"
-****** script
-script = "${csharp_cmd}"
-******* run
-program = "./main.exe"
-******** check-program-output
-reference = "${test_source_directory}/main.bytecode.reference"
-
-*** setup-ocamlc.byte-build-env
-compiler_directory_suffix = "-dll"
-**** ocamlc.byte
-module = "plugin.ml"
-***** ocamlc.byte
-module = ""
-flags = "-output-obj"
-program = "main_obj.${objext}"
-all_modules = "dynlink.cma entry.c main.ml"
-****** script
-script = "${mkdll} -maindll -o main.dll main_obj.${objext} entry.${objext} \
- ${ocamlsrcdir}/runtime/libcamlrun.${libext} ${bytecc_libs}"
-******* script
-script = "${csharp_cmd}"
-******** run
-program = "./main.exe"
-********* check-program-output
-reference = "${test_source_directory}/main.bytecode.reference"
-
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "plugin.ml"
-***** ocamlopt.byte
-flags = "-output-obj"
-program= "main.dll"
-all_modules = "dynlink.cmxa entry.c main.ml"
-****** script
-script = "${csharp_cmd}"
-******* run
-program = "./main.exe"
-******** check-program-output
-reference = "${test_source_directory}/main.native.reference"
-
-*** setup-ocamlopt.byte-build-env
-compiler_directory_suffix = "-dll"
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "plugin.ml"
-***** ocamlopt.byte
-flags = "-output-obj"
-program = "main_obj.${objext}"
-all_modules = "dynlink.cmxa entry.c main.ml"
-****** script
-script = "${mkdll} -maindll -o main.dll main_obj.${objext} entry.${objext} \
- ${ocamlsrcdir}/runtime/libasmrun.${libext} ${nativecc_libs}"
-******* script
-script = "${csharp_cmd}"
-******** run
-program = "./main.exe"
-********* check-program-output
-reference = "${test_source_directory}/main.native.reference"
-
+ include dynlink;
+ readonly_files = "entry.c main.cs plugin.ml";
+ csharp-compiler;
+ set csharp_cmd = "${csc} ${csc_flags} /out:main.exe main.cs";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ module = "plugin.ml";
+ ocamlc.byte;
+ module = "";
+ flags = "-output-obj";
+ program = "main.dll";
+ all_modules = "dynlink.cma main.ml entry.c";
+ ocamlc.byte;
+ script = "${csharp_cmd}";
+ script;
+ program = "./main.exe";
+ run;
+ reference = "${test_source_directory}/main.bytecode.reference";
+ check-program-output;
+ }{
+ compiler_directory_suffix = "-dll";
+ setup-ocamlc.byte-build-env;
+ module = "plugin.ml";
+ ocamlc.byte;
+ module = "";
+ flags = "-output-obj";
+ program = "main_obj.${objext}";
+ all_modules = "dynlink.cma entry.c main.ml";
+ ocamlc.byte;
+ script = "${mkdll} -maindll -o main.dll main_obj.${objext} entry.${objext} \
+ ${ocamlsrcdir}/runtime/libcamlrun.${libext} ${bytecc_libs}";
+ script;
+ script = "${csharp_cmd}";
+ script;
+ program = "./main.exe";
+ run;
+ reference = "${test_source_directory}/main.bytecode.reference";
+ check-program-output;
+ }{
+ setup-ocamlopt.byte-build-env;
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "plugin.ml";
+ ocamlopt.byte;
+ flags = "-output-obj";
+ program = "main.dll";
+ all_modules = "dynlink.cmxa entry.c main.ml";
+ ocamlopt.byte;
+ script = "${csharp_cmd}";
+ script;
+ program = "./main.exe";
+ run;
+ reference = "${test_source_directory}/main.native.reference";
+ check-program-output;
+ }{
+ compiler_directory_suffix = "-dll";
+ setup-ocamlopt.byte-build-env;
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "plugin.ml";
+ ocamlopt.byte;
+ flags = "-output-obj";
+ program = "main_obj.${objext}";
+ all_modules = "dynlink.cmxa entry.c main.ml";
+ ocamlopt.byte;
+ script = "${mkdll} -maindll -o main.dll main_obj.${objext} entry.${objext} \
+ ${ocamlsrcdir}/runtime/libasmrun.${libext} ${nativecc_libs}";
+ script;
+ script = "${csharp_cmd}";
+ script;
+ program = "./main.exe";
+ run;
+ reference = "${test_source_directory}/main.native.reference";
+ check-program-output;
+ }
*)
let load s =
diff --git a/testsuite/tests/lib-dynlink-domains/main.ml b/testsuite/tests/lib-dynlink-domains/main.ml
index d87ddc24e4..a1393cc184 100644
--- a/testsuite/tests/lib-dynlink-domains/main.ml
+++ b/testsuite/tests/lib-dynlink-domains/main.ml
@@ -1,172 +1,172 @@
(* TEST
-
-include dynlink
-libraries = ""
-readonly_files = "store.ml main.ml Plugin_0.ml Plugin_0_0.ml Plugin_0_0_0.ml Plugin_0_0_0_0.ml Plugin_0_0_0_1.ml Plugin_0_0_0_2.ml Plugin_1.ml Plugin_1_0.ml Plugin_1_0_0.ml Plugin_1_0_0_0.ml Plugin_1_1.ml Plugin_1_2.ml Plugin_1_2_0.ml Plugin_1_2_0_0.ml Plugin_1_2_1.ml Plugin_1_2_2.ml Plugin_1_2_2_0.ml Plugin_1_2_3.ml Plugin_1_2_3_0.ml"
-
-*01 not-windows
-*02 shared-libraries
-*03 setup-ocamlc.byte-build-env
-*04 ocamlc.byte
-module = "store.ml"
-*05 ocamlc.byte
-module = "Plugin_0.ml"
-*06 ocamlc.byte
-module = "Plugin_0_0.ml"
-*07 ocamlc.byte
-module = "Plugin_0_0_0.ml"
-*08 ocamlc.byte
-module = "Plugin_0_0_0_0.ml"
-*09 ocamlc.byte
-module = "Plugin_0_0_0_1.ml"
-*10 ocamlc.byte
-module = "Plugin_0_0_0_2.ml"
-*11 ocamlc.byte
-module = "Plugin_1.ml"
-*12 ocamlc.byte
-module = "Plugin_1_0.ml"
-*13 ocamlc.byte
-module = "Plugin_1_0_0.ml"
-*14 ocamlc.byte
-module = "Plugin_1_0_0_0.ml"
-*15 ocamlc.byte
-module = "Plugin_1_1.ml"
-*16 ocamlc.byte
-module = "Plugin_1_2.ml"
-*17 ocamlc.byte
-module = "Plugin_1_2_0.ml"
-*18 ocamlc.byte
-module = "Plugin_1_2_0_0.ml"
-*19 ocamlc.byte
-module = "Plugin_1_2_1.ml"
-*20 ocamlc.byte
-module = "Plugin_1_2_2.ml"
-*21 ocamlc.byte
-module = "Plugin_1_2_2_0.ml"
-*22 ocamlc.byte
-module = "Plugin_1_2_3.ml"
-*23 ocamlc.byte
-module = "Plugin_1_2_3_0.ml"
-*24 ocamlc.byte
-module = "main.ml"
-*25 ocamlc.byte
-program = "./main.byte.exe"
-libraries= "dynlink"
-all_modules = "store.cmo main.cmo"
-module = ""
-*26 run
-*27 check-program-output
-
-*02 native-dynlink
-*03 setup-ocamlopt.byte-build-env
-*04 ocamlopt.byte
-flags = ""
-module = "store.ml"
-*05 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_0.cmxs"
-module = ""
-all_modules = "Plugin_0.ml"
-*06 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_0_0.cmxs"
-module = ""
-all_modules = "Plugin_0_0.ml"
-*07 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_0_0_0.cmxs"
-module = ""
-all_modules = "Plugin_0_0_0.ml"
-*08 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_0_0_0_0.cmxs"
-module = ""
-all_modules = "Plugin_0_0_0_0.ml"
-*09 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_0_0_0_1.cmxs"
-module = ""
-all_modules = "Plugin_0_0_0_1.ml"
-*10 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_0_0_0_2.cmxs"
-module = ""
-all_modules = "Plugin_0_0_0_2.ml"
-*11 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1.cmxs"
-module = ""
-all_modules = "Plugin_1.ml"
-*12 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_0.cmxs"
-module = ""
-all_modules = "Plugin_1_0.ml"
-*13 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_0_0.cmxs"
-module = ""
-all_modules = "Plugin_1_0_0.ml"
-*14 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_0_0_0.cmxs"
-module = ""
-all_modules = "Plugin_1_0_0_0.ml"
-*15 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_1.cmxs"
-module = ""
-all_modules = "Plugin_1_1.ml"
-*16 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2.cmxs"
-module = ""
-all_modules = "Plugin_1_2.ml"
-*17 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_0.cmxs"
-module = ""
-all_modules = "Plugin_1_2_0.ml"
-*18 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_0_0.cmxs"
-module = ""
-all_modules = "Plugin_1_2_0_0.ml"
-*19 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_1.cmxs"
-module = ""
-all_modules = "Plugin_1_2_1.ml"
-*20 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_2.cmxs"
-module = ""
-all_modules = "Plugin_1_2_2.ml"
-*21 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_2_0.cmxs"
-module = ""
-all_modules = "Plugin_1_2_2_0.ml"
-*22 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_3.cmxs"
-module = ""
-all_modules = "Plugin_1_2_3.ml"
-*23 ocamlopt.byte
-flags = "-shared"
-program= "Plugin_1_2_3_0.cmxs"
-module = ""
-all_modules = "Plugin_1_2_3_0.ml"
-*24 ocamlopt.byte
-flags = ""
-module = "main.ml"
-*25 ocamlopt.byte
-program = "./main.exe"
-libraries="dynlink"
-all_modules = "store.cmx main.cmx"
-module = ""
-*26 run
-*27 check-program-output
+ include dynlink;
+ libraries = "";
+ readonly_files = "store.ml main.ml Plugin_0.ml Plugin_0_0.ml Plugin_0_0_0.ml Plugin_0_0_0_0.ml Plugin_0_0_0_1.ml Plugin_0_0_0_2.ml Plugin_1.ml Plugin_1_0.ml Plugin_1_0_0.ml Plugin_1_0_0_0.ml Plugin_1_1.ml Plugin_1_2.ml Plugin_1_2_0.ml Plugin_1_2_0_0.ml Plugin_1_2_1.ml Plugin_1_2_2.ml Plugin_1_2_2_0.ml Plugin_1_2_3.ml Plugin_1_2_3_0.ml";
+ not-windows;
+ {
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ module = "store.ml";
+ ocamlc.byte;
+ module = "Plugin_0.ml";
+ ocamlc.byte;
+ module = "Plugin_0_0.ml";
+ ocamlc.byte;
+ module = "Plugin_0_0_0.ml";
+ ocamlc.byte;
+ module = "Plugin_0_0_0_0.ml";
+ ocamlc.byte;
+ module = "Plugin_0_0_0_1.ml";
+ ocamlc.byte;
+ module = "Plugin_0_0_0_2.ml";
+ ocamlc.byte;
+ module = "Plugin_1.ml";
+ ocamlc.byte;
+ module = "Plugin_1_0.ml";
+ ocamlc.byte;
+ module = "Plugin_1_0_0.ml";
+ ocamlc.byte;
+ module = "Plugin_1_0_0_0.ml";
+ ocamlc.byte;
+ module = "Plugin_1_1.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_0.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_0_0.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_1.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_2.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_2_0.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_3.ml";
+ ocamlc.byte;
+ module = "Plugin_1_2_3_0.ml";
+ ocamlc.byte;
+ module = "main.ml";
+ ocamlc.byte;
+ program = "./main.byte.exe";
+ libraries = "dynlink";
+ all_modules = "store.cmo main.cmo";
+ module = "";
+ ocamlc.byte;
+ run;
+ check-program-output;
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ flags = "";
+ module = "store.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_0.cmxs";
+ module = "";
+ all_modules = "Plugin_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_0_0.cmxs";
+ module = "";
+ all_modules = "Plugin_0_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_0_0_0.cmxs";
+ module = "";
+ all_modules = "Plugin_0_0_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_0_0_0_0.cmxs";
+ module = "";
+ all_modules = "Plugin_0_0_0_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_0_0_0_1.cmxs";
+ module = "";
+ all_modules = "Plugin_0_0_0_1.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_0_0_0_2.cmxs";
+ module = "";
+ all_modules = "Plugin_0_0_0_2.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1.cmxs";
+ module = "";
+ all_modules = "Plugin_1.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_0_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_0_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_0_0_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_0_0_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_1.cmxs";
+ module = "";
+ all_modules = "Plugin_1_1.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_0_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_0_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_1.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_1.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_2.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_2.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_2_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_2_0.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_3.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_3.ml";
+ ocamlopt.byte;
+ flags = "-shared";
+ program = "Plugin_1_2_3_0.cmxs";
+ module = "";
+ all_modules = "Plugin_1_2_3_0.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "main.ml";
+ ocamlopt.byte;
+ program = "./main.exe";
+ libraries = "dynlink";
+ all_modules = "store.cmx main.cmx";
+ module = "";
+ ocamlopt.byte;
+ run;
+ check-program-output;
+ }
*)
(* This module and all plugin modules are generated by a call to test_generator.ml with parameters:
diff --git a/testsuite/tests/lib-dynlink-init-info/test.ml b/testsuite/tests/lib-dynlink-init-info/test.ml
index c6105dd752..21aa3973fa 100644
--- a/testsuite/tests/lib-dynlink-init-info/test.ml
+++ b/testsuite/tests/lib-dynlink-init-info/test.ml
@@ -1,5 +1,5 @@
(* TEST
- include dynlink
+ include dynlink;
*)
(* Make sure dynlink state info is accurate before any load
diff --git a/testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference b/testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference
index d968c0b6ee..ea30752b30 100644
--- a/testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference
+++ b/testsuite/tests/lib-dynlink-initializers/test10_main.byte.reference
@@ -5,8 +5,8 @@ Called from Test10_plugin.f in file "test10_plugin.ml", line 6, characters 2-6
Called from Test10_plugin in file "test10_plugin.ml", line 10, characters 2-6
Called from Dynlink.Bytecode.run in file "otherlibs/dynlink/dynlink.ml", line 148, characters 16-25
Re-raised at Dynlink.Bytecode.run in file "otherlibs/dynlink/dynlink.ml", line 150, characters 6-137
-Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 363, characters 13-56
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 361, characters 11-54
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 359, characters 8-392
-Re-raised at Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 372, characters 8-17
+Called from Stdlib__Fun.protect in file "fun.ml", line 33, characters 8-15
+Re-raised at Stdlib__Fun.protect in file "fun.ml", line 38, characters 6-52
Called from Test10_main in file "test10_main.ml", line 51, characters 13-69
diff --git a/testsuite/tests/lib-dynlink-initializers/test10_main.ml b/testsuite/tests/lib-dynlink-initializers/test10_main.ml
index 2ed0a22a8d..8305cd1c35 100644
--- a/testsuite/tests/lib-dynlink-initializers/test10_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test10_main.ml
@@ -1,42 +1,42 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-include dynlink
-
-readonly_files = "test10_plugin.ml"
-flags += "-g"
-
-libraries = ""
-
-* no-flambda
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-module = "test10_main.ml"
-**** ocamlc.byte
-module = "test10_plugin.ml"
-**** ocamlc.byte
-program = "${test_build_directory}/test10.byte"
-libraries = "dynlink"
-all_modules = "test10_main.cmo"
-***** run
-****** check-program-output
-reference = "${test_source_directory}/test10_main.byte.reference"
-
-*** native-dynlink
-**** setup-ocamlopt.byte-build-env
-***** ocamlopt.byte
-module = "test10_main.ml"
-***** ocamlopt.byte
-program = "test10_plugin.cmxs"
-flags = "-shared"
-all_modules = "test10_plugin.ml"
-***** ocamlopt.byte
-program = "${test_build_directory}/test10.exe"
-libraries = "dynlink"
-all_modules = "test10_main.cmx"
-****** run
-******* check-program-output
-reference = "${test_source_directory}/test10_main.native.reference"
*)
(* Check that a module in the main program whose initializer has not
@@ -55,3 +55,50 @@ let () =
| Dynlink.Error (Dynlink.Library's_module_initializers_failed exn) ->
Printf.eprintf "Error: %s\n%!" (Printexc.to_string exn);
Printexc.print_backtrace stderr
+
+(* TEST
+ include dynlink;
+ readonly_files = "test10_plugin.ml";
+ flags += "-g";
+ libraries = "";
+ no-flambda;
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test10_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test10_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test10.byte";
+ libraries = "dynlink";
+ all_modules = "test10_main.cmo";
+ ocamlc.byte;
+ run;
+ reference = "${test_source_directory}/test10_main.byte.reference";
+ check-program-output;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test10_main.ml";
+ ocamlopt.byte;
+ }{
+ program = "test10_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test10_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test10.exe";
+ libraries = "dynlink";
+ all_modules = "test10_main.cmx";
+ ocamlopt.byte;
+ run;
+ reference = "${test_source_directory}/test10_main.native.reference";
+ check-program-output;
+ }
+ }
+*)
diff --git a/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference b/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference
index 89f1d20b39..ed720876b2 100755
--- a/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference
+++ b/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference
@@ -2,9 +2,9 @@ Error: Failure("Plugin error")
Raised by primitive operation at Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 87, characters 12-29
Re-raised at Dynlink.Native.run.(fun) in file "otherlibs/dynlink/native/dynlink.ml", line 89, characters 10-149
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 363, characters 13-56
+Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 361, characters 11-54
Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
-Called from Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 359, characters 8-392
-Re-raised at Dynlink_common.Make.load in file "otherlibs/dynlink/dynlink_common.ml", line 372, characters 8-17
-Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 374, characters 26-45
+Called from Stdlib__Fun.protect in file "fun.ml", line 33, characters 8-15
+Re-raised at Stdlib__Fun.protect in file "fun.ml", line 38, characters 6-52
+Called from Dynlink_common.Make.loadfile in file "otherlibs/dynlink/dynlink_common.ml" (inlined), line 369, characters 26-45
Called from Test10_main in file "test10_main.ml", line 49, characters 30-87
diff --git a/testsuite/tests/lib-dynlink-initializers/test1_main.ml b/testsuite/tests/lib-dynlink-initializers/test1_main.ml
index 34d3b5ae18..0958573147 100644
--- a/testsuite/tests/lib-dynlink-initializers/test1_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test1_main.ml
@@ -1,40 +1,48 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test1_inited_second.ml test1_plugin.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test1_main.ml"
-*** ocamlc.byte
-module = "test1_inited_second.ml"
-*** ocamlc.byte
-module = "test1_plugin.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/test1.byte"
-libraries = "dynlink"
-all_modules = "test1_main.cmo test1_inited_second.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test1_main.ml"
-**** ocamlopt.byte
-module = "test1_inited_second.ml"
-**** ocamlopt.byte
-program = "test1_plugin.cmxs"
-flags = "-shared"
-all_modules = "test1_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/test1.exe"
-libraries = "dynlink"
-all_modules = "test1_main.cmx test1_inited_second.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test1_inited_second.ml test1_plugin.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test1_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test1_inited_second.ml";
+ ocamlc.byte;
+ }{
+ module = "test1_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test1.byte";
+ libraries = "dynlink";
+ all_modules = "test1_main.cmo test1_inited_second.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test1_main.ml";
+ ocamlopt.byte;
+ }{
+ module = "test1_inited_second.ml";
+ ocamlopt.byte;
+ }{
+ program = "test1_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test1_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test1.exe";
+ libraries = "dynlink";
+ all_modules = "test1_main.cmx test1_inited_second.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that a module in the main program whose initializer has not
diff --git a/testsuite/tests/lib-dynlink-initializers/test2_main.ml b/testsuite/tests/lib-dynlink-initializers/test2_main.ml
index 6ec8921f09..e1507e7dff 100644
--- a/testsuite/tests/lib-dynlink-initializers/test2_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test2_main.ml
@@ -1,40 +1,48 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test2_inited_first.ml test2_plugin.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test2_inited_first.ml"
-*** ocamlc.byte
-module = "test2_main.ml"
-*** ocamlc.byte
-module = "test2_plugin.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/test2.byte"
-libraries = "dynlink"
-all_modules = "test2_inited_first.cmo test2_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test2_inited_first.ml"
-**** ocamlopt.byte
-module = "test2_main.ml"
-**** ocamlopt.byte
-program = "test2_plugin.cmxs"
-flags = "-shared"
-all_modules = "test2_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/test2.exe"
-libraries = "dynlink"
-all_modules = "test2_inited_first.cmx test2_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test2_inited_first.ml test2_plugin.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test2_inited_first.ml";
+ ocamlc.byte;
+ }{
+ module = "test2_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test2_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test2.byte";
+ libraries = "dynlink";
+ all_modules = "test2_inited_first.cmo test2_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test2_inited_first.ml";
+ ocamlopt.byte;
+ }{
+ module = "test2_main.ml";
+ ocamlopt.byte;
+ }{
+ program = "test2_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test2_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test2.exe";
+ libraries = "dynlink";
+ all_modules = "test2_inited_first.cmx test2_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that a shared library can refer to a module in the main program
diff --git a/testsuite/tests/lib-dynlink-initializers/test3_main.ml b/testsuite/tests/lib-dynlink-initializers/test3_main.ml
index 8f0b94009b..b2f3e44743 100644
--- a/testsuite/tests/lib-dynlink-initializers/test3_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test3_main.ml
@@ -1,46 +1,56 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test3_plugin_a.ml test3_plugin_b.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test3_main.ml"
-*** ocamlc.byte
-module = "test3_plugin_a.ml"
-*** ocamlc.byte
-module = "test3_plugin_b.ml"
-*** ocamlc.byte
-program = "test3_plugin.cma"
-flags = "-a"
-all_modules = "test3_plugin_a.cmo test3_plugin_b.cmo"
-*** ocamlc.byte
-program = "${test_build_directory}/test3.byte"
-libraries = "dynlink"
-all_modules = "test3_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test3_main.ml"
-**** ocamlopt.byte
-module = "test3_plugin_a.ml"
-**** ocamlopt.byte
-module = "test3_plugin_b.ml"
-**** ocamlopt.byte
-program = "test3_plugin.cmxs"
-flags = "-shared"
-all_modules = "test3_plugin_a.cmx test3_plugin_b.cmx"
-**** ocamlopt.byte
-program = "${test_build_directory}/test3.exe"
-libraries = "dynlink"
-all_modules = "test3_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test3_plugin_a.ml test3_plugin_b.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test3_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test3_plugin_a.ml";
+ ocamlc.byte;
+ }{
+ module = "test3_plugin_b.ml";
+ ocamlc.byte;
+ }{
+ program = "test3_plugin.cma";
+ flags = "-a";
+ all_modules = "test3_plugin_a.cmo test3_plugin_b.cmo";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test3.byte";
+ libraries = "dynlink";
+ all_modules = "test3_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test3_main.ml";
+ ocamlopt.byte;
+ }{
+ module = "test3_plugin_a.ml";
+ ocamlopt.byte;
+ }{
+ module = "test3_plugin_b.ml";
+ ocamlopt.byte;
+ }{
+ program = "test3_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test3_plugin_a.cmx test3_plugin_b.cmx";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test3.exe";
+ libraries = "dynlink";
+ all_modules = "test3_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that one module in a shared library can refer to another module
diff --git a/testsuite/tests/lib-dynlink-initializers/test4_main.ml b/testsuite/tests/lib-dynlink-initializers/test4_main.ml
index e9cd79ee8e..d24880e073 100644
--- a/testsuite/tests/lib-dynlink-initializers/test4_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test4_main.ml
@@ -1,46 +1,56 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test4_plugin_a.ml test4_plugin_b.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test4_main.ml"
-*** ocamlc.byte
-module = "test4_plugin_b.ml"
-*** ocamlc.byte
-module = "test4_plugin_a.ml"
-*** ocamlc.byte
-program = "test4_plugin.cma"
-flags = "-a"
-all_modules = "test4_plugin_a.cmo test4_plugin_b.cmo"
-*** ocamlc.byte
-program = "${test_build_directory}/test4.byte"
-libraries = "dynlink"
-all_modules = "test4_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test4_main.ml"
-**** ocamlopt.byte
-module = "test4_plugin_b.ml"
-**** ocamlopt.byte
-module = "test4_plugin_a.ml"
-**** ocamlopt.byte
-program = "test4_plugin.cmxs"
-flags = "-shared"
-all_modules = "test4_plugin_a.cmx test4_plugin_b.cmx"
-**** ocamlopt.byte
-program = "${test_build_directory}/test4.exe"
-libraries = "dynlink"
-all_modules = "test4_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test4_plugin_a.ml test4_plugin_b.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test4_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test4_plugin_b.ml";
+ ocamlc.byte;
+ }{
+ module = "test4_plugin_a.ml";
+ ocamlc.byte;
+ }{
+ program = "test4_plugin.cma";
+ flags = "-a";
+ all_modules = "test4_plugin_a.cmo test4_plugin_b.cmo";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test4.byte";
+ libraries = "dynlink";
+ all_modules = "test4_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test4_main.ml";
+ ocamlopt.byte;
+ }{
+ module = "test4_plugin_b.ml";
+ ocamlopt.byte;
+ }{
+ module = "test4_plugin_a.ml";
+ ocamlopt.byte;
+ }{
+ program = "test4_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test4_plugin_a.cmx test4_plugin_b.cmx";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test4.exe";
+ libraries = "dynlink";
+ all_modules = "test4_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that a module in a shared library cannot refer to another
diff --git a/testsuite/tests/lib-dynlink-initializers/test5_main.ml b/testsuite/tests/lib-dynlink-initializers/test5_main.ml
index 0f39f63a42..3c9aab13ce 100644
--- a/testsuite/tests/lib-dynlink-initializers/test5_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test5_main.ml
@@ -1,52 +1,64 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test5_plugin_a.ml test5_plugin_b.ml test5_second_plugin.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test5_main.ml"
-*** ocamlc.byte
-module = "test5_plugin_a.ml"
-*** ocamlc.byte
-module = "test5_plugin_b.ml"
-*** ocamlc.byte
-module = "test5_second_plugin.ml"
-*** ocamlc.byte
-program = "test5_plugin.cma"
-flags = "-a"
-all_modules = "test5_plugin_a.cmo test5_plugin_b.cmo"
-*** ocamlc.byte
-program = "${test_build_directory}/test5.byte"
-libraries = "dynlink"
-all_modules = "test5_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test5_main.ml"
-**** ocamlopt.byte
-module = "test5_plugin_a.ml"
-**** ocamlopt.byte
-module = "test5_plugin_b.ml"
-**** ocamlopt.byte
-program = "test5_plugin.cmxs"
-flags = "-shared"
-all_modules = "test5_plugin_a.cmx test5_plugin_b.cmx"
-**** ocamlopt.byte
-program = "test5_second_plugin.cmxs"
-flags = "-shared"
-all_modules = "test5_second_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/test5.exe"
-libraries = "dynlink"
-all_modules = "test5_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test5_plugin_a.ml test5_plugin_b.ml test5_second_plugin.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test5_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test5_plugin_a.ml";
+ ocamlc.byte;
+ }{
+ module = "test5_plugin_b.ml";
+ ocamlc.byte;
+ }{
+ module = "test5_second_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "test5_plugin.cma";
+ flags = "-a";
+ all_modules = "test5_plugin_a.cmo test5_plugin_b.cmo";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test5.byte";
+ libraries = "dynlink";
+ all_modules = "test5_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test5_main.ml";
+ ocamlopt.byte;
+ }{
+ module = "test5_plugin_a.ml";
+ ocamlopt.byte;
+ }{
+ module = "test5_plugin_b.ml";
+ ocamlopt.byte;
+ }{
+ program = "test5_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test5_plugin_a.cmx test5_plugin_b.cmx";
+ ocamlopt.byte;
+ }{
+ program = "test5_second_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test5_second_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test5.exe";
+ libraries = "dynlink";
+ all_modules = "test5_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that when one shared library loads another shared library then
diff --git a/testsuite/tests/lib-dynlink-initializers/test6_main.ml b/testsuite/tests/lib-dynlink-initializers/test6_main.ml
index 332b594c08..3828bdaa4a 100644
--- a/testsuite/tests/lib-dynlink-initializers/test6_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test6_main.ml
@@ -1,42 +1,50 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test6_plugin.ml test6_second_plugin.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test6_main.ml"
-*** ocamlc.byte
-module = "test6_plugin.ml"
-*** ocamlc.byte
-module = "test6_second_plugin.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/test6.byte"
-libraries = "dynlink"
-all_modules = "test6_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test6_main.ml"
-**** ocamlopt.byte
-program = "test6_plugin.cmxs"
-flags = "-shared"
-all_modules = "test6_plugin.ml"
-**** ocamlopt.byte
-program = "test6_second_plugin.cmxs"
-flags = "-shared"
-all_modules = "test6_second_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/test6.exe"
-libraries = "dynlink"
-all_modules = "test6_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test6_plugin.ml test6_second_plugin.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test6_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test6_plugin.ml";
+ ocamlc.byte;
+ }{
+ module = "test6_second_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test6.byte";
+ libraries = "dynlink";
+ all_modules = "test6_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test6_main.ml";
+ ocamlopt.byte;
+ }{
+ program = "test6_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test6_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "test6_second_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test6_second_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test6.exe";
+ libraries = "dynlink";
+ all_modules = "test6_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that a module in a loaded shared library whose initializer has not
diff --git a/testsuite/tests/lib-dynlink-initializers/test7_main.ml b/testsuite/tests/lib-dynlink-initializers/test7_main.ml
index f3dba0c566..6e3bbbc522 100644
--- a/testsuite/tests/lib-dynlink-initializers/test7_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test7_main.ml
@@ -1,40 +1,48 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test7_interface_only.mli test7_plugin.ml"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test7_interface_only.mli"
-*** ocamlc.byte
-module = "test7_main.ml"
-*** ocamlc.byte
-module = "test7_plugin.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/test7.byte"
-libraries = "dynlink"
-all_modules = "test7_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test7_interface_only.mli"
-**** ocamlopt.byte
-module = "test7_main.ml"
-**** ocamlopt.byte
-program = "test7_plugin.cmxs"
-flags = "-shared"
-all_modules = "test7_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/test7.exe"
-libraries = "dynlink"
-all_modules = "test7_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test7_interface_only.mli test7_plugin.ml";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test7_interface_only.mli";
+ ocamlc.byte;
+ }{
+ module = "test7_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test7_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test7.byte";
+ libraries = "dynlink";
+ all_modules = "test7_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test7_interface_only.mli";
+ ocamlopt.byte;
+ }{
+ module = "test7_main.ml";
+ ocamlopt.byte;
+ }{
+ program = "test7_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test7_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test7.exe";
+ libraries = "dynlink";
+ all_modules = "test7_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that a shared library can depend on an interface-only module
diff --git a/testsuite/tests/lib-dynlink-initializers/test8_main.ml b/testsuite/tests/lib-dynlink-initializers/test8_main.ml
index 45bba9602c..0f194afcb8 100644
--- a/testsuite/tests/lib-dynlink-initializers/test8_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test8_main.ml
@@ -1,50 +1,62 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test8_plugin_a.ml test8_plugin_b.ml test8_plugin_b.mli"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test8_main.ml"
-*** ocamlc.byte
-module = "test8_plugin_b.mli"
-*** ocamlc.byte
-module = "test8_plugin_a.ml"
-*** ocamlc.byte
-module = "test8_plugin_b.ml"
-*** ocamlc.byte
-program = "test8_plugin.cma"
-flags = "-a"
-all_modules = "test8_plugin_a.cmo test8_plugin_b.cmo"
-*** ocamlc.byte
-program = "${test_build_directory}/test8.byte"
-libraries = "dynlink"
-all_modules = "test8_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test8_main.ml"
-**** ocamlopt.byte
-module = "test8_plugin_b.mli"
-**** ocamlopt.byte
-module = "test8_plugin_a.ml"
-**** ocamlopt.byte
-module = "test8_plugin_b.ml"
-**** ocamlopt.byte
-program = "test8_plugin.cmxs"
-flags = "-shared"
-all_modules = "test8_plugin_a.cmx test8_plugin_b.cmx"
-**** ocamlopt.byte
-program = "${test_build_directory}/test8.exe"
-libraries = "dynlink"
-all_modules = "test8_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test8_plugin_a.ml test8_plugin_b.ml test8_plugin_b.mli";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test8_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test8_plugin_b.mli";
+ ocamlc.byte;
+ }{
+ module = "test8_plugin_a.ml";
+ ocamlc.byte;
+ }{
+ module = "test8_plugin_b.ml";
+ ocamlc.byte;
+ }{
+ program = "test8_plugin.cma";
+ flags = "-a";
+ all_modules = "test8_plugin_a.cmo test8_plugin_b.cmo";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test8.byte";
+ libraries = "dynlink";
+ all_modules = "test8_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test8_main.ml";
+ ocamlopt.byte;
+ }{
+ module = "test8_plugin_b.mli";
+ ocamlopt.byte;
+ }{
+ module = "test8_plugin_a.ml";
+ ocamlopt.byte;
+ }{
+ module = "test8_plugin_b.ml";
+ ocamlopt.byte;
+ }{
+ program = "test8_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test8_plugin_a.cmx test8_plugin_b.cmx";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test8.exe";
+ libraries = "dynlink";
+ all_modules = "test8_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that modules of a shared library can have interface-only
diff --git a/testsuite/tests/lib-dynlink-initializers/test9_main.ml b/testsuite/tests/lib-dynlink-initializers/test9_main.ml
index f74ddccb8a..fcb1128633 100644
--- a/testsuite/tests/lib-dynlink-initializers/test9_main.ml
+++ b/testsuite/tests/lib-dynlink-initializers/test9_main.ml
@@ -1,46 +1,56 @@
(* TEST
-
-include dynlink
-
-readonly_files = "test9_plugin.ml test9_second_plugin.ml test9_second_plugin.mli"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "test9_second_plugin.mli"
-*** ocamlc.byte
-module = "test9_main.ml"
-*** ocamlc.byte
-module = "test9_plugin.ml"
-*** ocamlc.byte
-module = "test9_second_plugin.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/test9.byte"
-libraries = "dynlink"
-all_modules = "test9_main.cmo"
-**** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "test9_second_plugin.mli"
-**** ocamlopt.byte
-module = "test9_main.ml"
-**** ocamlopt.byte
-program = "test9_plugin.cmxs"
-flags = "-shared"
-all_modules = "test9_plugin.ml"
-**** ocamlopt.byte
-program = "test9_second_plugin.cmxs"
-flags = "-shared"
-all_modules = "test9_second_plugin.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/test9.exe"
-libraries = "dynlink"
-all_modules = "test9_main.cmx"
-***** run
+ include dynlink;
+ readonly_files = "test9_plugin.ml test9_second_plugin.ml test9_second_plugin.mli";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test9_second_plugin.mli";
+ ocamlc.byte;
+ }{
+ module = "test9_main.ml";
+ ocamlc.byte;
+ }{
+ module = "test9_plugin.ml";
+ ocamlc.byte;
+ }{
+ module = "test9_second_plugin.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/test9.byte";
+ libraries = "dynlink";
+ all_modules = "test9_main.cmo";
+ ocamlc.byte;
+ run;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "test9_second_plugin.mli";
+ ocamlopt.byte;
+ }{
+ module = "test9_main.ml";
+ ocamlopt.byte;
+ }{
+ program = "test9_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test9_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "test9_second_plugin.cmxs";
+ flags = "-shared";
+ all_modules = "test9_second_plugin.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/test9.exe";
+ libraries = "dynlink";
+ all_modules = "test9_main.cmx";
+ ocamlopt.byte;
+ run;
+ }
+ }
*)
(* Check that a shared library can depend on an interface-only module
diff --git a/testsuite/tests/lib-dynlink-native/main.ml b/testsuite/tests/lib-dynlink-native/main.ml
index 284ebbd101..ab64368e54 100644
--- a/testsuite/tests/lib-dynlink-native/main.ml
+++ b/testsuite/tests/lib-dynlink-native/main.ml
@@ -1,202 +1,204 @@
(* TEST
+ readonly_files = "a.ml api.ml b.ml bug.ml c.ml factorial.c pack_client.ml \
+ packed1_client.ml packed1.ml plugin2.ml plugin4.ml plugin_ext.ml \
+ plugin_high_arity.ml plugin.ml plugin.mli plugin_ref.ml plugin_simple.ml \
+ plugin_thread.ml";
+ subdirectories = "sub";
+ include systhreads;
+ include dynlink;
+ hassysthreads;
+ libraries = ""; (* We will add them manually where appropriated *)
+ native-dynlink;
+ ocamlopt_default_flags = "";(* Removes the -ccopt -no-pie on ised on OpenBSD *)
+ setup-ocamlopt.byte-build-env;
+ module = "api.ml";
+ ocamlopt.byte;
+ flags = "-opaque";
+ module = "plugin.mli";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin.ml";
+ ocamlopt.byte;
+ module = "";
+ flags = "-shared";
+ program = "plugin.so";
+ all_modules = "plugin.cmx";
+ ocamlopt.byte;
+ script = "mv plugin.cmx plugin.cmx.bak";
+ script;
+ flags = "";
+ module = "plugin2.ml";
+ ocamlopt.byte;
+ script = "mv plugin.cmx.bak plugin.cmx";
+ script;
+ module = "";
+ flags = "-shared";
+ program = "plugin2.so";
+ all_modules = "plugin2.cmx";
+ ocamlopt.byte;
+ flags = "";
+ module = "sub/plugin.ml";
+ ocamlopt.byte;
+ module = "";
+ flags = "-shared";
+ program = "sub/plugin.so";
+ all_modules = "sub/plugin.cmx";
+ ocamlopt.byte;
+ cwd = "sub";
+ cd;
+ module = "api.mli";
+ flags = "-opaque";
+ ocamlopt.byte;
+ flags = "";
+ module = "api.ml";
+ ocamlopt.byte;
+ script = "mv api.cmx api.cmx.bak";
+ script;
+ module = "plugin3.ml";
+ ocamlopt.byte;
+ script = "mv api.cmx.bak api.cmx";
+ script;
+ cwd = "..";
+ cd;
+ module = "";
+ flags = "-shared";
+ program = "sub/plugin3.so";
+ all_modules = "sub/plugin3.cmx";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin4.ml";
+ ocamlopt.byte;
+ module = "";
+ flags = "-shared";
+ program = "plugin4.so";
+ all_modules = "plugin4.cmx";
+ ocamlopt.byte;
+ module = "packed1.ml";
+ flags = "-for-pack Mypack";
+ ocamlopt.byte;
+ flags = "-S -pack";
+ module = "";
+ program = "mypack.cmx";
+ all_modules = "packed1.cmx";
+ ocamlopt.byte;
+ program = "mypack.so";
+ flags = "-shared";
+ all_modules = "mypack.cmx";
+ ocamlopt.byte;
+ program = "packed1.so";
+ flags = "-shared";
+ all_modules = "packed1.cmx";
+ ocamlopt.byte;
+ flags = "";
+ module = "pack_client.ml";
+ ocamlopt.byte;
+ module = "";
+ program = "pack_client.so";
+ flags = "-shared";
+ all_modules = "pack_client.cmx";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin_ref.ml";
+ ocamlopt.byte;
+ module = "";
+ program = "plugin_ref.so";
+ flags = "-shared";
+ all_modules = "plugin_ref.cmx";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin_high_arity.ml";
+ ocamlopt.byte;
+ module = "";
+ program = "plugin_high_arity.so";
+ flags = "-shared";
+ all_modules = "plugin_high_arity.cmx";
+ ocamlopt.byte;
+ flags = "-ccopt ${shared_library_cflags}";
+ module = "factorial.c";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin_ext.ml";
+ ocamlopt.byte;
+ module = "";
+ program = "plugin_ext.so";
+ flags = "-shared";
+ all_modules = "factorial.${objext} plugin_ext.cmx";
+ ocamlopt.byte;
+ module = "plugin_simple.ml";
+ flags = "";
+ ocamlopt.byte;
+ {
+ module = "";
+ program = "plugin_simple.so";
+ flags = "-shared";
+ all_modules = "plugin_simple.cmx";
+ ocamlopt.byte;
+ }{
+ module = "bug.ml";
+ flags = "";
+ ocamlopt.byte;
+ {
+ module = "";
+ program = "bug.so";
+ flags = "-shared";
+ all_modules = "bug.cmx";
+ ocamlopt.byte;
+ }{
+ module = "plugin_thread.ml";
+ flags = "";
+ ocamlopt.byte;
+ module = "";
+ program = "plugin_thread.so";
+ flags = "-shared";
+ all_modules = "plugin_thread.cmx";
+ ocamlopt.byte;
+ program = "plugin4_unix.so";
+ all_modules = "unix.cmxa plugin4.cmx";
+ ocamlopt.byte;
+ flags = "";
+ compile_only = "true";
+ all_modules = "a.ml b.ml c.ml main.ml";
+ ocamlopt.byte;
+ module = "";
+ compile_only = "false";
+ flags = "-shared";
+ program = "a.so";
+ all_modules = "a.cmx";
+ ocamlopt.byte;
+ program = "b.so";
+ all_modules = "b.cmx";
+ ocamlopt.byte;
+ program = "c.so";
+ all_modules = "c.cmx";
+ ocamlopt.byte;
+ program = "mylib.cmxa";
+ flags = "-a";
+ all_modules = "plugin.cmx plugin2.cmx";
+ ocamlopt.byte;
+ program = "mylib.so";
+ flags = "-shared -linkall";
+ all_modules = "mylib.cmxa";
+ ocamlopt.byte;
+ program = "${test_build_directory}/main.exe";
+ libraries = "unix threads dynlink";
+ flags = "-linkall";
+ all_modules = "api.cmx main.cmx";
+ ocamlopt.byte;
+ (*
+ On OpenBSD, the compiler produces warnings like
+ /usr/bin/ld: warning: creating a DT_TEXTREL in a shared object.
+ So the compiler output is not empty on OpenBSD so an emptiness check
+ would fail on this platform.
-readonly_files = "a.ml api.ml b.ml bug.ml c.ml factorial.c pack_client.ml \
- packed1_client.ml packed1.ml plugin2.ml plugin4.ml plugin_ext.ml \
- plugin_high_arity.ml plugin.ml plugin.mli plugin_ref.ml \
- plugin_simple.ml plugin_thread.ml"
-subdirectories = "sub"
+ We thus do not check compiler output. This was not done either before the
+ test was ported to ocamltest.
+ *)
-* hassysthreads
-include systhreads
-include dynlink
-
-** native-dynlink
-libraries = "" (* We will add them manually where appropriated *)
-*** setup-ocamlopt.byte-build-env
-ocamlopt_default_flags = "" (* Removes the -ccopt -no-pie on ised on OpenBSD *)
-
-**** ocamlopt.byte
-module = "api.ml"
-***** ocamlopt.byte
-flags = "-opaque"
-module = "plugin.mli"
-****** ocamlopt.byte
-flags = ""
-module = "plugin.ml"
-******* ocamlopt.byte
-module= ""
-flags = "-shared"
-program = "plugin.so"
-all_modules = "plugin.cmx"
-******** script
-script = "mv plugin.cmx plugin.cmx.bak"
-********* ocamlopt.byte
-flags = ""
-module = "plugin2.ml"
-********** script
-script = "mv plugin.cmx.bak plugin.cmx"
-*********** ocamlopt.byte
-module= ""
-flags = "-shared"
-program = "plugin2.so"
-all_modules = "plugin2.cmx"
-************ ocamlopt.byte
-flags = ""
-module = "sub/plugin.ml"
-************* ocamlopt.byte
-module = ""
-flags = "-shared"
-program = "sub/plugin.so"
-all_modules = "sub/plugin.cmx"
-************** cd
-cwd = "sub"
-*************** ocamlopt.byte
-module = "api.mli"
-flags = "-opaque"
-**************** ocamlopt.byte
-flags = ""
-module = "api.ml"
-***************** script
-script = "mv api.cmx api.cmx.bak"
-****************** ocamlopt.byte
-module = "plugin3.ml"
-******************* script
-script = "mv api.cmx.bak api.cmx"
-******************** cd
-cwd = ".."
-********************* ocamlopt.byte
-module = ""
-flags = "-shared"
-program = "sub/plugin3.so"
-all_modules = "sub/plugin3.cmx"
-********************** ocamlopt.byte
-flags = ""
-module = "plugin4.ml"
-*********************** ocamlopt.byte
-module = ""
-flags = "-shared"
-program = "plugin4.so"
-all_modules = "plugin4.cmx"
-************************ ocamlopt.byte
-module = "packed1.ml"
-flags = "-for-pack Mypack"
-************************* ocamlopt.byte
-flags = "-S -pack"
-module = ""
-program = "mypack.cmx"
-all_modules = "packed1.cmx"
-************************** ocamlopt.byte
-program = "mypack.so"
-flags = "-shared"
-all_modules = "mypack.cmx"
-*************************** ocamlopt.byte
-program = "packed1.so"
-flags = "-shared"
-all_modules = "packed1.cmx"
-**************************** ocamlopt.byte
-flags = ""
-module = "pack_client.ml"
-***************************** ocamlopt.byte
-module = ""
-program = "pack_client.so"
-flags = "-shared"
-all_modules = "pack_client.cmx"
-****************************** ocamlopt.byte
-flags = ""
-module = "plugin_ref.ml"
-******************************* ocamlopt.byte
-module = ""
-program = "plugin_ref.so"
-flags = "-shared"
-all_modules = "plugin_ref.cmx"
-******************************** ocamlopt.byte
-flags = ""
-module = "plugin_high_arity.ml"
-********************************* ocamlopt.byte
-module = ""
-program = "plugin_high_arity.so"
-flags = "-shared"
-all_modules = "plugin_high_arity.cmx"
-********************************** ocamlopt.byte
-flags = "-ccopt ${shared_library_cflags}"
-module = "factorial.c"
-*********************************** ocamlopt.byte
-flags = ""
-module = "plugin_ext.ml"
-************************************ ocamlopt.byte
-module = ""
-program = "plugin_ext.so"
-flags = "-shared"
-all_modules = "factorial.${objext} plugin_ext.cmx"
-************************************* ocamlopt.byte
-module = "plugin_simple.ml"
-flags = ""
-************************************** ocamlopt.byte
-module = ""
-program = "plugin_simple.so"
-flags = "-shared"
-all_modules = "plugin_simple.cmx"
-************************************** ocamlopt.byte
-module = "bug.ml"
-flags = ""
-*************************************** ocamlopt.byte
-module = ""
-program = "bug.so"
-flags = "-shared"
-all_modules = "bug.cmx"
-*************************************** ocamlopt.byte
-module = "plugin_thread.ml"
-flags = ""
-**************************************** ocamlopt.byte
-module = ""
-program = "plugin_thread.so"
-flags = "-shared"
-all_modules = "plugin_thread.cmx"
-***************************************** ocamlopt.byte
-program = "plugin4_unix.so"
-all_modules = "unix.cmxa plugin4.cmx"
-****************************************** ocamlopt.byte
-flags = ""
-compile_only = "true"
-all_modules = "a.ml b.ml c.ml main.ml"
-******************************************* ocamlopt.byte
-module = ""
-compile_only = "false"
-flags = "-shared"
-program = "a.so"
-all_modules = "a.cmx"
-******************************************** ocamlopt.byte
-program = "b.so"
-all_modules = "b.cmx"
-********************************************* ocamlopt.byte
-program = "c.so"
-all_modules = "c.cmx"
-********************************************** ocamlopt.byte
-program = "mylib.cmxa"
-flags = "-a"
-all_modules = "plugin.cmx plugin2.cmx"
-*********************************************** ocamlopt.byte
-program = "mylib.so"
-flags = "-shared -linkall"
-all_modules = "mylib.cmxa"
-************************************************ ocamlopt.byte
-program = "${test_build_directory}/main.exe"
-libraries = "unix threads dynlink"
-flags = "-linkall"
-all_modules = "api.cmx main.cmx"
-(*
-On OpenBSD, the compiler produces warnings like
-/usr/bin/ld: warning: creating a DT_TEXTREL in a shared object.
-So the compiler output is not empty on OpenBSD so an emptiness check
-would fail on this platform.
-
-We thus do not check compiler output. This was not done either before the
-test was ported to ocamltest.
-*)
-
-************************************************* run
-arguments = "plugin.so plugin2.so plugin_thread.so"
-************************************************** check-program-output
+ arguments = "plugin.so plugin2.so plugin_thread.so";
+ run;
+ check-program-output;
+ }
+ }
*)
let () =
diff --git a/testsuite/tests/lib-dynlink-packed/loader.ml b/testsuite/tests/lib-dynlink-packed/loader.ml
index ce617bc0d3..19add8903c 100644
--- a/testsuite/tests/lib-dynlink-packed/loader.ml
+++ b/testsuite/tests/lib-dynlink-packed/loader.ml
@@ -1,60 +1,71 @@
(* TEST
-
-include dynlink
-libraries = ""
-readonly_files = "a.ml b.ml loader.ml"
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "a.ml"
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "b.ml"
-*** ocamlc.byte
-program = "packed.cmo"
-flags = "-pack"
-all_modules = "a.cmo b.cmo"
-*** ocamlc.byte
-program = "${test_build_directory}/loader.byte"
-flags = "-linkall"
-include ocamlcommon
-libraries += "dynlink"
-all_modules = "loader.ml"
-**** run
-arguments = "packed.cmo"
-exit_status = "0"
-***** check-program-output
-reference = "${test_source_directory}/byte.reference"
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "a.ml"
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "b.ml"
-**** ocamlopt.byte
-program = "packed.cmx"
-flags = "-pack"
-all_modules = "a.cmx b.cmx"
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "packed.cmx"
-**** ocamlopt.byte
-program = "${test_build_directory}/loader.exe"
-flags = "-linkall"
-include ocamlcommon
-libraries += "dynlink"
-all_modules = "loader.ml"
-***** run
-arguments = "plugin.cmxs"
-exit_status = "0"
-****** check-program-output
-reference = "${test_source_directory}/native.reference"
+ include dynlink;
+ libraries = "";
+ readonly_files = "a.ml b.ml loader.ml";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ flags = "-for-pack Packed";
+ module = "a.ml";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "b.ml";
+ ocamlc.byte;
+ }{
+ program = "packed.cmo";
+ flags = "-pack";
+ all_modules = "a.cmo b.cmo";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/loader.byte";
+ flags = "-linkall";
+ include ocamlcommon;
+ libraries += "dynlink";
+ all_modules = "loader.ml";
+ ocamlc.byte;
+ arguments = "packed.cmo";
+ exit_status = "0";
+ run;
+ reference = "${test_source_directory}/byte.reference";
+ check-program-output;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ flags = "-for-pack Packed";
+ module = "a.ml";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "b.ml";
+ ocamlopt.byte;
+ }{
+ program = "packed.cmx";
+ flags = "-pack";
+ all_modules = "a.cmx b.cmx";
+ ocamlopt.byte;
+ }{
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "packed.cmx";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/loader.exe";
+ flags = "-linkall";
+ include ocamlcommon;
+ libraries += "dynlink";
+ all_modules = "loader.ml";
+ ocamlopt.byte;
+ arguments = "plugin.cmxs";
+ exit_status = "0";
+ run;
+ reference = "${test_source_directory}/native.reference";
+ check-program-output;
+ }
+ }
*)
let () =
try
diff --git a/testsuite/tests/lib-dynlink-pr4229/main.ml b/testsuite/tests/lib-dynlink-pr4229/main.ml
index 3cdc8937d3..a6ac99de6b 100644
--- a/testsuite/tests/lib-dynlink-pr4229/main.ml
+++ b/testsuite/tests/lib-dynlink-pr4229/main.ml
@@ -1,77 +1,77 @@
(* TEST
-
-include dynlink
-
-readonly_files = "abstract.mli abstract.ml static.ml client.ml main.ml"
-
-subdirectories = "sub"
-
-libraries = ""
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** cd
-cwd = "sub"
-**** ocamlc.byte
-module = "abstract.mli"
-***** ocamlc.byte
-module = "abstract.ml"
-****** cd
-cwd = ".."
-******* ocamlc.byte
-module = "abstract.mli"
-******** ocamlc.byte
-module = "abstract.ml"
-********* ocamlc.byte
-module = "static.ml"
-********** ocamlc.byte
-module = "client.ml"
-*********** ocamlc.byte
-module = "main.ml"
-************ ocamlc.byte
-program = "${test_build_directory}/main"
-libraries = "dynlink"
-module = ""
-all_modules = "abstract.cmo static.cmo main.cmo"
-************* run
-exit_status = "2"
-************** check-program-output
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** cd
-cwd = "sub"
-***** ocamlopt.byte
-module = "abstract.mli"
-****** ocamlopt.byte
-program = "abstract.cmxs"
-flags = "-shared"
-module = ""
-all_modules = "abstract.ml"
-******* cd
-cwd = ".."
-******** ocamlopt.byte
-flags = ""
-module = "abstract.mli"
-********* ocamlopt.byte
-module = "abstract.ml"
-********** ocamlopt.byte
-module = "static.ml"
-*********** ocamlopt.byte
-program = "client.cmxs"
-flags = "-shared"
-module = ""
-all_modules = "client.ml"
-*********** ocamlopt.byte
-module = "main.ml"
-************ ocamlopt.byte
-program = "${test_build_directory}/main_native"
-libraries = "dynlink"
-module = ""
-all_modules = "abstract.cmx static.cmx main.cmx"
-************* run
-exit_status = "2"
-************** check-program-output
+ include dynlink;
+ readonly_files = "abstract.mli abstract.ml static.ml client.ml main.ml";
+ subdirectories = "sub";
+ libraries = "";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ cwd = "sub";
+ cd;
+ module = "abstract.mli";
+ ocamlc.byte;
+ module = "abstract.ml";
+ ocamlc.byte;
+ cwd = "..";
+ cd;
+ module = "abstract.mli";
+ ocamlc.byte;
+ module = "abstract.ml";
+ ocamlc.byte;
+ module = "static.ml";
+ ocamlc.byte;
+ module = "client.ml";
+ ocamlc.byte;
+ module = "main.ml";
+ ocamlc.byte;
+ program = "${test_build_directory}/main";
+ libraries = "dynlink";
+ module = "";
+ all_modules = "abstract.cmo static.cmo main.cmo";
+ ocamlc.byte;
+ exit_status = "2";
+ run;
+ check-program-output;
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ cwd = "sub";
+ cd;
+ module = "abstract.mli";
+ ocamlopt.byte;
+ program = "abstract.cmxs";
+ flags = "-shared";
+ module = "";
+ all_modules = "abstract.ml";
+ ocamlopt.byte;
+ cwd = "..";
+ cd;
+ flags = "";
+ module = "abstract.mli";
+ ocamlopt.byte;
+ module = "abstract.ml";
+ ocamlopt.byte;
+ module = "static.ml";
+ ocamlopt.byte;
+ {
+ program = "client.cmxs";
+ flags = "-shared";
+ module = "";
+ all_modules = "client.ml";
+ ocamlopt.byte;
+ }{
+ module = "main.ml";
+ ocamlopt.byte;
+ program = "${test_build_directory}/main_native";
+ libraries = "dynlink";
+ module = "";
+ all_modules = "abstract.cmx static.cmx main.cmx";
+ ocamlopt.byte;
+ exit_status = "2";
+ run;
+ check-program-output;
+ }
+ }
*)
(* PR#4229 *)
diff --git a/testsuite/tests/lib-dynlink-pr4839/test.ml b/testsuite/tests/lib-dynlink-pr4839/test.ml
index 8d217be901..3efc44d125 100644
--- a/testsuite/tests/lib-dynlink-pr4839/test.ml
+++ b/testsuite/tests/lib-dynlink-pr4839/test.ml
@@ -1,231 +1,297 @@
(* TEST
-
-include dynlink
-libraries = ""
-subdirectories = "host plugin1 plugin2 plugin3 plugin4"
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** cd
-cwd = "plugin1"
-*** ocamlc.byte
-module = "api.mli"
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-*** ocamlc.byte
-program = "packed.cmo"
-flags = "-pack"
-all_modules = "api.cmo"
-*** ocamlc.byte
-program = "plugin.cma"
-flags = "-a"
-all_modules = "plugin.ml"
-*** cd
-cwd = ".."
-
-*** cd
-cwd = "plugin2"
-*** ocamlc.byte
-module = "api.mli"
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-*** ocamlc.byte
-program = "packed.cmo"
-flags = "-pack"
-all_modules = "api.cmo"
-*** ocamlc.byte
-program = "plugin.cma"
-flags = "-a"
-all_modules = "plugin.ml"
-*** cd
-cwd = ".."
-
-*** cd
-cwd = "plugin3"
-*** ocamlc.byte
-module = "api.mli"
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-*** ocamlc.byte
-program = "packed.cmo"
-flags = "-pack"
-all_modules = "api.cmo"
-*** ocamlc.byte
-program = "plugin.cma"
-flags = "-a"
-all_modules = "packed.cmo plugin.ml"
-*** cd
-cwd = ".."
-
-*** cd
-cwd = "plugin4"
-*** ocamlc.byte
-module = "api.mli"
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-*** ocamlc.byte
-program = "packed.cmo"
-flags = "-pack"
-all_modules = "api.cmo"
-*** ocamlc.byte
-program = "plugin.cma"
-flags = "-a"
-all_modules = "packed.cmo plugin.ml"
-*** cd
-cwd = ".."
-
-*** cd
-cwd = "host"
-*** ocamlc.byte
-module = "api.mli"
-*** ocamlc.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-*** ocamlc.byte
-program = "packed.cmo"
-flags = "-pack"
-all_modules = "api.cmo"
-*** ocamlc.byte
-program = "./host.byt"
-libraries = "dynlink"
-all_modules = "packed.cmo host.ml"
-**** run
-arguments = "../plugin1/plugin.cma"
-output = "byte.plugin1.result"
-***** check-program-output
-reference = "${test_source_directory}/byte.plugin1.reference"
-**** run
-arguments = "../plugin2/plugin.cma"
-output = "byte.plugin2.result"
-***** check-program-output
-reference = "${test_source_directory}/byte.plugin2.reference"
-**** run
-arguments = "../plugin3/plugin.cma"
-output = "byte.plugin3.result"
-***** check-program-output
-reference = "${test_source_directory}/byte.plugin3.reference"
-**** run
-arguments = "../plugin4/plugin.cma"
-output = "byte.plugin4.result"
-***** check-program-output
-reference = "${test_source_directory}/byte.plugin4.reference"
-*** cd
-cwd = ".."
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-
-**** cd
-cwd = "plugin1"
-**** ocamlopt.byte
-module = "api.mli"
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-**** ocamlopt.byte
-program = "packed.cmx"
-flags = "-pack"
-all_modules = "api.cmx"
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "plugin.ml"
-**** cd
-cwd = ".."
-
-**** cd
-cwd = "plugin2"
-**** ocamlopt.byte
-module = "api.mli"
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-**** ocamlopt.byte
-program = "packed.cmx"
-flags = "-pack"
-all_modules = "api.cmx"
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "plugin.ml"
-*** cd
-cwd = ".."
-
-**** cd
-cwd = "plugin3"
-**** ocamlopt.byte
-module = "api.mli"
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-**** ocamlopt.byte
-program = "packed.cmx"
-flags = "-pack"
-all_modules = "api.cmx"
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "packed.cmx plugin.ml"
-**** cd
-cwd = ".."
-
-**** cd
-cwd = "plugin4"
-**** ocamlopt.byte
-module = "api.mli"
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-**** ocamlopt.byte
-program = "packed.cmx"
-flags = "-pack"
-all_modules = "api.cmx"
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "packed.cmx plugin.ml"
-**** cd
-cwd = ".."
-
-**** cd
-cwd = "host"
-**** ocamlopt.byte
-module = "api.mli"
-**** ocamlopt.byte
-flags = "-for-pack Packed"
-module = "api.ml"
-**** ocamlopt.byte
-program = "packed.cmx"
-flags = "-pack"
-all_modules = "api.cmx"
-**** ocamlopt.byte
-program = "./host.exe"
-libraries = "dynlink"
-all_modules = "packed.cmx host.ml"
-***** run
-arguments = "../plugin1/plugin.cmxs"
-output = "native.plugin1.result"
-****** check-program-output
-reference = "${test_source_directory}/native.plugin1.reference"
-***** run
-arguments = "../plugin2/plugin.cmxs"
-output = "native.plugin2.result"
-****** check-program-output
-reference = "${test_source_directory}/native.plugin2.reference"
-***** run
-arguments = "../plugin3/plugin.cmxs"
-output = "native.plugin3.result"
-****** check-program-output
-reference = "${test_source_directory}/native.plugin3.reference"
-***** run
-arguments = "../plugin4/plugin.cmxs"
-output = "native.plugin4.result"
-****** check-program-output
-reference = "${test_source_directory}/native.plugin4.reference"
-**** cd
-cwd = ".."
+ include dynlink;
+ libraries = "";
+ subdirectories = "host plugin1 plugin2 plugin3 plugin4";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ cwd = "plugin1";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlc.byte;
+ }{
+ program = "packed.cmo";
+ flags = "-pack";
+ all_modules = "api.cmo";
+ ocamlc.byte;
+ }{
+ program = "plugin.cma";
+ flags = "-a";
+ all_modules = "plugin.ml";
+ ocamlc.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "plugin2";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlc.byte;
+ }{
+ program = "packed.cmo";
+ flags = "-pack";
+ all_modules = "api.cmo";
+ ocamlc.byte;
+ }{
+ program = "plugin.cma";
+ flags = "-a";
+ all_modules = "plugin.ml";
+ ocamlc.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "plugin3";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlc.byte;
+ }{
+ program = "packed.cmo";
+ flags = "-pack";
+ all_modules = "api.cmo";
+ ocamlc.byte;
+ }{
+ program = "plugin.cma";
+ flags = "-a";
+ all_modules = "packed.cmo plugin.ml";
+ ocamlc.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "plugin4";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlc.byte;
+ }{
+ program = "packed.cmo";
+ flags = "-pack";
+ all_modules = "api.cmo";
+ ocamlc.byte;
+ }{
+ program = "plugin.cma";
+ flags = "-a";
+ all_modules = "packed.cmo plugin.ml";
+ ocamlc.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "host";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlc.byte;
+ }{
+ program = "packed.cmo";
+ flags = "-pack";
+ all_modules = "api.cmo";
+ ocamlc.byte;
+ }{
+ program = "./host.byt";
+ libraries = "dynlink";
+ all_modules = "packed.cmo host.ml";
+ ocamlc.byte;
+ {
+ arguments = "../plugin1/plugin.cma";
+ output = "byte.plugin1.result";
+ run;
+ reference = "${test_source_directory}/byte.plugin1.reference";
+ check-program-output;
+ }{
+ arguments = "../plugin2/plugin.cma";
+ output = "byte.plugin2.result";
+ run;
+ reference = "${test_source_directory}/byte.plugin2.reference";
+ check-program-output;
+ }{
+ arguments = "../plugin3/plugin.cma";
+ output = "byte.plugin3.result";
+ run;
+ reference = "${test_source_directory}/byte.plugin3.reference";
+ check-program-output;
+ }{
+ arguments = "../plugin4/plugin.cma";
+ output = "byte.plugin4.result";
+ run;
+ reference = "${test_source_directory}/byte.plugin4.reference";
+ check-program-output;
+ }
+ }{
+ cwd = "..";
+ cd;
+ }
+ }{
+ native-dynlink;
+ {
+ setup-ocamlopt.byte-build-env;
+ {
+ cwd = "plugin1";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlopt.byte;
+ }{
+ program = "packed.cmx";
+ flags = "-pack";
+ all_modules = "api.cmx";
+ ocamlopt.byte;
+ }{
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "plugin.ml";
+ ocamlopt.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "plugin2";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlopt.byte;
+ }{
+ program = "packed.cmx";
+ flags = "-pack";
+ all_modules = "api.cmx";
+ ocamlopt.byte;
+ }{
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "plugin.ml";
+ ocamlopt.byte;
+ }
+ }{
+ cwd = "..";
+ cd;
+ {
+ cwd = "plugin3";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlopt.byte;
+ }{
+ program = "packed.cmx";
+ flags = "-pack";
+ all_modules = "api.cmx";
+ ocamlopt.byte;
+ }{
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "packed.cmx plugin.ml";
+ ocamlopt.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "plugin4";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlopt.byte;
+ }{
+ program = "packed.cmx";
+ flags = "-pack";
+ all_modules = "api.cmx";
+ ocamlopt.byte;
+ }{
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "packed.cmx plugin.ml";
+ ocamlopt.byte;
+ }{
+ cwd = "..";
+ cd;
+ }{
+ cwd = "host";
+ cd;
+ }{
+ module = "api.mli";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Packed";
+ module = "api.ml";
+ ocamlopt.byte;
+ }{
+ program = "packed.cmx";
+ flags = "-pack";
+ all_modules = "api.cmx";
+ ocamlopt.byte;
+ }{
+ program = "./host.exe";
+ libraries = "dynlink";
+ all_modules = "packed.cmx host.ml";
+ ocamlopt.byte;
+ {
+ arguments = "../plugin1/plugin.cmxs";
+ output = "native.plugin1.result";
+ run;
+ reference = "${test_source_directory}/native.plugin1.reference";
+ check-program-output;
+ }{
+ arguments = "../plugin2/plugin.cmxs";
+ output = "native.plugin2.result";
+ run;
+ reference = "${test_source_directory}/native.plugin2.reference";
+ check-program-output;
+ }{
+ arguments = "../plugin3/plugin.cmxs";
+ output = "native.plugin3.result";
+ run;
+ reference = "${test_source_directory}/native.plugin3.reference";
+ check-program-output;
+ }{
+ arguments = "../plugin4/plugin.cmxs";
+ output = "native.plugin4.result";
+ run;
+ reference = "${test_source_directory}/native.plugin4.reference";
+ check-program-output;
+ }
+ }{
+ cwd = "..";
+ cd;
+ }
+ }
+ }
*)
diff --git a/testsuite/tests/lib-dynlink-pr6950/loader.ml b/testsuite/tests/lib-dynlink-pr6950/loader.ml
index d676934d1d..f7ba5595af 100644
--- a/testsuite/tests/lib-dynlink-pr6950/loader.ml
+++ b/testsuite/tests/lib-dynlink-pr6950/loader.ml
@@ -1,44 +1,50 @@
(* TEST
-
-include dynlink
-libraries = ""
-readonly_files = "config.ml b.ml"
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-program = "plugin.cma"
-flags = "-a"
-all_modules = "config.ml b.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/loader.byte"
-flags = "-linkall"
-include ocamlcommon
-libraries += "dynlink"
-all_modules = "loader.ml"
-**** run
-arguments = "plugin.cma"
-exit_status = "2"
-***** check-program-output
-reference = "${test_source_directory}/byte.reference"
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-program = "plugin.cmxs"
-flags = "-shared"
-all_modules = "config.ml b.ml"
-**** ocamlopt.byte
-program = "${test_build_directory}/loader.exe"
-flags = "-linkall"
-include ocamlcommon
-libraries += "dynlink"
-all_modules = "loader.ml"
-***** run
-arguments = "plugin.cmxs"
-exit_status = "2"
-****** check-program-output
-reference = "${test_source_directory}/native.reference"
+ include dynlink;
+ libraries = "";
+ readonly_files = "config.ml b.ml";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ program = "plugin.cma";
+ flags = "-a";
+ all_modules = "config.ml b.ml";
+ ocamlc.byte;
+ }{
+ program = "${test_build_directory}/loader.byte";
+ flags = "-linkall";
+ include ocamlcommon;
+ libraries += "dynlink";
+ all_modules = "loader.ml";
+ ocamlc.byte;
+ arguments = "plugin.cma";
+ exit_status = "2";
+ run;
+ reference = "${test_source_directory}/byte.reference";
+ check-program-output;
+ }
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ {
+ program = "plugin.cmxs";
+ flags = "-shared";
+ all_modules = "config.ml b.ml";
+ ocamlopt.byte;
+ }{
+ program = "${test_build_directory}/loader.exe";
+ flags = "-linkall";
+ include ocamlcommon;
+ libraries += "dynlink";
+ all_modules = "loader.ml";
+ ocamlopt.byte;
+ arguments = "plugin.cmxs";
+ exit_status = "2";
+ run;
+ reference = "${test_source_directory}/native.reference";
+ check-program-output;
+ }
+ }
*)
let () =
try
diff --git a/testsuite/tests/lib-dynlink-pr9209/dyn.ml b/testsuite/tests/lib-dynlink-pr9209/dyn.ml
index 051e7afc39..1a56bc8f64 100644
--- a/testsuite/tests/lib-dynlink-pr9209/dyn.ml
+++ b/testsuite/tests/lib-dynlink-pr9209/dyn.ml
@@ -1,61 +1,61 @@
(* TEST
-
-include dynlink
-readonly_files = "lib.ml lib2.ml test.c"
-ld_library_path += "${test_build_directory}"
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-compile_only = "true"
-all_modules = "lib.ml lib2.ml test.c dyn.ml"
-**** ocamlmklib
-program = "lib"
-modules = "lib.cmo test.${objext}"
-compile_only = "false"
-***** ocamlc.byte
-program = "lib2.cma"
-libraries = ""
-all_modules = "lib2.cmo"
-compile_only = "false"
-flags = "-a"
-****** ocamlc.byte
-libraries += "dynlink"
-program = "${test_build_directory}/main.exe"
-all_modules = "dyn.cmo"
-flags = ""
-******* run
-output = "main.output"
-******** check-program-output
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-compile_only = "true"
-all_modules = "lib.ml lib2.ml test.c dyn.ml"
-***** ocamlmklib
-program = "test"
-modules = "test.${objext}"
-compile_only = "false"
-****** ocamlopt.byte
-program = "lib.cmxs"
-libraries = ""
-flags = "-shared -cclib -L. -cclib -ltest"
-all_modules = "lib.cmx"
-compile_only = "false"
-******* ocamlopt.byte
-program = "lib2.cmxs"
-all_modules = "lib2.cmx"
-compile_only = "false"
-flags = "-shared"
-******** ocamlopt.byte
-libraries += "dynlink"
-program = "${test_build_directory}/main.exe"
-all_modules = "dyn.cmx"
-flags = ""
-********* run
-output = "main.output"
-********** check-program-output
+ include dynlink;
+ readonly_files = "lib.ml lib2.ml test.c";
+ ld_library_path += "${test_build_directory}";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ all_modules = "lib.ml lib2.ml test.c dyn.ml";
+ ocamlc.byte;
+ program = "lib";
+ modules = "lib.cmo test.${objext}";
+ compile_only = "false";
+ ocamlmklib;
+ program = "lib2.cma";
+ libraries = "";
+ all_modules = "lib2.cmo";
+ compile_only = "false";
+ flags = "-a";
+ ocamlc.byte;
+ libraries += "dynlink";
+ program = "${test_build_directory}/main.exe";
+ all_modules = "dyn.cmo";
+ flags = "";
+ ocamlc.byte;
+ output = "main.output";
+ run;
+ check-program-output;
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ compile_only = "true";
+ all_modules = "lib.ml lib2.ml test.c dyn.ml";
+ ocamlopt.byte;
+ program = "test";
+ modules = "test.${objext}";
+ compile_only = "false";
+ ocamlmklib;
+ program = "lib.cmxs";
+ libraries = "";
+ flags = "-shared -cclib -L. -cclib -ltest";
+ all_modules = "lib.cmx";
+ compile_only = "false";
+ ocamlopt.byte;
+ program = "lib2.cmxs";
+ all_modules = "lib2.cmx";
+ compile_only = "false";
+ flags = "-shared";
+ ocamlopt.byte;
+ libraries += "dynlink";
+ program = "${test_build_directory}/main.exe";
+ all_modules = "dyn.cmx";
+ flags = "";
+ ocamlopt.byte;
+ output = "main.output";
+ run;
+ check-program-output;
+ }
*)
let () =
Dynlink.allow_unsafe_modules true;
diff --git a/testsuite/tests/lib-dynlink-private/test.ml b/testsuite/tests/lib-dynlink-private/test.ml
index 5554ba74df..193e5308ce 100644
--- a/testsuite/tests/lib-dynlink-private/test.ml
+++ b/testsuite/tests/lib-dynlink-private/test.ml
@@ -1,170 +1,169 @@
(* TEST
-
-include dynlink
-libraries = ""
-readonly_files = "sheep.mli sheep.ml pig.mli"
-subdirectories = "plugin1 plugin2 plugin2b plugin2c plugin3 plugin4 \
- plugin5 plugin6"
-
-* shared-libraries
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-module = "sheep.mli"
-**** ocamlc.byte
-module = "sheep.ml"
-***** ocamlc.byte
-module = "pig.mli"
-****** ocamlc.byte
-module = "test.ml"
-******* ocamlc.byte
-module = "plugin1/sheep.mli"
-******** ocamlc.byte
-flags = "-I plugin1"
-module = "plugin1/sheep.ml"
-********* ocamlc.byte
-flags = ""
-module = "plugin2/cow.mli"
-********** ocamlc.byte
-flags = "-I plugin2"
-module = "plugin2/cow.ml"
-*********** ocamlc.byte
-flags = ""
-module = "plugin2b/cow.mli"
-************ ocamlc.byte
-flags = "-I plugin2b"
-module = "plugin2b/cow.ml"
-************* ocamlc.byte
-flags = ""
-module = "plugin2c/cow.mli"
-************** ocamlc.byte
-flags = "-I plugin2c"
-module = "plugin2c/cow.ml"
-*************** ocamlc.byte
-flags = ""
-module = "plugin3/pig.mli"
-**************** ocamlc.byte
-flags = "-I plugin3"
-module = "plugin3/pig.ml"
-***************** ocamlc.byte
-flags = ""
-module = "plugin4/chicken.mli"
-****************** ocamlc.byte
-flags = "-I plugin4"
-module = "plugin4/chicken.ml"
-******************* ocamlc.byte
-flags = ""
-module = "plugin5/chicken.mli"
-******************** ocamlc.byte
-flags = "-I plugin5"
-module = "plugin5/chicken.ml"
-********************* ocamlc.byte
-flags = ""
-module = "plugin6/pheasant.mli"
-********************** ocamlc.byte
-flags = "-I plugin6"
-module = "plugin6/pheasant.ml"
-*********************** ocamlc.byte
-flags = ""
-module = "plugin6/partridge.mli"
-************************ ocamlc.byte
-flags = "-I plugin6"
-module = "plugin6/partridge.ml"
-************************* ocamlc.byte
-flags = ""
-program = "./test.byte.exe"
-libraries = "dynlink"
-all_modules = "sheep.cmo test.cmo"
-module = ""
-************************** run
-
-** native-dynlink
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-module = "sheep.mli"
-***** ocamlopt.byte
-module = "sheep.ml"
-****** ocamlopt.byte
-module = "pig.mli"
-******* ocamlopt.byte
-module = "test.ml"
-******** ocamlopt.byte
-flags = ""
-module = "plugin1/sheep.mli"
-********* ocamlopt.byte
-program = "plugin1/sheep.cmxs"
-flags = "-I plugin1 -shared"
-module = ""
-all_modules = "plugin1/sheep.ml"
-********** ocamlopt.byte
-flags = ""
-module = "plugin2/cow.mli"
-*********** ocamlopt.byte
-program = "plugin2/cow.cmxs"
-flags = "-I plugin2 -shared"
-module = ""
-all_modules = "plugin2/cow.ml"
-************ ocamlopt.byte
-flags = ""
-module = "plugin2b/cow.mli"
-************* ocamlopt.byte
-program = "plugin2b/cow.cmxs"
-flags = "-I plugin2b -shared"
-module = ""
-all_modules = "plugin2b/cow.ml"
-************** ocamlopt.byte
-flags = ""
-module = "plugin2c/cow.mli"
-*************** ocamlopt.byte
-program = "plugin2c/cow.cmxs"
-flags = "-I plugin2c -shared"
-module = ""
-all_modules = "plugin2c/cow.ml"
-**************** ocamlopt.byte
-flags = ""
-module = "plugin3/pig.mli"
-***************** ocamlopt.byte
-program = "plugin3/pig.cmxs"
-flags = "-I plugin3 -shared"
-module = ""
-all_modules = "plugin3/pig.ml"
-****************** ocamlopt.byte
-flags = ""
-module = "plugin4/chicken.mli"
-******************* ocamlopt.byte
-program = "plugin4/chicken.cmxs"
-flags = "-I plugin4 -shared"
-module = ""
-all_modules = "plugin4/chicken.ml"
-******************** ocamlopt.byte
-flags = ""
-module = "plugin5/chicken.mli"
-********************* ocamlopt.byte
-program = "plugin5/chicken.cmxs"
-flags = "-I plugin5 -shared"
-module = ""
-all_modules = "plugin5/chicken.ml"
-********************** ocamlopt.byte
-flags = ""
-module = "plugin6/pheasant.mli"
-*********************** ocamlopt.byte
-program = "plugin6/pheasant.cmxs"
-flags = "-I plugin6 -shared"
-module = ""
-all_modules = "plugin6/pheasant.ml"
-************************ ocamlopt.byte
-flags = ""
-module = "plugin6/partridge.mli"
-************************* ocamlopt.byte
-program = "plugin6/partridge.cmxs"
-flags = "-I plugin6 -shared"
-module = ""
-all_modules = "plugin6/partridge.ml"
-************************** ocamlopt.byte
-flags = ""
-program = "./test.opt.exe"
-libraries = "dynlink"
-all_modules = "sheep.cmx test.cmx"
-*************************** run
+ include dynlink;
+ libraries = "";
+ readonly_files = "sheep.mli sheep.ml pig.mli";
+ subdirectories = "plugin1 plugin2 plugin2b plugin2c plugin3 plugin4 plugin5 plugin6";
+ shared-libraries;
+ {
+ setup-ocamlc.byte-build-env;
+ module = "sheep.mli";
+ ocamlc.byte;
+ module = "sheep.ml";
+ ocamlc.byte;
+ module = "pig.mli";
+ ocamlc.byte;
+ module = "test.ml";
+ ocamlc.byte;
+ module = "plugin1/sheep.mli";
+ ocamlc.byte;
+ flags = "-I plugin1";
+ module = "plugin1/sheep.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin2/cow.mli";
+ ocamlc.byte;
+ flags = "-I plugin2";
+ module = "plugin2/cow.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin2b/cow.mli";
+ ocamlc.byte;
+ flags = "-I plugin2b";
+ module = "plugin2b/cow.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin2c/cow.mli";
+ ocamlc.byte;
+ flags = "-I plugin2c";
+ module = "plugin2c/cow.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin3/pig.mli";
+ ocamlc.byte;
+ flags = "-I plugin3";
+ module = "plugin3/pig.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin4/chicken.mli";
+ ocamlc.byte;
+ flags = "-I plugin4";
+ module = "plugin4/chicken.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin5/chicken.mli";
+ ocamlc.byte;
+ flags = "-I plugin5";
+ module = "plugin5/chicken.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin6/pheasant.mli";
+ ocamlc.byte;
+ flags = "-I plugin6";
+ module = "plugin6/pheasant.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "plugin6/partridge.mli";
+ ocamlc.byte;
+ flags = "-I plugin6";
+ module = "plugin6/partridge.ml";
+ ocamlc.byte;
+ flags = "";
+ program = "./test.byte.exe";
+ libraries = "dynlink";
+ all_modules = "sheep.cmo test.cmo";
+ module = "";
+ ocamlc.byte;
+ run;
+ }{
+ native-dynlink;
+ setup-ocamlopt.byte-build-env;
+ module = "sheep.mli";
+ ocamlopt.byte;
+ module = "sheep.ml";
+ ocamlopt.byte;
+ module = "pig.mli";
+ ocamlopt.byte;
+ module = "test.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin1/sheep.mli";
+ ocamlopt.byte;
+ program = "plugin1/sheep.cmxs";
+ flags = "-I plugin1 -shared";
+ module = "";
+ all_modules = "plugin1/sheep.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin2/cow.mli";
+ ocamlopt.byte;
+ program = "plugin2/cow.cmxs";
+ flags = "-I plugin2 -shared";
+ module = "";
+ all_modules = "plugin2/cow.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin2b/cow.mli";
+ ocamlopt.byte;
+ program = "plugin2b/cow.cmxs";
+ flags = "-I plugin2b -shared";
+ module = "";
+ all_modules = "plugin2b/cow.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin2c/cow.mli";
+ ocamlopt.byte;
+ program = "plugin2c/cow.cmxs";
+ flags = "-I plugin2c -shared";
+ module = "";
+ all_modules = "plugin2c/cow.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin3/pig.mli";
+ ocamlopt.byte;
+ program = "plugin3/pig.cmxs";
+ flags = "-I plugin3 -shared";
+ module = "";
+ all_modules = "plugin3/pig.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin4/chicken.mli";
+ ocamlopt.byte;
+ program = "plugin4/chicken.cmxs";
+ flags = "-I plugin4 -shared";
+ module = "";
+ all_modules = "plugin4/chicken.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin5/chicken.mli";
+ ocamlopt.byte;
+ program = "plugin5/chicken.cmxs";
+ flags = "-I plugin5 -shared";
+ module = "";
+ all_modules = "plugin5/chicken.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin6/pheasant.mli";
+ ocamlopt.byte;
+ program = "plugin6/pheasant.cmxs";
+ flags = "-I plugin6 -shared";
+ module = "";
+ all_modules = "plugin6/pheasant.ml";
+ ocamlopt.byte;
+ flags = "";
+ module = "plugin6/partridge.mli";
+ ocamlopt.byte;
+ program = "plugin6/partridge.cmxs";
+ flags = "-I plugin6 -shared";
+ module = "";
+ all_modules = "plugin6/partridge.ml";
+ ocamlopt.byte;
+ flags = "";
+ program = "./test.opt.exe";
+ libraries = "dynlink";
+ all_modules = "sheep.cmx test.cmx";
+ ocamlopt.byte;
+ run;
+ }
*)
let () = Sheep.baa Sheep.s (* Use Sheep module *)
diff --git a/testsuite/tests/lib-either/test.ml b/testsuite/tests/lib-either/test.ml
index 2a62f38919..5cdaa3837d 100644
--- a/testsuite/tests/lib-either/test.ml
+++ b/testsuite/tests/lib-either/test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
open Either;;
diff --git a/testsuite/tests/lib-filename/extension.ml b/testsuite/tests/lib-filename/extension.ml
index ae7c8b61d4..3b42056719 100644
--- a/testsuite/tests/lib-filename/extension.ml
+++ b/testsuite/tests/lib-filename/extension.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let () =
let test f e =
diff --git a/testsuite/tests/lib-filename/null.ml b/testsuite/tests/lib-filename/null.ml
index 048e36622e..ecad3c7836 100644
--- a/testsuite/tests/lib-filename/null.ml
+++ b/testsuite/tests/lib-filename/null.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let () =
let ic = open_in Filename.null in
diff --git a/testsuite/tests/lib-filename/quotecommand.ml b/testsuite/tests/lib-filename/quotecommand.ml
index 5e5059c02a..7034c36922 100644
--- a/testsuite/tests/lib-filename/quotecommand.ml
+++ b/testsuite/tests/lib-filename/quotecommand.ml
@@ -1,31 +1,30 @@
(* TEST
-
-readonly_files = "myecho.ml"
-
-* setup-ocamlc.byte-build-env
-program = "${test_build_directory}/quotecommand.byte"
-** ocamlc.byte
-program = "${test_build_directory}/myecho.exe"
-all_modules = "myecho.ml"
-*** ocamlc.byte
-program = "${test_build_directory}/quotecommand.byte"
-all_modules= "quotecommand.ml"
-**** check-ocamlc.byte-output
-***** run
-****** check-program-output
-
-* setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/quotecommand.opt"
-** ocamlopt.byte
-program = "${test_build_directory}/myecho.exe"
-all_modules = "myecho.ml"
-*** ocamlopt.byte
-program = "${test_build_directory}/quotecommand.opt"
-all_modules= "quotecommand.ml"
-**** check-ocamlopt.byte-output
-***** run
-****** check-program-output
-
+ readonly_files = "myecho.ml";
+ {
+ program = "${test_build_directory}/quotecommand.byte";
+ setup-ocamlc.byte-build-env;
+ program = "${test_build_directory}/myecho.exe";
+ all_modules = "myecho.ml";
+ ocamlc.byte;
+ program = "${test_build_directory}/quotecommand.byte";
+ all_modules = "quotecommand.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/quotecommand.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "${test_build_directory}/myecho.exe";
+ all_modules = "myecho.ml";
+ ocamlopt.byte;
+ program = "${test_build_directory}/quotecommand.opt";
+ all_modules = "quotecommand.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
open Printf
diff --git a/testsuite/tests/lib-filename/suffix.ml b/testsuite/tests/lib-filename/suffix.ml
index 3faa5c94fe..071df44653 100644
--- a/testsuite/tests/lib-filename/suffix.ml
+++ b/testsuite/tests/lib-filename/suffix.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let () =
let test ~suffix name exp =
diff --git a/testsuite/tests/lib-filename/temp.ml b/testsuite/tests/lib-filename/temp.ml
index d0bbbe9cf2..75d79417e1 100644
--- a/testsuite/tests/lib-filename/temp.ml
+++ b/testsuite/tests/lib-filename/temp.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let () =
let tmpdir1 = ref "" in
diff --git a/testsuite/tests/lib-float/test.ml b/testsuite/tests/lib-float/test.ml
index ac3e91b55e..8cdbd9afe6 100644
--- a/testsuite/tests/lib-float/test.ml
+++ b/testsuite/tests/lib-float/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let is_nan2 (x, y) = Float.is_nan x && Float.is_nan y
diff --git a/testsuite/tests/lib-floatarray/floatarray.ml b/testsuite/tests/lib-floatarray/floatarray.ml
index 379b76bc78..564c325d7c 100644
--- a/testsuite/tests/lib-floatarray/floatarray.ml
+++ b/testsuite/tests/lib-floatarray/floatarray.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Printf
diff --git a/testsuite/tests/lib-format/pr6824.ml b/testsuite/tests/lib-format/pr6824.ml
index 7dc9208380..342ebd9a11 100644
--- a/testsuite/tests/lib-format/pr6824.ml
+++ b/testsuite/tests/lib-format/pr6824.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
let f = Format.sprintf "[%i]";;
diff --git a/testsuite/tests/lib-format/print_array.ml b/testsuite/tests/lib-format/print_array.ml
index dc6481c884..5efce52758 100644
--- a/testsuite/tests/lib-format/print_array.ml
+++ b/testsuite/tests/lib-format/print_array.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(*
diff --git a/testsuite/tests/lib-format/print_seq.ml b/testsuite/tests/lib-format/print_seq.ml
index 4113ded9ad..72f99f02d2 100644
--- a/testsuite/tests/lib-format/print_seq.ml
+++ b/testsuite/tests/lib-format/print_seq.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(*
diff --git a/testsuite/tests/lib-format/tformat.ml b/testsuite/tests/lib-format/tformat.ml
index e0118387a0..98ad1afdab 100644
--- a/testsuite/tests/lib-format/tformat.ml
+++ b/testsuite/tests/lib-format/tformat.ml
@@ -1,6 +1,6 @@
(* TEST
- include testing
- flags = "-no-strict-formats"
+ include testing;
+ flags = "-no-strict-formats";
*)
(*
diff --git a/testsuite/tests/lib-fun/test.ml b/testsuite/tests/lib-fun/test.ml
index ba534db262..b0c7914697 100644
--- a/testsuite/tests/lib-fun/test.ml
+++ b/testsuite/tests/lib-fun/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let test_id () =
assert (Fun.id true = true);
diff --git a/testsuite/tests/lib-hashtbl/compatibility.ml b/testsuite/tests/lib-hashtbl/compatibility.ml
index 9ad3a477f3..39477a62ee 100644
--- a/testsuite/tests/lib-hashtbl/compatibility.ml
+++ b/testsuite/tests/lib-hashtbl/compatibility.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let check_contents (h: (string, int) Hashtbl.t)
(expected: (string * int) list) =
diff --git a/testsuite/tests/lib-hashtbl/hfun.ml b/testsuite/tests/lib-hashtbl/hfun.ml
index 3e15596e85..ae0634dc11 100644
--- a/testsuite/tests/lib-hashtbl/hfun.ml
+++ b/testsuite/tests/lib-hashtbl/hfun.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Testing the hash function Hashtbl.hash *)
(* What is tested:
diff --git a/testsuite/tests/lib-hashtbl/htbl.ml b/testsuite/tests/lib-hashtbl/htbl.ml
index efdc5fba28..4af75a9f02 100644
--- a/testsuite/tests/lib-hashtbl/htbl.ml
+++ b/testsuite/tests/lib-hashtbl/htbl.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Hashtable operations, using maps as a reference *)
diff --git a/testsuite/tests/lib-int/test.ml b/testsuite/tests/lib-int/test.ml
index db510fe5b1..2fdee39520 100644
--- a/testsuite/tests/lib-int/test.ml
+++ b/testsuite/tests/lib-int/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let test_consts () =
assert (Int.zero = 0);
diff --git a/testsuite/tests/lib-int64/issue9460.ml b/testsuite/tests/lib-int64/issue9460.ml
index aacbe6189b..f05005cada 100644
--- a/testsuite/tests/lib-int64/issue9460.ml
+++ b/testsuite/tests/lib-int64/issue9460.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* See https://github.com/ocaml/ocaml/issues/9460
This test comes from Richard Jones
diff --git a/testsuite/tests/lib-int64/test.ml b/testsuite/tests/lib-int64/test.ml
index 6bb0a5dc10..c518ad9a08 100644
--- a/testsuite/tests/lib-int64/test.ml
+++ b/testsuite/tests/lib-int64/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let test_consts () =
assert (Int64.zero = 0L);
diff --git a/testsuite/tests/lib-internalformat/test.ml b/testsuite/tests/lib-internalformat/test.ml
index 9f81335339..8b3d3c5275 100644
--- a/testsuite/tests/lib-internalformat/test.ml
+++ b/testsuite/tests/lib-internalformat/test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let inspect (format : _ format6) =
diff --git a/testsuite/tests/lib-lazy/test.ml b/testsuite/tests/lib-lazy/test.ml
index c6659f2207..cd2c351078 100644
--- a/testsuite/tests/lib-lazy/test.ml
+++ b/testsuite/tests/lib-lazy/test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* expect-tests currently do not collect I/O,
diff --git a/testsuite/tests/lib-list/test.ml b/testsuite/tests/lib-list/test.ml
index 3d762e7bca..46b73b0720 100644
--- a/testsuite/tests/lib-list/test.ml
+++ b/testsuite/tests/lib-list/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let is_even x = (x mod 2 = 0)
diff --git a/testsuite/tests/lib-marshal/intext.ml b/testsuite/tests/lib-marshal/intext.ml
index 8f9a26133d..fc7ffbe2aa 100644
--- a/testsuite/tests/lib-marshal/intext.ml
+++ b/testsuite/tests/lib-marshal/intext.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "intextaux.c"
+ modules = "intextaux.c";
*)
(* Test for output_value / input_value *)
diff --git a/testsuite/tests/lib-marshal/intext_par.ml b/testsuite/tests/lib-marshal/intext_par.ml
index 8db6e91a5a..3aade5bacc 100644
--- a/testsuite/tests/lib-marshal/intext_par.ml
+++ b/testsuite/tests/lib-marshal/intext_par.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "intextaux_par.c"
+ modules = "intextaux_par.c";
*)
(* Test for output_value / input_value *)
diff --git a/testsuite/tests/lib-obj/new_obj.ml b/testsuite/tests/lib-obj/new_obj.ml
index 049a300f55..ae28f52ea8 100644
--- a/testsuite/tests/lib-obj/new_obj.ml
+++ b/testsuite/tests/lib-obj/new_obj.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let _ =
diff --git a/testsuite/tests/lib-obj/reachable_words.ml b/testsuite/tests/lib-obj/reachable_words.ml
index 8ec724343c..42bb2430ae 100644
--- a/testsuite/tests/lib-obj/reachable_words.ml
+++ b/testsuite/tests/lib-obj/reachable_words.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
diff --git a/testsuite/tests/lib-obj/reachable_words_bug.ml b/testsuite/tests/lib-obj/reachable_words_bug.ml
index 15969eb421..54e2aadd64 100644
--- a/testsuite/tests/lib-obj/reachable_words_bug.ml
+++ b/testsuite/tests/lib-obj/reachable_words_bug.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let _ =
(* In 4.13 this causes Obj.reachable_words to segfault
diff --git a/testsuite/tests/lib-obj/with_tag.ml b/testsuite/tests/lib-obj/with_tag.ml
index a4b69ea1d4..66137e2469 100644
--- a/testsuite/tests/lib-obj/with_tag.ml
+++ b/testsuite/tests/lib-obj/with_tag.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
type t =
| A of string * float
diff --git a/testsuite/tests/lib-option/test.ml b/testsuite/tests/lib-option/test.ml
index 316e3eae97..5383c382c2 100644
--- a/testsuite/tests/lib-option/test.ml
+++ b/testsuite/tests/lib-option/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let strf = Printf.sprintf
let assert_raise_invalid_argument f v =
diff --git a/testsuite/tests/lib-printf/pr6534.ml b/testsuite/tests/lib-printf/pr6534.ml
index b475c58ab0..f4b4fb8d5a 100644
--- a/testsuite/tests/lib-printf/pr6534.ml
+++ b/testsuite/tests/lib-printf/pr6534.ml
@@ -1,6 +1,6 @@
(* TEST
- include testing
- flags = "-no-strict-formats"
+ include testing;
+ flags = "-no-strict-formats";
*)
(* these are not valid under -strict-formats, but we test them here
diff --git a/testsuite/tests/lib-printf/pr6938.ml b/testsuite/tests/lib-printf/pr6938.ml
index 5331b77e9f..cf90e0a8dc 100644
--- a/testsuite/tests/lib-printf/pr6938.ml
+++ b/testsuite/tests/lib-printf/pr6938.ml
@@ -1,6 +1,6 @@
(* TEST
- include testing
- flags = "-no-strict-formats"
+ include testing;
+ flags = "-no-strict-formats";
*)
(* these are not valid under -strict-formats, but we test them here
diff --git a/testsuite/tests/lib-printf/tprintf.ml b/testsuite/tests/lib-printf/tprintf.ml
index e3887bd807..4241a804f7 100644
--- a/testsuite/tests/lib-printf/tprintf.ml
+++ b/testsuite/tests/lib-printf/tprintf.ml
@@ -1,6 +1,6 @@
(* TEST
- include testing
- flags = "-no-strict-formats"
+ include testing;
+ flags = "-no-strict-formats";
*)
(*
diff --git a/testsuite/tests/lib-queue/test.ml b/testsuite/tests/lib-queue/test.ml
index ac05f4e303..cff8e2cd65 100644
--- a/testsuite/tests/lib-queue/test.ml
+++ b/testsuite/tests/lib-queue/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
module Q = struct
include Queue
diff --git a/testsuite/tests/lib-random/chi2.ml b/testsuite/tests/lib-random/chi2.ml
index 42d2b1d7cd..3804f6511c 100644
--- a/testsuite/tests/lib-random/chi2.ml
+++ b/testsuite/tests/lib-random/chi2.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* A basic chi-square test to detect simple errors in the Random module. *)
diff --git a/testsuite/tests/lib-random/defaultinit.ml b/testsuite/tests/lib-random/defaultinit.ml
index df3550374e..79179d9891 100644
--- a/testsuite/tests/lib-random/defaultinit.ml
+++ b/testsuite/tests/lib-random/defaultinit.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(* Check that the numbers drawn from the default state are the same
diff --git a/testsuite/tests/lib-random/parallel.ml b/testsuite/tests/lib-random/parallel.ml
index 68f567abec..9a8f1c96ae 100644
--- a/testsuite/tests/lib-random/parallel.ml
+++ b/testsuite/tests/lib-random/parallel.ml
@@ -1,9 +1,12 @@
(* TEST
- include unix
- * libunix
- ** bytecode
- ** native
- *)
+ include unix;
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
let () = Random.init 42
diff --git a/testsuite/tests/lib-random/selfinit.ml b/testsuite/tests/lib-random/selfinit.ml
index 1664907de4..eab1bfaf1a 100644
--- a/testsuite/tests/lib-random/selfinit.ml
+++ b/testsuite/tests/lib-random/selfinit.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Test that two Random.self_init() in close succession will not result
in the same PRNG state.
diff --git a/testsuite/tests/lib-random/testvectors.ml b/testsuite/tests/lib-random/testvectors.ml
index b8f09ae058..2ff5e0970d 100644
--- a/testsuite/tests/lib-random/testvectors.ml
+++ b/testsuite/tests/lib-random/testvectors.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Check the numbers drawn from a known state against the numbers
obtained from the reference Java implementation. *)
diff --git a/testsuite/tests/lib-result/test.ml b/testsuite/tests/lib-result/test.ml
index 6e7a5cc8cf..c32c7dc395 100644
--- a/testsuite/tests/lib-result/test.ml
+++ b/testsuite/tests/lib-result/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let strf = Printf.sprintf
let assert_raise_invalid_argument f v =
diff --git a/testsuite/tests/lib-runtime-events/test.ml b/testsuite/tests/lib-runtime-events/test.ml
index db08937089..2e7e1b90ab 100644
--- a/testsuite/tests/lib-runtime-events/test.ml
+++ b/testsuite/tests/lib-runtime-events/test.ml
@@ -1,6 +1,6 @@
(* TEST
-modules = "stubs.c"
-include runtime_events
+ modules = "stubs.c";
+ include runtime_events;
*)
external start_runtime_events : unit -> unit = "start_runtime_events"
diff --git a/testsuite/tests/lib-runtime-events/test_caml.ml b/testsuite/tests/lib-runtime-events/test_caml.ml
index 1e96998149..4d656f3e01 100644
--- a/testsuite/tests/lib-runtime-events/test_caml.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_caml_counters.ml b/testsuite/tests/lib-runtime-events/test_caml_counters.ml
index af43fd47af..75fa99341d 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_counters.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_counters.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_caml_exception.ml b/testsuite/tests/lib-runtime-events/test_caml_exception.ml
index e1df5aee0b..59adfe32c2 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_exception.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_exception.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_caml_parallel.ml b/testsuite/tests/lib-runtime-events/test_caml_parallel.ml
index 76cad340d8..4394355924 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_parallel.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_parallel.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_caml_reentry.ml b/testsuite/tests/lib-runtime-events/test_caml_reentry.ml
index d69042e354..81e38e208a 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_reentry.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_reentry.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_caml_runparams.ml b/testsuite/tests/lib-runtime-events/test_caml_runparams.ml
index a574e7d341..19612a595a 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_runparams.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_runparams.ml
@@ -1,6 +1,6 @@
(* TEST
-include runtime_events
-ocamlrunparam += ",e=4"
+ include runtime_events;
+ ocamlrunparam += ",e=4";
*)
(* We set the ring buffer size smaller and witness that we do indeed
diff --git a/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml b/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml
index 34b034a8e8..cbbfa9a863 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml b/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml
index 35ddd983a1..6ea181f17c 100644
--- a/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml
+++ b/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_dropped_events.ml b/testsuite/tests/lib-runtime-events/test_dropped_events.ml
index 7443833499..04df10ef9f 100644
--- a/testsuite/tests/lib-runtime-events/test_dropped_events.ml
+++ b/testsuite/tests/lib-runtime-events/test_dropped_events.ml
@@ -1,10 +1,13 @@
(* TEST
- include runtime_events
- include unix
- set OCAMLRUNPARAM = "e=6"
- * libunix
- ** native
- ** bytecode
+ include runtime_events;
+ include unix;
+ set OCAMLRUNPARAM = "e=6";
+ libunix;
+ {
+ native;
+ }{
+ bytecode;
+ }
*)
type Runtime_events.User.tag += Ev
diff --git a/testsuite/tests/lib-runtime-events/test_env_start.ml b/testsuite/tests/lib-runtime-events/test_env_start.ml
index 6b6bca5b09..5562d26707 100644
--- a/testsuite/tests/lib-runtime-events/test_env_start.ml
+++ b/testsuite/tests/lib-runtime-events/test_env_start.ml
@@ -1,6 +1,6 @@
(* TEST
-include runtime_events
-set OCAML_RUNTIME_EVENTS_START = "1"
+ include runtime_events;
+ set OCAML_RUNTIME_EVENTS_START = "1";
*)
(* In this test the runtime_events should already be started by the environment
diff --git a/testsuite/tests/lib-runtime-events/test_external.ml b/testsuite/tests/lib-runtime-events/test_external.ml
index ecea4b7e13..df285e78cf 100644
--- a/testsuite/tests/lib-runtime-events/test_external.ml
+++ b/testsuite/tests/lib-runtime-events/test_external.ml
@@ -1,9 +1,13 @@
(* TEST
- include runtime_events
- include unix
- * libunix
- ** bytecode
- ** native *)
+ include runtime_events;
+ include unix;
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
let got_major = ref false
let got_minor = ref false
diff --git a/testsuite/tests/lib-runtime-events/test_external_preserve.ml b/testsuite/tests/lib-runtime-events/test_external_preserve.ml
index 18c2ac578b..d5dd87c14b 100644
--- a/testsuite/tests/lib-runtime-events/test_external_preserve.ml
+++ b/testsuite/tests/lib-runtime-events/test_external_preserve.ml
@@ -1,10 +1,14 @@
(* TEST
- include runtime_events
- include unix
- set OCAML_RUNTIME_EVENTS_PRESERVE = "1"
- * libunix
- ** bytecode
- ** native *)
+ include runtime_events;
+ include unix;
+ set OCAML_RUNTIME_EVENTS_PRESERVE = "1";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
(* this tests the preservation of ring buffers after termination *)
diff --git a/testsuite/tests/lib-runtime-events/test_fork.ml b/testsuite/tests/lib-runtime-events/test_fork.ml
index 87f556a659..6d6ca1ef09 100644
--- a/testsuite/tests/lib-runtime-events/test_fork.ml
+++ b/testsuite/tests/lib-runtime-events/test_fork.ml
@@ -1,9 +1,13 @@
(* TEST
- include runtime_events
- include unix
- * libunix
- ** bytecode
- ** native *)
+ include runtime_events;
+ include unix;
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
let got_start = ref false
let got_fork_child = ref false
diff --git a/testsuite/tests/lib-runtime-events/test_instrumented.ml b/testsuite/tests/lib-runtime-events/test_instrumented.ml
index 94727d13fd..5c49db90af 100644
--- a/testsuite/tests/lib-runtime-events/test_instrumented.ml
+++ b/testsuite/tests/lib-runtime-events/test_instrumented.ml
@@ -1,9 +1,8 @@
(* TEST
- include runtime_events
- flags = "-runtime-variant=i"
-
- * instrumented-runtime
- ** native
+ include runtime_events;
+ flags = "-runtime-variant=i";
+ instrumented-runtime;
+ native;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_user_event.ml b/testsuite/tests/lib-runtime-events/test_user_event.ml
index a4cb09175b..4c9e90c919 100644
--- a/testsuite/tests/lib-runtime-events/test_user_event.ml
+++ b/testsuite/tests/lib-runtime-events/test_user_event.ml
@@ -1,5 +1,5 @@
(* TEST
-include runtime_events
+ include runtime_events;
*)
open Runtime_events
diff --git a/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml b/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml
index f5a63d46fd..447b7b5c55 100644
--- a/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml
+++ b/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml
@@ -1,10 +1,13 @@
(* TEST
- include runtime_events
- include unix
- set OCAML_RUNTIME_EVENTS_PRESERVE = "1"
- * libunix
- ** bytecode
- ** native
+ include runtime_events;
+ include unix;
+ set OCAML_RUNTIME_EVENTS_PRESERVE = "1";
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Runtime_events
diff --git a/testsuite/tests/lib-scanf-2/tscanf2_master.ml b/testsuite/tests/lib-scanf-2/tscanf2_master.ml
index d364ceabcd..7d1e8ee7f8 100644
--- a/testsuite/tests/lib-scanf-2/tscanf2_master.ml
+++ b/testsuite/tests/lib-scanf-2/tscanf2_master.ml
@@ -1,59 +1,36 @@
(* TEST
-
-modules = "tscanf2_io.ml"
-* hasunix
-include unix
-readonly_files = "tscanf2_worker.ml"
-reference = "${test_source_directory}/tscanf2.reference"
-
-(* The bytcode test *)
-
-** setup-ocamlc.byte-build-env
-
-program = "${test_build_directory}/master.byte"
-
-*** ocamlc.byte (* Compiles the master *)
-
-**** ocamlc.byte (* Compiles the worker *)
-
-all_modules = "tscanf2_io.cmo tscanf2_worker.ml"
-
-program = "${test_build_directory}/worker.byte"
-
-***** check-ocamlc.byte-output
-
-****** run
-
-program = "${test_build_directory}/master.byte"
-
-arguments = "${test_build_directory}/worker.byte"
-
-******* check-program-output
-
-(* The native test *)
-
-** setup-ocamlopt.byte-build-env
-
-program = "${test_build_directory}/master.opt"
-
-*** ocamlopt.byte (* Compiles the master *)
-
-**** ocamlopt.byte (* Compiles the worker *)
-
-all_modules = "tscanf2_io.cmx tscanf2_worker.ml"
-
-program = "${test_build_directory}/worker.opt"
-
-***** check-ocamlopt.byte-output
-
-****** run
-
-program = "${test_build_directory}/master.opt"
-
-arguments = "${test_build_directory}/worker.opt"
-
-******* check-program-output
-
+ modules = "tscanf2_io.ml";
+ include unix;
+ readonly_files = "tscanf2_worker.ml";
+ reference = "${test_source_directory}/tscanf2.reference";
+ hasunix;
+ {
+ (* The bytecode test *)
+ program = "${test_build_directory}/master.byte";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte; (* Compiles the master *)
+ all_modules = "tscanf2_io.cmo tscanf2_worker.ml";
+ program = "${test_build_directory}/worker.byte";
+ ocamlc.byte; (* Compiles the worker *)
+ check-ocamlc.byte-output;
+ program = "${test_build_directory}/master.byte";
+ arguments = "${test_build_directory}/worker.byte";
+ run;
+ check-program-output;
+ }{
+ (* The native test *)
+ program = "${test_build_directory}/master.opt";
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte; (* Compiles the master *)
+ all_modules = "tscanf2_io.cmx tscanf2_worker.ml";
+ program = "${test_build_directory}/worker.opt";
+ ocamlopt.byte; (* Compiles the worker *)
+ check-ocamlopt.byte-output;
+ program = "${test_build_directory}/master.opt";
+ arguments = "${test_build_directory}/worker.opt";
+ run;
+ check-program-output;
+ }
*)
(* A very simple master:
diff --git a/testsuite/tests/lib-scanf/tscanf.ml b/testsuite/tests/lib-scanf/tscanf.ml
index e9be7179c1..b79aab37cf 100644
--- a/testsuite/tests/lib-scanf/tscanf.ml
+++ b/testsuite/tests/lib-scanf/tscanf.ml
@@ -1,5 +1,5 @@
(* TEST
- include testing
+ include testing;
*)
(*
diff --git a/testsuite/tests/lib-seq/test.ml b/testsuite/tests/lib-seq/test.ml
index 31913dc419..2936213c72 100644
--- a/testsuite/tests/lib-seq/test.ml
+++ b/testsuite/tests/lib-seq/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let (!?) = List.to_seq
let (!!) = List.of_seq
diff --git a/testsuite/tests/lib-set/testmap.ml b/testsuite/tests/lib-set/testmap.ml
index b41c020df0..354567089f 100644
--- a/testsuite/tests/lib-set/testmap.ml
+++ b/testsuite/tests/lib-set/testmap.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
module M = Map.Make(struct type t = int let compare (x:t) y = compare x y end)
diff --git a/testsuite/tests/lib-set/testset.ml b/testsuite/tests/lib-set/testset.ml
index 764987c00c..2d1bdb7e36 100644
--- a/testsuite/tests/lib-set/testset.ml
+++ b/testsuite/tests/lib-set/testset.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
module S = Set.Make(struct type t = int let compare (x:t) y = compare x y end)
diff --git a/testsuite/tests/lib-stack/test.ml b/testsuite/tests/lib-stack/test.ml
index 16544f3fb6..e772d546c9 100644
--- a/testsuite/tests/lib-stack/test.ml
+++ b/testsuite/tests/lib-stack/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
module S = struct
include Stack
diff --git a/testsuite/tests/lib-stdlabels/test_stdlabels.ml b/testsuite/tests/lib-stdlabels/test_stdlabels.ml
index c846bcb7be..e7c8ebc9db 100644
--- a/testsuite/tests/lib-stdlabels/test_stdlabels.ml
+++ b/testsuite/tests/lib-stdlabels/test_stdlabels.ml
@@ -1,5 +1,5 @@
(* TEST
- flags += " -nolabels "
+ flags += " -nolabels ";
*)
module A : module type of Array = ArrayLabels
diff --git a/testsuite/tests/lib-str/parallel.ml b/testsuite/tests/lib-str/parallel.ml
index 23f2a5f7de..8c027e3636 100644
--- a/testsuite/tests/lib-str/parallel.ml
+++ b/testsuite/tests/lib-str/parallel.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasstr
-include str
-** bytecode
-** native
+ include str;
+ hasstr;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let total = Atomic.make 0
diff --git a/testsuite/tests/lib-str/t01.ml b/testsuite/tests/lib-str/t01.ml
index 076172bdcb..ec8590157f 100644
--- a/testsuite/tests/lib-str/t01.ml
+++ b/testsuite/tests/lib-str/t01.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasstr
-include str
-** bytecode
-** native
+ include str;
+ hasstr;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Printf
diff --git a/testsuite/tests/lib-string/binary.ml b/testsuite/tests/lib-string/binary.ml
index 86f038d2da..c67656c5d1 100644
--- a/testsuite/tests/lib-string/binary.ml
+++ b/testsuite/tests/lib-string/binary.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let err x =
match Lazy.force x with
diff --git a/testsuite/tests/lib-string/test_string.ml b/testsuite/tests/lib-string/test_string.ml
index 5a6f832643..3a2731329b 100644
--- a/testsuite/tests/lib-string/test_string.ml
+++ b/testsuite/tests/lib-string/test_string.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Printf
let rec build_string f n accu =
diff --git a/testsuite/tests/lib-sync/prodcons.ml b/testsuite/tests/lib-sync/prodcons.ml
index 2e2c09756c..34e5612fda 100644
--- a/testsuite/tests/lib-sync/prodcons.ml
+++ b/testsuite/tests/lib-sync/prodcons.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Classic producer-consumer *)
diff --git a/testsuite/tests/lib-sync/trylock.ml b/testsuite/tests/lib-sync/trylock.ml
index 314f1142ca..56b4691346 100644
--- a/testsuite/tests/lib-sync/trylock.ml
+++ b/testsuite/tests/lib-sync/trylock.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Test Mutex.try_lock *)
diff --git a/testsuite/tests/lib-sync/trylock2.ml b/testsuite/tests/lib-sync/trylock2.ml
index b31ace08b5..5cd8bdea60 100644
--- a/testsuite/tests/lib-sync/trylock2.ml
+++ b/testsuite/tests/lib-sync/trylock2.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Test Mutex.try_lock *)
diff --git a/testsuite/tests/lib-sys/immediate64.ml b/testsuite/tests/lib-sys/immediate64.ml
index 0f7dea7c42..84f73f6748 100644
--- a/testsuite/tests/lib-sys/immediate64.ml
+++ b/testsuite/tests/lib-sys/immediate64.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
module M : sig
type t [@@immediate64]
diff --git a/testsuite/tests/lib-sys/rename.ml b/testsuite/tests/lib-sys/rename.ml
index 2091c50b9d..948481c3de 100644
--- a/testsuite/tests/lib-sys/rename.ml
+++ b/testsuite/tests/lib-sys/rename.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Test the Sys.rename function *)
@@ -18,6 +17,9 @@ let readfile filename =
let safe_remove filename =
try Sys.remove filename with Sys_error _ -> ()
+let safe_remove_dir dirname =
+ try Sys.rmdir dirname with Sys_error _ -> ()
+
let testrename f1 f2 contents =
try
Sys.rename f1 f2;
@@ -33,6 +35,17 @@ let testfailure f1 f2 =
with Sys_error _ ->
print_string "fails as expected"
+let testrenamedir d1 d2 =
+ try
+ Sys.rename d1 d2;
+ try
+ if Sys.is_directory d1 then print_string "source directory still exists!"
+ with Sys_error msg ->
+ if not (Sys.is_directory d2) then print_string "target directory not created!"
+ else print_string "passed"
+ with Sys_error msg ->
+ print_string "Sys_error exception: "; print_string msg
+
let _ =
let f1 = "file1.dat" and f2 = "file2.dat" in
safe_remove f1; safe_remove f2;
@@ -52,4 +65,20 @@ let _ =
writefile f1 "abc";
testfailure f1 (Filename.concat "nosuchdir" f2);
print_newline();
- safe_remove f1; safe_remove f2
+ safe_remove f1; safe_remove f2;
+ print_string "Rename directory to a nonexisting directory: ";
+ Sys.mkdir "foo" 0o755;
+ testrenamedir "foo" "bar";
+ print_newline();
+ safe_remove_dir "bar";
+ print_string "Rename a nonexisting directory: ";
+ testfailure "foo" "bar";
+ print_newline();
+ print_string "Rename directory to a non-empty directory: ";
+ Sys.mkdir "foo" 0o755;
+ Sys.mkdir "bar" 0o755;
+ let f1 = Filename.concat "bar" "file1.dat" in
+ writefile f1 "abc";
+ testfailure "foo" "bar";
+ print_newline();
+ safe_remove f1; safe_remove_dir "foo"; safe_remove_dir "bar";
diff --git a/testsuite/tests/lib-sys/rename.reference b/testsuite/tests/lib-sys/rename.reference
index d5ec88df40..db06aad9d3 100644
--- a/testsuite/tests/lib-sys/rename.reference
+++ b/testsuite/tests/lib-sys/rename.reference
@@ -2,3 +2,6 @@ Rename to nonexisting file: passed
Rename to existing file: passed
Renaming a nonexisting file: fails as expected
Renaming to a nonexisting directory: fails as expected
+Rename directory to a nonexisting directory: passed
+Rename a nonexisting directory: fails as expected
+Rename directory to a non-empty directory: fails as expected
diff --git a/testsuite/tests/lib-systhreads/boundscheck.ml b/testsuite/tests/lib-systhreads/boundscheck.ml
index 216dcebae7..254b89ba08 100644
--- a/testsuite/tests/lib-systhreads/boundscheck.ml
+++ b/testsuite/tests/lib-systhreads/boundscheck.ml
@@ -1,10 +1,11 @@
(* TEST
-
-include systhreads
-* hassysthreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
diff --git a/testsuite/tests/lib-systhreads/eintr.ml b/testsuite/tests/lib-systhreads/eintr.ml
index 5c0a4d045e..56b7b857d3 100644
--- a/testsuite/tests/lib-systhreads/eintr.ml
+++ b/testsuite/tests/lib-systhreads/eintr.ml
@@ -1,10 +1,12 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** not-windows
-*** bytecode
-*** native
+ include systhreads;
+ hassysthreads;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let signals_requested = Atomic.make 0
diff --git a/testsuite/tests/lib-systhreads/multicore_lifecycle.ml b/testsuite/tests/lib-systhreads/multicore_lifecycle.ml
index f481464906..7a8e019024 100644
--- a/testsuite/tests/lib-systhreads/multicore_lifecycle.ml
+++ b/testsuite/tests/lib-systhreads/multicore_lifecycle.ml
@@ -1,8 +1,11 @@
(* TEST
-* hassysthreads
-include systhreads
-** bytecode
-** native
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let _ =
diff --git a/testsuite/tests/lib-systhreads/test_c_thread_register.ml b/testsuite/tests/lib-systhreads/test_c_thread_register.ml
index a8ec98aa9a..c18e49e4ca 100644
--- a/testsuite/tests/lib-systhreads/test_c_thread_register.ml
+++ b/testsuite/tests/lib-systhreads/test_c_thread_register.ml
@@ -1,10 +1,13 @@
(* TEST
- modules = "test_c_thread_register_cstubs.c"
- * hassysthreads
- include systhreads
- ** not-bsd
- *** bytecode
- *** native
+ modules = "test_c_thread_register_cstubs.c";
+ include systhreads;
+ hassysthreads;
+ not-bsd;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* spins a external thread from C and register it to the OCaml runtime *)
diff --git a/testsuite/tests/lib-systhreads/testfork.ml b/testsuite/tests/lib-systhreads/testfork.ml
index 3fdf386086..71d0cd5783 100644
--- a/testsuite/tests/lib-systhreads/testfork.ml
+++ b/testsuite/tests/lib-systhreads/testfork.ml
@@ -1,10 +1,13 @@
(* TEST
- * hassysthreads
- include systhreads
- ** not-bsd
- *** libunix
- **** bytecode
- **** native
+ include systhreads;
+ hassysthreads;
+ not-bsd;
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* POSIX threads and fork() *)
diff --git a/testsuite/tests/lib-systhreads/testfork2.ml b/testsuite/tests/lib-systhreads/testfork2.ml
index 9f95024eee..bea41022d4 100644
--- a/testsuite/tests/lib-systhreads/testfork2.ml
+++ b/testsuite/tests/lib-systhreads/testfork2.ml
@@ -1,10 +1,13 @@
(* TEST
- * hassysthreads
- include systhreads
- ** not-bsd
- *** libunix
- **** bytecode
- **** native
+ include systhreads;
+ hassysthreads;
+ not-bsd;
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* POSIX threads and fork() *)
diff --git a/testsuite/tests/lib-systhreads/testpreempt.ml b/testsuite/tests/lib-systhreads/testpreempt.ml
index 11d69152d6..5b30ea94d1 100644
--- a/testsuite/tests/lib-systhreads/testpreempt.ml
+++ b/testsuite/tests/lib-systhreads/testpreempt.ml
@@ -1,14 +1,17 @@
(* TEST
- * hassysthreads
+ include systhreads;
+ hassysthreads;
(*
On Windows, we use Sleep(0) for triggering preemption of threads.
However, this does not seem very reliable, so that this test fails
on some Windows configurations. See GPR #1533.
*)
- include systhreads
- ** not-windows
- *** bytecode
- *** native
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let rec generate_list n =
diff --git a/testsuite/tests/lib-systhreads/testyield.ml b/testsuite/tests/lib-systhreads/testyield.ml
index 646dfe3e6f..29758cac0d 100644
--- a/testsuite/tests/lib-systhreads/testyield.ml
+++ b/testsuite/tests/lib-systhreads/testyield.ml
@@ -1,12 +1,16 @@
(* TEST
+ include systhreads;
+ hassysthreads;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
+
(* Test that yielding between busy threads reliably triggers a thread
switch. *)
- * hassysthreads
- include systhreads
- ** not-windows
- *** bytecode
- *** native
-*)
let threads = 4
diff --git a/testsuite/tests/lib-systhreads/threadsigmask.ml b/testsuite/tests/lib-systhreads/threadsigmask.ml
index 0e118413cb..9b84ffa879 100644
--- a/testsuite/tests/lib-systhreads/threadsigmask.ml
+++ b/testsuite/tests/lib-systhreads/threadsigmask.ml
@@ -1,10 +1,12 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** not-windows
-*** bytecode
-*** native
+ include systhreads;
+ hassysthreads;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let stopped = ref false
diff --git a/testsuite/tests/lib-threads/backtrace_threads.ml b/testsuite/tests/lib-threads/backtrace_threads.ml
index 3c112d610e..5981c7cb96 100644
--- a/testsuite/tests/lib-threads/backtrace_threads.ml
+++ b/testsuite/tests/lib-threads/backtrace_threads.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let () = Printexc.record_backtrace true
diff --git a/testsuite/tests/lib-threads/bank.ml b/testsuite/tests/lib-threads/bank.ml
index 0f080ad3e1..e0302ab27e 100644
--- a/testsuite/tests/lib-threads/bank.ml
+++ b/testsuite/tests/lib-threads/bank.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* The bank account example, using events and channels *)
diff --git a/testsuite/tests/lib-threads/beat.ml b/testsuite/tests/lib-threads/beat.ml
index 06120ab961..f4655ccb8d 100644
--- a/testsuite/tests/lib-threads/beat.ml
+++ b/testsuite/tests/lib-threads/beat.ml
@@ -1,12 +1,16 @@
(* TEST
-
-* hassysthreads
-include systhreads
-* skip
-reason = "off-by-one error on MacOS+Clang (#408)"
-** bytecode
-** native
-
+ {
+ include systhreads;
+ hassysthreads;
+ }{
+ reason = "off-by-one error on MacOS+Clang (#408)";
+ skip;
+ {
+ bytecode;
+ }{
+ native;
+ }
+ }
*)
(* Test Thread.delay and its scheduling *)
diff --git a/testsuite/tests/lib-threads/bufchan.ml b/testsuite/tests/lib-threads/bufchan.ml
index df5f3984d7..f188cac8fa 100644
--- a/testsuite/tests/lib-threads/bufchan.ml
+++ b/testsuite/tests/lib-threads/bufchan.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Event
diff --git a/testsuite/tests/lib-threads/close.ml b/testsuite/tests/lib-threads/close.ml
index 10f553a6b3..92e252d9e6 100644
--- a/testsuite/tests/lib-threads/close.ml
+++ b/testsuite/tests/lib-threads/close.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let main () =
diff --git a/testsuite/tests/lib-threads/delayintr.ml b/testsuite/tests/lib-threads/delayintr.ml
index 5fcc20143c..924d3179c4 100644
--- a/testsuite/tests/lib-threads/delayintr.ml
+++ b/testsuite/tests/lib-threads/delayintr.ml
@@ -1,48 +1,33 @@
(* TEST
-
-* hassysthreads
-include systhreads
-
-readonly_files = "sigint.c"
-
-** libunix (* excludes mingw32/64 and msvc32/64 *)
-
-*** setup-ocamlc.byte-build-env
-
-program = "${test_build_directory}/delayintr.byte"
-
-**** ocamlc.byte
-
-program = "sigint"
-all_modules = "sigint.c"
-
-***** ocamlc.byte
-
-program = "${test_build_directory}/delayintr.byte"
-all_modules = "delayintr.ml"
-
-****** check-ocamlc.byte-output
-******* run
-******** check-program-output
-
-*** setup-ocamlopt.byte-build-env
-
-program = "${test_build_directory}/delayintr.opt"
-
-**** ocamlopt.byte
-
-program = "sigint"
-all_modules = "sigint.c"
-
-***** ocamlopt.byte
-
-program = "${test_build_directory}/delayintr.opt"
-all_modules = "delayintr.ml"
-
-****** check-ocamlopt.byte-output
-******* run
-******** check-program-output
-
+ include systhreads;
+ readonly_files = "sigint.c";
+ hassysthreads;
+ libunix; (* excludes mingw32/64 and msvc32/64 *)
+ {
+ program = "${test_build_directory}/delayintr.byte";
+ setup-ocamlc.byte-build-env;
+ program = "sigint";
+ all_modules = "sigint.c";
+ ocamlc.byte;
+ program = "${test_build_directory}/delayintr.byte";
+ all_modules = "delayintr.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/delayintr.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "sigint";
+ all_modules = "sigint.c";
+ ocamlopt.byte;
+ program = "${test_build_directory}/delayintr.opt";
+ all_modules = "delayintr.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
(* Regression test for MPR#7903 *)
diff --git a/testsuite/tests/lib-threads/fileio.ml b/testsuite/tests/lib-threads/fileio.ml
index 0e23128d1e..138be2bd1d 100644
--- a/testsuite/tests/lib-threads/fileio.ml
+++ b/testsuite/tests/lib-threads/fileio.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Test a file copy function *)
diff --git a/testsuite/tests/lib-threads/mutex_errors.ml b/testsuite/tests/lib-threads/mutex_errors.ml
index 25d3330955..1cbd6aaf8c 100644
--- a/testsuite/tests/lib-threads/mutex_errors.ml
+++ b/testsuite/tests/lib-threads/mutex_errors.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let log s =
diff --git a/testsuite/tests/lib-threads/pr4466.ml b/testsuite/tests/lib-threads/pr4466.ml
index 8b53539ded..1e0e36a72c 100644
--- a/testsuite/tests/lib-threads/pr4466.ml
+++ b/testsuite/tests/lib-threads/pr4466.ml
@@ -1,8 +1,7 @@
(* TEST
-
-* hassysthreads
- include systhreads
-** native
+ include systhreads;
+ hassysthreads;
+ native;
*)
open Printf
diff --git a/testsuite/tests/lib-threads/pr5325.ml b/testsuite/tests/lib-threads/pr5325.ml
index 9f27f038fd..873d569700 100644
--- a/testsuite/tests/lib-threads/pr5325.ml
+++ b/testsuite/tests/lib-threads/pr5325.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Printf
diff --git a/testsuite/tests/lib-threads/pr7638.ml b/testsuite/tests/lib-threads/pr7638.ml
index ea7fabc530..83cd7cf814 100644
--- a/testsuite/tests/lib-threads/pr7638.ml
+++ b/testsuite/tests/lib-threads/pr7638.ml
@@ -1,12 +1,12 @@
(* TEST
-
-unset DOES_NOT_EXIST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ unset DOES_NOT_EXIST;
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* MPR#7638 repro case *)
diff --git a/testsuite/tests/lib-threads/pr8857.ml b/testsuite/tests/lib-threads/pr8857.ml
index cc6d53d4c5..1d14b12cae 100644
--- a/testsuite/tests/lib-threads/pr8857.ml
+++ b/testsuite/tests/lib-threads/pr8857.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let _ =
diff --git a/testsuite/tests/lib-threads/prodcons.ml b/testsuite/tests/lib-threads/prodcons.ml
index 4867ed38d1..8c27984127 100644
--- a/testsuite/tests/lib-threads/prodcons.ml
+++ b/testsuite/tests/lib-threads/prodcons.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Classic producer-consumer *)
diff --git a/testsuite/tests/lib-threads/prodcons2.ml b/testsuite/tests/lib-threads/prodcons2.ml
index 308fcd5151..3fe057c397 100644
--- a/testsuite/tests/lib-threads/prodcons2.ml
+++ b/testsuite/tests/lib-threads/prodcons2.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Producer-consumer with events and multiple producers *)
diff --git a/testsuite/tests/lib-threads/sieve.ml b/testsuite/tests/lib-threads/sieve.ml
index d4cdd447e1..3f8769ff8a 100644
--- a/testsuite/tests/lib-threads/sieve.ml
+++ b/testsuite/tests/lib-threads/sieve.ml
@@ -1,17 +1,17 @@
(* TEST
-
-script = "sh ${test_source_directory}/test-runtime-cleanup.sh"
-
-* hassysthreads
-include systhreads
-** script
-*** bytecode
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-*** native
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-
+ script = "sh ${test_source_directory}/test-runtime-cleanup.sh";
+ include systhreads;
+ hassysthreads;
+ script;
+ {
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ bytecode;
+ }{
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ native;
+ }
*)
(* This test is skipped in "runtime cleanup at exit" mode
diff --git a/testsuite/tests/lib-threads/signal.ml b/testsuite/tests/lib-threads/signal.ml
index bfc1ea8c30..9073247959 100644
--- a/testsuite/tests/lib-threads/signal.ml
+++ b/testsuite/tests/lib-threads/signal.ml
@@ -1,48 +1,33 @@
(* TEST
-
-* hassysthreads
-include systhreads
-
-readonly_files = "sigint.c"
-
-** libunix (* excludes mingw32/64 and msvc32/64 *)
-
-*** setup-ocamlc.byte-build-env
-
-program = "${test_build_directory}/signal.byte"
-
-**** ocamlc.byte
-
-program = "sigint"
-all_modules = "sigint.c"
-
-***** ocamlc.byte
-
-program = "${test_build_directory}/signal.byte"
-all_modules = "signal.ml"
-
-****** check-ocamlc.byte-output
-******* run
-******** check-program-output
-
-*** setup-ocamlopt.byte-build-env
-
-program = "${test_build_directory}/signal.opt"
-
-**** ocamlopt.byte
-
-program = "sigint"
-all_modules = "sigint.c"
-
-***** ocamlopt.byte
-
-program = "${test_build_directory}/signal.opt"
-all_modules = "signal.ml"
-
-****** check-ocamlopt.byte-output
-******* run
-******** check-program-output
-
+ include systhreads;
+ readonly_files = "sigint.c";
+ hassysthreads;
+ libunix; (* excludes mingw32/64 and msvc32/64 *)
+ {
+ program = "${test_build_directory}/signal.byte";
+ setup-ocamlc.byte-build-env;
+ program = "sigint";
+ all_modules = "sigint.c";
+ ocamlc.byte;
+ program = "${test_build_directory}/signal.byte";
+ all_modules = "signal.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/signal.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "sigint";
+ all_modules = "sigint.c";
+ ocamlopt.byte;
+ program = "${test_build_directory}/signal.opt";
+ all_modules = "signal.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
let signaled = ref false
diff --git a/testsuite/tests/lib-threads/sockets.ml b/testsuite/tests/lib-threads/sockets.ml
index c7299c42e7..91e67f7185 100644
--- a/testsuite/tests/lib-threads/sockets.ml
+++ b/testsuite/tests/lib-threads/sockets.ml
@@ -1,12 +1,12 @@
(* TEST
-
-* hassysthreads
-include systhreads
-
-** libunix (* Broken on Windows (missing join?), needs to be fixed *)
-*** bytecode
-*** native
-
+ include systhreads;
+ hassysthreads;
+ libunix; (* Broken on Windows (missing join?), needs to be fixed *)
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Printf
diff --git a/testsuite/tests/lib-threads/swapchan.ml b/testsuite/tests/lib-threads/swapchan.ml
index 3536b82e2e..6c9c3d7714 100644
--- a/testsuite/tests/lib-threads/swapchan.ml
+++ b/testsuite/tests/lib-threads/swapchan.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Event
diff --git a/testsuite/tests/lib-threads/tls.ml b/testsuite/tests/lib-threads/tls.ml
index 2741f7ef0b..0aa52792eb 100644
--- a/testsuite/tests/lib-threads/tls.ml
+++ b/testsuite/tests/lib-threads/tls.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let private_data = (Hashtbl.create 17 : (Thread.t, string) Hashtbl.t)
diff --git a/testsuite/tests/lib-threads/torture.ml b/testsuite/tests/lib-threads/torture.ml
index 16a7811d40..0a5671b0f6 100644
--- a/testsuite/tests/lib-threads/torture.ml
+++ b/testsuite/tests/lib-threads/torture.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* hassysthreads
-include systhreads
-** bytecode
-** native
-
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Torture test - I/O interspersed with lots of GC *)
diff --git a/testsuite/tests/lib-threads/uncaught_exception_handler.ml b/testsuite/tests/lib-threads/uncaught_exception_handler.ml
index 06cf8f60f0..04de48b589 100644
--- a/testsuite/tests/lib-threads/uncaught_exception_handler.ml
+++ b/testsuite/tests/lib-threads/uncaught_exception_handler.ml
@@ -1,12 +1,12 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
-flags = "-g"
-ocamlrunparam += ",b=1"
-* hassysthreads
-include systhreads
-** bytecode
-** native
*)
@@ -38,3 +38,15 @@ let _ =
Thread.set_uncaught_exception_handler (handler Thread.Exit);
let th = Thread.create fn () in
Thread.join th
+
+(* TEST
+ flags = "-g";
+ ocamlrunparam += ",b=1";
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
diff --git a/testsuite/tests/lib-uchar/test.ml b/testsuite/tests/lib-uchar/test.ml
index 14e907d230..bc7643fc3b 100644
--- a/testsuite/tests/lib-uchar/test.ml
+++ b/testsuite/tests/lib-uchar/test.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let assert_raise_invalid_argument f v =
assert (try ignore (f v); false with Invalid_argument _ -> true)
diff --git a/testsuite/tests/lib-unix/common/channel_of.ml b/testsuite/tests/lib-unix/common/channel_of.ml
index fb9f294d61..bbb4c6ef17 100644
--- a/testsuite/tests/lib-unix/common/channel_of.ml
+++ b/testsuite/tests/lib-unix/common/channel_of.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Printf
diff --git a/testsuite/tests/lib-unix/common/cloexec.ml b/testsuite/tests/lib-unix/common/cloexec.ml
index cb919eb564..9723a778e4 100644
--- a/testsuite/tests/lib-unix/common/cloexec.ml
+++ b/testsuite/tests/lib-unix/common/cloexec.ml
@@ -1,48 +1,47 @@
(* TEST
+ include unix;
+ readonly_files = "fdstatus_aux.c fdstatus_main.ml";
+ (*
+ This test is temporarily disabled on the MinGW and MSVC ports,
+ because since fdstatus has been wrapped in an OCaml program,
+ it does not work as well as before.
+ Presumably this is because the OCaml runtime opens files, so that handles
+ that have actually been closed at execution look open and make the
+ test fail.
-(*
- This test is temporarily disabled on the MinGW and MSVC ports,
- because since fdstatus has been wrapped in an OCaml program,
- it does not work as well as before.
- Presumably this is because the OCaml runtime opens files, so that handles
- that have actually been closed at execution look open and make the
- test fail.
-
- One possible fix for this would be to make it possible for ocamltest to
- compile C-only programs, which will be a bit of work to handle the
- output of msvc and will also duplicate what the OCaml compiler itself
- already does.
-*)
-
-* hasunix
-include unix
-readonly_files = "fdstatus_aux.c fdstatus_main.ml"
-
-** libunix
-*** setup-ocamlc.byte-build-env
-program = "${test_build_directory}/cloexec.byte"
-**** ocamlc.byte
-program = "${test_build_directory}/fdstatus.exe"
-all_modules = "fdstatus_aux.c fdstatus_main.ml"
-***** ocamlc.byte
-program = "${test_build_directory}/cloexec.byte"
-all_modules= "cloexec.ml"
-****** check-ocamlc.byte-output
-******* run
-******** check-program-output
-
-*** setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/cloexec.opt"
-**** ocamlopt.byte
-program = "${test_build_directory}/fdstatus.exe"
-all_modules = "fdstatus_aux.c fdstatus_main.ml"
-***** ocamlopt.byte
-program = "${test_build_directory}/cloexec.opt"
-all_modules= "cloexec.ml"
-****** check-ocamlopt.byte-output
-******* run
-******** check-program-output
+ One possible fix for this would be to make it possible for ocamltest to
+ compile C-only programs, which will be a bit of work to handle the
+ output of msvc and will also duplicate what the OCaml compiler itself
+ already does.
+ *)
+ hasunix;
+ libunix;
+ {
+ program = "${test_build_directory}/cloexec.byte";
+ setup-ocamlc.byte-build-env;
+ program = "${test_build_directory}/fdstatus.exe";
+ all_modules = "fdstatus_aux.c fdstatus_main.ml";
+ ocamlc.byte;
+ program = "${test_build_directory}/cloexec.byte";
+ all_modules = "cloexec.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/cloexec.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "${test_build_directory}/fdstatus.exe";
+ all_modules = "fdstatus_aux.c fdstatus_main.ml";
+ ocamlopt.byte;
+ program = "${test_build_directory}/cloexec.opt";
+ all_modules = "cloexec.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
(* This is a terrible hack that plays on the internal representation
diff --git a/testsuite/tests/lib-unix/common/dup.ml b/testsuite/tests/lib-unix/common/dup.ml
index b689137c0b..2ca20cba53 100644
--- a/testsuite/tests/lib-unix/common/dup.ml
+++ b/testsuite/tests/lib-unix/common/dup.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let _ =
diff --git a/testsuite/tests/lib-unix/common/dup2.ml b/testsuite/tests/lib-unix/common/dup2.ml
index c3a7faccda..84f3f92030 100644
--- a/testsuite/tests/lib-unix/common/dup2.ml
+++ b/testsuite/tests/lib-unix/common/dup2.ml
@@ -1,9 +1,12 @@
(* TEST
-* hasunix
-include unix
-stderr = "/dev/null"
-** bytecode
-** native
+ include unix;
+ stderr = "/dev/null";
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let cat file =
diff --git a/testsuite/tests/lib-unix/common/fork_cleanup.ml b/testsuite/tests/lib-unix/common/fork_cleanup.ml
index eca8f9de9d..0206c01b03 100644
--- a/testsuite/tests/lib-unix/common/fork_cleanup.ml
+++ b/testsuite/tests/lib-unix/common/fork_cleanup.ml
@@ -1,9 +1,12 @@
(* TEST
-* hasunix
-include unix
-** not-windows
-*** bytecode
-*** native
+ include unix;
+ hasunix;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* this test checks that the domain lock is properly reinitialized
diff --git a/testsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml b/testsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml
index db0ebf4f6d..a25f217b97 100644
--- a/testsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml
+++ b/testsuite/tests/lib-unix/common/fork_cleanup_systhreads.ml
@@ -1,9 +1,12 @@
(* TEST
-* hassysthreads
-include systhreads
-** not-windows
-*** bytecode
-*** native
+ include systhreads;
+ hassysthreads;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* this test checks that the domain lock is properly reinitialized
diff --git a/testsuite/tests/lib-unix/common/getaddrinfo.ml b/testsuite/tests/lib-unix/common/getaddrinfo.ml
index b140ef9143..4c5b88d51f 100644
--- a/testsuite/tests/lib-unix/common/getaddrinfo.ml
+++ b/testsuite/tests/lib-unix/common/getaddrinfo.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let () =
diff --git a/testsuite/tests/lib-unix/common/gethostbyaddr.ml b/testsuite/tests/lib-unix/common/gethostbyaddr.ml
index a8ea1cf8d4..e9d4b53a5c 100644
--- a/testsuite/tests/lib-unix/common/gethostbyaddr.ml
+++ b/testsuite/tests/lib-unix/common/gethostbyaddr.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Checks that gethostbyaddr supports both IPv4 and IPv6 (see #11461) *)
diff --git a/testsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml b/testsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml
index 077a3dba66..1f0f57a183 100644
--- a/testsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml
+++ b/testsuite/tests/lib-unix/common/multicore_fork_domain_alone.ml
@@ -1,9 +1,12 @@
(* TEST
-include unix
-* hasunix
-** not-windows
-*** bytecode
-*** native
+ include unix;
+ hasunix;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* on Multicore, fork is not allowed is another domain is, and was running. *)
diff --git a/testsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml b/testsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml
index 929ed5ecf7..79b9d6c253 100644
--- a/testsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml
+++ b/testsuite/tests/lib-unix/common/multicore_fork_domain_alone2.ml
@@ -1,9 +1,12 @@
(* TEST
-include unix
-* hasunix
-** not-windows
-*** bytecode
-*** native
+ include unix;
+ hasunix;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* on Multicore, fork is not allowed is another domain is, and was running. *)
diff --git a/testsuite/tests/lib-unix/common/pipe_eof.ml b/testsuite/tests/lib-unix/common/pipe_eof.ml
index 3bd6ae5f1a..415107da05 100644
--- a/testsuite/tests/lib-unix/common/pipe_eof.ml
+++ b/testsuite/tests/lib-unix/common/pipe_eof.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let drain pipe =
diff --git a/testsuite/tests/lib-unix/common/process_pid.ml b/testsuite/tests/lib-unix/common/process_pid.ml
index 8d8852f6d4..f2c25f4666 100644
--- a/testsuite/tests/lib-unix/common/process_pid.ml
+++ b/testsuite/tests/lib-unix/common/process_pid.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let () =
diff --git a/testsuite/tests/lib-unix/common/redirections.ml b/testsuite/tests/lib-unix/common/redirections.ml
index b9c04a2323..fb008a3826 100644
--- a/testsuite/tests/lib-unix/common/redirections.ml
+++ b/testsuite/tests/lib-unix/common/redirections.ml
@@ -1,35 +1,34 @@
(* TEST
-
-readonly_files = "reflector.ml"
-unset XVAR
-
-* hasunix
-** setup-ocamlc.byte-build-env
-program = "${test_build_directory}/redirections.byte"
-*** ocamlc.byte
-program = "${test_build_directory}/reflector.exe"
-all_modules = "reflector.ml"
-**** ocamlc.byte
-include unix
-program = "${test_build_directory}/redirections.byte"
-all_modules= "redirections.ml"
-***** check-ocamlc.byte-output
-****** run
-******* check-program-output
-
-** setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/redirections.opt"
-*** ocamlopt.byte
-program = "${test_build_directory}/reflector.exe"
-all_modules = "reflector.ml"
-**** ocamlopt.byte
-include unix
-program = "${test_build_directory}/redirections.opt"
-all_modules= "redirections.ml"
-***** check-ocamlopt.byte-output
-****** run
-******* check-program-output
-
+ readonly_files = "reflector.ml";
+ unset XVAR;
+ hasunix;
+ {
+ program = "${test_build_directory}/redirections.byte";
+ setup-ocamlc.byte-build-env;
+ program = "${test_build_directory}/reflector.exe";
+ all_modules = "reflector.ml";
+ ocamlc.byte;
+ include unix;
+ program = "${test_build_directory}/redirections.byte";
+ all_modules = "redirections.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/redirections.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "${test_build_directory}/reflector.exe";
+ all_modules = "reflector.ml";
+ ocamlopt.byte;
+ include unix;
+ program = "${test_build_directory}/redirections.opt";
+ all_modules = "redirections.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
diff --git a/testsuite/tests/lib-unix/common/rename.ml b/testsuite/tests/lib-unix/common/rename.ml
index 402ddf0bd3..4a88eaa3f0 100644
--- a/testsuite/tests/lib-unix/common/rename.ml
+++ b/testsuite/tests/lib-unix/common/rename.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Test the Unix.rename function *)
diff --git a/testsuite/tests/lib-unix/common/test_unix_cmdline.ml b/testsuite/tests/lib-unix/common/test_unix_cmdline.ml
index 08af41e29a..aff235bd3f 100644
--- a/testsuite/tests/lib-unix/common/test_unix_cmdline.ml
+++ b/testsuite/tests/lib-unix/common/test_unix_cmdline.ml
@@ -1,34 +1,33 @@
(* TEST
-
-readonly_files = "cmdline_prog.ml"
-
-* hasunix
-** setup-ocamlc.byte-build-env
-program = "${test_build_directory}/test_unix_cmdline.byte"
-*** ocamlc.byte
-program = "${test_build_directory}/cmdline_prog.exe"
-all_modules = "cmdline_prog.ml"
-**** ocamlc.byte
-include unix
-program = "${test_build_directory}/test_unix_cmdline.byte"
-all_modules= "test_unix_cmdline.ml"
-***** check-ocamlc.byte-output
-****** run
-******* check-program-output
-
-** setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/test_unix_cmdline.opt"
-*** ocamlc.byte
-program = "${test_build_directory}/cmdline_prog.exe"
-all_modules = "cmdline_prog.ml"
-**** ocamlopt.byte
-include unix
-program = "${test_build_directory}/test_unix_cmdline.opt"
-all_modules= "test_unix_cmdline.ml"
-***** check-ocamlopt.byte-output
-****** run
-******* check-program-output
-
+ readonly_files = "cmdline_prog.ml";
+ hasunix;
+ {
+ program = "${test_build_directory}/test_unix_cmdline.byte";
+ setup-ocamlc.byte-build-env;
+ program = "${test_build_directory}/cmdline_prog.exe";
+ all_modules = "cmdline_prog.ml";
+ ocamlc.byte;
+ include unix;
+ program = "${test_build_directory}/test_unix_cmdline.byte";
+ all_modules = "test_unix_cmdline.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/test_unix_cmdline.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "${test_build_directory}/cmdline_prog.exe";
+ all_modules = "cmdline_prog.ml";
+ ocamlc.byte;
+ include unix;
+ program = "${test_build_directory}/test_unix_cmdline.opt";
+ all_modules = "test_unix_cmdline.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
let prog_name = "cmdline_prog.exe"
diff --git a/testsuite/tests/lib-unix/common/test_unixlabels.ml b/testsuite/tests/lib-unix/common/test_unixlabels.ml
index fc0335b5f8..c34196fbc0 100644
--- a/testsuite/tests/lib-unix/common/test_unixlabels.ml
+++ b/testsuite/tests/lib-unix/common/test_unixlabels.ml
@@ -1,9 +1,12 @@
(* TEST
-include unix
-flags += " -nolabels "
-* hasunix
-** bytecode
-** native
+ include unix;
+ flags += " -nolabels ";
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
module U : module type of Unix = UnixLabels
diff --git a/testsuite/tests/lib-unix/common/truncate.ml b/testsuite/tests/lib-unix/common/truncate.ml
index a91cabcbb1..50998367d8 100644
--- a/testsuite/tests/lib-unix/common/truncate.ml
+++ b/testsuite/tests/lib-unix/common/truncate.ml
@@ -1,8 +1,11 @@
(* TEST
-include unix
-* hasunix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let str = "Hello, OCaml!"
diff --git a/testsuite/tests/lib-unix/common/uexit.ml b/testsuite/tests/lib-unix/common/uexit.ml
index b80f32087c..50ec1aa9ca 100644
--- a/testsuite/tests/lib-unix/common/uexit.ml
+++ b/testsuite/tests/lib-unix/common/uexit.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let _ =
diff --git a/testsuite/tests/lib-unix/common/utimes.ml b/testsuite/tests/lib-unix/common/utimes.ml
index 58aecb6ed2..644579e262 100644
--- a/testsuite/tests/lib-unix/common/utimes.ml
+++ b/testsuite/tests/lib-unix/common/utimes.ml
@@ -1,9 +1,12 @@
(* TEST
-* hasunix
-include unix
-readonly_files = "utimes.txt"
-** bytecode
-** native
+ include unix;
+ readonly_files = "utimes.txt";
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* We do not check setting the "last access time" because it is hard to do so on
diff --git a/testsuite/tests/lib-unix/common/wait_nohang.ml b/testsuite/tests/lib-unix/common/wait_nohang.ml
index fb4c0b259e..bddd61a507 100644
--- a/testsuite/tests/lib-unix/common/wait_nohang.ml
+++ b/testsuite/tests/lib-unix/common/wait_nohang.ml
@@ -1,34 +1,33 @@
(* TEST
-
-readonly_files = "reflector.ml"
-
-* hasunix
-** setup-ocamlc.byte-build-env
-program = "${test_build_directory}/wait_nohang.byte"
-*** ocamlc.byte
-program = "${test_build_directory}/reflector.exe"
-all_modules = "reflector.ml"
-**** ocamlc.byte
-include unix
-program = "${test_build_directory}/wait_nohang.byte"
-all_modules= "wait_nohang.ml"
-***** check-ocamlc.byte-output
-****** run
-******* check-program-output
-
-** setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/wait_nohang.opt"
-*** ocamlopt.byte
-program = "${test_build_directory}/reflector.exe"
-all_modules = "reflector.ml"
-**** ocamlopt.byte
-include unix
-program = "${test_build_directory}/wait_nohang.opt"
-all_modules= "wait_nohang.ml"
-***** check-ocamlopt.byte-output
-****** run
-******* check-program-output
-
+ readonly_files = "reflector.ml";
+ hasunix;
+ {
+ program = "${test_build_directory}/wait_nohang.byte";
+ setup-ocamlc.byte-build-env;
+ program = "${test_build_directory}/reflector.exe";
+ all_modules = "reflector.ml";
+ ocamlc.byte;
+ include unix;
+ program = "${test_build_directory}/wait_nohang.byte";
+ all_modules = "wait_nohang.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/wait_nohang.opt";
+ setup-ocamlopt.byte-build-env;
+ program = "${test_build_directory}/reflector.exe";
+ all_modules = "reflector.ml";
+ ocamlopt.byte;
+ include unix;
+ program = "${test_build_directory}/wait_nohang.opt";
+ all_modules = "wait_nohang.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
let refl =
diff --git a/testsuite/tests/lib-unix/isatty/isatty_std.ml b/testsuite/tests/lib-unix/isatty/isatty_std.ml
index 1dcff45317..3ce2759300 100644
--- a/testsuite/tests/lib-unix/isatty/isatty_std.ml
+++ b/testsuite/tests/lib-unix/isatty/isatty_std.ml
@@ -1,10 +1,13 @@
(* TEST
-* hasunix
-include unix
-stdin = "/dev/null"
-stderr = "/dev/null"
-** bytecode
-** native
+ include unix;
+ stdin = "/dev/null";
+ stderr = "/dev/null";
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
Printf.printf
diff --git a/testsuite/tests/lib-unix/isatty/isatty_tty.ml b/testsuite/tests/lib-unix/isatty/isatty_tty.ml
index df57e7a3ec..aeed2f781f 100644
--- a/testsuite/tests/lib-unix/isatty/isatty_tty.ml
+++ b/testsuite/tests/lib-unix/isatty/isatty_tty.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* libwin32unix
-include unix
-** bytecode
-** native
-
+ include unix;
+ libwin32unix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let console =
diff --git a/testsuite/tests/lib-unix/kill/unix_kill.ml b/testsuite/tests/lib-unix/kill/unix_kill.ml
index 2ace3849c3..a58fedacd3 100644
--- a/testsuite/tests/lib-unix/kill/unix_kill.ml
+++ b/testsuite/tests/lib-unix/kill/unix_kill.ml
@@ -1,8 +1,11 @@
(* TEST
-include unix
-* libunix
-** bytecode
-** native
+ include unix;
+ libunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let () =
diff --git a/testsuite/tests/lib-unix/realpath/test.ml b/testsuite/tests/lib-unix/realpath/test.ml
index 422c718b49..4ec43cc88d 100644
--- a/testsuite/tests/lib-unix/realpath/test.ml
+++ b/testsuite/tests/lib-unix/realpath/test.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let main () =
diff --git a/testsuite/tests/lib-unix/unix-execvpe/exec.ml b/testsuite/tests/lib-unix/unix-execvpe/exec.ml
index 70923d5446..06ec0924cd 100644
--- a/testsuite/tests/lib-unix/unix-execvpe/exec.ml
+++ b/testsuite/tests/lib-unix/unix-execvpe/exec.ml
@@ -1,11 +1,14 @@
(* TEST
- unset FOO
- * hasunix
- include unix
- script = "sh ${test_source_directory}/has-execvpe.sh"
- ** script
- *** bytecode
- *** native
+ unset FOO;
+ include unix;
+ script = "sh ${test_source_directory}/has-execvpe.sh";
+ hasunix;
+ script;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Printf
diff --git a/testsuite/tests/lib-unix/unix-socket/recvfrom_linux.ml b/testsuite/tests/lib-unix/unix-socket/recvfrom_linux.ml
index 73fa3fb273..3eaef789e7 100644
--- a/testsuite/tests/lib-unix/unix-socket/recvfrom_linux.ml
+++ b/testsuite/tests/lib-unix/unix-socket/recvfrom_linux.ml
@@ -1,11 +1,14 @@
(* TEST
-include unix
-modules = "recvfrom.ml"
-script = "sh ${test_source_directory}/is-linux.sh"
-* hasunix
-** script
-*** bytecode
-*** native
+ include unix;
+ modules = "recvfrom.ml";
+ script = "sh ${test_source_directory}/is-linux.sh";
+ hasunix;
+ script;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Recvfrom
diff --git a/testsuite/tests/lib-unix/unix-socket/recvfrom_unix.ml b/testsuite/tests/lib-unix/unix-socket/recvfrom_unix.ml
index e584ff17a3..2e31d00df0 100644
--- a/testsuite/tests/lib-unix/unix-socket/recvfrom_unix.ml
+++ b/testsuite/tests/lib-unix/unix-socket/recvfrom_unix.ml
@@ -1,10 +1,13 @@
(* TEST
-include unix
-modules = "recvfrom.ml"
-* hasunix
-** not-windows
-*** bytecode
-*** native
+ include unix;
+ modules = "recvfrom.ml";
+ hasunix;
+ not-windows;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Recvfrom
diff --git a/testsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml b/testsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml
index 01ae4df1c3..4670a41071 100644
--- a/testsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml
+++ b/testsuite/tests/lib-unix/win-channel-of/parallel_channel_of.ml
@@ -1,9 +1,12 @@
(* TEST
-modules = "fd_of_channel.c"
-* libwin32unix
-include unix
-** bytecode
-** native
+ modules = "fd_of_channel.c";
+ include unix;
+ libwin32unix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external fd_of_in_channel: in_channel -> int = "caml_fd_of_channel"
diff --git a/testsuite/tests/lib-unix/win-createprocess/test.ml b/testsuite/tests/lib-unix/win-createprocess/test.ml
index b72f68cf54..d648f284e2 100644
--- a/testsuite/tests/lib-unix/win-createprocess/test.ml
+++ b/testsuite/tests/lib-unix/win-createprocess/test.ml
@@ -1,10 +1,11 @@
(* TEST
-
-* libwin32unix
- include unix
-** bytecode
-** native
-
+ include unix;
+ libwin32unix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* This test is inspired by [Creating a Child Process with Redirected
diff --git a/testsuite/tests/lib-unix/win-env/test_env.ml b/testsuite/tests/lib-unix/win-env/test_env.ml
index 8f22c4a6f5..3b9ca9a494 100644
--- a/testsuite/tests/lib-unix/win-env/test_env.ml
+++ b/testsuite/tests/lib-unix/win-env/test_env.ml
@@ -1,12 +1,15 @@
(* TEST
-unset FOO
-unset FOO2
-include unix
-flags += "-strict-sequence -w +A-70 -warn-error +A"
-modules = "stubs.c"
-* libwin32unix
-** bytecode
-** native
+ unset FOO;
+ unset FOO2;
+ include unix;
+ flags += "-strict-sequence -w +A-70 -warn-error +A";
+ modules = "stubs.c";
+ libwin32unix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external set_environment_variable: string -> string -> unit
diff --git a/testsuite/tests/lib-unix/win-socketpair/test.ml b/testsuite/tests/lib-unix/win-socketpair/test.ml
index 8ea703e0c1..cecd4a54c9 100644
--- a/testsuite/tests/lib-unix/win-socketpair/test.ml
+++ b/testsuite/tests/lib-unix/win-socketpair/test.ml
@@ -1,18 +1,19 @@
(* TEST
-
-* libwin32unix
- script = "sh ${test_source_directory}/has-afunix.sh"
-** hassysthreads
- include systhreads
-*** script
-**** bytecode
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-**** native
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-
- *)
+ script = "sh ${test_source_directory}/has-afunix.sh";
+ libwin32unix;
+ include systhreads;
+ hassysthreads;
+ script;
+ {
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ bytecode;
+ }{
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ native;
+ }
+*)
let peer id fd =
let msg = Bytes.of_string (Printf.sprintf "%d" id) in
diff --git a/testsuite/tests/lib-unix/win-stat/test.ml b/testsuite/tests/lib-unix/win-stat/test.ml
index 982cf5c48c..a4722e2342 100644
--- a/testsuite/tests/lib-unix/win-stat/test.ml
+++ b/testsuite/tests/lib-unix/win-stat/test.ml
@@ -1,9 +1,12 @@
(* TEST
-modules = "fakeclock.c"
-* libwin32unix
-include unix
-** bytecode
-** native
+ modules = "fakeclock.c";
+ include unix;
+ libwin32unix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
external set_fake_clock : int64 -> unit = "set_fake_clock"
diff --git a/testsuite/tests/lib-unix/win-symlink/parallel_symlink.ml b/testsuite/tests/lib-unix/win-symlink/parallel_symlink.ml
index d27e7db02d..3d36ad1935 100644
--- a/testsuite/tests/lib-unix/win-symlink/parallel_symlink.ml
+++ b/testsuite/tests/lib-unix/win-symlink/parallel_symlink.ml
@@ -1,9 +1,12 @@
(* TEST
-* libwin32unix
-include unix
-** has_symlink
-*** bytecode
-*** native
+ include unix;
+ libwin32unix;
+ has_symlink;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let create_symlink barrier src dst () =
diff --git a/testsuite/tests/lib-unix/win-symlink/test.ml b/testsuite/tests/lib-unix/win-symlink/test.ml
index d9b9f29e50..72426a23df 100644
--- a/testsuite/tests/lib-unix/win-symlink/test.ml
+++ b/testsuite/tests/lib-unix/win-symlink/test.ml
@@ -1,11 +1,12 @@
(* TEST
-
-* libwin32unix
- include unix
-** has_symlink
-*** bytecode
-*** native
-
+ include unix;
+ libwin32unix;
+ has_symlink;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let link1 = "link1"
diff --git a/testsuite/tests/link-test/empty.ml b/testsuite/tests/link-test/empty.ml
index d38300bb8d..5065877bd1 100644
--- a/testsuite/tests/link-test/empty.ml
+++ b/testsuite/tests/link-test/empty.ml
@@ -1,29 +1,31 @@
(* TEST
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "empty.ml"
-*** ocamlc.byte
-module = ""
-flags = "-a"
-all_modules = ""
-program = "empty.cma"
-**** ocamlc.byte
-flags = ""
-program = "${test_build_directory}/empty.byte"
-all_modules = "empty.cma empty.cmo"
-***** check-ocamlc.byte-output
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-module = "empty.ml"
-*** ocamlopt.byte
-module = ""
-flags = "-a"
-all_modules = ""
-program = "empty.cmxa"
-**** ocamlopt.byte
-flags = ""
-program = "${test_build_directory}/empty.native"
-all_modules = "empty.cmxa empty.cmx"
-***** check-ocamlopt.byte-output
+ {
+ setup-ocamlc.byte-build-env;
+ module = "empty.ml";
+ ocamlc.byte;
+ module = "";
+ flags = "-a";
+ all_modules = "";
+ program = "empty.cma";
+ ocamlc.byte;
+ flags = "";
+ program = "${test_build_directory}/empty.byte";
+ all_modules = "empty.cma empty.cmo";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ }{
+ setup-ocamlopt.byte-build-env;
+ module = "empty.ml";
+ ocamlopt.byte;
+ module = "";
+ flags = "-a";
+ all_modules = "";
+ program = "empty.cmxa";
+ ocamlopt.byte;
+ flags = "";
+ program = "${test_build_directory}/empty.native";
+ all_modules = "empty.cmxa empty.cmx";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }
*)
diff --git a/testsuite/tests/link-test/test.ml b/testsuite/tests/link-test/test.ml
index 7b618baa44..a28970ea73 100644
--- a/testsuite/tests/link-test/test.ml
+++ b/testsuite/tests/link-test/test.ml
@@ -1,84 +1,82 @@
(* TEST
-
-modules = "aliases.ml external_for_pack.ml external.ml submodule.ml test.ml \
- use_in_pack.ml"
-
-* setup-ocamlc.byte-build-env
-program = "${test_build_directory}/test.byte"
-** ocamlc.byte
-module = "submodule.ml"
-flags = "-no-alias-deps"
-*** ocamlc.byte
-module = "aliases.ml"
-**** ocamlc.byte
-module = "external.mli"
-***** ocamlc.byte
-module = "external.ml"
-****** ocamlc.byte
-module = "external_for_pack.mli"
-******* ocamlc.byte
-module = "external_for_pack.ml"
-******** ocamlc.byte
-module = "test.ml"
-********* ocamlc.byte
-module = ""
-flags = "-a -no-alias-deps"
-all_modules = "submodule.cmo aliases.cmo external.cmo external_for_pack.cmo"
-program = "mylib.cma"
-********** ocamlc.byte
-flags = "-no-alias-deps -for-pack P"
-module = "use_in_pack.ml"
-*********** ocamlc.byte
-module = ""
-program = "p.cmo"
-flags = "-no-alias-deps -pack"
-all_modules = "use_in_pack.cmo"
-************ ocamlc.byte
-program = "${test_build_directory}/test.byte"
-all_modules = "mylib.cma p.cmo test.cmo"
-flags= "-no-alias-deps"
-************* check-ocamlc.byte-output
-************** run
-*************** check-program-output
-
-* setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/test.opt"
-** ocamlopt.byte
-module = "submodule.ml"
-flags = "-no-alias-deps"
-*** ocamlopt.byte
-module = "aliases.ml"
-**** ocamlopt.byte
-module = "external.mli"
-***** ocamlopt.byte
-module = "external.ml"
-****** ocamlopt.byte
-module = "external_for_pack.mli"
-******* ocamlopt.byte
-module = "external_for_pack.ml"
-******** ocamlopt.byte
-module = "test.ml"
-********* ocamlopt.byte
-module = ""
-flags = "-no-alias-deps -a"
-all_modules = "submodule.cmx aliases.cmx external.cmx external_for_pack.cmx"
-program = "mylib.cmxa"
-********** ocamlopt.byte
-flags = "-no-alias-deps -for-pack P"
-module = "use_in_pack.ml"
-*********** ocamlopt.byte
-module = ""
-program = "p.cmx"
-flags = "-no-alias-deps -pack"
-all_modules = "use_in_pack.cmx"
-************ ocamlopt.byte
-program = "${test_build_directory}/test.opt"
-all_modules = "mylib.cmxa p.cmx test.cmx"
-flags = "-no-alias-deps"
-************* check-ocamlopt.byte-output
-************** run
-*************** check-program-output
-
+ modules = "aliases.ml external_for_pack.ml external.ml submodule.ml test.ml use_in_pack.ml";
+ {
+ program = "${test_build_directory}/test.byte";
+ setup-ocamlc.byte-build-env;
+ module = "submodule.ml";
+ flags = "-no-alias-deps";
+ ocamlc.byte;
+ module = "aliases.ml";
+ ocamlc.byte;
+ module = "external.mli";
+ ocamlc.byte;
+ module = "external.ml";
+ ocamlc.byte;
+ module = "external_for_pack.mli";
+ ocamlc.byte;
+ module = "external_for_pack.ml";
+ ocamlc.byte;
+ module = "test.ml";
+ ocamlc.byte;
+ module = "";
+ flags = "-a -no-alias-deps";
+ all_modules = "submodule.cmo aliases.cmo external.cmo external_for_pack.cmo";
+ program = "mylib.cma";
+ ocamlc.byte;
+ flags = "-no-alias-deps -for-pack P";
+ module = "use_in_pack.ml";
+ ocamlc.byte;
+ module = "";
+ program = "p.cmo";
+ flags = "-no-alias-deps -pack";
+ all_modules = "use_in_pack.cmo";
+ ocamlc.byte;
+ program = "${test_build_directory}/test.byte";
+ all_modules = "mylib.cma p.cmo test.cmo";
+ flags = "-no-alias-deps";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/test.opt";
+ setup-ocamlopt.byte-build-env;
+ module = "submodule.ml";
+ flags = "-no-alias-deps";
+ ocamlopt.byte;
+ module = "aliases.ml";
+ ocamlopt.byte;
+ module = "external.mli";
+ ocamlopt.byte;
+ module = "external.ml";
+ ocamlopt.byte;
+ module = "external_for_pack.mli";
+ ocamlopt.byte;
+ module = "external_for_pack.ml";
+ ocamlopt.byte;
+ module = "test.ml";
+ ocamlopt.byte;
+ module = "";
+ flags = "-no-alias-deps -a";
+ all_modules = "submodule.cmx aliases.cmx external.cmx external_for_pack.cmx";
+ program = "mylib.cmxa";
+ ocamlopt.byte;
+ flags = "-no-alias-deps -for-pack P";
+ module = "use_in_pack.ml";
+ ocamlopt.byte;
+ module = "";
+ program = "p.cmx";
+ flags = "-no-alias-deps -pack";
+ all_modules = "use_in_pack.cmx";
+ ocamlopt.byte;
+ program = "${test_build_directory}/test.opt";
+ all_modules = "mylib.cmxa p.cmx test.cmx";
+ flags = "-no-alias-deps";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
include Aliases.Submodule.M
diff --git a/testsuite/tests/load_path/test.ml b/testsuite/tests/load_path/test.ml
index 20a1800c12..aba49ca378 100644
--- a/testsuite/tests/load_path/test.ml
+++ b/testsuite/tests/load_path/test.ml
@@ -1,9 +1,7 @@
(* TEST
-
-subdirectories = "test"
-
-* setup-ocaml-build-env
-** ocaml
-test_file = "test/driver.ml"
-ocaml_script_as_argument = "true"
+ subdirectories = "test";
+ setup-ocaml-build-env;
+ test_file = "test/driver.ml";
+ ocaml_script_as_argument = "true";
+ ocaml;
*)
diff --git a/testsuite/tests/local-functions/non_local.ml b/testsuite/tests/local-functions/non_local.ml
index 684cb0c5f0..6b32f05e34 100644
--- a/testsuite/tests/local-functions/non_local.ml
+++ b/testsuite/tests/local-functions/non_local.ml
@@ -1,4 +1,4 @@
-(* TEST *)
+(* TEST_BELOW*)
(* Basic case: local optimisation works *)
let local_direct x =
@@ -20,3 +20,6 @@ let local_inner_scope x =
let local_in_function x =
let[@local] f y = x + y in
List.map (fun x -> f (succ x)) [0]
+
+(* TEST
+*)
diff --git a/testsuite/tests/local-functions/tupled.ml b/testsuite/tests/local-functions/tupled.ml
index aef5aacb27..fb1d9caa3c 100644
--- a/testsuite/tests/local-functions/tupled.ml
+++ b/testsuite/tests/local-functions/tupled.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* PR#8705 *)
let () =
diff --git a/testsuite/tests/local-functions/tupled2.ml b/testsuite/tests/local-functions/tupled2.ml
index e1564980d6..fa2eebe8c5 100644
--- a/testsuite/tests/local-functions/tupled2.ml
+++ b/testsuite/tests/local-functions/tupled2.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* PR#8705 *)
diff --git a/testsuite/tests/locale/test.ml b/testsuite/tests/locale/test.ml
index dbd4f449d3..6798138688 100644
--- a/testsuite/tests/locale/test.ml
+++ b/testsuite/tests/locale/test.ml
@@ -1,5 +1,5 @@
(* TEST
-modules = "stubs.c"
+ modules = "stubs.c";
*)
external setlocale : string -> unit = "ml_setlocale"
diff --git a/testsuite/tests/manual-intf-c/prog.ml b/testsuite/tests/manual-intf-c/prog.ml
index 9a9e6845ca..260291c962 100644
--- a/testsuite/tests/manual-intf-c/prog.ml
+++ b/testsuite/tests/manual-intf-c/prog.ml
@@ -1,15 +1,16 @@
(* TEST
-(* Tests from manual, section intf-c *)
-(*
- This test is currently skipped because there is no proper way to
- figure out whether Curses is available or not. If it becomes possible
- to figure that out, it would be nice to be able to check that the test
- compiles. Executing seems lessrelevant.
-*)
-* skip
-reason = "curses can not be properly detected at the moment"
+ (*
+ This test is currently skipped because there is no proper way to
+ figure out whether Curses is available or not. If it becomes possible
+ to figure that out, it would be nice to be able to check that the test
+ compiles. Executing seems lessrelevant.
+ *)
+ reason = "curses can not be properly detected at the moment";
+ skip;
*)
+(* Tests from manual, section intf-c *)
+
(* File prog.ml -- main program using curses *)
open Curses;;
let main_window = initscr () in
diff --git a/testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml b/testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml
index f062524cdb..63cd731b72 100644
--- a/testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml
+++ b/testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Test exhaustiveness.
diff --git a/testsuite/tests/match-exception-warnings/no_mixing_under_guard.ml b/testsuite/tests/match-exception-warnings/no_mixing_under_guard.ml
index 225d53054d..ee0c9b4950 100644
--- a/testsuite/tests/match-exception-warnings/no_mixing_under_guard.ml
+++ b/testsuite/tests/match-exception-warnings/no_mixing_under_guard.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
exception Exit
diff --git a/testsuite/tests/match-exception-warnings/no_value_clauses.ml b/testsuite/tests/match-exception-warnings/no_value_clauses.ml
index 77996e5bd4..8ce6ac3781 100644
--- a/testsuite/tests/match-exception-warnings/no_value_clauses.ml
+++ b/testsuite/tests/match-exception-warnings/no_value_clauses.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let test f =
diff --git a/testsuite/tests/match-exception-warnings/placement.ml b/testsuite/tests/match-exception-warnings/placement.ml
index c93247e357..ca7113cbc1 100644
--- a/testsuite/tests/match-exception-warnings/placement.ml
+++ b/testsuite/tests/match-exception-warnings/placement.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(*****************************************************)
diff --git a/testsuite/tests/match-exception-warnings/pr7083.ml b/testsuite/tests/match-exception-warnings/pr7083.ml
index cf8ddd642d..cdf7f2af41 100644
--- a/testsuite/tests/match-exception-warnings/pr7083.ml
+++ b/testsuite/tests/match-exception-warnings/pr7083.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f x =
diff --git a/testsuite/tests/match-exception-warnings/reachability.ml b/testsuite/tests/match-exception-warnings/reachability.ml
index 7c56ca2f05..9549c50eaa 100644
--- a/testsuite/tests/match-exception-warnings/reachability.ml
+++ b/testsuite/tests/match-exception-warnings/reachability.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f x =
diff --git a/testsuite/tests/match-exception/allocation.ml b/testsuite/tests/match-exception/allocation.ml
index a99dc83e95..d7acd758d2 100644
--- a/testsuite/tests/match-exception/allocation.ml
+++ b/testsuite/tests/match-exception/allocation.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(** Test that matching multiple values doesn't allocate a block. *)
diff --git a/testsuite/tests/match-exception/exception_propagation.ml b/testsuite/tests/match-exception/exception_propagation.ml
index 759ec386c9..57275f6180 100644
--- a/testsuite/tests/match-exception/exception_propagation.ml
+++ b/testsuite/tests/match-exception/exception_propagation.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(**
Test that match allows exceptions to propagate.
diff --git a/testsuite/tests/match-exception/identifier_sharing.ml b/testsuite/tests/match-exception/identifier_sharing.ml
index e0bb3890ee..9df7c5e0ed 100644
--- a/testsuite/tests/match-exception/identifier_sharing.ml
+++ b/testsuite/tests/match-exception/identifier_sharing.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
exception String of string
diff --git a/testsuite/tests/match-exception/match_failure.ml b/testsuite/tests/match-exception/match_failure.ml
index a6c3d8122e..60e26f6b9d 100644
--- a/testsuite/tests/match-exception/match_failure.ml
+++ b/testsuite/tests/match-exception/match_failure.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(**
Test that value match failure in a match block raises Match_failure.
diff --git a/testsuite/tests/match-exception/nested_handlers.ml b/testsuite/tests/match-exception/nested_handlers.ml
index 6f019d4b4b..c23fb983ca 100644
--- a/testsuite/tests/match-exception/nested_handlers.ml
+++ b/testsuite/tests/match-exception/nested_handlers.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(*
Test that multiple handlers coexist happily.
diff --git a/testsuite/tests/match-exception/raise_from_success_continuation.ml b/testsuite/tests/match-exception/raise_from_success_continuation.ml
index 69a82371cd..af71feb9fa 100644
--- a/testsuite/tests/match-exception/raise_from_success_continuation.ml
+++ b/testsuite/tests/match-exception/raise_from_success_continuation.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(**
Test raising exceptions from a value-matching branch.
diff --git a/testsuite/tests/match-exception/streams.ml b/testsuite/tests/match-exception/streams.ml
index b438227124..a9a4c9e81a 100644
--- a/testsuite/tests/match-exception/streams.ml
+++ b/testsuite/tests/match-exception/streams.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(**
Test the stream example .
diff --git a/testsuite/tests/match-exception/tail_calls.ml b/testsuite/tests/match-exception/tail_calls.ml
index ae72fc9317..cdad8d927d 100644
--- a/testsuite/tests/match-exception/tail_calls.ml
+++ b/testsuite/tests/match-exception/tail_calls.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(**
The success continuation expression is in tail position.
diff --git a/testsuite/tests/memory-model/forbidden.ml b/testsuite/tests/memory-model/forbidden.ml
index 5504d94f04..dac3be076f 100644
--- a/testsuite/tests/memory-model/forbidden.ml
+++ b/testsuite/tests/memory-model/forbidden.ml
@@ -1,8 +1,11 @@
(* TEST
- modules="opt.ml barrier.ml hist.ml shared.ml run.ml outcome.ml"
- * not-bsd
- ** bytecode
- ** native
+ modules = "opt.ml barrier.ml hist.ml shared.ml run.ml outcome.ml";
+ not-bsd;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* Memory model test:
diff --git a/testsuite/tests/memory-model/publish.ml b/testsuite/tests/memory-model/publish.ml
index 7f778307a1..e5750d3636 100644
--- a/testsuite/tests/memory-model/publish.ml
+++ b/testsuite/tests/memory-model/publish.ml
@@ -1,9 +1,12 @@
(* TEST
- modules="opt.ml barrier.ml hist.ml shared.ml run.ml outcome.ml"
- * not-bsd
- ** not-windows
- *** bytecode
- ** native
+ modules = "opt.ml barrier.ml hist.ml shared.ml run.ml outcome.ml";
+ not-bsd;
+ {
+ not-windows;
+ bytecode;
+ }{
+ native;
+ }
*)
(* Memory model: test the _publish idiom *)
diff --git a/testsuite/tests/messages/highlight_tabs.ml b/testsuite/tests/messages/highlight_tabs.ml
index 9a065a45c3..6570cac440 100644
--- a/testsuite/tests/messages/highlight_tabs.ml
+++ b/testsuite/tests/messages/highlight_tabs.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let x = abc
diff --git a/testsuite/tests/messages/precise_locations.ml b/testsuite/tests/messages/precise_locations.ml
index aecd8a5ab3..f748b43b76 100644
--- a/testsuite/tests/messages/precise_locations.ml
+++ b/testsuite/tests/messages/precise_locations.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = (unit, unit, unit, unit) bar
diff --git a/testsuite/tests/messages/spellcheck.ml b/testsuite/tests/messages/spellcheck.ml
index 9c852668de..1752431275 100644
--- a/testsuite/tests/messages/spellcheck.ml
+++ b/testsuite/tests/messages/spellcheck.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* The goal of this test is exhaustively cover all spellcheck-style
diff --git a/testsuite/tests/misc-kb/kbmain.ml b/testsuite/tests/misc-kb/kbmain.ml
index 6e94ecd0a7..d39d709bdb 100644
--- a/testsuite/tests/misc-kb/kbmain.ml
+++ b/testsuite/tests/misc-kb/kbmain.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "terms.ml equations.ml orderings.ml kb.ml"
+ modules = "terms.ml equations.ml orderings.ml kb.ml";
*)
open Terms
diff --git a/testsuite/tests/misc-unsafe/almabench.ml b/testsuite/tests/misc-unsafe/almabench.ml
index 253db390e2..90620511d2 100644
--- a/testsuite/tests/misc-unsafe/almabench.ml
+++ b/testsuite/tests/misc-unsafe/almabench.ml
@@ -1,5 +1,5 @@
(* TEST
- flags += " -unsafe "
+ flags += " -unsafe ";
*)
(*
diff --git a/testsuite/tests/misc-unsafe/fft.ml b/testsuite/tests/misc-unsafe/fft.ml
index 463e5c9dd2..381937383c 100644
--- a/testsuite/tests/misc-unsafe/fft.ml
+++ b/testsuite/tests/misc-unsafe/fft.ml
@@ -1,5 +1,5 @@
(* TEST
- flags += " -unsafe "
+ flags += " -unsafe ";
*)
let pi = 3.14159265358979323846
diff --git a/testsuite/tests/misc-unsafe/quicksort.ml b/testsuite/tests/misc-unsafe/quicksort.ml
index 208e2052fb..6f98983658 100644
--- a/testsuite/tests/misc-unsafe/quicksort.ml
+++ b/testsuite/tests/misc-unsafe/quicksort.ml
@@ -1,5 +1,5 @@
(* TEST
- flags += " -unsafe "
+ flags += " -unsafe ";
*)
(* Good test for loops. Best compiled with -unsafe. *)
diff --git a/testsuite/tests/misc-unsafe/soli.ml b/testsuite/tests/misc-unsafe/soli.ml
index 127cd69923..92a4e52b87 100644
--- a/testsuite/tests/misc-unsafe/soli.ml
+++ b/testsuite/tests/misc-unsafe/soli.ml
@@ -1,5 +1,5 @@
(* TEST
- flags += " -unsafe "
+ flags += " -unsafe ";
*)
type peg = Out | Empty | Peg
diff --git a/testsuite/tests/misc/bdd.ml b/testsuite/tests/misc/bdd.ml
index 30de85e016..f471ab9f0c 100644
--- a/testsuite/tests/misc/bdd.ml
+++ b/testsuite/tests/misc/bdd.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Translated to OCaml by Xavier Leroy *)
(* Original code written in SML by ... *)
diff --git a/testsuite/tests/misc/boyer.ml b/testsuite/tests/misc/boyer.ml
index 53e18813a2..736b3524c8 100644
--- a/testsuite/tests/misc/boyer.ml
+++ b/testsuite/tests/misc/boyer.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Manipulations over terms *)
diff --git a/testsuite/tests/misc/exotic.ml b/testsuite/tests/misc/exotic.ml
index c8a40a6f4c..dae81075f7 100644
--- a/testsuite/tests/misc/exotic.ml
+++ b/testsuite/tests/misc/exotic.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-I ${ocamlsrcdir}/utils"
- * expect
+ flags = "-I ${ocamlsrcdir}/utils";
+ expect;
*)
(* Strict-sequence can change the behavior of programs *)
diff --git a/testsuite/tests/misc/fib.ml b/testsuite/tests/misc/fib.ml
index 46c34193d7..f46e4211a5 100644
--- a/testsuite/tests/misc/fib.ml
+++ b/testsuite/tests/misc/fib.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let rec fib n =
if n < 2 then 1 else fib(n-1) + fib(n-2)
diff --git a/testsuite/tests/misc/gc_mark_stack_overflow.ml b/testsuite/tests/misc/gc_mark_stack_overflow.ml
index 55dd14a7bd..81b7dd8f1e 100644
--- a/testsuite/tests/misc/gc_mark_stack_overflow.ml
+++ b/testsuite/tests/misc/gc_mark_stack_overflow.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let clear_elements a m =
for i = 1 to m do
diff --git a/testsuite/tests/misc/gcwords.ml b/testsuite/tests/misc/gcwords.ml
index 45125adc6c..877d50cf8f 100644
--- a/testsuite/tests/misc/gcwords.ml
+++ b/testsuite/tests/misc/gcwords.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
type t = Leaf of int | Branch of t * t
diff --git a/testsuite/tests/misc/gpr1370.ml b/testsuite/tests/misc/gpr1370.ml
index 9cd0fedfa5..3f76d7f771 100644
--- a/testsuite/tests/misc/gpr1370.ml
+++ b/testsuite/tests/misc/gpr1370.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
type t = A|B|C|D
type s =
diff --git a/testsuite/tests/misc/hamming.ml b/testsuite/tests/misc/hamming.ml
index f4010ac47a..8112a10142 100644
--- a/testsuite/tests/misc/hamming.ml
+++ b/testsuite/tests/misc/hamming.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* We cannot use bignums because we don't do custom runtimes, but
int64 is a bit short, so we roll our own 37-digit numbers...
diff --git a/testsuite/tests/misc/nucleic.ml b/testsuite/tests/misc/nucleic.ml
index f83bc0467e..112765bbbd 100644
--- a/testsuite/tests/misc/nucleic.ml
+++ b/testsuite/tests/misc/nucleic.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Use floating-point arithmetic *)
diff --git a/testsuite/tests/misc/pr7168.ml b/testsuite/tests/misc/pr7168.ml
index dcd56eed13..03b1b6e4a3 100644
--- a/testsuite/tests/misc/pr7168.ml
+++ b/testsuite/tests/misc/pr7168.ml
@@ -1,6 +1,5 @@
(* TEST
-
-ocamlrunparam += "l=100000"
+ ocamlrunparam += "l=100000";
*)
let rec f x =
diff --git a/testsuite/tests/misc/sieve.ml b/testsuite/tests/misc/sieve.ml
index 1dd83a0ec9..7a6325d0fc 100644
--- a/testsuite/tests/misc/sieve.ml
+++ b/testsuite/tests/misc/sieve.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Eratosthene's sieve *)
diff --git a/testsuite/tests/misc/sorts.ml b/testsuite/tests/misc/sorts.ml
index 445c48419f..3e7214f6bf 100644
--- a/testsuite/tests/misc/sorts.ml
+++ b/testsuite/tests/misc/sorts.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Test bench for sorting algorithms. *)
diff --git a/testsuite/tests/misc/takc.ml b/testsuite/tests/misc/takc.ml
index bfdf11c45c..5b1632af77 100644
--- a/testsuite/tests/misc/takc.ml
+++ b/testsuite/tests/misc/takc.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let rec tak x y z =
if x > y then tak (tak (x-1) y z) (tak (y-1) z x) (tak (z-1) x y)
diff --git a/testsuite/tests/misc/taku.ml b/testsuite/tests/misc/taku.ml
index dac1a3f61e..b73001c216 100644
--- a/testsuite/tests/misc/taku.ml
+++ b/testsuite/tests/misc/taku.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let rec tak (x, y, z) =
if x > y then tak(tak (x-1, y, z), tak (y-1, z, x), tak (z-1, x, y))
diff --git a/testsuite/tests/no-alias-deps/aliases.ml b/testsuite/tests/no-alias-deps/aliases.ml
index 6da3f709d5..41277205ef 100644
--- a/testsuite/tests/no-alias-deps/aliases.ml
+++ b/testsuite/tests/no-alias-deps/aliases.ml
@@ -1,17 +1,17 @@
-(* TEST
-flags = "-no-alias-deps"
-compile_only = "true"
-readonly_files = "b.cmi.in c.mli d.mli"
-* setup-ocamlc.byte-build-env
-** copy
-src = "b.cmi.in"
-dst = "b.cmi"
-*** ocamlc.byte
-all_modules = "c.mli d.mli aliases.ml"
-**** check-ocamlc.byte-output
-***** ocamlobjinfo
-program = "aliases.cmo"
-****** check-program-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
*)
module A' = A (* missing a.cmi *)
@@ -19,3 +19,19 @@ module B' = B (* broken b.cmi *)
module C' = C (* valid c.cmi *)
module D' = D (* valid d.cmi *)
let () = print_int D'.something
+
+(* TEST
+ flags = "-no-alias-deps";
+ compile_only = "true";
+ readonly_files = "b.cmi.in c.mli d.mli";
+ setup-ocamlc.byte-build-env;
+ src = "b.cmi.in";
+ dst = "b.cmi";
+ copy;
+ all_modules = "c.mli d.mli aliases.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ program = "aliases.cmo";
+ ocamlobjinfo;
+ check-program-output;
+*)
diff --git a/testsuite/tests/no-alias-deps/gpr2235.ml b/testsuite/tests/no-alias-deps/gpr2235.ml
index 96472f3ade..aa038b5da8 100644
--- a/testsuite/tests/no-alias-deps/gpr2235.ml
+++ b/testsuite/tests/no-alias-deps/gpr2235.ml
@@ -1,21 +1,21 @@
(* TEST
-flags = "-no-alias-deps -w -49"
-compile_only = "true"
-readonly_files = "a2235.ml lib__2235.ml lib2235.ml user_of_lib2235.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "lib__2235.ml"
-*** check-ocamlc.byte-output
-**** ocamlc.byte
-flags = "-no-alias-deps -w -49 -open Lib__2235 -o lib__A2235.cmo"
-module = "a2235.ml"
-***** check-ocamlc.byte-output
-****** ocamlc.byte
-flags = "-no-alias-deps -w -49 -open Lib__2235"
-module = "lib2235.ml"
-******* check-ocamlc.byte-output
-******** ocamlc.byte
-flags = "-no-alias-deps -w -49"
-module = "user_of_lib2235.ml"
-********* check-ocamlc.byte-output
+ flags = "-no-alias-deps -w -49";
+ compile_only = "true";
+ readonly_files = "a2235.ml lib__2235.ml lib2235.ml user_of_lib2235.ml";
+ setup-ocamlc.byte-build-env;
+ module = "lib__2235.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ flags = "-no-alias-deps -w -49 -open Lib__2235 -o lib__A2235.cmo";
+ module = "a2235.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ flags = "-no-alias-deps -w -49 -open Lib__2235";
+ module = "lib2235.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ flags = "-no-alias-deps -w -49";
+ module = "user_of_lib2235.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/opaque/test.ml b/testsuite/tests/opaque/test.ml
index 4af63ede52..c7bf838c1a 100644
--- a/testsuite/tests/opaque/test.ml
+++ b/testsuite/tests/opaque/test.ml
@@ -1,65 +1,56 @@
(* TEST
-
-subdirectories = "fst intf snd"
-
-compile_only = "true"
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-flags = "-I intf -opaque"
-all_modules = "intf/opaque_intf.mli"
-*** ocamlopt.byte
-flags = "-I intf"
-all_modules = "intf/opaque_impl.mli intf/regular.mli"
-**** copy
-src = "intf/opaque_intf.cmi intf/opaque_impl.cmi intf/regular.cmi \
- intf/opaque_intf.mli intf/opaque_impl.mli intf/regular.mli"
-dst = "fst/"
-***** copy
-src = "intf/opaque_intf.cmi intf/opaque_impl.cmi intf/regular.cmi \
- intf/opaque_intf.mli intf/opaque_impl.mli intf/regular.mli"
-dst = "snd/"
-****** ocamlopt.byte
-flags = "-I fst -opaque"
-all_modules = "fst/opaque_impl.ml"
-******* ocamlopt.byte
-flags = "-I snd -opaque"
-all_modules = "snd/opaque_impl.ml"
-******** ocamlopt.byte
-flags = "-I fst"
-all_modules = "fst/opaque_intf.ml fst/regular.ml"
-********* ocamlopt.byte
-flags = "-I snd"
-all_modules = "snd/opaque_intf.ml snd/regular.ml"
-********** ocamlopt.byte
-flags = "-I fst"
-all_modules = "test.ml"
-
-(* ordinary compilation *)
-*********** ocamlopt.byte
-compile_only = "false"
-all_modules = "fst/opaque_intf.cmx fst/opaque_impl.cmx fst/regular.cmx test.cmx"
-program = "${test_build_directory}/p1.exe"
-
-(* change to opaque interface *)
-*********** ocamlopt.byte
-compile_only = "false"
-all_modules = "snd/opaque_intf.cmx fst/opaque_impl.cmx fst/regular.cmx test.cmx"
-program = "${test_build_directory}/p2.exe"
-
-(* change to opaque implementation *)
-*********** ocamlopt.byte
-compile_only = "false"
-all_modules = "fst/opaque_intf.cmx snd/opaque_impl.cmx fst/regular.cmx test.cmx"
-program = "${test_build_directory}/p3.exe"
-
-(* change to non-opaque implementation *)
-*********** ocamlopt.byte
-compile_only = "false"
-all_modules = "fst/opaque_intf.cmx fst/opaque_impl.cmx snd/regular.cmx test.cmx"
-program = "${test_build_directory}/p4.exe"
-ocamlopt_byte_exit_status = "2"
-
+ subdirectories = "fst intf snd";
+ compile_only = "true";
+ setup-ocamlopt.byte-build-env;
+ flags = "-I intf -opaque";
+ all_modules = "intf/opaque_intf.mli";
+ ocamlopt.byte;
+ flags = "-I intf";
+ all_modules = "intf/opaque_impl.mli intf/regular.mli";
+ ocamlopt.byte;
+ src = "intf/opaque_intf.cmi intf/opaque_impl.cmi intf/regular.cmi intf/opaque_intf.mli intf/opaque_impl.mli intf/regular.mli";
+ dst = "fst/";
+ copy;
+ src = "intf/opaque_intf.cmi intf/opaque_impl.cmi intf/regular.cmi intf/opaque_intf.mli intf/opaque_impl.mli intf/regular.mli";
+ dst = "snd/";
+ copy;
+ flags = "-I fst -opaque";
+ all_modules = "fst/opaque_impl.ml";
+ ocamlopt.byte;
+ flags = "-I snd -opaque";
+ all_modules = "snd/opaque_impl.ml";
+ ocamlopt.byte;
+ flags = "-I fst";
+ all_modules = "fst/opaque_intf.ml fst/regular.ml";
+ ocamlopt.byte;
+ flags = "-I snd";
+ all_modules = "snd/opaque_intf.ml snd/regular.ml";
+ ocamlopt.byte;
+ flags = "-I fst";
+ all_modules = "test.ml";
+ ocamlopt.byte;
+ { (* ordinary compilation *)
+ compile_only = "false";
+ all_modules = "fst/opaque_intf.cmx fst/opaque_impl.cmx fst/regular.cmx test.cmx";
+ program = "${test_build_directory}/p1.exe";
+ ocamlopt.byte;
+ }{ (* change to opaque interface *)
+ compile_only = "false";
+ all_modules = "snd/opaque_intf.cmx fst/opaque_impl.cmx fst/regular.cmx test.cmx";
+ program = "${test_build_directory}/p2.exe";
+ ocamlopt.byte;
+ }{ (* change to opaque implementation *)
+ compile_only = "false";
+ all_modules = "fst/opaque_intf.cmx snd/opaque_impl.cmx fst/regular.cmx test.cmx";
+ program = "${test_build_directory}/p3.exe";
+ ocamlopt.byte;
+ }{ (* change to non-opaque implementation *)
+ compile_only = "false";
+ all_modules = "fst/opaque_intf.cmx fst/opaque_impl.cmx snd/regular.cmx test.cmx";
+ program = "${test_build_directory}/p4.exe";
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ }
*)
let () =
diff --git a/testsuite/tests/output-complete-obj/github9344.ml b/testsuite/tests/output-complete-obj/github9344.ml
index b7ea5c5ec6..cef13069b5 100644
--- a/testsuite/tests/output-complete-obj/github9344.ml
+++ b/testsuite/tests/output-complete-obj/github9344.ml
@@ -1,14 +1,12 @@
(* TEST
-
-use_runtime = "false"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags = "-w -a -output-complete-exe -ccopt -I${ocamlsrcdir}/runtime"
-program = "github9344"
-*** run
-program = "sh ${test_source_directory}/github9344.sh"
-**** check-program-output
+ use_runtime = "false";
+ setup-ocamlc.byte-build-env;
+ flags = "-w -a -output-complete-exe -ccopt -I${ocamlsrcdir}/runtime";
+ program = "github9344";
+ ocamlc.byte;
+ program = "sh ${test_source_directory}/github9344.sh";
+ run;
+ check-program-output;
*)
raise Not_found
diff --git a/testsuite/tests/output-complete-obj/test.ml b/testsuite/tests/output-complete-obj/test.ml
index 1b655a6d46..bcdb3965f2 100644
--- a/testsuite/tests/output-complete-obj/test.ml
+++ b/testsuite/tests/output-complete-obj/test.ml
@@ -1,32 +1,30 @@
(* TEST
-
-readonly_files = "test.ml_stub.c"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags = "-w -a -output-complete-obj"
-program = "test.ml.bc.${objext}"
-*** script
-script = "${mkexe} -I${ocamlsrcdir}/runtime -o test.ml_bc_stub.exe \
- test.ml.bc.${objext} ${nativecc_libs} test.ml_stub.c"
-output = "${compiler_output}"
-**** run
-program = "./test.ml_bc_stub.exe"
-stdout = "program-output"
-stderr = "program-output"
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-flags = "-w -a -output-complete-obj"
-program = "test.ml.exe.${objext}"
-*** script
-script = "${mkexe} -I${ocamlsrcdir}/runtime -o test.ml_stub.exe \
- test.ml.exe.${objext} ${bytecc_libs} test.ml_stub.c"
-output = "${compiler_output}"
-**** run
-program = "./test.ml_stub.exe"
-stdout = "program-output"
-stderr = "program-output"
-
+ readonly_files = "test.ml_stub.c";
+ {
+ setup-ocamlc.byte-build-env;
+ flags = "-w -a -output-complete-obj";
+ program = "test.ml.bc.${objext}";
+ ocamlc.byte;
+ script = "${mkexe} -I${ocamlsrcdir}/runtime -o test.ml_bc_stub.exe test.ml.bc.${objext} ${nativecc_libs} test.ml_stub.c";
+ output = "${compiler_output}";
+ script;
+ program = "./test.ml_bc_stub.exe";
+ stdout = "program-output";
+ stderr = "program-output";
+ run;
+ }{
+ setup-ocamlopt.byte-build-env;
+ flags = "-w -a -output-complete-obj";
+ program = "test.ml.exe.${objext}";
+ ocamlopt.byte;
+ script = "${mkexe} -I${ocamlsrcdir}/runtime -o test.ml_stub.exe test.ml.exe.${objext} ${bytecc_libs} test.ml_stub.c";
+ output = "${compiler_output}";
+ script;
+ program = "./test.ml_stub.exe";
+ stdout = "program-output";
+ stderr = "program-output";
+ run;
+ }
*)
let () = Printf.printf "Test!!\n%!"
diff --git a/testsuite/tests/output-complete-obj/test2.ml b/testsuite/tests/output-complete-obj/test2.ml
index c201224ce8..a5b7e3f820 100644
--- a/testsuite/tests/output-complete-obj/test2.ml
+++ b/testsuite/tests/output-complete-obj/test2.ml
@@ -1,18 +1,16 @@
(* TEST
-
-readonly_files = "puts.c"
-use_runtime = "false"
-unset FOO
-
-* hasunix
-include unix
-** setup-ocamlc.byte-build-env
-*** ocamlc.byte
-flags = "-w -a -output-complete-exe puts.c -ccopt -I${ocamlsrcdir}/runtime"
-program = "test2"
-**** run
-program = "./test2"
-***** check-program-output
+ readonly_files = "puts.c";
+ use_runtime = "false";
+ unset FOO;
+ include unix;
+ hasunix;
+ setup-ocamlc.byte-build-env;
+ flags = "-w -a -output-complete-exe puts.c -ccopt -I${ocamlsrcdir}/runtime";
+ program = "test2";
+ ocamlc.byte;
+ program = "./test2";
+ run;
+ check-program-output;
*)
external puts: string -> unit = "caml_puts"
diff --git a/testsuite/tests/parallel/atomics.ml b/testsuite/tests/parallel/atomics.ml
index 823fb32dc2..b2c36f6765 100644
--- a/testsuite/tests/parallel/atomics.ml
+++ b/testsuite/tests/parallel/atomics.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
type u = U of unit
let () =
diff --git a/testsuite/tests/parallel/backup_thread.ml b/testsuite/tests/parallel/backup_thread.ml
index 05b06cc47c..9804c5b99c 100644
--- a/testsuite/tests/parallel/backup_thread.ml
+++ b/testsuite/tests/parallel/backup_thread.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
diff --git a/testsuite/tests/parallel/backup_thread_pipe.ml b/testsuite/tests/parallel/backup_thread_pipe.ml
index 41fd101c1f..471e075eb3 100644
--- a/testsuite/tests/parallel/backup_thread_pipe.ml
+++ b/testsuite/tests/parallel/backup_thread_pipe.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
diff --git a/testsuite/tests/parallel/constpromote.ml b/testsuite/tests/parallel/constpromote.ml
index 9bf7ede7a3..2b6bdf075b 100644
--- a/testsuite/tests/parallel/constpromote.ml
+++ b/testsuite/tests/parallel/constpromote.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* when run with the bytecode debug runtime, this test
used to trigger a bug where the constant [13]
diff --git a/testsuite/tests/parallel/deadcont.ml b/testsuite/tests/parallel/deadcont.ml
index fcdfbec210..5faae5f726 100644
--- a/testsuite/tests/parallel/deadcont.ml
+++ b/testsuite/tests/parallel/deadcont.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(*
Test handling of continuations created by a domain that has since terminated.
diff --git a/testsuite/tests/parallel/domain_dls.ml b/testsuite/tests/parallel/domain_dls.ml
index 72f4ddf0bd..47751aca0e 100644
--- a/testsuite/tests/parallel/domain_dls.ml
+++ b/testsuite/tests/parallel/domain_dls.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let check_dls () =
let k1 = Domain.DLS.new_key (fun () -> 10) in
diff --git a/testsuite/tests/parallel/domain_dls2.ml b/testsuite/tests/parallel/domain_dls2.ml
index ae301bda36..2900ec03a8 100644
--- a/testsuite/tests/parallel/domain_dls2.ml
+++ b/testsuite/tests/parallel/domain_dls2.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let _ =
let key_array =
diff --git a/testsuite/tests/parallel/domain_id.ml b/testsuite/tests/parallel/domain_id.ml
index 540ca905fd..21236277b3 100644
--- a/testsuite/tests/parallel/domain_id.ml
+++ b/testsuite/tests/parallel/domain_id.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Domain
diff --git a/testsuite/tests/parallel/domain_parallel_spawn_burn.ml b/testsuite/tests/parallel/domain_parallel_spawn_burn.ml
index ecc9d0b78f..85f09bd98b 100644
--- a/testsuite/tests/parallel/domain_parallel_spawn_burn.ml
+++ b/testsuite/tests/parallel/domain_parallel_spawn_burn.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Domain
diff --git a/testsuite/tests/parallel/domain_parallel_spawn_burn_gc_set.ml b/testsuite/tests/parallel/domain_parallel_spawn_burn_gc_set.ml
index 883ab1a5ab..6b8a2c6fa4 100644
--- a/testsuite/tests/parallel/domain_parallel_spawn_burn_gc_set.ml
+++ b/testsuite/tests/parallel/domain_parallel_spawn_burn_gc_set.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Domain
diff --git a/testsuite/tests/parallel/domain_serial_spawn_burn.ml b/testsuite/tests/parallel/domain_serial_spawn_burn.ml
index aeac4f71f7..7355b2550a 100644
--- a/testsuite/tests/parallel/domain_serial_spawn_burn.ml
+++ b/testsuite/tests/parallel/domain_serial_spawn_burn.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Domain
diff --git a/testsuite/tests/parallel/fib_threads.ml b/testsuite/tests/parallel/fib_threads.ml
index f6005729b7..c6a28081c4 100644
--- a/testsuite/tests/parallel/fib_threads.ml
+++ b/testsuite/tests/parallel/fib_threads.ml
@@ -1,8 +1,11 @@
(* TEST
-* hassysthreads
-include systhreads
-** bytecode
-** native
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
diff --git a/testsuite/tests/parallel/join.ml b/testsuite/tests/parallel/join.ml
index ee85838527..05cc4ea882 100644
--- a/testsuite/tests/parallel/join.ml
+++ b/testsuite/tests/parallel/join.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let test_size =
try int_of_string (Sys.getenv "OCAML_TEST_SIZE")
diff --git a/testsuite/tests/parallel/major_gc_wait_backup.ml b/testsuite/tests/parallel/major_gc_wait_backup.ml
index e418500774..7c11863047 100644
--- a/testsuite/tests/parallel/major_gc_wait_backup.ml
+++ b/testsuite/tests/parallel/major_gc_wait_backup.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** native
-** bytecode
+ include unix;
+ hasunix;
+ {
+ native;
+ }{
+ bytecode;
+ }
*)
type 'a tree = Empty | Node of 'a tree * 'a tree
diff --git a/testsuite/tests/parallel/mctest.ml b/testsuite/tests/parallel/mctest.ml
index c5d82d2dbd..ea339e31ed 100644
--- a/testsuite/tests/parallel/mctest.ml
+++ b/testsuite/tests/parallel/mctest.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(*
diff --git a/testsuite/tests/parallel/multicore_systhreads.ml b/testsuite/tests/parallel/multicore_systhreads.ml
index 2f0fcf20b0..a2e1130a7b 100644
--- a/testsuite/tests/parallel/multicore_systhreads.ml
+++ b/testsuite/tests/parallel/multicore_systhreads.ml
@@ -1,8 +1,11 @@
(* TEST
-* hassysthreads
-include systhreads
-** bytecode
-** native
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
diff --git a/testsuite/tests/parallel/pingpong.ml b/testsuite/tests/parallel/pingpong.ml
index 1f29cb6b8b..8f900d6de3 100644
--- a/testsuite/tests/parallel/pingpong.ml
+++ b/testsuite/tests/parallel/pingpong.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let r = ref (Some 0)
diff --git a/testsuite/tests/parallel/poll.ml b/testsuite/tests/parallel/poll.ml
index 4248ba10cf..e0774ec642 100644
--- a/testsuite/tests/parallel/poll.ml
+++ b/testsuite/tests/parallel/poll.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let continue = Atomic.make true
diff --git a/testsuite/tests/parallel/prodcons_domains.ml b/testsuite/tests/parallel/prodcons_domains.ml
index 2e2c09756c..34e5612fda 100644
--- a/testsuite/tests/parallel/prodcons_domains.ml
+++ b/testsuite/tests/parallel/prodcons_domains.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* Classic producer-consumer *)
diff --git a/testsuite/tests/parallel/recommended_domain_count.ml b/testsuite/tests/parallel/recommended_domain_count.ml
index 8aedeba202..ec08a2c457 100644
--- a/testsuite/tests/parallel/recommended_domain_count.ml
+++ b/testsuite/tests/parallel/recommended_domain_count.ml
@@ -1,5 +1,5 @@
(* TEST
-modules = "recommended_domain_count_cstubs.c"
+ modules = "recommended_domain_count_cstubs.c";
*)
external get_max_domains : unit -> int = "caml_get_max_domains"
diff --git a/testsuite/tests/parallel/recommended_domain_count_unix.ml b/testsuite/tests/parallel/recommended_domain_count_unix.ml
index f26038a765..d25d54856a 100644
--- a/testsuite/tests/parallel/recommended_domain_count_unix.ml
+++ b/testsuite/tests/parallel/recommended_domain_count_unix.ml
@@ -1,8 +1,11 @@
(* TEST
-* hasunix
-include unix
-** bytecode
-** native
+ include unix;
+ hasunix;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
let try_ext cmd =
diff --git a/testsuite/tests/parallel/tak.ml b/testsuite/tests/parallel/tak.ml
index a9b6874c4f..85bccf4007 100644
--- a/testsuite/tests/parallel/tak.ml
+++ b/testsuite/tests/parallel/tak.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(* filling minor heaps in parallel to trigger
minor heap exhaustion codepath organically *)
diff --git a/testsuite/tests/parallel/test_c_thread_register.ml b/testsuite/tests/parallel/test_c_thread_register.ml
index 352424a377..71af40f146 100644
--- a/testsuite/tests/parallel/test_c_thread_register.ml
+++ b/testsuite/tests/parallel/test_c_thread_register.ml
@@ -1,9 +1,12 @@
(* TEST
- modules = "test_c_thread_register_cstubs.c"
- * hassysthreads
- include systhreads
- ** bytecode
- ** native
+ modules = "test_c_thread_register_cstubs.c";
+ include systhreads;
+ hassysthreads;
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
(* spins a external thread from C and register it to the OCaml runtime *)
diff --git a/testsuite/tests/parallel/test_issue_11094.ml b/testsuite/tests/parallel/test_issue_11094.ml
index ffc6d4bedd..b2e2411767 100644
--- a/testsuite/tests/parallel/test_issue_11094.ml
+++ b/testsuite/tests/parallel/test_issue_11094.ml
@@ -1,6 +1,9 @@
(* TEST
-* bytecode
-* native
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
open Effect
diff --git a/testsuite/tests/parse-errors/escape_error.ml b/testsuite/tests/parse-errors/escape_error.ml
index 2a8e99b61d..4206123f6c 100644
--- a/testsuite/tests/parse-errors/escape_error.ml
+++ b/testsuite/tests/parse-errors/escape_error.ml
@@ -1,5 +1,5 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
(* Nothing to see here, parse.ml dictates that these be printed as regular
@@ -10,3 +10,7 @@ try foo () with ;;
(3 : );;
(3 :> );;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/parse-errors/expecting.ml b/testsuite/tests/parse-errors/expecting.ml
index 4298b81868..5f3026b342 100644
--- a/testsuite/tests/parse-errors/expecting.ml
+++ b/testsuite/tests/parse-errors/expecting.ml
@@ -1,5 +1,5 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
let f = function
@@ -33,3 +33,7 @@ let f = function
let f = function
| (module -> ()
;;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/parse-errors/mismatch_struct_sig.ml b/testsuite/tests/parse-errors/mismatch_struct_sig.ml
index 827adb6aff..d22a45a8cb 100644
--- a/testsuite/tests/parse-errors/mismatch_struct_sig.ml
+++ b/testsuite/tests/parse-errors/mismatch_struct_sig.ml
@@ -1,5 +1,5 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
module type S = struct end
@@ -38,3 +38,7 @@ module type S = sig
include module type of sig end
end
;;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/parse-errors/pr7847.ml b/testsuite/tests/parse-errors/pr7847.ml
index 8018109b1e..6c2e9fd531 100644
--- a/testsuite/tests/parse-errors/pr7847.ml
+++ b/testsuite/tests/parse-errors/pr7847.ml
@@ -1,10 +1,17 @@
-(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
(* https://caml.inria.fr/mantis/view.php?id=7847
The backquote causes a syntax error; this file should be rejected. *)
external x : unit -> (int,int)`A.t = "x"
+
+(* TEST
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parse-errors/unclosed_class_signature.mli b/testsuite/tests/parse-errors/unclosed_class_signature.mli
index 0aa6bf494e..659c8b9a48 100644
--- a/testsuite/tests/parse-errors/unclosed_class_signature.mli
+++ b/testsuite/tests/parse-errors/unclosed_class_signature.mli
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* It is apparently impossible to get the "unclosed object" message. *)
diff --git a/testsuite/tests/parse-errors/unclosed_class_simpl_expr1.ml b/testsuite/tests/parse-errors/unclosed_class_simpl_expr1.ml
index 86466d8155..d0bc47ba96 100644
--- a/testsuite/tests/parse-errors/unclosed_class_simpl_expr1.ml
+++ b/testsuite/tests/parse-errors/unclosed_class_simpl_expr1.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
class c = object
diff --git a/testsuite/tests/parse-errors/unclosed_class_simpl_expr2.ml b/testsuite/tests/parse-errors/unclosed_class_simpl_expr2.ml
index dc762fd252..edb21933f2 100644
--- a/testsuite/tests/parse-errors/unclosed_class_simpl_expr2.ml
+++ b/testsuite/tests/parse-errors/unclosed_class_simpl_expr2.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
class c = (object end : object end
diff --git a/testsuite/tests/parse-errors/unclosed_class_simpl_expr3.ml b/testsuite/tests/parse-errors/unclosed_class_simpl_expr3.ml
index 142d3b09e0..3b689293cf 100644
--- a/testsuite/tests/parse-errors/unclosed_class_simpl_expr3.ml
+++ b/testsuite/tests/parse-errors/unclosed_class_simpl_expr3.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
class c = (object end
diff --git a/testsuite/tests/parse-errors/unclosed_object.ml b/testsuite/tests/parse-errors/unclosed_object.ml
index c74a71357c..6528ea09f8 100644
--- a/testsuite/tests/parse-errors/unclosed_object.ml
+++ b/testsuite/tests/parse-errors/unclosed_object.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* Failed to get the unclosed object error message. *)
diff --git a/testsuite/tests/parse-errors/unclosed_paren_module_expr1.ml b/testsuite/tests/parse-errors/unclosed_paren_module_expr1.ml
index b22a3fb4fb..259f2799a2 100644
--- a/testsuite/tests/parse-errors/unclosed_paren_module_expr1.ml
+++ b/testsuite/tests/parse-errors/unclosed_paren_module_expr1.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = (struct end : sig end
diff --git a/testsuite/tests/parse-errors/unclosed_paren_module_expr2.ml b/testsuite/tests/parse-errors/unclosed_paren_module_expr2.ml
index a786f351b7..44ac330bc3 100644
--- a/testsuite/tests/parse-errors/unclosed_paren_module_expr2.ml
+++ b/testsuite/tests/parse-errors/unclosed_paren_module_expr2.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = (struct end
diff --git a/testsuite/tests/parse-errors/unclosed_paren_module_expr3.ml b/testsuite/tests/parse-errors/unclosed_paren_module_expr3.ml
index 4c5c78585d..9cc8d6e6c5 100644
--- a/testsuite/tests/parse-errors/unclosed_paren_module_expr3.ml
+++ b/testsuite/tests/parse-errors/unclosed_paren_module_expr3.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = (val 3 :
diff --git a/testsuite/tests/parse-errors/unclosed_paren_module_expr4.ml b/testsuite/tests/parse-errors/unclosed_paren_module_expr4.ml
index fc3daefcc3..075d5c599e 100644
--- a/testsuite/tests/parse-errors/unclosed_paren_module_expr4.ml
+++ b/testsuite/tests/parse-errors/unclosed_paren_module_expr4.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = (val 3 :>
diff --git a/testsuite/tests/parse-errors/unclosed_paren_module_expr5.ml b/testsuite/tests/parse-errors/unclosed_paren_module_expr5.ml
index 8ce6c0b21c..68a044256d 100644
--- a/testsuite/tests/parse-errors/unclosed_paren_module_expr5.ml
+++ b/testsuite/tests/parse-errors/unclosed_paren_module_expr5.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = (val 3
diff --git a/testsuite/tests/parse-errors/unclosed_paren_module_type.mli b/testsuite/tests/parse-errors/unclosed_paren_module_type.mli
index 436ce5dc27..e428959842 100644
--- a/testsuite/tests/parse-errors/unclosed_paren_module_type.mli
+++ b/testsuite/tests/parse-errors/unclosed_paren_module_type.mli
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M : (sig end
diff --git a/testsuite/tests/parse-errors/unclosed_sig.mli b/testsuite/tests/parse-errors/unclosed_sig.mli
index af49ea4079..12b4d3c975 100644
--- a/testsuite/tests/parse-errors/unclosed_sig.mli
+++ b/testsuite/tests/parse-errors/unclosed_sig.mli
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M : sig
diff --git a/testsuite/tests/parse-errors/unclosed_simple_expr.ml b/testsuite/tests/parse-errors/unclosed_simple_expr.ml
index f5a9e3b7f2..3a94e4cee8 100644
--- a/testsuite/tests/parse-errors/unclosed_simple_expr.ml
+++ b/testsuite/tests/parse-errors/unclosed_simple_expr.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(3; 2;;
diff --git a/testsuite/tests/parse-errors/unclosed_simple_pattern.ml b/testsuite/tests/parse-errors/unclosed_simple_pattern.ml
index f0878848bb..4c4c052e2c 100644
--- a/testsuite/tests/parse-errors/unclosed_simple_pattern.ml
+++ b/testsuite/tests/parse-errors/unclosed_simple_pattern.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
let f = function
diff --git a/testsuite/tests/parse-errors/unclosed_struct.ml b/testsuite/tests/parse-errors/unclosed_struct.ml
index 6066f1e826..5b05335e73 100644
--- a/testsuite/tests/parse-errors/unclosed_struct.ml
+++ b/testsuite/tests/parse-errors/unclosed_struct.ml
@@ -1,8 +1,8 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = struct
diff --git a/testsuite/tests/parsetree/locations_test.compilers.reference b/testsuite/tests/parsetree/locations_test.compilers.reference
index b5b89d7486..80cf4721d8 100644
--- a/testsuite/tests/parsetree/locations_test.compilers.reference
+++ b/testsuite/tests/parsetree/locations_test.compilers.reference
@@ -222,22 +222,13 @@ Ptop_def
Pstr_value Nonrec
[
<def>
- pattern (//toplevel//[4,29+4]..[4,29+11]) ghost
- Ppat_constraint
- pattern (//toplevel//[4,29+4]..[4,29+5])
- Ppat_var "x" (//toplevel//[4,29+4]..[4,29+5])
- core_type (//toplevel//[4,29+8]..[4,29+11]) ghost
- Ptyp_poly
- core_type (//toplevel//[4,29+8]..[4,29+11])
- Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11])
- []
- expression (//toplevel//[4,29+4]..[4,29+15])
- Pexp_constraint
- expression (//toplevel//[4,29+14]..[4,29+15])
- Pexp_constant PConst_int (3,None)
- core_type (//toplevel//[4,29+8]..[4,29+11])
- Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11])
- []
+ pattern (//toplevel//[4,29+4]..[4,29+5])
+ Ppat_var "x" (//toplevel//[4,29+4]..[4,29+5])
+ core_type (//toplevel//[4,29+8]..[4,29+11])
+ Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11])
+ []
+ expression (//toplevel//[4,29+14]..[4,29+15])
+ Pexp_constant PConst_int (3,None)
]
]
@@ -248,40 +239,26 @@ Ptop_def
Pstr_value Nonrec
[
<def>
- pattern (//toplevel//[2,1+4]..[2,1+22]) ghost
- Ppat_constraint
- pattern (//toplevel//[2,1+4]..[2,1+5])
- Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5])
- core_type (//toplevel//[2,1+4]..[2,1+35]) ghost
- Ptyp_poly 'a
- core_type (//toplevel//[2,1+16]..[2,1+22])
- Ptyp_arrow
- Nolabel
- core_type (//toplevel//[2,1+16]..[2,1+17])
- Ptyp_var a
- core_type (//toplevel//[2,1+21]..[2,1+22])
- Ptyp_var a
- expression (//toplevel//[2,1+4]..[2,1+35])
- Pexp_newtype "a"
- expression (//toplevel//[2,1+4]..[2,1+35])
- Pexp_constraint
- expression (//toplevel//[2,1+25]..[2,1+35])
- Pexp_fun
- Nolabel
- None
- pattern (//toplevel//[2,1+29]..[2,1+30])
- Ppat_var "x" (//toplevel//[2,1+29]..[2,1+30])
- expression (//toplevel//[2,1+34]..[2,1+35])
- Pexp_ident "x" (//toplevel//[2,1+34]..[2,1+35])
- core_type (//toplevel//[2,1+16]..[2,1+22])
- Ptyp_arrow
- Nolabel
- core_type (//toplevel//[2,1+16]..[2,1+17])
- Ptyp_constr "a" (//toplevel//[2,1+16]..[2,1+17])
- []
- core_type (//toplevel//[2,1+21]..[2,1+22])
- Ptyp_constr "a" (//toplevel//[2,1+21]..[2,1+22])
- []
+ pattern (//toplevel//[2,1+4]..[2,1+5])
+ Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5])
+ <type> "a" (//toplevel//[2,1+13]..[2,1+14]).
+ core_type (//toplevel//[2,1+16]..[2,1+22])
+ Ptyp_arrow
+ Nolabel
+ core_type (//toplevel//[2,1+16]..[2,1+17])
+ Ptyp_constr "a" (//toplevel//[2,1+16]..[2,1+17])
+ []
+ core_type (//toplevel//[2,1+21]..[2,1+22])
+ Ptyp_constr "a" (//toplevel//[2,1+21]..[2,1+22])
+ []
+ expression (//toplevel//[2,1+25]..[2,1+35])
+ Pexp_fun
+ Nolabel
+ None
+ pattern (//toplevel//[2,1+29]..[2,1+30])
+ Ppat_var "x" (//toplevel//[2,1+29]..[2,1+30])
+ expression (//toplevel//[2,1+34]..[2,1+35])
+ Pexp_ident "x" (//toplevel//[2,1+34]..[2,1+35])
]
]
diff --git a/testsuite/tests/parsetree/locations_test.ml b/testsuite/tests/parsetree/locations_test.ml
index e295d9a4ca..e423d99980 100644
--- a/testsuite/tests/parsetree/locations_test.ml
+++ b/testsuite/tests/parsetree/locations_test.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = "-dparsetree"
- * toplevel *)
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_lo*)
(* Using a toplevel test and not an expect test, because the locs get shifted
by the expect blocks and the output is therefore not stable. *)
@@ -132,3 +132,8 @@ let g y =
let f ~y = y + 1 in
f ~(y:int)
;;
+
+(* TEST
+ flags = "-dparsetree";
+ toplevel;
+*)
diff --git a/testsuite/tests/parsetree/test.ml b/testsuite/tests/parsetree/test.ml
index a75fa27731..119783e77d 100644
--- a/testsuite/tests/parsetree/test.ml
+++ b/testsuite/tests/parsetree/test.ml
@@ -1,6 +1,6 @@
(* TEST
- include ocamlcommon
- readonly_files = "source.ml"
+ include ocamlcommon;
+ readonly_files = "source.ml";
*)
(* (c) Alain Frisch / Lexifi *)
diff --git a/testsuite/tests/parsing/anonymous_class_parameter.ml b/testsuite/tests/parsing/anonymous_class_parameter.ml
index bbecc1272b..d2a9fed478 100644
--- a/testsuite/tests/parsing/anonymous_class_parameter.ml
+++ b/testsuite/tests/parsing/anonymous_class_parameter.ml
@@ -1,8 +1,8 @@
(* TEST
- flags = "-i"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+ flags = "-i";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* This test is valid OCaml code.
diff --git a/testsuite/tests/parsing/arrow_ambiguity.ml b/testsuite/tests/parsing/arrow_ambiguity.ml
index 5af88afe2b..a40b7b5d30 100644
--- a/testsuite/tests/parsing/arrow_ambiguity.ml
+++ b/testsuite/tests/parsing/arrow_ambiguity.ml
@@ -1,8 +1,8 @@
(* TEST
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* A potential ambiguity arises because the arrow -> is used
diff --git a/testsuite/tests/parsing/assert_location.ml b/testsuite/tests/parsing/assert_location.ml
index dc8c6b47ca..58a79aeec0 100644
--- a/testsuite/tests/parsing/assert_location.ml
+++ b/testsuite/tests/parsing/assert_location.ml
@@ -1,7 +1,11 @@
-(* TEST
- exit_status = "2"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
let () = (
assert false
)
+
+(* TEST
+ exit_status = "2";
+*)
diff --git a/testsuite/tests/parsing/attributes.compilers.reference b/testsuite/tests/parsing/attributes.compilers.reference
index 4f22202730..956550354f 100644
--- a/testsuite/tests/parsing/attributes.compilers.reference
+++ b/testsuite/tests/parsing/attributes.compilers.reference
@@ -42,17 +42,15 @@
<def>
attribute "foo"
[]
- pattern (attributes.ml[14,206+4]..[14,206+27]) ghost
- Ppat_constraint
- pattern (attributes.ml[14,206+4]..[14,206+13])
- attribute "foo"
- []
- Ppat_var "x" (attributes.ml[14,206+5]..[14,206+6])
- core_type (attributes.ml[14,206+16]..[14,206+20])
- attribute "foo"
- []
- Ptyp_constr "unit" (attributes.ml[14,206+16]..[14,206+20])
+ pattern (attributes.ml[14,206+4]..[14,206+13])
+ attribute "foo"
+ []
+ Ppat_var "x" (attributes.ml[14,206+5]..[14,206+6])
+ core_type (attributes.ml[14,206+16]..[14,206+20])
+ attribute "foo"
[]
+ Ptyp_constr "unit" (attributes.ml[14,206+16]..[14,206+20])
+ []
expression (attributes.ml[14,206+30]..[14,206+32])
attribute "foo"
[]
diff --git a/testsuite/tests/parsing/attributes.ml b/testsuite/tests/parsing/attributes.ml
index 14a00083e6..81caf0f820 100644
--- a/testsuite/tests/parsing/attributes.ml
+++ b/testsuite/tests/parsing/attributes.ml
@@ -1,8 +1,8 @@
-(* TEST
- flags = "-dparsetree"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_locations_while_tran
+slating_from_old_
+syntax__Filler_text_added_to_pr
*)
exception Foo [@foo] [@@foo]
@@ -55,3 +55,10 @@ module _ = (Int : T with type t = int [@foo])
let _ = (module Int : T [@foo])
let _ = (module Int : T with type t = int [@foo])
+
+(* TEST
+ flags = "-dparsetree";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/broken_invariants.ml b/testsuite/tests/parsing/broken_invariants.ml
index 29e09a191c..24e27a6a6c 100644
--- a/testsuite/tests/parsing/broken_invariants.ml
+++ b/testsuite/tests/parsing/broken_invariants.ml
@@ -1,12 +1,12 @@
-(* TEST
- readonly_files = "illegal_ppx.ml"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte with ocamlcommon
- all_modules="illegal_ppx.ml"
- program="ppx.exe"
- *** toplevel
- all_modules="broken_invariants.ml"
- flags="-ppx '${ocamlrun} ${test_build_directory_prefix}/ocamlc.byte/ppx.exe'"
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
*)
let empty_tuple = [%tuple];;
@@ -18,3 +18,14 @@ let f = function [%record_with_functor_fields] -> ();;
module type s = sig
[%%missing_rhs]
end;;
+
+(* TEST
+ readonly_files = "illegal_ppx.ml";
+ setup-ocamlc.byte-build-env;
+ all_modules = "illegal_ppx.ml";
+ program = "ppx.exe";
+ ocamlc.byte with ocamlcommon;
+ all_modules = "broken_invariants.ml";
+ flags = "-ppx '${ocamlrun} ${test_build_directory_prefix}/ocamlc.byte/ppx.exe'";
+ toplevel;
+*)
diff --git a/testsuite/tests/parsing/change_start_loc.ml b/testsuite/tests/parsing/change_start_loc.ml
index 2e5604ce78..5ebe2bd770 100644
--- a/testsuite/tests/parsing/change_start_loc.ml
+++ b/testsuite/tests/parsing/change_start_loc.ml
@@ -1,6 +1,6 @@
(* TEST
-flags = "-I ${ocamlsrcdir}/parsing -I ${ocamlsrcdir}/toplevel"
-include ocamlcommon
+ flags = "-I ${ocamlsrcdir}/parsing -I ${ocamlsrcdir}/toplevel";
+ include ocamlcommon;
*)
let position = Lexing.{ (* This corresponds to File "file.ml", line 100, character 10 *)
pos_fname = "------should not appear------";
diff --git a/testsuite/tests/parsing/constructor_declarations.ml b/testsuite/tests/parsing/constructor_declarations.ml
index cac1f1b0d7..0681a567f7 100644
--- a/testsuite/tests/parsing/constructor_declarations.ml
+++ b/testsuite/tests/parsing/constructor_declarations.ml
@@ -1,8 +1,8 @@
-(* TEST
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
(* Allowed. *)
@@ -23,3 +23,10 @@ type w =
|
| A of int
| B of bool
+
+(* TEST
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/docstrings.ml b/testsuite/tests/parsing/docstrings.ml
index 401fbd3502..cf5a82f359 100644
--- a/testsuite/tests/parsing/docstrings.ml
+++ b/testsuite/tests/parsing/docstrings.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- flags += " -dsource "
+ flags += " -dsource ";
+ expect;
*)
(***********************************************************************)
diff --git a/testsuite/tests/parsing/extended_indexoperators.ml b/testsuite/tests/parsing/extended_indexoperators.ml
index bb5fec23b1..348a500606 100644
--- a/testsuite/tests/parsing/extended_indexoperators.ml
+++ b/testsuite/tests/parsing/extended_indexoperators.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- flags = "-dsource"
+ flags = "-dsource";
+ expect;
*)
let (.?[]) = Hashtbl.find_opt
diff --git a/testsuite/tests/parsing/extension_operators.ml b/testsuite/tests/parsing/extension_operators.ml
index 683ec5952b..e13330399d 100644
--- a/testsuite/tests/parsing/extension_operators.ml
+++ b/testsuite/tests/parsing/extension_operators.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f o x = o##x;;
diff --git a/testsuite/tests/parsing/extensions.compilers.reference b/testsuite/tests/parsing/extensions.compilers.reference
index 44172998ec..075a5167fe 100644
--- a/testsuite/tests/parsing/extensions.compilers.reference
+++ b/testsuite/tests/parsing/extensions.compilers.reference
@@ -20,39 +20,37 @@
Pstr_value Nonrec
[
<def>
- pattern (extensions.ml[10,176+4]..[10,176+31]) ghost
- Ppat_constraint
- pattern (extensions.ml[10,176+4]..[10,176+14])
- Ppat_extension "foo"
- [
- structure_item (extensions.ml[10,176+10]..[10,176+13])
- Pstr_eval
- expression (extensions.ml[10,176+10]..[10,176+13])
- Pexp_apply
- expression (extensions.ml[10,176+11]..[10,176+12])
- Pexp_ident "+" (extensions.ml[10,176+11]..[10,176+12])
- [
- <arg>
- Nolabel
- expression (extensions.ml[10,176+10]..[10,176+11])
- Pexp_constant PConst_int (2,None)
- <arg>
- Nolabel
- expression (extensions.ml[10,176+12]..[10,176+13])
- Pexp_constant PConst_int (1,None)
- ]
- ]
- core_type (extensions.ml[10,176+17]..[10,176+31])
- Ptyp_extension "foo"
- [
- structure_item (extensions.ml[10,176+23]..[10,176+30])
- Pstr_eval
- expression (extensions.ml[10,176+23]..[10,176+30])
- Pexp_field
- expression (extensions.ml[10,176+23]..[10,176+26])
- Pexp_ident "bar" (extensions.ml[10,176+23]..[10,176+26])
- "baz" (extensions.ml[10,176+27]..[10,176+30])
- ]
+ pattern (extensions.ml[10,176+4]..[10,176+14])
+ Ppat_extension "foo"
+ [
+ structure_item (extensions.ml[10,176+10]..[10,176+13])
+ Pstr_eval
+ expression (extensions.ml[10,176+10]..[10,176+13])
+ Pexp_apply
+ expression (extensions.ml[10,176+11]..[10,176+12])
+ Pexp_ident "+" (extensions.ml[10,176+11]..[10,176+12])
+ [
+ <arg>
+ Nolabel
+ expression (extensions.ml[10,176+10]..[10,176+11])
+ Pexp_constant PConst_int (2,None)
+ <arg>
+ Nolabel
+ expression (extensions.ml[10,176+12]..[10,176+13])
+ Pexp_constant PConst_int (1,None)
+ ]
+ ]
+ core_type (extensions.ml[10,176+17]..[10,176+31])
+ Ptyp_extension "foo"
+ [
+ structure_item (extensions.ml[10,176+23]..[10,176+30])
+ Pstr_eval
+ expression (extensions.ml[10,176+23]..[10,176+30])
+ Pexp_field
+ expression (extensions.ml[10,176+23]..[10,176+26])
+ Pexp_ident "bar" (extensions.ml[10,176+23]..[10,176+26])
+ "baz" (extensions.ml[10,176+27]..[10,176+30])
+ ]
expression (extensions.ml[10,176+34]..[10,176+46])
Pexp_extension "foo"
[
@@ -76,44 +74,42 @@
Pstr_value Nonrec
[
<def>
- pattern (extensions.ml[13,251+4]..[13,251+44]) ghost
- Ppat_constraint
- pattern (extensions.ml[13,251+4]..[13,251+23])
- Ppat_extension "foo"
- [
- structure_item (extensions.ml[13,251+10]..[13,251+21])
- Pstr_value Nonrec
- [
- <def>
- pattern (extensions.ml[13,251+14]..[13,251+16])
- Ppat_construct "()" (extensions.ml[13,251+14]..[13,251+16])
- None
- expression (extensions.ml[13,251+19]..[13,251+21])
- Pexp_construct "()" (extensions.ml[13,251+19]..[13,251+21])
- None
- ]
- ]
- core_type (extensions.ml[13,251+26]..[13,251+44])
- Ptyp_extension "foo"
- [
- structure_item (extensions.ml[13,251+32]..[13,251+42])
- Pstr_type Rec
- [
- type_declaration "t" (extensions.ml[13,251+37]..[13,251+38]) (extensions.ml[13,251+32]..[13,251+42])
- ptype_params =
- []
- ptype_cstrs =
- []
- ptype_kind =
- Ptype_abstract
- ptype_private = Public
- ptype_manifest =
- Some
- core_type (extensions.ml[13,251+41]..[13,251+42])
- Ptyp_constr "t" (extensions.ml[13,251+41]..[13,251+42])
- []
- ]
- ]
+ pattern (extensions.ml[13,251+4]..[13,251+23])
+ Ppat_extension "foo"
+ [
+ structure_item (extensions.ml[13,251+10]..[13,251+21])
+ Pstr_value Nonrec
+ [
+ <def>
+ pattern (extensions.ml[13,251+14]..[13,251+16])
+ Ppat_construct "()" (extensions.ml[13,251+14]..[13,251+16])
+ None
+ expression (extensions.ml[13,251+19]..[13,251+21])
+ Pexp_construct "()" (extensions.ml[13,251+19]..[13,251+21])
+ None
+ ]
+ ]
+ core_type (extensions.ml[13,251+26]..[13,251+44])
+ Ptyp_extension "foo"
+ [
+ structure_item (extensions.ml[13,251+32]..[13,251+42])
+ Pstr_type Rec
+ [
+ type_declaration "t" (extensions.ml[13,251+37]..[13,251+38]) (extensions.ml[13,251+32]..[13,251+42])
+ ptype_params =
+ []
+ ptype_cstrs =
+ []
+ ptype_kind =
+ Ptype_abstract
+ ptype_private = Public
+ ptype_manifest =
+ Some
+ core_type (extensions.ml[13,251+41]..[13,251+42])
+ Ptyp_constr "t" (extensions.ml[13,251+41]..[13,251+42])
+ []
+ ]
+ ]
expression (extensions.ml[13,251+47]..[13,251+74])
Pexp_extension "foo"
[
@@ -147,28 +143,26 @@
Pstr_value Nonrec
[
<def>
- pattern (extensions.ml[16,344+4]..[16,344+37]) ghost
- Ppat_constraint
- pattern (extensions.ml[16,344+4]..[16,344+19])
- Ppat_extension "foo"
- core_type (extensions.ml[16,344+11]..[16,344+17])
- Ptyp_variant closed=Closed
- [
- Rtag "Foo" true
- []
- ]
- None
- core_type (extensions.ml[16,344+22]..[16,344+37])
- Ptyp_extension "foo"
- core_type (extensions.ml[16,344+29]..[16,344+35])
- Ptyp_arrow
- Nolabel
- core_type (extensions.ml[16,344+29]..[16,344+30])
- Ptyp_constr "t" (extensions.ml[16,344+29]..[16,344+30])
- []
- core_type (extensions.ml[16,344+34]..[16,344+35])
- Ptyp_constr "t" (extensions.ml[16,344+34]..[16,344+35])
+ pattern (extensions.ml[16,344+4]..[16,344+19])
+ Ppat_extension "foo"
+ core_type (extensions.ml[16,344+11]..[16,344+17])
+ Ptyp_variant closed=Closed
+ [
+ Rtag "Foo" true
[]
+ ]
+ None
+ core_type (extensions.ml[16,344+22]..[16,344+37])
+ Ptyp_extension "foo"
+ core_type (extensions.ml[16,344+29]..[16,344+35])
+ Ptyp_arrow
+ Nolabel
+ core_type (extensions.ml[16,344+29]..[16,344+30])
+ Ptyp_constr "t" (extensions.ml[16,344+29]..[16,344+30])
+ []
+ core_type (extensions.ml[16,344+34]..[16,344+35])
+ Ptyp_constr "t" (extensions.ml[16,344+34]..[16,344+35])
+ []
expression (extensions.ml[16,344+40]..[16,344+60])
Pexp_extension "foo"
core_type (extensions.ml[16,344+47]..[16,344+58])
@@ -209,29 +203,27 @@
Pstr_value Nonrec
[
<def>
- pattern (extensions.ml[20,445+4]..[20,445+44]) ghost
- Ppat_constraint
- pattern (extensions.ml[20,445+4]..[20,445+28])
- Ppat_extension "foo"
- pattern (extensions.ml[20,445+11]..[20,445+26])
- Ppat_or
- pattern (extensions.ml[20,445+12]..[20,445+17])
- Ppat_construct "Bar" (extensions.ml[20,445+12]..[20,445+15])
- Some
- []
- pattern (extensions.ml[20,445+16]..[20,445+17])
- Ppat_var "x" (extensions.ml[20,445+16]..[20,445+17])
- pattern (extensions.ml[20,445+20]..[20,445+25])
- Ppat_construct "Baz" (extensions.ml[20,445+20]..[20,445+23])
- Some
- []
- pattern (extensions.ml[20,445+24]..[20,445+25])
- Ppat_var "x" (extensions.ml[20,445+24]..[20,445+25])
- core_type (extensions.ml[20,445+31]..[20,445+44])
- Ptyp_extension "foo"
- pattern (extensions.ml[20,445+38]..[20,445+42])
- Ppat_type
- "bar" (extensions.ml[20,445+39]..[20,445+42])
+ pattern (extensions.ml[20,445+4]..[20,445+28])
+ Ppat_extension "foo"
+ pattern (extensions.ml[20,445+11]..[20,445+26])
+ Ppat_or
+ pattern (extensions.ml[20,445+12]..[20,445+17])
+ Ppat_construct "Bar" (extensions.ml[20,445+12]..[20,445+15])
+ Some
+ []
+ pattern (extensions.ml[20,445+16]..[20,445+17])
+ Ppat_var "x" (extensions.ml[20,445+16]..[20,445+17])
+ pattern (extensions.ml[20,445+20]..[20,445+25])
+ Ppat_construct "Baz" (extensions.ml[20,445+20]..[20,445+23])
+ Some
+ []
+ pattern (extensions.ml[20,445+24]..[20,445+25])
+ Ppat_var "x" (extensions.ml[20,445+24]..[20,445+25])
+ core_type (extensions.ml[20,445+31]..[20,445+44])
+ Ptyp_extension "foo"
+ pattern (extensions.ml[20,445+38]..[20,445+42])
+ Ppat_type
+ "bar" (extensions.ml[20,445+39]..[20,445+42])
expression (extensions.ml[20,445+47]..[20,445+60])
Pexp_extension "foo"
pattern (extensions.ml[20,445+54]..[20,445+59])
@@ -255,52 +247,50 @@
Pstr_value Nonrec
[
<def>
- pattern (extensions.ml[23,534+4]..[24,573+32]) ghost
- Ppat_constraint
- pattern (extensions.ml[23,534+4]..[23,534+38])
- Ppat_extension "foo"
- [
- signature_item (extensions.ml[23,534+11]..[23,534+36])
- Psig_include
- module_type (extensions.ml[23,534+19]..[23,534+36])
- Pmty_with
- module_type (extensions.ml[23,534+19]..[23,534+20])
- Pmty_ident "S" (extensions.ml[23,534+19]..[23,534+20])
- [
- Pwith_type "t" (extensions.ml[23,534+31]..[23,534+32])
- type_declaration "t" (extensions.ml[23,534+31]..[23,534+32]) (extensions.ml[23,534+26]..[23,534+36])
- ptype_params =
- []
- ptype_cstrs =
- []
- ptype_kind =
- Ptype_abstract
- ptype_private = Public
- ptype_manifest =
- Some
- core_type (extensions.ml[23,534+35]..[23,534+36])
- Ptyp_constr "t" (extensions.ml[23,534+35]..[23,534+36])
- []
- ]
- ]
- core_type (extensions.ml[24,573+4]..[24,573+32])
- Ptyp_extension "foo"
- [
- signature_item (extensions.ml[24,573+11]..[24,573+20])
- Psig_value
- value_description "x" (extensions.ml[24,573+15]..[24,573+16]) (extensions.ml[24,573+11]..[24,573+20])
- core_type (extensions.ml[24,573+19]..[24,573+20])
- Ptyp_constr "t" (extensions.ml[24,573+19]..[24,573+20])
- []
+ pattern (extensions.ml[23,534+4]..[23,534+38])
+ Ppat_extension "foo"
+ [
+ signature_item (extensions.ml[23,534+11]..[23,534+36])
+ Psig_include
+ module_type (extensions.ml[23,534+19]..[23,534+36])
+ Pmty_with
+ module_type (extensions.ml[23,534+19]..[23,534+20])
+ Pmty_ident "S" (extensions.ml[23,534+19]..[23,534+20])
+ [
+ Pwith_type "t" (extensions.ml[23,534+31]..[23,534+32])
+ type_declaration "t" (extensions.ml[23,534+31]..[23,534+32]) (extensions.ml[23,534+26]..[23,534+36])
+ ptype_params =
+ []
+ ptype_cstrs =
+ []
+ ptype_kind =
+ Ptype_abstract
+ ptype_private = Public
+ ptype_manifest =
+ Some
+ core_type (extensions.ml[23,534+35]..[23,534+36])
+ Ptyp_constr "t" (extensions.ml[23,534+35]..[23,534+36])
+ []
+ ]
+ ]
+ core_type (extensions.ml[24,573+4]..[24,573+32])
+ Ptyp_extension "foo"
+ [
+ signature_item (extensions.ml[24,573+11]..[24,573+20])
+ Psig_value
+ value_description "x" (extensions.ml[24,573+15]..[24,573+16]) (extensions.ml[24,573+11]..[24,573+20])
+ core_type (extensions.ml[24,573+19]..[24,573+20])
+ Ptyp_constr "t" (extensions.ml[24,573+19]..[24,573+20])
[]
- signature_item (extensions.ml[24,573+22]..[24,573+31])
- Psig_value
- value_description "y" (extensions.ml[24,573+26]..[24,573+27]) (extensions.ml[24,573+22]..[24,573+31])
- core_type (extensions.ml[24,573+30]..[24,573+31])
- Ptyp_constr "t" (extensions.ml[24,573+30]..[24,573+31])
- []
+ []
+ signature_item (extensions.ml[24,573+22]..[24,573+31])
+ Psig_value
+ value_description "y" (extensions.ml[24,573+26]..[24,573+27]) (extensions.ml[24,573+22]..[24,573+31])
+ core_type (extensions.ml[24,573+30]..[24,573+31])
+ Ptyp_constr "t" (extensions.ml[24,573+30]..[24,573+31])
[]
- ]
+ []
+ ]
expression (extensions.ml[25,606+4]..[25,606+23])
Pexp_extension "foo"
[
diff --git a/testsuite/tests/parsing/extensions.ml b/testsuite/tests/parsing/extensions.ml
index 326d2a4768..b42570c012 100644
--- a/testsuite/tests/parsing/extensions.ml
+++ b/testsuite/tests/parsing/extensions.ml
@@ -1,9 +1,9 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_locations_while_tran
+slating_from_old_syntax__Filler_
+text_added_to_pre
+serve_locations_while_translati
*)
[%%foo let x = 1 in x]
@@ -23,3 +23,11 @@ let [%foo? (Bar x | Baz x) ] : [%foo? #bar ] = [%foo? { x }]
let [%foo: include S with type t = t ]
: [%foo: val x : t val y : t]
= [%foo: type t = t ]
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/hash_ambiguity.ml b/testsuite/tests/parsing/hash_ambiguity.ml
index 32f8297f5e..f364fac99a 100644
--- a/testsuite/tests/parsing/hash_ambiguity.ml
+++ b/testsuite/tests/parsing/hash_ambiguity.ml
@@ -1,8 +1,8 @@
-(* TEST
- flags = "-stop-after parsing -dparsetree"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_to_preserve_location
+s_while_translating_from_old_syn
+tax__Filler_text_
+added_to_preserve_locations_whi
*)
class ['a] list = object end
@@ -15,3 +15,10 @@ type 'a t = int #list as 'a
type 'a u = A of int #list
type 'a v = A of int * int #list
+
+(* TEST
+ flags = "-stop-after parsing -dparsetree";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/int_and_float_with_modifier.ml b/testsuite/tests/parsing/int_and_float_with_modifier.ml
index 444964be85..5c4de59212 100644
--- a/testsuite/tests/parsing/int_and_float_with_modifier.ml
+++ b/testsuite/tests/parsing/int_and_float_with_modifier.ml
@@ -1,9 +1,9 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_locations_while_tran
+slating_from_old_syntax__Filler_
+text_added_to_pre
+serve_locations_while_translati
*)
let int_with_custom_modifier =
@@ -20,3 +20,11 @@ let hex_with_modifier = 0x32g
let float_without_modifer = 1.2e3
let float_with_modifer = 1.2g
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/multi_indices.ml b/testsuite/tests/parsing/multi_indices.ml
index 8b67bd91e6..02ef1c944c 100644
--- a/testsuite/tests/parsing/multi_indices.ml
+++ b/testsuite/tests/parsing/multi_indices.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dsource"
- * expect
+ flags = "-dsource";
+ expect;
*)
module A = Bigarray.Genarray
diff --git a/testsuite/tests/parsing/pr10468.ml b/testsuite/tests/parsing/pr10468.ml
index d795b3bf0f..b03bca7955 100644
--- a/testsuite/tests/parsing/pr10468.ml
+++ b/testsuite/tests/parsing/pr10468.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dsource"
- * expect
+ flags = "-dsource";
+ expect;
*)
module type S = sig
diff --git a/testsuite/tests/parsing/pr6604.ml b/testsuite/tests/parsing/pr6604.ml
index 806f9c37ed..56150f06a1 100644
--- a/testsuite/tests/parsing/pr6604.ml
+++ b/testsuite/tests/parsing/pr6604.ml
@@ -1,9 +1,17 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
#1
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/pr6604_2.ml b/testsuite/tests/parsing/pr6604_2.ml
index 995e242d33..a1287bd128 100644
--- a/testsuite/tests/parsing/pr6604_2.ml
+++ b/testsuite/tests/parsing/pr6604_2.ml
@@ -1,9 +1,17 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
#1 "pr6604.ml"
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/pr6604_3.ml b/testsuite/tests/parsing/pr6604_3.ml
index ef15c5c068..c8fc095dd6 100644
--- a/testsuite/tests/parsing/pr6604_3.ml
+++ b/testsuite/tests/parsing/pr6604_3.ml
@@ -1,8 +1,8 @@
(* TEST
- flags = "-dparsetree"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+ flags = "-dparsetree";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
# 1 "pr6604.ml"
diff --git a/testsuite/tests/parsing/pr6865.ml b/testsuite/tests/parsing/pr6865.ml
index c673e2a613..9e98315b0b 100644
--- a/testsuite/tests/parsing/pr6865.ml
+++ b/testsuite/tests/parsing/pr6865.ml
@@ -1,11 +1,19 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_locations_while_tran
+slating_from_old_syntax__Filler_
+text_added_to_pre
+serve_locations_while_translati
*)
let%foo x = 42
let%foo _ = () and _ = ()
let%foo _ = ()
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/pr7165.ml b/testsuite/tests/parsing/pr7165.ml
index e25708c1fc..2e189f09c8 100644
--- a/testsuite/tests/parsing/pr7165.ml
+++ b/testsuite/tests/parsing/pr7165.ml
@@ -1,12 +1,20 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* this is a lexer directive with an out-of-bound integer;
it should result in a lexing error instead of an
uncaught exception as in PR#7165 *)
#9342101923012312312 ""
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/quotedextensions.compilers.reference b/testsuite/tests/parsing/quotedextensions.compilers.reference
index 4f84877fde..dc23bd1137 100644
--- a/testsuite/tests/parsing/quotedextensions.compilers.reference
+++ b/testsuite/tests/parsing/quotedextensions.compilers.reference
@@ -41,24 +41,22 @@
Pstr_value Nonrec
[
<def>
- pattern (quotedextensions.ml[20,363+4]..[21,390+26]) ghost
- Ppat_constraint
- pattern (quotedextensions.ml[20,363+4]..[20,363+26])
- Ppat_extension "M.foo"
- [
- structure_item (quotedextensions.ml[20,363+4]..[20,363+26]) ghost
- Pstr_eval
- expression (quotedextensions.ml[20,363+4]..[20,363+26]) ghost
- Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[20,363+12]..[20,363+24]),Some "")
- ]
- core_type (quotedextensions.ml[21,390+4]..[21,390+26])
- Ptyp_extension "M.foo"
- [
- structure_item (quotedextensions.ml[21,390+4]..[21,390+26]) ghost
- Pstr_eval
- expression (quotedextensions.ml[21,390+4]..[21,390+26]) ghost
- Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[21,390+12]..[21,390+24]),Some "")
- ]
+ pattern (quotedextensions.ml[20,363+4]..[20,363+26])
+ Ppat_extension "M.foo"
+ [
+ structure_item (quotedextensions.ml[20,363+4]..[20,363+26]) ghost
+ Pstr_eval
+ expression (quotedextensions.ml[20,363+4]..[20,363+26]) ghost
+ Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[20,363+12]..[20,363+24]),Some "")
+ ]
+ core_type (quotedextensions.ml[21,390+4]..[21,390+26])
+ Ptyp_extension "M.foo"
+ [
+ structure_item (quotedextensions.ml[21,390+4]..[21,390+26]) ghost
+ Pstr_eval
+ expression (quotedextensions.ml[21,390+4]..[21,390+26]) ghost
+ Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[21,390+12]..[21,390+24]),Some "")
+ ]
expression (quotedextensions.ml[22,417+4]..[22,417+26])
Pexp_extension "M.foo"
[
@@ -72,24 +70,22 @@
Pstr_value Nonrec
[
<def>
- pattern (quotedextensions.ml[23,444+4]..[24,480+35]) ghost
- Ppat_constraint
- pattern (quotedextensions.ml[23,444+4]..[23,444+35])
- Ppat_extension "M.foo"
- [
- structure_item (quotedextensions.ml[23,444+4]..[23,444+35]) ghost
- Pstr_eval
- expression (quotedextensions.ml[23,444+4]..[23,444+35]) ghost
- Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[23,444+16]..[23,444+30]),Some "bar")
- ]
- core_type (quotedextensions.ml[24,480+4]..[24,480+35])
- Ptyp_extension "M.foo"
- [
- structure_item (quotedextensions.ml[24,480+4]..[24,480+35]) ghost
- Pstr_eval
- expression (quotedextensions.ml[24,480+4]..[24,480+35]) ghost
- Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[24,480+16]..[24,480+30]),Some "bar")
- ]
+ pattern (quotedextensions.ml[23,444+4]..[23,444+35])
+ Ppat_extension "M.foo"
+ [
+ structure_item (quotedextensions.ml[23,444+4]..[23,444+35]) ghost
+ Pstr_eval
+ expression (quotedextensions.ml[23,444+4]..[23,444+35]) ghost
+ Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[23,444+16]..[23,444+30]),Some "bar")
+ ]
+ core_type (quotedextensions.ml[24,480+4]..[24,480+35])
+ Ptyp_extension "M.foo"
+ [
+ structure_item (quotedextensions.ml[24,480+4]..[24,480+35]) ghost
+ Pstr_eval
+ expression (quotedextensions.ml[24,480+4]..[24,480+35]) ghost
+ Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[24,480+16]..[24,480+30]),Some "bar")
+ ]
expression (quotedextensions.ml[25,516+4]..[25,516+35])
Pexp_extension "M.foo"
[
diff --git a/testsuite/tests/parsing/quotedextensions.ml b/testsuite/tests/parsing/quotedextensions.ml
index f725f5a1a9..7389289491 100644
--- a/testsuite/tests/parsing/quotedextensions.ml
+++ b/testsuite/tests/parsing/quotedextensions.ml
@@ -1,9 +1,9 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_locations_while_tran
+slating_from_old_syntax__Filler_
+text_added_to_pre
+serve_locations_while_translati
*)
(* Structures *)
@@ -40,3 +40,11 @@ let {%M.foo bar| <hello>{|x|} |bar}
(* {|*)|}, and *)
(* [%foo {bar|*)|bar}], and *)
(* {%foo bar|*)|bar} should be valid inside comments *)
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/parsing/reloc.ml b/testsuite/tests/parsing/reloc.ml
index 0948d171b4..816456ee7c 100644
--- a/testsuite/tests/parsing/reloc.ml
+++ b/testsuite/tests/parsing/reloc.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-I ${ocamlsrcdir}/parsing -I ${ocamlsrcdir}/toplevel"
- include ocamlcommon
- * expect
+ flags = "-I ${ocamlsrcdir}/parsing -I ${ocamlsrcdir}/toplevel";
+ include ocamlcommon;
+ expect;
*)
(* Check that [e.pexp_loc :: e.pexp_loc_stack] includes all
diff --git a/testsuite/tests/parsing/shortcut_ext_attr.ml b/testsuite/tests/parsing/shortcut_ext_attr.ml
index 222e7a0c97..133d7d1629 100644
--- a/testsuite/tests/parsing/shortcut_ext_attr.ml
+++ b/testsuite/tests/parsing/shortcut_ext_attr.ml
@@ -1,9 +1,9 @@
-(* TEST
- flags = "-dparsetree"
- ocamlc_byte_exit_status = "2"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- *** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_
+to_preserve_locations_while_tran
+slating_from_old_syntax__Filler_
+text_added_to_pre
+serve_locations_while_translati
*)
(* Expressions *)
let () =
@@ -118,3 +118,11 @@ module type S = sig
class type%foo[@foo] x = x
end
+
+(* TEST
+ flags = "-dparsetree";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/ppx-attributes/inline.ml b/testsuite/tests/ppx-attributes/inline.ml
index cec8c7cf66..18fc3a6587 100644
--- a/testsuite/tests/ppx-attributes/inline.ml
+++ b/testsuite/tests/ppx-attributes/inline.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dlambda -dno-unique-ids"
- * expect
+ flags = "-dlambda -dno-unique-ids";
+ expect;
*)
(* This checks that function attributes like [@inline] aren't dropped when they
diff --git a/testsuite/tests/ppx-attributes/warning.ml b/testsuite/tests/ppx-attributes/warning.ml
index 0ae6667472..a8c222f2ae 100644
--- a/testsuite/tests/ppx-attributes/warning.ml
+++ b/testsuite/tests/ppx-attributes/warning.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
[@@@ocaml.warning "@A"]
[@@@ocaml.alert "++all"]
diff --git a/testsuite/tests/ppx-contexts/test.ml b/testsuite/tests/ppx-contexts/test.ml
index a8b0be1fa4..558de98748 100644
--- a/testsuite/tests/ppx-contexts/test.ml
+++ b/testsuite/tests/ppx-contexts/test.ml
@@ -1,27 +1,17 @@
(* TEST
-readonly_files = "myppx.ml"
-include ocamlcommon
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-program = "${test_build_directory}/myppx.exe"
-all_modules = "myppx.ml"
-*** ocamlc.byte
-module = "test.ml"
-flags = "-thread \
- -I ${test_build_directory} \
- -open List \
- -rectypes \
- -principal \
- -alias-deps \
- -unboxed-types \
- -ppx ${program}"
-**** ocamlc.byte
-module = "test.ml"
-flags = "-g \
- -no-alias-deps \
- -no-unboxed-types \
- -ppx ${program}"
-***** check-ocamlc.byte-output
+ readonly_files = "myppx.ml";
+ include ocamlcommon;
+ setup-ocamlc.byte-build-env;
+ program = "${test_build_directory}/myppx.exe";
+ all_modules = "myppx.ml";
+ ocamlc.byte;
+ module = "test.ml";
+ flags = "-thread -I ${test_build_directory} -open List -rectypes -principal -alias-deps -unboxed-types -ppx ${program}";
+ ocamlc.byte;
+ module = "test.ml";
+ flags = "-g -no-alias-deps -no-unboxed-types -ppx ${program}";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* empty *)
diff --git a/testsuite/tests/prim-bigstring/bigstring_access.ml b/testsuite/tests/prim-bigstring/bigstring_access.ml
index 0014de3dda..9f550b7ffa 100644
--- a/testsuite/tests/prim-bigstring/bigstring_access.ml
+++ b/testsuite/tests/prim-bigstring/bigstring_access.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Bigarray
type bigstring = (char, int8_unsigned_elt, c_layout) Array1.t
diff --git a/testsuite/tests/prim-bigstring/string_access.ml b/testsuite/tests/prim-bigstring/string_access.ml
index 82c32f2f30..a37b9e9319 100644
--- a/testsuite/tests/prim-bigstring/string_access.ml
+++ b/testsuite/tests/prim-bigstring/string_access.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
external caml_bytes_get_16 : bytes -> int -> int = "%caml_bytes_get16"
external caml_bytes_get_32 : bytes -> int -> int32 = "%caml_bytes_get32"
diff --git a/testsuite/tests/prim-bswap/bswap.ml b/testsuite/tests/prim-bswap/bswap.ml
index 7ab822c74b..cf43908bcb 100644
--- a/testsuite/tests/prim-bswap/bswap.ml
+++ b/testsuite/tests/prim-bswap/bswap.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Printf
diff --git a/testsuite/tests/prim-revapply/apply.ml b/testsuite/tests/prim-revapply/apply.ml
index 685b326344..8b557e152f 100644
--- a/testsuite/tests/prim-revapply/apply.ml
+++ b/testsuite/tests/prim-revapply/apply.ml
@@ -1,5 +1,5 @@
(* TEST
- flags="-w +48"
+ flags = "-w +48";
*)
external ( @@ ) : ('a -> 'b) -> 'a -> 'b = "%apply"
diff --git a/testsuite/tests/prim-revapply/revapply.ml b/testsuite/tests/prim-revapply/revapply.ml
index f65b109da5..341548c2eb 100644
--- a/testsuite/tests/prim-revapply/revapply.ml
+++ b/testsuite/tests/prim-revapply/revapply.ml
@@ -1,5 +1,5 @@
(* TEST
- flags="-w +48"
+ flags = "-w +48";
*)
external ( |> ) : 'a -> ('a -> 'b) -> 'b = "%revapply"
diff --git a/testsuite/tests/printing-types/disambiguation.ml b/testsuite/tests/printing-types/disambiguation.ml
index 12e244ec55..029076dcfd 100644
--- a/testsuite/tests/printing-types/disambiguation.ml
+++ b/testsuite/tests/printing-types/disambiguation.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a x = private [> `x] as 'a;;
diff --git a/testsuite/tests/printing-types/pr248.ml b/testsuite/tests/printing-types/pr248.ml
index 25d397260a..cad30c3805 100644
--- a/testsuite/tests/printing-types/pr248.ml
+++ b/testsuite/tests/printing-types/pr248.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(** Test that weak variables keep their names long enough *)
diff --git a/testsuite/tests/raise-counts/main.ml b/testsuite/tests/raise-counts/main.ml
index b881b83280..cee4d34e4b 100644
--- a/testsuite/tests/raise-counts/main.ml
+++ b/testsuite/tests/raise-counts/main.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "a.ml b.ml"
+ modules = "a.ml b.ml";
*)
(* PR#7702 *)
diff --git a/testsuite/tests/regression/gpr1623/gpr1623.ml b/testsuite/tests/regression/gpr1623/gpr1623.ml
index 80f844524d..51f5720352 100644
--- a/testsuite/tests/regression/gpr1623/gpr1623.ml
+++ b/testsuite/tests/regression/gpr1623/gpr1623.ml
@@ -1,6 +1,6 @@
(* TEST
- arguments = "???"
- *)
+ arguments = "???";
+*)
(* On Windows the runtime expand windows wildcards (asterisks and
* question marks).
diff --git a/testsuite/tests/regression/missing_set_of_closures/missing_set_of_closures.ml b/testsuite/tests/regression/missing_set_of_closures/missing_set_of_closures.ml
index c71250cdb2..6f4aa12589 100644
--- a/testsuite/tests/regression/missing_set_of_closures/missing_set_of_closures.ml
+++ b/testsuite/tests/regression/missing_set_of_closures/missing_set_of_closures.ml
@@ -1,20 +1,20 @@
(* TEST
-readonly_files = "a.ml b.ml b2.ml"
-subdirectories = "dir"
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-module = "a.ml"
-*** ocamlopt.byte
-module = "b.ml"
-**** ocamlopt.byte
-module = "b2.ml"
-***** copy
-src = "b.cmx b.cmi b2.cmx b2.cmi"
-dst = "dir/"
-****** cd
-cwd = "dir"
-******* ocamlopt.byte
-module = "c.ml"
-flags = "-w -58"
-******** check-ocamlopt.byte-output
+ readonly_files = "a.ml b.ml b2.ml";
+ subdirectories = "dir";
+ setup-ocamlopt.byte-build-env;
+ module = "a.ml";
+ ocamlopt.byte;
+ module = "b.ml";
+ ocamlopt.byte;
+ module = "b2.ml";
+ ocamlopt.byte;
+ src = "b.cmx b.cmi b2.cmx b2.cmi";
+ dst = "dir/";
+ copy;
+ cwd = "dir";
+ cd;
+ module = "c.ml";
+ flags = "-w -58";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
*)
diff --git a/testsuite/tests/regression/pr11887/pr11887.ml b/testsuite/tests/regression/pr11887/pr11887.ml
index 9e7fc6da65..858ae3e2dc 100644
--- a/testsuite/tests/regression/pr11887/pr11887.ml
+++ b/testsuite/tests/regression/pr11887/pr11887.ml
@@ -1,6 +1,6 @@
(* TEST
- * native
- ocamlopt_flags = "-dcmm-invariants"
+ ocamlopt_flags = "-dcmm-invariants";
+ native;
*)
module Constant = struct
diff --git a/testsuite/tests/regression/pr3612/pr3612.ml b/testsuite/tests/regression/pr3612/pr3612.ml
index c2ca8dbb7f..758011943a 100644
--- a/testsuite/tests/regression/pr3612/pr3612.ml
+++ b/testsuite/tests/regression/pr3612/pr3612.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "custom_finalize.c"
+ modules = "custom_finalize.c";
*)
type t
diff --git a/testsuite/tests/regression/pr7798/pr7798.ml b/testsuite/tests/regression/pr7798/pr7798.ml
index a91b4dc2fb..3f09de0768 100644
--- a/testsuite/tests/regression/pr7798/pr7798.ml
+++ b/testsuite/tests/regression/pr7798/pr7798.ml
@@ -1,8 +1,12 @@
(* TEST
- * bytecode
- * native
- * native
- ocamlopt_flags = "-compact"
+ {
+ bytecode;
+ }{
+ native;
+ }{
+ ocamlopt_flags = "-compact";
+ native;
+ }
*)
type mut2 = { mutable p: int; mutable q:int }
diff --git a/testsuite/tests/regression/pr8769/pr8769.ml b/testsuite/tests/regression/pr8769/pr8769.ml
index fa0c73f7a4..e6e5c3b4dd 100644
--- a/testsuite/tests/regression/pr8769/pr8769.ml
+++ b/testsuite/tests/regression/pr8769/pr8769.ml
@@ -1,32 +1,42 @@
(* TEST
-modules = "nocrypto.mli fortuna.ml rng.ml"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "nocrypto.mli"
-** ocamlc.byte
-flags = "-for-pack Nocrypto"
-module = "fortuna.ml"
-** ocamlc.byte
-flags = "-for-pack Nocrypto"
-module = "rng.ml"
-** ocamlc.byte
-program = "nocrypto.cmo"
-flags = "-pack"
-all_modules = "fortuna.cmo rng.cmo"
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-module = "nocrypto.mli"
-** ocamlopt.byte
-flags = "-for-pack Nocrypto"
-module = "fortuna.ml"
-** ocamlopt.byte
-flags = "-for-pack Nocrypto"
-module = "rng.ml"
-** ocamlopt.byte
-program = "nocrypto.cmx"
-flags = "-pack"
-all_modules = "fortuna.cmx rng.cmx"
-
+ modules = "nocrypto.mli fortuna.ml rng.ml";
+ {
+ setup-ocamlc.byte-build-env;
+ {
+ module = "nocrypto.mli";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Nocrypto";
+ module = "fortuna.ml";
+ ocamlc.byte;
+ }{
+ flags = "-for-pack Nocrypto";
+ module = "rng.ml";
+ ocamlc.byte;
+ }{
+ program = "nocrypto.cmo";
+ flags = "-pack";
+ all_modules = "fortuna.cmo rng.cmo";
+ ocamlc.byte;
+ }
+ }{
+ setup-ocamlopt.byte-build-env;
+ {
+ module = "nocrypto.mli";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Nocrypto";
+ module = "fortuna.ml";
+ ocamlopt.byte;
+ }{
+ flags = "-for-pack Nocrypto";
+ module = "rng.ml";
+ ocamlopt.byte;
+ }{
+ program = "nocrypto.cmx";
+ flags = "-pack";
+ all_modules = "fortuna.cmx rng.cmx";
+ ocamlopt.byte;
+ }
+ }
*)
diff --git a/testsuite/tests/regression/pr9326/gc_set.ml b/testsuite/tests/regression/pr9326/gc_set.ml
index 2570aec28e..e672e23c9d 100644
--- a/testsuite/tests/regression/pr9326/gc_set.ml
+++ b/testsuite/tests/regression/pr9326/gc_set.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
open Gc
diff --git a/testsuite/tests/reproducibility/cmis_on_file_system.ml b/testsuite/tests/reproducibility/cmis_on_file_system.ml
index d82f1b378a..25c4857ce0 100644
--- a/testsuite/tests/reproducibility/cmis_on_file_system.ml
+++ b/testsuite/tests/reproducibility/cmis_on_file_system.ml
@@ -1,22 +1,22 @@
(* TEST
- readonly_files = "cmis_on_file_system.ml cmis_on_file_system_companion.mli"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- compile_only = "true"
- module = "cmis_on_file_system.ml"
- flags="-bin-annot -no-alias-deps -w '-49'"
- *** script
- script= "mv cmis_on_file_system.cmt lone.cmt"
- **** ocamlc.byte
- module = "cmis_on_file_system_companion.mli"
- compile_only="true"
- ***** ocamlc.byte
- compile_only = "true"
- flags="-bin-annot -no-alias-deps -w '-49'"
- module="cmis_on_file_system.ml"
- ****** compare-binary-files
- program="cmis_on_file_system.cmt"
- program2="lone.cmt"
+ readonly_files = "cmis_on_file_system.ml cmis_on_file_system_companion.mli";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ module = "cmis_on_file_system.ml";
+ flags = "-bin-annot -no-alias-deps -w '-49'";
+ ocamlc.byte;
+ script = "mv cmis_on_file_system.cmt lone.cmt";
+ script;
+ module = "cmis_on_file_system_companion.mli";
+ compile_only = "true";
+ ocamlc.byte;
+ compile_only = "true";
+ flags = "-bin-annot -no-alias-deps -w '-49'";
+ module = "cmis_on_file_system.ml";
+ ocamlc.byte;
+ program = "cmis_on_file_system.cmt";
+ program2 = "lone.cmt";
+ compare-binary-files;
*)
diff --git a/testsuite/tests/required-external/main.ml b/testsuite/tests/required-external/main.ml
index 7764b822e9..c2c4bfb3d3 100644
--- a/testsuite/tests/required-external/main.ml
+++ b/testsuite/tests/required-external/main.ml
@@ -1,40 +1,40 @@
(* TEST
-modules = "file.ml"
-
-* setup-ocamlc.byte-build-env
-program = "${test_build_directory}/main.exe"
-** ocamlc.byte
-module = "file.ml"
-*** ocamlc.byte
-module = ""
-program = "lib.cma"
-flags = "-a"
-all_modules = "file.cmo"
-**** ocamlc.byte
-program = "${test_build_directory}/main.exe"
-all_modules = "lib.cma main.ml"
-flags = ""
-***** check-ocamlc.byte-output
-****** run
-******* check-program-output
-
-* setup-ocamlopt.byte-build-env
-program = "${test_build_directory}/main.exe"
-** ocamlopt.byte
-module = "file.ml"
-*** ocamlopt.byte
-module = ""
-program = "lib.cmxa"
-flags = "-a"
-all_modules = "file.cmx"
-**** ocamlopt.byte
-program = "${test_build_directory}/main.exe"
-all_modules = "lib.cmxa main.ml"
-flags = ""
-***** check-ocamlopt.byte-output
-****** run
-******* check-program-output
-
+ modules = "file.ml";
+ {
+ program = "${test_build_directory}/main.exe";
+ setup-ocamlc.byte-build-env;
+ module = "file.ml";
+ ocamlc.byte;
+ module = "";
+ program = "lib.cma";
+ flags = "-a";
+ all_modules = "file.cmo";
+ ocamlc.byte;
+ program = "${test_build_directory}/main.exe";
+ all_modules = "lib.cma main.ml";
+ flags = "";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ run;
+ check-program-output;
+ }{
+ program = "${test_build_directory}/main.exe";
+ setup-ocamlopt.byte-build-env;
+ module = "file.ml";
+ ocamlopt.byte;
+ module = "";
+ program = "lib.cmxa";
+ flags = "-a";
+ all_modules = "file.cmx";
+ ocamlopt.byte;
+ program = "${test_build_directory}/main.exe";
+ all_modules = "lib.cmxa main.ml";
+ flags = "";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+ }
*)
let () =
diff --git a/testsuite/tests/runtime-C-exceptions/test.ml b/testsuite/tests/runtime-C-exceptions/test.ml
index 17bf425227..7bc2671889 100644
--- a/testsuite/tests/runtime-C-exceptions/test.ml
+++ b/testsuite/tests/runtime-C-exceptions/test.ml
@@ -1,5 +1,5 @@
(* TEST
- modules = "stub_test.c"
+ modules = "stub_test.c";
*)
external failwith_from_ocaml : string -> 'a = "caml_failwith_value"
diff --git a/testsuite/tests/runtime-errors/stackoverflow.ml b/testsuite/tests/runtime-errors/stackoverflow.ml
index b617e64cdc..7919f604f3 100644
--- a/testsuite/tests/runtime-errors/stackoverflow.ml
+++ b/testsuite/tests/runtime-errors/stackoverflow.ml
@@ -1,6 +1,6 @@
(* TEST
-flags = "-w -a"
-ocamlrunparam += "l=100000"
+ flags = "-w -a";
+ ocamlrunparam += "l=100000";
*)
let rec f x =
diff --git a/testsuite/tests/runtime-errors/syserror.ml b/testsuite/tests/runtime-errors/syserror.ml
index d5230ad7cf..5cab8e3bd5 100644
--- a/testsuite/tests/runtime-errors/syserror.ml
+++ b/testsuite/tests/runtime-errors/syserror.ml
@@ -1,29 +1,34 @@
(* TEST
-
-flags = "-w -a"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** run
-exit_status = "2"
-**** libunix
-***** check-program-output
-reference = "${test_source_directory}/syserror.unix.reference"
-**** libwin32unix
-***** check-program-output
-reference = "${test_source_directory}/syserror.win32.reference"
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-*** run
-exit_status = "2"
-**** libunix
-***** check-program-output
-reference = "${test_source_directory}/syserror.unix.reference"
-**** libwin32unix
-***** check-program-output
-reference = "${test_source_directory}/syserror.win32.reference"
-
+ flags = "-w -a";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ exit_status = "2";
+ run;
+ {
+ libunix;
+ reference = "${test_source_directory}/syserror.unix.reference";
+ check-program-output;
+ }{
+ libwin32unix;
+ reference = "${test_source_directory}/syserror.win32.reference";
+ check-program-output;
+ }
+ }{
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ exit_status = "2";
+ run;
+ {
+ libunix;
+ reference = "${test_source_directory}/syserror.unix.reference";
+ check-program-output;
+ }{
+ libwin32unix;
+ reference = "${test_source_directory}/syserror.win32.reference";
+ check-program-output;
+ }
+ }
*)
let _ = Printexc.record_backtrace false
diff --git a/testsuite/tests/self-contained-toplevel/main.ml b/testsuite/tests/self-contained-toplevel/main.ml
index 51d44e09cd..c3342b6b40 100644
--- a/testsuite/tests/self-contained-toplevel/main.ml
+++ b/testsuite/tests/self-contained-toplevel/main.ml
@@ -1,21 +1,21 @@
(* TEST
-readonly_files = "foo.ml gen_cached_cmi.ml input.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "foo.ml"
-*** ocaml with ocamlcommon
-ocaml_script_as_argument = "true"
-test_file = "gen_cached_cmi.ml"
-arguments = "cached_cmi.ml"
-**** ocamlc.byte
-module = ""
-program = "${test_build_directory}/main.exe"
-libraries += "ocamlbytecomp ocamltoplevel"
-all_modules = "foo.cmo cached_cmi.ml main.ml"
-***** run
-set OCAMLLIB="${ocamlsrcdir}/stdlib"
-arguments = "input.ml"
-****** check-program-output
+ readonly_files = "foo.ml gen_cached_cmi.ml input.ml";
+ setup-ocamlc.byte-build-env;
+ module = "foo.ml";
+ ocamlc.byte;
+ ocaml_script_as_argument = "true";
+ test_file = "gen_cached_cmi.ml";
+ arguments = "cached_cmi.ml";
+ ocaml with ocamlcommon;
+ module = "";
+ program = "${test_build_directory}/main.exe";
+ libraries += "ocamlbytecomp ocamltoplevel";
+ all_modules = "foo.cmo cached_cmi.ml main.ml";
+ ocamlc.byte;
+ set OCAMLLIB = "${ocamlsrcdir}/stdlib";
+ arguments = "input.ml";
+ run;
+ check-program-output;
*)
let () =
diff --git a/testsuite/tests/shadow_include/artificial.ml b/testsuite/tests/shadow_include/artificial.ml
index f881c9994c..daed88f9f9 100644
--- a/testsuite/tests/shadow_include/artificial.ml
+++ b/testsuite/tests/shadow_include/artificial.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- flags = "-nostdlib -nopervasives"
+ flags = "-nostdlib -nopervasives";
+ expect;
*)
module Foo : sig
diff --git a/testsuite/tests/shadow_include/cannot_shadow_error.ml b/testsuite/tests/shadow_include/cannot_shadow_error.ml
index 11619ca833..0432f082a3 100644
--- a/testsuite/tests/shadow_include/cannot_shadow_error.ml
+++ b/testsuite/tests/shadow_include/cannot_shadow_error.ml
@@ -1,9 +1,9 @@
-(* TEST
-* setup-ocamlc.byte-build-env
-flags = "-nostdlib -nopervasives"
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Same example as in tests/typing-sigsubst/sigsubst.ml, but not as an
@@ -23,3 +23,11 @@ module type PrintableComparable = sig
include Printable
include Comparable with type t = t
end
+
+(* TEST
+ flags = "-nostdlib -nopervasives";
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/shadow_include/ghosts.ml b/testsuite/tests/shadow_include/ghosts.ml
index 09051a6561..48aa4c9276 100644
--- a/testsuite/tests/shadow_include/ghosts.ml
+++ b/testsuite/tests/shadow_include/ghosts.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module C = struct
diff --git a/testsuite/tests/shadow_include/shadow_all.ml b/testsuite/tests/shadow_include/shadow_all.ml
index 5ff0d99c90..823f447ffe 100644
--- a/testsuite/tests/shadow_include/shadow_all.ml
+++ b/testsuite/tests/shadow_include/shadow_all.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- flags = "-nopervasives" (* can't pass -nostdlib because of objects. *)
+ flags = "-nopervasives"; (* can't pass -nostdlib because of objects. *)
+ expect;
*)
(* Signatures *)
diff --git a/testsuite/tests/shapes/comp_units.ml b/testsuite/tests/shapes/comp_units.ml
index 3a1b9494a1..c4da2e8b85 100644
--- a/testsuite/tests/shapes/comp_units.ml
+++ b/testsuite/tests/shapes/comp_units.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
(* Make sure that shapes of compilation units are never eagerly loaded,
diff --git a/testsuite/tests/shapes/functors.ml b/testsuite/tests/shapes/functors.ml
index 613e2fae88..fee5c96244 100644
--- a/testsuite/tests/shapes/functors.ml
+++ b/testsuite/tests/shapes/functors.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
module type S = sig
diff --git a/testsuite/tests/shapes/incl_md_typeof.ml b/testsuite/tests/shapes/incl_md_typeof.ml
index 95b952ff38..b03b7ec673 100644
--- a/testsuite/tests/shapes/incl_md_typeof.ml
+++ b/testsuite/tests/shapes/incl_md_typeof.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
module Foo : sig
diff --git a/testsuite/tests/shapes/open_arg.ml b/testsuite/tests/shapes/open_arg.ml
index a422cc8ece..ef98e68cf8 100644
--- a/testsuite/tests/shapes/open_arg.ml
+++ b/testsuite/tests/shapes/open_arg.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
module type Make = functor (I : sig end) -> sig
diff --git a/testsuite/tests/shapes/open_struct.ml b/testsuite/tests/shapes/open_struct.ml
index cacd030094..fb3199ea9a 100644
--- a/testsuite/tests/shapes/open_struct.ml
+++ b/testsuite/tests/shapes/open_struct.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
(* Everything that couldn't go anywhere else. *)
diff --git a/testsuite/tests/shapes/recmodules.ml b/testsuite/tests/shapes/recmodules.ml
index c6f743e4b4..f852358436 100644
--- a/testsuite/tests/shapes/recmodules.ml
+++ b/testsuite/tests/shapes/recmodules.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
(**********)
diff --git a/testsuite/tests/shapes/rotor_example.ml b/testsuite/tests/shapes/rotor_example.ml
index 5802595844..924d63b553 100644
--- a/testsuite/tests/shapes/rotor_example.ml
+++ b/testsuite/tests/shapes/rotor_example.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
(* We depart slightly from the example in the PLDI'19 paper, which actually
diff --git a/testsuite/tests/shapes/simple.ml b/testsuite/tests/shapes/simple.ml
index 7e833ce8b8..421a66b7b8 100644
--- a/testsuite/tests/shapes/simple.ml
+++ b/testsuite/tests/shapes/simple.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
let x = ()
diff --git a/testsuite/tests/shapes/typeof_include.ml b/testsuite/tests/shapes/typeof_include.ml
index 5dd60fab6e..724e60281e 100644
--- a/testsuite/tests/shapes/typeof_include.ml
+++ b/testsuite/tests/shapes/typeof_include.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-dshape"
- * expect
+ flags = "-dshape";
+ expect;
*)
module type S = sig
diff --git a/testsuite/tests/statmemprof/alloc_counts.ml b/testsuite/tests/statmemprof/alloc_counts.ml
index de0d1e9e49..ce8a90fc04 100644
--- a/testsuite/tests/statmemprof/alloc_counts.ml
+++ b/testsuite/tests/statmemprof/alloc_counts.ml
@@ -1,6 +1,6 @@
(* TEST
-* skip
-reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
module MP = Gc.Memprof
diff --git a/testsuite/tests/statmemprof/arrays_in_major.ml b/testsuite/tests/statmemprof/arrays_in_major.ml
index eb627324ba..1dd253dcd6 100644
--- a/testsuite/tests/statmemprof/arrays_in_major.ml
+++ b/testsuite/tests/statmemprof/arrays_in_major.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-g"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ flags = "-g";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/arrays_in_minor.ml b/testsuite/tests/statmemprof/arrays_in_minor.ml
index 4359642d0e..2ef7854902 100644
--- a/testsuite/tests/statmemprof/arrays_in_minor.ml
+++ b/testsuite/tests/statmemprof/arrays_in_minor.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-g"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ flags = "-g";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/blocking_in_callback.ml b/testsuite/tests/statmemprof/blocking_in_callback.ml
index e1e40f1fb6..72d59e4f32 100644
--- a/testsuite/tests/statmemprof/blocking_in_callback.ml
+++ b/testsuite/tests/statmemprof/blocking_in_callback.ml
@@ -1,10 +1,16 @@
(* TEST
-* hassysthreads
-include systhreads
-* skip
-reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
-** bytecode
-** native
+ {
+ include systhreads;
+ hassysthreads;
+ }{
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
+ {
+ bytecode;
+ }{
+ native;
+ }
+ }
*)
let cnt = ref 0
diff --git a/testsuite/tests/statmemprof/callstacks.ml b/testsuite/tests/statmemprof/callstacks.ml
index e864a50019..41263578f4 100644
--- a/testsuite/tests/statmemprof/callstacks.ml
+++ b/testsuite/tests/statmemprof/callstacks.ml
@@ -1,19 +1,28 @@
(* TEST
- flags = "-g -w -5"
-
- * flat-float-array
- reference = "${test_source_directory}/callstacks.flat-float-array.reference"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
- ** native
- ** bytecode
-
- * no-flat-float-array
- reference = "${test_source_directory}/callstacks.no-flat-float-array.reference"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
- ** native
- ** bytecode
+ flags = "-g -w -5";
+ {
+ reference = "${test_source_directory}/callstacks.flat-float-array.reference";
+ flat-float-array;
+ }{
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
+ {
+ native;
+ }{
+ bytecode;
+ }
+ }{
+ reference = "${test_source_directory}/callstacks.no-flat-float-array.reference";
+ no-flat-float-array;
+ }{
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
+ {
+ native;
+ }{
+ bytecode;
+ }
+ }
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/comballoc.ml b/testsuite/tests/statmemprof/comballoc.ml
index 60ca4a0123..ae35807ba5 100644
--- a/testsuite/tests/statmemprof/comballoc.ml
+++ b/testsuite/tests/statmemprof/comballoc.ml
@@ -1,11 +1,14 @@
(* TEST
- flags = "-g"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
- ** bytecode
- reference = "${test_source_directory}/comballoc.byte.reference"
- ** native
- reference = "${test_source_directory}/comballoc.opt.reference"
+ flags = "-g";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
+ {
+ reference = "${test_source_directory}/comballoc.byte.reference";
+ bytecode;
+ }{
+ reference = "${test_source_directory}/comballoc.opt.reference";
+ native;
+ }
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/custom.ml b/testsuite/tests/statmemprof/custom.ml
index 41cf902ec8..71e96d36d7 100644
--- a/testsuite/tests/statmemprof/custom.ml
+++ b/testsuite/tests/statmemprof/custom.ml
@@ -1,6 +1,6 @@
(* TEST
-* skip
-reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/exception_callback.ml b/testsuite/tests/statmemprof/exception_callback.ml
index f9f02f690f..fb0cedf87b 100644
--- a/testsuite/tests/statmemprof/exception_callback.ml
+++ b/testsuite/tests/statmemprof/exception_callback.ml
@@ -1,7 +1,7 @@
(* TEST
- exit_status = "2"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ exit_status = "2";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/exception_callback_minor.ml b/testsuite/tests/statmemprof/exception_callback_minor.ml
index 0bb37782be..d389bc5ceb 100644
--- a/testsuite/tests/statmemprof/exception_callback_minor.ml
+++ b/testsuite/tests/statmemprof/exception_callback_minor.ml
@@ -1,7 +1,7 @@
(* TEST
- exit_status = "2"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ exit_status = "2";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/intern.ml b/testsuite/tests/statmemprof/intern.ml
index bebcc3c8ff..f350826137 100644
--- a/testsuite/tests/statmemprof/intern.ml
+++ b/testsuite/tests/statmemprof/intern.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-g"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ flags = "-g";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/lists_in_minor.ml b/testsuite/tests/statmemprof/lists_in_minor.ml
index d08716c71b..24ad6316f9 100644
--- a/testsuite/tests/statmemprof/lists_in_minor.ml
+++ b/testsuite/tests/statmemprof/lists_in_minor.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = "-g"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ flags = "-g";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/minor_no_postpone.ml b/testsuite/tests/statmemprof/minor_no_postpone.ml
index 21c8bfb244..395070a2c8 100644
--- a/testsuite/tests/statmemprof/minor_no_postpone.ml
+++ b/testsuite/tests/statmemprof/minor_no_postpone.ml
@@ -1,7 +1,7 @@
(* TEST
- modules = "minor_no_postpone_stub.c"
- * skip
- reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
+ modules = "minor_no_postpone_stub.c";
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
*)
open Gc.Memprof
diff --git a/testsuite/tests/statmemprof/moved_while_blocking.ml b/testsuite/tests/statmemprof/moved_while_blocking.ml
index bb8dfc9848..197c84b153 100644
--- a/testsuite/tests/statmemprof/moved_while_blocking.ml
+++ b/testsuite/tests/statmemprof/moved_while_blocking.ml
@@ -1,10 +1,16 @@
(* TEST
-* hassysthreads
-include systhreads
-* skip
-reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
-** bytecode
-** native
+ {
+ include systhreads;
+ hassysthreads;
+ }{
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
+ {
+ bytecode;
+ }{
+ native;
+ }
+ }
*)
let t2_begin = Atomic.make false
diff --git a/testsuite/tests/statmemprof/thread_exit_in_callback.ml b/testsuite/tests/statmemprof/thread_exit_in_callback.ml
index 28e2aabb8b..66d7c60183 100644
--- a/testsuite/tests/statmemprof/thread_exit_in_callback.ml
+++ b/testsuite/tests/statmemprof/thread_exit_in_callback.ml
@@ -1,10 +1,16 @@
(* TEST
-* hassysthreads
-include systhreads
-* skip
-reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634"
-** bytecode
-** native
+ {
+ include systhreads;
+ hassysthreads;
+ }{
+ reason = "port stat-mem-prof : https://github.com/ocaml/ocaml/pull/8634";
+ skip;
+ {
+ bytecode;
+ }{
+ native;
+ }
+ }
*)
let _ =
diff --git a/testsuite/tests/tmc/ambiguities.ml b/testsuite/tests/tmc/ambiguities.ml
index 55d99fe236..0f846587cd 100644
--- a/testsuite/tests/tmc/ambiguities.ml
+++ b/testsuite/tests/tmc/ambiguities.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
type 'a tree =
| Leaf of 'a
| Node of 'a tree * 'a tree
diff --git a/testsuite/tests/tmc/other_features.ml b/testsuite/tests/tmc/other_features.ml
index 0183b01858..d75e1dab0c 100644
--- a/testsuite/tests/tmc/other_features.ml
+++ b/testsuite/tests/tmc/other_features.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
module Non_recursive_let_bad = struct
type 'a t =
diff --git a/testsuite/tests/tmc/partial_application.ml b/testsuite/tests/tmc/partial_application.ml
index 7721416f82..35ddd35e8b 100644
--- a/testsuite/tests/tmc/partial_application.ml
+++ b/testsuite/tests/tmc/partial_application.ml
@@ -1,6 +1,6 @@
-(* TEST
- * bytecode
- * native
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
type t = Ret of (unit -> unit) | Next of t
@@ -17,3 +17,11 @@ let () =
match g ~first:true with
| Next (Ret f) -> f ()
| _ -> assert false
+
+(* TEST
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
diff --git a/testsuite/tests/tmc/readable_output.ml b/testsuite/tests/tmc/readable_output.ml
index 1e931d7720..0cf0140a02 100644
--- a/testsuite/tests/tmc/readable_output.ml
+++ b/testsuite/tests/tmc/readable_output.ml
@@ -1,6 +1,7 @@
(* TEST
- flags = "-dlambda -dno-unique-ids"
- * expect *)
+ flags = "-dlambda -dno-unique-ids";
+ expect;
+*)
(* Check that the code produced by TMC reads reasonably well. *)
let[@tail_mod_cons] rec map f = function
diff --git a/testsuite/tests/tmc/semantic.ml b/testsuite/tests/tmc/semantic.ml
index 32ffed168a..3e99e5a947 100644
--- a/testsuite/tests/tmc/semantic.ml
+++ b/testsuite/tests/tmc/semantic.ml
@@ -1,5 +1,5 @@
(* TEST
- * bytecode
+ bytecode;
*)
(* Test that evaluation order of constructor arguments is preserved.
diff --git a/testsuite/tests/tmc/stack_space.ml b/testsuite/tests/tmc/stack_space.ml
index 664cc2e668..45499db65a 100644
--- a/testsuite/tests/tmc/stack_space.ml
+++ b/testsuite/tests/tmc/stack_space.ml
@@ -1,13 +1,13 @@
(* TEST
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- module = "stack_space.ml"
- *** ocamlc.byte
- program = "./test.byte.exe"
- all_modules = "stack_space.cmo"
- module = ""
- **** run
- ocamlrunparam += ",l=300"
+ setup-ocamlc.byte-build-env;
+ module = "stack_space.ml";
+ ocamlc.byte;
+ program = "./test.byte.exe";
+ all_modules = "stack_space.cmo";
+ module = "";
+ ocamlc.byte;
+ ocamlrunparam += ",l=300";
+ run;
*)
(* large with respect to the stack-size=300 setting above *)
diff --git a/testsuite/tests/tmc/tupled_function.ml b/testsuite/tests/tmc/tupled_function.ml
index 605bab9886..5ed4172f9a 100644
--- a/testsuite/tests/tmc/tupled_function.ml
+++ b/testsuite/tests/tmc/tupled_function.ml
@@ -1,6 +1,9 @@
(* TEST
- * bytecode
- * native
+ {
+ bytecode;
+ }{
+ native;
+ }
*)
type 'a t =
| N of 'a
diff --git a/testsuite/tests/tmc/tupled_function_calls.ml b/testsuite/tests/tmc/tupled_function_calls.ml
index 1ce7fa5f6e..a99354def4 100644
--- a/testsuite/tests/tmc/tupled_function_calls.ml
+++ b/testsuite/tests/tmc/tupled_function_calls.ml
@@ -1,6 +1,6 @@
-(* TEST
- * bytecode
- * native
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
(* this works as expected *)
@@ -19,3 +19,11 @@ let[@tail_mod_cons] rec tupled_map_not_direct (f, li) =
| x :: xs ->
let pair = (f, xs) in
f x :: (tupled_map_not_direct[@tailcall true]) pair
+
+(* TEST
+ {
+ bytecode;
+ }{
+ native;
+ }
+*)
diff --git a/testsuite/tests/tmc/usage_warnings.ml b/testsuite/tests/tmc/usage_warnings.ml
index 966b65983f..009210a613 100644
--- a/testsuite/tests/tmc/usage_warnings.ml
+++ b/testsuite/tests/tmc/usage_warnings.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
(* build-up *)
let[@tail_mod_cons] rec append xs ys =
diff --git a/testsuite/tests/tool-caml-tex/ellipses.ml b/testsuite/tests/tool-caml-tex/ellipses.ml
index 75f717c88a..bc0105c209 100644
--- a/testsuite/tests/tool-caml-tex/ellipses.ml
+++ b/testsuite/tests/tool-caml-tex/ellipses.ml
@@ -1,13 +1,12 @@
(* TEST
- reference="${test_source_directory}/ellipses.reference"
- output="ellipses.output"
- readonly_files = "${test_source_directory}/ellipses.input"
- script = "${ocamlrun} ${ocamlsrcdir}/tools/ocamltex \
- -repo-root ${ocamlsrcdir} ${readonly_files} -o ${output}"
- * hasstr
- ** hasunix
- *** native-compiler
- **** shared-libraries
- ***** script with unix,str
- ****** check-program-output
+ reference = "${test_source_directory}/ellipses.reference";
+ output = "ellipses.output";
+ readonly_files = "${test_source_directory}/ellipses.input";
+ script = "${ocamlrun} ${ocamlsrcdir}/tools/ocamltex -repo-root ${ocamlsrcdir} ${readonly_files} -o ${output}";
+ hasstr;
+ hasunix;
+ native-compiler;
+ shared-libraries;
+ script with unix, str;
+ check-program-output;
*)
diff --git a/testsuite/tests/tool-caml-tex/redirections.ml b/testsuite/tests/tool-caml-tex/redirections.ml
index f78875c937..072f11d9f5 100644
--- a/testsuite/tests/tool-caml-tex/redirections.ml
+++ b/testsuite/tests/tool-caml-tex/redirections.ml
@@ -1,18 +1,19 @@
(* TEST
- reference="${test_source_directory}/redirections.reference"
- output="redirections.output"
- readonly_files = "${test_source_directory}/redirections.input"
- script = "${ocamlrun} ${ocamlsrcdir}/tools/ocamltex \
- -repo-root ${ocamlsrcdir} ${readonly_files} -o ${output}"
- * hasstr
- ** hasunix
- *** native-compiler
- **** shared-libraries
- ***** script with unix,str
- ****** check-program-output
- **** no-shared-libraries
- ***** script with unix,str
- script = "${ocamlsrcdir}/tools/ocamltex \
- -repo-root ${ocamlsrcdir} ${readonly_files} -o ${output}"
- ****** check-program-output
+ reference = "${test_source_directory}/redirections.reference";
+ output = "redirections.output";
+ readonly_files = "${test_source_directory}/redirections.input";
+ script = "${ocamlrun} ${ocamlsrcdir}/tools/ocamltex -repo-root ${ocamlsrcdir} ${readonly_files} -o ${output}";
+ hasstr;
+ hasunix;
+ native-compiler;
+ {
+ shared-libraries;
+ script with unix, str;
+ check-program-output;
+ }{
+ no-shared-libraries;
+ script = "${ocamlsrcdir}/tools/ocamltex -repo-root ${ocamlsrcdir} ${readonly_files} -o ${output}";
+ script with unix, str;
+ check-program-output;
+ }
*)
diff --git a/testsuite/tests/tool-command-line/test-o-one-c-file.ml b/testsuite/tests/tool-command-line/test-o-one-c-file.ml
index 0d35166787..04e949255b 100644
--- a/testsuite/tests/tool-command-line/test-o-one-c-file.ml
+++ b/testsuite/tests/tool-command-line/test-o-one-c-file.ml
@@ -1,14 +1,14 @@
(* TEST
-readonly_files = "hello.c"
-* setup-ocamlopt.opt-build-env
-** script
-script = "mkdir outputdir"
-*** ocamlopt.opt
-all_modules = "hello.c"
-compile_only = "true"
-flags = "-o outputdir/hello.${objext}"
-**** file-exists
-file = "outputdir/hello.${objext}"
+ readonly_files = "hello.c";
+ setup-ocamlopt.opt-build-env;
+ script = "mkdir outputdir";
+ script;
+ all_modules = "hello.c";
+ compile_only = "true";
+ flags = "-o outputdir/hello.${objext}";
+ ocamlopt.opt;
+ file = "outputdir/hello.${objext}";
+ file-exists;
*)
(*
diff --git a/testsuite/tests/tool-command-line/test-o-several-files.ml b/testsuite/tests/tool-command-line/test-o-several-files.ml
index 090ace5043..8c5f95eedf 100644
--- a/testsuite/tests/tool-command-line/test-o-several-files.ml
+++ b/testsuite/tests/tool-command-line/test-o-several-files.ml
@@ -1,11 +1,11 @@
(* TEST
-* setup-ocamlopt.opt-build-env
-** ocamlopt.opt
-all_modules = "foo.c bar.c"
-compile_only = "true"
-flags = "-o outputdir/baz.${objext}"
-ocamlopt_opt_exit_status = "2"
-*** check-ocamlopt.opt-output
+ setup-ocamlopt.opt-build-env;
+ all_modules = "foo.c bar.c";
+ compile_only = "true";
+ flags = "-o outputdir/baz.${objext}";
+ ocamlopt_opt_exit_status = "2";
+ ocamlopt.opt;
+ check-ocamlopt.opt-output;
*)
(*
diff --git a/testsuite/tests/tool-command-line/test-unknown-file.ml b/testsuite/tests/tool-command-line/test-unknown-file.ml
index 148220e5ce..2d09383701 100644
--- a/testsuite/tests/tool-command-line/test-unknown-file.ml
+++ b/testsuite/tests/tool-command-line/test-unknown-file.ml
@@ -1,31 +1,30 @@
(* TEST
-
-readonly_files = "unknown-file"
-
-* setup-ocamlc.byte-build-env
-compiler_output = "compiler-output.raw"
-** ocamlc.byte
-all_modules = ""
-flags = "unknown-file"
-ocamlc_byte_exit_status = "2"
-*** script
-script = "grep 'know what to do with unknown-file' compiler-output.raw"
-output = "compiler-output"
-**** check-ocamlc.byte-output
-compiler_output = "compiler-output"
-
-* setup-ocamlopt.byte-build-env
-compiler_output = "compiler-output.raw"
-** ocamlopt.byte
-all_modules = ""
-flags = "unknown-file"
-ocamlopt_byte_exit_status = "2"
-*** script
-script = "grep 'know what to do with unknown-file' compiler-output.raw"
-output = "compiler-output"
-**** check-ocamlopt.byte-output
-compiler_output = "compiler-output"
-
+ readonly_files = "unknown-file";
+ {
+ compiler_output = "compiler-output.raw";
+ setup-ocamlc.byte-build-env;
+ all_modules = "";
+ flags = "unknown-file";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ script = "grep 'know what to do with unknown-file' compiler-output.raw";
+ output = "compiler-output";
+ script;
+ compiler_output = "compiler-output";
+ check-ocamlc.byte-output;
+ }{
+ compiler_output = "compiler-output.raw";
+ setup-ocamlopt.byte-build-env;
+ all_modules = "";
+ flags = "unknown-file";
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ script = "grep 'know what to do with unknown-file' compiler-output.raw";
+ output = "compiler-output";
+ script;
+ compiler_output = "compiler-output";
+ check-ocamlopt.byte-output;
+ }
*)
(*
diff --git a/testsuite/tests/tool-debugger/basic/debuggee.ml b/testsuite/tests/tool-debugger/basic/debuggee.ml
index 91ad3c21dc..a5320cf591 100644
--- a/testsuite/tests/tool-debugger/basic/debuggee.ml
+++ b/testsuite/tests/tool-debugger/basic/debuggee.ml
@@ -1,14 +1,14 @@
(* TEST
-set foo = "bar"
-flags += " -g "
-ocamldebug_script = "${test_source_directory}/input_script"
-* debugger
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-***** check-ocamlc.byte-output
-****** ocamldebug
-******* check-program-output
+ set foo = "bar";
+ flags += " -g ";
+ ocamldebug_script = "${test_source_directory}/input_script";
+ debugger;
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ ocamldebug;
+ check-program-output;
*)
print_endline Sys.argv.(1);;
diff --git a/testsuite/tests/tool-debugger/dynlink/host.ml b/testsuite/tests/tool-debugger/dynlink/host.ml
index f46ef8a022..ef12572f68 100644
--- a/testsuite/tests/tool-debugger/dynlink/host.ml
+++ b/testsuite/tests/tool-debugger/dynlink/host.ml
@@ -1,35 +1,32 @@
(* TEST
-
-include dynlink
-readonly_files = "host.ml plugin.ml"
-libraries = ""
-
-flags += " -g "
-ocamldebug_script = "${test_source_directory}/input_script"
-
-* debugger
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-module = "host.ml"
-***** ocamlc.byte
-module = "plugin.ml"
-****** ocamlc.byte
-module = ""
-all_modules = "host.cmo"
-program = "${test_build_directory}/host.byte"
-libraries = "dynlink"
-
-******* run
-output = "host.output"
-******** check-program-output
-reference = "${test_source_directory}/host.reference"
-
-******** ocamldebug
-output = "host.debug.output"
-********* check-program-output
-reference = "${test_source_directory}/host.debug.reference"
-
+ include dynlink;
+ readonly_files = "host.ml plugin.ml";
+ libraries = "";
+ flags += " -g ";
+ ocamldebug_script = "${test_source_directory}/input_script";
+ debugger;
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ module = "host.ml";
+ ocamlc.byte;
+ module = "plugin.ml";
+ ocamlc.byte;
+ module = "";
+ all_modules = "host.cmo";
+ program = "${test_build_directory}/host.byte";
+ libraries = "dynlink";
+ ocamlc.byte;
+ output = "host.output";
+ run;
+ {
+ reference = "${test_source_directory}/host.reference";
+ check-program-output;
+ }{
+ output = "host.debug.output";
+ ocamldebug;
+ reference = "${test_source_directory}/host.debug.reference";
+ check-program-output;
+ }
*)
let () = print_endline "hello host"; Dynlink.loadfile "plugin.cmo"
diff --git a/testsuite/tests/tool-debugger/find-artifacts/debuggee.ml b/testsuite/tests/tool-debugger/find-artifacts/debuggee.ml
index 70aee3ff04..37544574d9 100644
--- a/testsuite/tests/tool-debugger/find-artifacts/debuggee.ml
+++ b/testsuite/tests/tool-debugger/find-artifacts/debuggee.ml
@@ -1,25 +1,25 @@
(* TEST
-ocamldebug_script = "${test_source_directory}/input_script"
-* debugger
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** script
-script = "mkdir out"
-***** ocamlc.byte
-flags = "-g -c"
-all_modules = "${test_source_directory}/in/blah.ml"
-program = "out/blah.cmo"
-****** ocamlc.byte
-program = "out/foo.cmo"
-flags = "-I out -g -c"
-all_modules = "${test_source_directory}/in/foo.ml"
-******* ocamlc.byte
-all_modules = "out/blah.cmo out/foo.cmo"
-flags = " -g "
-program = "debuggee.exe"
-******** check-ocamlc.byte-output
-********* ocamldebug
-********** check-program-output
+ ocamldebug_script = "${test_source_directory}/input_script";
+ debugger;
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ script = "mkdir out";
+ script;
+ flags = "-g -c";
+ all_modules = "${test_source_directory}/in/blah.ml";
+ program = "out/blah.cmo";
+ ocamlc.byte;
+ program = "out/foo.cmo";
+ flags = "-I out -g -c";
+ all_modules = "${test_source_directory}/in/foo.ml";
+ ocamlc.byte;
+ all_modules = "out/blah.cmo out/foo.cmo";
+ flags = " -g ";
+ program = "debuggee.exe";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ ocamldebug;
+ check-program-output;
*)
(* This file only contains the specification of how to run the test *)
diff --git a/testsuite/tests/tool-debugger/module_named_main/main.ml b/testsuite/tests/tool-debugger/module_named_main/main.ml
index 25eebe7c02..8c374be083 100644
--- a/testsuite/tests/tool-debugger/module_named_main/main.ml
+++ b/testsuite/tests/tool-debugger/module_named_main/main.ml
@@ -1,13 +1,13 @@
-(* TEST
-flags += " -g "
-ocamldebug_script = "${test_source_directory}/input_script"
-* debugger
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-***** check-ocamlc.byte-output
-****** ocamldebug
-******* check-program-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
*)
module Submodule = struct
@@ -28,3 +28,15 @@ let debug () =
;;
debug ();
+
+(* TEST
+ flags += " -g ";
+ ocamldebug_script = "${test_source_directory}/input_script";
+ debugger;
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ ocamldebug;
+ check-program-output;
+*)
diff --git a/testsuite/tests/tool-debugger/no_debug_event/noev.ml b/testsuite/tests/tool-debugger/no_debug_event/noev.ml
index 4eb334ea84..746b310b96 100644
--- a/testsuite/tests/tool-debugger/no_debug_event/noev.ml
+++ b/testsuite/tests/tool-debugger/no_debug_event/noev.ml
@@ -1,28 +1,28 @@
(* TEST
-readonly_files = "a.ml b.ml"
-ocamldebug_script = "${test_source_directory}/input_script"
-* debugger
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-module = "a.ml"
-flags = "-g -for-pack foo"
-***** ocamlc.byte
-module = ""
-all_modules = "a.cmo"
-program = "foo.cmo"
-flags = "-g -pack"
-****** ocamlc.byte
-module = "b.ml"
-flags = " -g "
-******* ocamlc.byte
-module = ""
-flags = " -g "
-all_modules = "foo.cmo b.cmo"
-program = "${test_build_directory}/noev.exe"
-******** check-ocamlc.byte-output
-********* ocamldebug
-********** check-program-output
+ readonly_files = "a.ml b.ml";
+ ocamldebug_script = "${test_source_directory}/input_script";
+ debugger;
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ module = "a.ml";
+ flags = "-g -for-pack foo";
+ ocamlc.byte;
+ module = "";
+ all_modules = "a.cmo";
+ program = "foo.cmo";
+ flags = "-g -pack";
+ ocamlc.byte;
+ module = "b.ml";
+ flags = " -g ";
+ ocamlc.byte;
+ module = "";
+ flags = " -g ";
+ all_modules = "foo.cmo b.cmo";
+ program = "${test_build_directory}/noev.exe";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ ocamldebug;
+ check-program-output;
*)
(* This file only contains the specification of how to run the test *)
diff --git a/testsuite/tests/tool-debugger/printer/debuggee.ml b/testsuite/tests/tool-debugger/printer/debuggee.ml
index f22a4bd50f..ab5f293a3f 100644
--- a/testsuite/tests/tool-debugger/printer/debuggee.ml
+++ b/testsuite/tests/tool-debugger/printer/debuggee.ml
@@ -1,17 +1,17 @@
-(* TEST
-flags += " -g "
-ocamldebug_script = "${test_source_directory}/input_script"
-readonly_files = "printer.ml"
-include debugger
-* debugger
-** shared-libraries
-*** setup-ocamlc.byte-build-env
-**** ocamlc.byte
-module = "printer.ml"
-**** ocamlc.byte
-***** check-ocamlc.byte-output
-****** ocamldebug
-******* check-program-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
*)
let f x =
@@ -20,3 +20,22 @@ let f x =
done
let () = f 3
+
+(* TEST
+ flags += " -g ";
+ ocamldebug_script = "${test_source_directory}/input_script";
+ readonly_files = "printer.ml";
+ include debugger;
+ debugger;
+ shared-libraries;
+ setup-ocamlc.byte-build-env;
+ {
+ module = "printer.ml";
+ ocamlc.byte;
+ }{
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ ocamldebug;
+ check-program-output;
+ }
+*)
diff --git a/testsuite/tests/tool-dumpobj/test.ml b/testsuite/tests/tool-dumpobj/test.ml
index 240732e361..cf83b7d84a 100644
--- a/testsuite/tests/tool-dumpobj/test.ml
+++ b/testsuite/tests/tool-dumpobj/test.ml
@@ -1,10 +1,8 @@
(* TEST
-
-flags = "-nopervasives"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** run
-**** check-program-output
+ flags = "-nopervasives";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ run;
+ check-program-output;
*)
let x = 42L
diff --git a/testsuite/tests/tool-expect-test/clean_typer.ml b/testsuite/tests/tool-expect-test/clean_typer.ml
index 535ce8d8f1..0e000ad615 100644
--- a/testsuite/tests/tool-expect-test/clean_typer.ml
+++ b/testsuite/tests/tool-expect-test/clean_typer.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Variants = struct
diff --git a/testsuite/tests/tool-lexyacc/calc.ml b/testsuite/tests/tool-lexyacc/calc.ml
index ec2bb79572..f0ded38605 100644
--- a/testsuite/tests/tool-lexyacc/calc.ml
+++ b/testsuite/tests/tool-lexyacc/calc.ml
@@ -1,9 +1,9 @@
(* TEST
- modules = "calc_parser.mly calc_lexer.mll"
- ocamllex_flags = " -q "
- ocamlyacc_flags = " -q "
- readonly_files = "calc_input.txt"
- stdin = "calc_input.txt"
+ modules = "calc_parser.mly calc_lexer.mll";
+ ocamllex_flags = " -q ";
+ ocamlyacc_flags = " -q ";
+ readonly_files = "calc_input.txt";
+ stdin = "calc_input.txt";
*)
let _ =
try
diff --git a/testsuite/tests/tool-lexyacc/chars.mll b/testsuite/tests/tool-lexyacc/chars.mll
index b91f261859..3bc3ffdf17 100644
--- a/testsuite/tests/tool-lexyacc/chars.mll
+++ b/testsuite/tests/tool-lexyacc/chars.mll
@@ -1,5 +1,5 @@
(* TEST
- ocamllex_flags = " -q "
+ ocamllex_flags = " -q ";
*)
{
diff --git a/testsuite/tests/tool-lexyacc/csets.mll b/testsuite/tests/tool-lexyacc/csets.mll
index 91e9e35fb5..a1aefeee43 100644
--- a/testsuite/tests/tool-lexyacc/csets.mll
+++ b/testsuite/tests/tool-lexyacc/csets.mll
@@ -1,5 +1,5 @@
(* TEST
- ocamllex_flags = " -q "
+ ocamllex_flags = " -q ";
*)
let digit = ['0'-'9']
diff --git a/testsuite/tests/tool-lexyacc/mpr7760.mll b/testsuite/tests/tool-lexyacc/mpr7760.mll
index bffca2d570..7f3f36dd26 100644
--- a/testsuite/tests/tool-lexyacc/mpr7760.mll
+++ b/testsuite/tests/tool-lexyacc/mpr7760.mll
@@ -1,5 +1,5 @@
(* TEST
- ocamllex_flags = " -q "
+ ocamllex_flags = " -q ";
*)
rule read = shortest
diff --git a/testsuite/tests/tool-lexyacc/parsecheck.mly b/testsuite/tests/tool-lexyacc/parsecheck.mly
index 2acb15f377..57dba9af4e 100644
--- a/testsuite/tests/tool-lexyacc/parsecheck.mly
+++ b/testsuite/tests/tool-lexyacc/parsecheck.mly
@@ -1,5 +1,5 @@
/* TEST
- ocamlyacc_flags = " -q --strict "
+ ocamlyacc_flags = " -q --strict ";
*/
%token <unit> SIMPLE
%type <unit> silly
diff --git a/testsuite/tests/tool-ocaml-annot/failure.ml b/testsuite/tests/tool-ocaml-annot/failure.ml
index fd9ad0fbe6..4afef598f6 100644
--- a/testsuite/tests/tool-ocaml-annot/failure.ml
+++ b/testsuite/tests/tool-ocaml-annot/failure.ml
@@ -1,17 +1,17 @@
(* TEST
-
-flags = "-annot"
-script = "sh ${test_source_directory}/check-annot.sh failure"
-ocamlc_byte_exit_status = "2"
-ocamlopt_byte_exit_status = "2"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** script
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-*** script
+ flags = "-annot";
+ script = "sh ${test_source_directory}/check-annot.sh failure";
+ ocamlc_byte_exit_status = "2";
+ ocamlopt_byte_exit_status = "2";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ script;
+ }{
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ script;
+ }
*)
(* Check that .annot files are emitted in case of failed compilation. *)
diff --git a/testsuite/tests/tool-ocaml-annot/success.ml b/testsuite/tests/tool-ocaml-annot/success.ml
index 126799c980..396861a55b 100644
--- a/testsuite/tests/tool-ocaml-annot/success.ml
+++ b/testsuite/tests/tool-ocaml-annot/success.ml
@@ -1,15 +1,15 @@
(* TEST
-
-flags = "-annot"
-script = "sh ${test_source_directory}/check-annot.sh success"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** script
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-*** script
+ flags = "-annot";
+ script = "sh ${test_source_directory}/check-annot.sh success";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ script;
+ }{
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ script;
+ }
*)
(* Check that .annot files are emitted in case of regular successful
diff --git a/testsuite/tests/tool-ocaml-annot/typeonly.ml b/testsuite/tests/tool-ocaml-annot/typeonly.ml
index db8d1eae25..75ccf668e5 100644
--- a/testsuite/tests/tool-ocaml-annot/typeonly.ml
+++ b/testsuite/tests/tool-ocaml-annot/typeonly.ml
@@ -1,16 +1,16 @@
(* TEST
-
-flags = "-i -annot"
-compile_only = "true"
-script = "sh ${test_source_directory}/check-annot.sh typeonly"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** script
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-*** script
+ flags = "-i -annot";
+ compile_only = "true";
+ script = "sh ${test_source_directory}/check-annot.sh typeonly";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ script;
+ }{
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ script;
+ }
*)
(* Check that .annot files are emitted in case of type-only compilation. *)
diff --git a/testsuite/tests/tool-ocaml/directive_failure.ml b/testsuite/tests/tool-ocaml/directive_failure.ml
index e7aa4c6d2d..3c1260ca09 100644
--- a/testsuite/tests/tool-ocaml/directive_failure.ml
+++ b/testsuite/tests/tool-ocaml/directive_failure.ml
@@ -1,8 +1,8 @@
(* TEST
-ocaml_script_as_argument = "true"
-ocaml_exit_status = "125"
-* setup-ocaml-build-env
-** ocaml
+ ocaml_script_as_argument = "true";
+ ocaml_exit_status = "125";
+ setup-ocaml-build-env;
+ ocaml;
*)
#use "no";;
diff --git a/testsuite/tests/tool-ocaml/t000.ml b/testsuite/tests/tool-ocaml/t000.ml
index a8413fb10f..15b068fa6f 100644
--- a/testsuite/tests/tool-ocaml/t000.ml
+++ b/testsuite/tests/tool-ocaml/t000.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
(* empty file *)
diff --git a/testsuite/tests/tool-ocaml/t010-const0.ml b/testsuite/tests/tool-ocaml/t010-const0.ml
index 6216683396..4ee3ca3fa3 100644
--- a/testsuite/tests/tool-ocaml/t010-const0.ml
+++ b/testsuite/tests/tool-ocaml/t010-const0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
0;;
diff --git a/testsuite/tests/tool-ocaml/t010-const1.ml b/testsuite/tests/tool-ocaml/t010-const1.ml
index a536453d00..73011193e1 100644
--- a/testsuite/tests/tool-ocaml/t010-const1.ml
+++ b/testsuite/tests/tool-ocaml/t010-const1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
1;;
diff --git a/testsuite/tests/tool-ocaml/t010-const2.ml b/testsuite/tests/tool-ocaml/t010-const2.ml
index 7f06a72513..a8200e77e4 100644
--- a/testsuite/tests/tool-ocaml/t010-const2.ml
+++ b/testsuite/tests/tool-ocaml/t010-const2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
2;;
diff --git a/testsuite/tests/tool-ocaml/t010-const3.ml b/testsuite/tests/tool-ocaml/t010-const3.ml
index 92ed01b9a8..db7e14ee82 100644
--- a/testsuite/tests/tool-ocaml/t010-const3.ml
+++ b/testsuite/tests/tool-ocaml/t010-const3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
3;;
diff --git a/testsuite/tests/tool-ocaml/t011-constint.ml b/testsuite/tests/tool-ocaml/t011-constint.ml
index 26a6f1efe3..9b149f330a 100644
--- a/testsuite/tests/tool-ocaml/t011-constint.ml
+++ b/testsuite/tests/tool-ocaml/t011-constint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
4;;
diff --git a/testsuite/tests/tool-ocaml/t020.ml b/testsuite/tests/tool-ocaml/t020.ml
index 3d3c3ff8dc..e7c0dc6649 100644
--- a/testsuite/tests/tool-ocaml/t020.ml
+++ b/testsuite/tests/tool-ocaml/t020.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in ();;
diff --git a/testsuite/tests/tool-ocaml/t021-pushconst1.ml b/testsuite/tests/tool-ocaml/t021-pushconst1.ml
index d315d23dba..a9d028ebb1 100644
--- a/testsuite/tests/tool-ocaml/t021-pushconst1.ml
+++ b/testsuite/tests/tool-ocaml/t021-pushconst1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in 1;;
diff --git a/testsuite/tests/tool-ocaml/t021-pushconst2.ml b/testsuite/tests/tool-ocaml/t021-pushconst2.ml
index df2d22c30a..48d521cf2b 100644
--- a/testsuite/tests/tool-ocaml/t021-pushconst2.ml
+++ b/testsuite/tests/tool-ocaml/t021-pushconst2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in 2;;
diff --git a/testsuite/tests/tool-ocaml/t021-pushconst3.ml b/testsuite/tests/tool-ocaml/t021-pushconst3.ml
index c07111e952..fd1a31fb9b 100644
--- a/testsuite/tests/tool-ocaml/t021-pushconst3.ml
+++ b/testsuite/tests/tool-ocaml/t021-pushconst3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in 3;;
diff --git a/testsuite/tests/tool-ocaml/t022-pushconstint.ml b/testsuite/tests/tool-ocaml/t022-pushconstint.ml
index bdb708d2e9..7fb3c3c715 100644
--- a/testsuite/tests/tool-ocaml/t022-pushconstint.ml
+++ b/testsuite/tests/tool-ocaml/t022-pushconstint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in -1;;
diff --git a/testsuite/tests/tool-ocaml/t040-makeblock1.ml b/testsuite/tests/tool-ocaml/t040-makeblock1.ml
index 1c52df3085..da56950b28 100644
--- a/testsuite/tests/tool-ocaml/t040-makeblock1.ml
+++ b/testsuite/tests/tool-ocaml/t040-makeblock1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
type t = {
diff --git a/testsuite/tests/tool-ocaml/t040-makeblock2.ml b/testsuite/tests/tool-ocaml/t040-makeblock2.ml
index e96a8b67cd..e6222e3225 100644
--- a/testsuite/tests/tool-ocaml/t040-makeblock2.ml
+++ b/testsuite/tests/tool-ocaml/t040-makeblock2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
type t = {
diff --git a/testsuite/tests/tool-ocaml/t040-makeblock3.ml b/testsuite/tests/tool-ocaml/t040-makeblock3.ml
index a2083304ef..c8ff9e44fc 100644
--- a/testsuite/tests/tool-ocaml/t040-makeblock3.ml
+++ b/testsuite/tests/tool-ocaml/t040-makeblock3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
type t = {
diff --git a/testsuite/tests/tool-ocaml/t041-makeblock.ml b/testsuite/tests/tool-ocaml/t041-makeblock.ml
index 8d70bb630b..57b8d68785 100644
--- a/testsuite/tests/tool-ocaml/t041-makeblock.ml
+++ b/testsuite/tests/tool-ocaml/t041-makeblock.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
type t = {
diff --git a/testsuite/tests/tool-ocaml/t050-getglobal.ml b/testsuite/tests/tool-ocaml/t050-getglobal.ml
index cbd7ee1ad8..c5f636c357 100644
--- a/testsuite/tests/tool-ocaml/t050-getglobal.ml
+++ b/testsuite/tests/tool-ocaml/t050-getglobal.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
[1];;
diff --git a/testsuite/tests/tool-ocaml/t050-pushgetglobal.ml b/testsuite/tests/tool-ocaml/t050-pushgetglobal.ml
index e112327967..c0262a9468 100644
--- a/testsuite/tests/tool-ocaml/t050-pushgetglobal.ml
+++ b/testsuite/tests/tool-ocaml/t050-pushgetglobal.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in 0.01;;
diff --git a/testsuite/tests/tool-ocaml/t051-getglobalfield.ml b/testsuite/tests/tool-ocaml/t051-getglobalfield.ml
index a78a5e8e46..9e16ebdb09 100644
--- a/testsuite/tests/tool-ocaml/t051-getglobalfield.ml
+++ b/testsuite/tests/tool-ocaml/t051-getglobalfield.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
Lib.x;;
diff --git a/testsuite/tests/tool-ocaml/t051-pushgetglobalfield.ml b/testsuite/tests/tool-ocaml/t051-pushgetglobalfield.ml
index 26c1e0d1b7..182eb83f2b 100644
--- a/testsuite/tests/tool-ocaml/t051-pushgetglobalfield.ml
+++ b/testsuite/tests/tool-ocaml/t051-pushgetglobalfield.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
let _ = () in Lib.x;;
diff --git a/testsuite/tests/tool-ocaml/t060-raise.ml b/testsuite/tests/tool-ocaml/t060-raise.ml
index 1bee8b2d20..0a116e8198 100644
--- a/testsuite/tests/tool-ocaml/t060-raise.ml
+++ b/testsuite/tests/tool-ocaml/t060-raise.ml
@@ -1,10 +1,10 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-ocaml_exit_status = "2"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ ocaml_exit_status = "2";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t070-branch.ml b/testsuite/tests/tool-ocaml/t070-branch.ml
index 8a58e20e8c..1d7570aba3 100644
--- a/testsuite/tests/tool-ocaml/t070-branch.ml
+++ b/testsuite/tests/tool-ocaml/t070-branch.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t070-branchif.ml b/testsuite/tests/tool-ocaml/t070-branchif.ml
index a231f04110..9650d404ef 100644
--- a/testsuite/tests/tool-ocaml/t070-branchif.ml
+++ b/testsuite/tests/tool-ocaml/t070-branchif.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t070-branchifnot.ml b/testsuite/tests/tool-ocaml/t070-branchifnot.ml
index 578380b1f1..cb1fd166e6 100644
--- a/testsuite/tests/tool-ocaml/t070-branchifnot.ml
+++ b/testsuite/tests/tool-ocaml/t070-branchifnot.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t071-boolnot.ml b/testsuite/tests/tool-ocaml/t071-boolnot.ml
index 3400655bff..db814ba4a4 100644
--- a/testsuite/tests/tool-ocaml/t071-boolnot.ml
+++ b/testsuite/tests/tool-ocaml/t071-boolnot.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t080-eq.ml b/testsuite/tests/tool-ocaml/t080-eq.ml
index b8fc6455c3..fb1c1429ed 100644
--- a/testsuite/tests/tool-ocaml/t080-eq.ml
+++ b/testsuite/tests/tool-ocaml/t080-eq.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t080-geint.ml b/testsuite/tests/tool-ocaml/t080-geint.ml
index d604fed654..9dd65a40fe 100644
--- a/testsuite/tests/tool-ocaml/t080-geint.ml
+++ b/testsuite/tests/tool-ocaml/t080-geint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t080-gtint.ml b/testsuite/tests/tool-ocaml/t080-gtint.ml
index df53f75199..be75d3bc20 100644
--- a/testsuite/tests/tool-ocaml/t080-gtint.ml
+++ b/testsuite/tests/tool-ocaml/t080-gtint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t080-leint.ml b/testsuite/tests/tool-ocaml/t080-leint.ml
index b78aa3a5db..68295f154a 100644
--- a/testsuite/tests/tool-ocaml/t080-leint.ml
+++ b/testsuite/tests/tool-ocaml/t080-leint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t080-ltint.ml b/testsuite/tests/tool-ocaml/t080-ltint.ml
index 9737ad1a33..0135b8000f 100644
--- a/testsuite/tests/tool-ocaml/t080-ltint.ml
+++ b/testsuite/tests/tool-ocaml/t080-ltint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t080-neq.ml b/testsuite/tests/tool-ocaml/t080-neq.ml
index b1c33aec21..f3510719b7 100644
--- a/testsuite/tests/tool-ocaml/t080-neq.ml
+++ b/testsuite/tests/tool-ocaml/t080-neq.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc0.ml b/testsuite/tests/tool-ocaml/t090-acc0.ml
index 0b398c26ea..1892888dbc 100644
--- a/testsuite/tests/tool-ocaml/t090-acc0.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc1.ml b/testsuite/tests/tool-ocaml/t090-acc1.ml
index 8a4dcd1711..823213a9ef 100644
--- a/testsuite/tests/tool-ocaml/t090-acc1.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc2.ml b/testsuite/tests/tool-ocaml/t090-acc2.ml
index 708da881fe..9bb080af8c 100644
--- a/testsuite/tests/tool-ocaml/t090-acc2.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc3.ml b/testsuite/tests/tool-ocaml/t090-acc3.ml
index 9474236d43..445b24f445 100644
--- a/testsuite/tests/tool-ocaml/t090-acc3.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc4.ml b/testsuite/tests/tool-ocaml/t090-acc4.ml
index 673694d059..e272351663 100644
--- a/testsuite/tests/tool-ocaml/t090-acc4.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc5.ml b/testsuite/tests/tool-ocaml/t090-acc5.ml
index f270f5fc17..0e7bd171c0 100644
--- a/testsuite/tests/tool-ocaml/t090-acc5.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc5.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc6.ml b/testsuite/tests/tool-ocaml/t090-acc6.ml
index b1d0e83303..35999f0282 100644
--- a/testsuite/tests/tool-ocaml/t090-acc6.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc6.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t090-acc7.ml b/testsuite/tests/tool-ocaml/t090-acc7.ml
index 64e61e791b..689e9d3164 100644
--- a/testsuite/tests/tool-ocaml/t090-acc7.ml
+++ b/testsuite/tests/tool-ocaml/t090-acc7.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t091-acc.ml b/testsuite/tests/tool-ocaml/t091-acc.ml
index be3c73ebca..999dca3a3a 100644
--- a/testsuite/tests/tool-ocaml/t091-acc.ml
+++ b/testsuite/tests/tool-ocaml/t091-acc.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc.ml b/testsuite/tests/tool-ocaml/t092-pushacc.ml
index 26a414b3b5..26931f8723 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc0.ml b/testsuite/tests/tool-ocaml/t092-pushacc0.ml
index 7199799b90..7d6bd2e6b6 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc0.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc1.ml b/testsuite/tests/tool-ocaml/t092-pushacc1.ml
index d6e34cee03..0a7d450727 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc1.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc2.ml b/testsuite/tests/tool-ocaml/t092-pushacc2.ml
index 2f1b641bab..ed2adb2f9a 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc2.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc3.ml b/testsuite/tests/tool-ocaml/t092-pushacc3.ml
index c0bc7fcd99..95553e0911 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc3.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc4.ml b/testsuite/tests/tool-ocaml/t092-pushacc4.ml
index 07dd054eee..84b7d5aff9 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc4.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc5.ml b/testsuite/tests/tool-ocaml/t092-pushacc5.ml
index 57c6213e5f..746d0eeec2 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc5.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc5.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc6.ml b/testsuite/tests/tool-ocaml/t092-pushacc6.ml
index 01304d6a66..4d14f8c80f 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc6.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc6.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t092-pushacc7.ml b/testsuite/tests/tool-ocaml/t092-pushacc7.ml
index befef4c2f6..ba648b245c 100644
--- a/testsuite/tests/tool-ocaml/t092-pushacc7.ml
+++ b/testsuite/tests/tool-ocaml/t092-pushacc7.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t093-pushacc.ml b/testsuite/tests/tool-ocaml/t093-pushacc.ml
index efd8d8d8d9..9d35dd38cc 100644
--- a/testsuite/tests/tool-ocaml/t093-pushacc.ml
+++ b/testsuite/tests/tool-ocaml/t093-pushacc.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t100-pushtrap.ml b/testsuite/tests/tool-ocaml/t100-pushtrap.ml
index 586e720d01..28abb4caf5 100644
--- a/testsuite/tests/tool-ocaml/t100-pushtrap.ml
+++ b/testsuite/tests/tool-ocaml/t100-pushtrap.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t101-poptrap.ml b/testsuite/tests/tool-ocaml/t101-poptrap.ml
index 842ec08962..5e00863941 100644
--- a/testsuite/tests/tool-ocaml/t101-poptrap.ml
+++ b/testsuite/tests/tool-ocaml/t101-poptrap.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-addint.ml b/testsuite/tests/tool-ocaml/t110-addint.ml
index cc31dc6166..1d689ff180 100644
--- a/testsuite/tests/tool-ocaml/t110-addint.ml
+++ b/testsuite/tests/tool-ocaml/t110-addint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-andint.ml b/testsuite/tests/tool-ocaml/t110-andint.ml
index 52497d319c..4999cd1119 100644
--- a/testsuite/tests/tool-ocaml/t110-andint.ml
+++ b/testsuite/tests/tool-ocaml/t110-andint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-asrint-1.ml b/testsuite/tests/tool-ocaml/t110-asrint-1.ml
index fe700edc29..0933bea1cb 100644
--- a/testsuite/tests/tool-ocaml/t110-asrint-1.ml
+++ b/testsuite/tests/tool-ocaml/t110-asrint-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-asrint-2.ml b/testsuite/tests/tool-ocaml/t110-asrint-2.ml
index 9f15bde01f..65dcb1fce6 100644
--- a/testsuite/tests/tool-ocaml/t110-asrint-2.ml
+++ b/testsuite/tests/tool-ocaml/t110-asrint-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-divint-1.ml b/testsuite/tests/tool-ocaml/t110-divint-1.ml
index 0e1208abe1..59dceadc49 100644
--- a/testsuite/tests/tool-ocaml/t110-divint-1.ml
+++ b/testsuite/tests/tool-ocaml/t110-divint-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-divint-2.ml b/testsuite/tests/tool-ocaml/t110-divint-2.ml
index eabec84efd..39bb0b38aa 100644
--- a/testsuite/tests/tool-ocaml/t110-divint-2.ml
+++ b/testsuite/tests/tool-ocaml/t110-divint-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-divint-3.ml b/testsuite/tests/tool-ocaml/t110-divint-3.ml
index d17e1350a0..8dde42dac9 100644
--- a/testsuite/tests/tool-ocaml/t110-divint-3.ml
+++ b/testsuite/tests/tool-ocaml/t110-divint-3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-lslint.ml b/testsuite/tests/tool-ocaml/t110-lslint.ml
index fc903ef8fe..2b4e56f2b3 100644
--- a/testsuite/tests/tool-ocaml/t110-lslint.ml
+++ b/testsuite/tests/tool-ocaml/t110-lslint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-lsrint.ml b/testsuite/tests/tool-ocaml/t110-lsrint.ml
index 348a2b6a3e..ec1f0023ca 100644
--- a/testsuite/tests/tool-ocaml/t110-lsrint.ml
+++ b/testsuite/tests/tool-ocaml/t110-lsrint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-modint-1.ml b/testsuite/tests/tool-ocaml/t110-modint-1.ml
index 0bfb65defa..a5e2553188 100644
--- a/testsuite/tests/tool-ocaml/t110-modint-1.ml
+++ b/testsuite/tests/tool-ocaml/t110-modint-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-modint-2.ml b/testsuite/tests/tool-ocaml/t110-modint-2.ml
index e2ea7c29a8..3835861df2 100644
--- a/testsuite/tests/tool-ocaml/t110-modint-2.ml
+++ b/testsuite/tests/tool-ocaml/t110-modint-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-mulint.ml b/testsuite/tests/tool-ocaml/t110-mulint.ml
index bae1ffb610..49faaa8857 100644
--- a/testsuite/tests/tool-ocaml/t110-mulint.ml
+++ b/testsuite/tests/tool-ocaml/t110-mulint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-negint.ml b/testsuite/tests/tool-ocaml/t110-negint.ml
index 770a2ee81f..470466e752 100644
--- a/testsuite/tests/tool-ocaml/t110-negint.ml
+++ b/testsuite/tests/tool-ocaml/t110-negint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-offsetint.ml b/testsuite/tests/tool-ocaml/t110-offsetint.ml
index 9b74667e4f..08db4246cb 100644
--- a/testsuite/tests/tool-ocaml/t110-offsetint.ml
+++ b/testsuite/tests/tool-ocaml/t110-offsetint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-orint.ml b/testsuite/tests/tool-ocaml/t110-orint.ml
index 8551be84b6..99c3bd1f4c 100644
--- a/testsuite/tests/tool-ocaml/t110-orint.ml
+++ b/testsuite/tests/tool-ocaml/t110-orint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-subint.ml b/testsuite/tests/tool-ocaml/t110-subint.ml
index 3993dd329e..dcef962805 100644
--- a/testsuite/tests/tool-ocaml/t110-subint.ml
+++ b/testsuite/tests/tool-ocaml/t110-subint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t110-xorint.ml b/testsuite/tests/tool-ocaml/t110-xorint.ml
index 2dd2a9b96c..71aaaff1f8 100644
--- a/testsuite/tests/tool-ocaml/t110-xorint.ml
+++ b/testsuite/tests/tool-ocaml/t110-xorint.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t120-getstringchar.ml b/testsuite/tests/tool-ocaml/t120-getstringchar.ml
index 271022c355..3e38b57d42 100644
--- a/testsuite/tests/tool-ocaml/t120-getstringchar.ml
+++ b/testsuite/tests/tool-ocaml/t120-getstringchar.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t121-setstringchar.ml b/testsuite/tests/tool-ocaml/t121-setstringchar.ml
index 6ea9899c13..40f8a92d63 100644
--- a/testsuite/tests/tool-ocaml/t121-setstringchar.ml
+++ b/testsuite/tests/tool-ocaml/t121-setstringchar.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t130-getvectitem.ml b/testsuite/tests/tool-ocaml/t130-getvectitem.ml
index f8af8f1714..fd04d3e530 100644
--- a/testsuite/tests/tool-ocaml/t130-getvectitem.ml
+++ b/testsuite/tests/tool-ocaml/t130-getvectitem.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t130-vectlength.ml b/testsuite/tests/tool-ocaml/t130-vectlength.ml
index ea56854426..eae6839121 100644
--- a/testsuite/tests/tool-ocaml/t130-vectlength.ml
+++ b/testsuite/tests/tool-ocaml/t130-vectlength.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t131-setvectitem.ml b/testsuite/tests/tool-ocaml/t131-setvectitem.ml
index abb238f3c4..8f7065ea97 100644
--- a/testsuite/tests/tool-ocaml/t131-setvectitem.ml
+++ b/testsuite/tests/tool-ocaml/t131-setvectitem.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t140-switch-1.ml b/testsuite/tests/tool-ocaml/t140-switch-1.ml
index 0928b06875..e932d4eb3c 100644
--- a/testsuite/tests/tool-ocaml/t140-switch-1.ml
+++ b/testsuite/tests/tool-ocaml/t140-switch-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t140-switch-2.ml b/testsuite/tests/tool-ocaml/t140-switch-2.ml
index 3089ffbc0d..a7a81a9fe2 100644
--- a/testsuite/tests/tool-ocaml/t140-switch-2.ml
+++ b/testsuite/tests/tool-ocaml/t140-switch-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t140-switch-3.ml b/testsuite/tests/tool-ocaml/t140-switch-3.ml
index ff15ead8a0..35e98bf7c3 100644
--- a/testsuite/tests/tool-ocaml/t140-switch-3.ml
+++ b/testsuite/tests/tool-ocaml/t140-switch-3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t140-switch-4.ml b/testsuite/tests/tool-ocaml/t140-switch-4.ml
index 61b7954dd0..4596100adf 100644
--- a/testsuite/tests/tool-ocaml/t140-switch-4.ml
+++ b/testsuite/tests/tool-ocaml/t140-switch-4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t141-switch-5.ml b/testsuite/tests/tool-ocaml/t141-switch-5.ml
index 29d2cd5d91..7379a75a04 100644
--- a/testsuite/tests/tool-ocaml/t141-switch-5.ml
+++ b/testsuite/tests/tool-ocaml/t141-switch-5.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t141-switch-6.ml b/testsuite/tests/tool-ocaml/t141-switch-6.ml
index 34a87740b3..0f5ec6a45e 100644
--- a/testsuite/tests/tool-ocaml/t141-switch-6.ml
+++ b/testsuite/tests/tool-ocaml/t141-switch-6.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t141-switch-7.ml b/testsuite/tests/tool-ocaml/t141-switch-7.ml
index 137080e0c0..2d4eb469b0 100644
--- a/testsuite/tests/tool-ocaml/t141-switch-7.ml
+++ b/testsuite/tests/tool-ocaml/t141-switch-7.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t142-switch-8.ml b/testsuite/tests/tool-ocaml/t142-switch-8.ml
index 5d806419cc..78bec9f0f0 100644
--- a/testsuite/tests/tool-ocaml/t142-switch-8.ml
+++ b/testsuite/tests/tool-ocaml/t142-switch-8.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t142-switch-9.ml b/testsuite/tests/tool-ocaml/t142-switch-9.ml
index 8de4de43d2..31b3fe05ad 100644
--- a/testsuite/tests/tool-ocaml/t142-switch-9.ml
+++ b/testsuite/tests/tool-ocaml/t142-switch-9.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t142-switch-A.ml b/testsuite/tests/tool-ocaml/t142-switch-A.ml
index 09bfdedfbf..c356d29626 100644
--- a/testsuite/tests/tool-ocaml/t142-switch-A.ml
+++ b/testsuite/tests/tool-ocaml/t142-switch-A.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t150-push-1.ml b/testsuite/tests/tool-ocaml/t150-push-1.ml
index d13723b409..b34e13f3cd 100644
--- a/testsuite/tests/tool-ocaml/t150-push-1.ml
+++ b/testsuite/tests/tool-ocaml/t150-push-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t150-push-2.ml b/testsuite/tests/tool-ocaml/t150-push-2.ml
index ce9cc2877b..d2c9bc532e 100644
--- a/testsuite/tests/tool-ocaml/t150-push-2.ml
+++ b/testsuite/tests/tool-ocaml/t150-push-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t160-closure.ml b/testsuite/tests/tool-ocaml/t160-closure.ml
index f26a4c9f79..9ad6c07a5c 100644
--- a/testsuite/tests/tool-ocaml/t160-closure.ml
+++ b/testsuite/tests/tool-ocaml/t160-closure.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t161-apply1.ml b/testsuite/tests/tool-ocaml/t161-apply1.ml
index beccf312fc..5bb6cddc6d 100644
--- a/testsuite/tests/tool-ocaml/t161-apply1.ml
+++ b/testsuite/tests/tool-ocaml/t161-apply1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t162-return.ml b/testsuite/tests/tool-ocaml/t162-return.ml
index 664c54b21c..59c549c807 100644
--- a/testsuite/tests/tool-ocaml/t162-return.ml
+++ b/testsuite/tests/tool-ocaml/t162-return.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t163.ml b/testsuite/tests/tool-ocaml/t163.ml
index 41380ca26b..ea0c181da6 100644
--- a/testsuite/tests/tool-ocaml/t163.ml
+++ b/testsuite/tests/tool-ocaml/t163.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t164-apply2.ml b/testsuite/tests/tool-ocaml/t164-apply2.ml
index af928e714d..a5f5e7f98c 100644
--- a/testsuite/tests/tool-ocaml/t164-apply2.ml
+++ b/testsuite/tests/tool-ocaml/t164-apply2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t164-apply3.ml b/testsuite/tests/tool-ocaml/t164-apply3.ml
index 2c4f1f6e5e..fdc92df92e 100644
--- a/testsuite/tests/tool-ocaml/t164-apply3.ml
+++ b/testsuite/tests/tool-ocaml/t164-apply3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t165-apply.ml b/testsuite/tests/tool-ocaml/t165-apply.ml
index c06caf0f9b..ab51c87d52 100644
--- a/testsuite/tests/tool-ocaml/t165-apply.ml
+++ b/testsuite/tests/tool-ocaml/t165-apply.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t170-envacc2.ml b/testsuite/tests/tool-ocaml/t170-envacc2.ml
index 3484ca54fd..19c183fb85 100644
--- a/testsuite/tests/tool-ocaml/t170-envacc2.ml
+++ b/testsuite/tests/tool-ocaml/t170-envacc2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t170-envacc3.ml b/testsuite/tests/tool-ocaml/t170-envacc3.ml
index 583fd00fdb..9b494a0a05 100644
--- a/testsuite/tests/tool-ocaml/t170-envacc3.ml
+++ b/testsuite/tests/tool-ocaml/t170-envacc3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t170-envacc4.ml b/testsuite/tests/tool-ocaml/t170-envacc4.ml
index 70df1ac98f..6a44794f41 100644
--- a/testsuite/tests/tool-ocaml/t170-envacc4.ml
+++ b/testsuite/tests/tool-ocaml/t170-envacc4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t171-envacc.ml b/testsuite/tests/tool-ocaml/t171-envacc.ml
index 98bb61f5d1..f91f4c748a 100644
--- a/testsuite/tests/tool-ocaml/t171-envacc.ml
+++ b/testsuite/tests/tool-ocaml/t171-envacc.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t172-pushenvacc1.ml b/testsuite/tests/tool-ocaml/t172-pushenvacc1.ml
index 7ad3287eb6..55d2600163 100644
--- a/testsuite/tests/tool-ocaml/t172-pushenvacc1.ml
+++ b/testsuite/tests/tool-ocaml/t172-pushenvacc1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t172-pushenvacc2.ml b/testsuite/tests/tool-ocaml/t172-pushenvacc2.ml
index 70e2311579..ae034cc1ec 100644
--- a/testsuite/tests/tool-ocaml/t172-pushenvacc2.ml
+++ b/testsuite/tests/tool-ocaml/t172-pushenvacc2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t172-pushenvacc3.ml b/testsuite/tests/tool-ocaml/t172-pushenvacc3.ml
index 170dc2afbc..4203cc1c41 100644
--- a/testsuite/tests/tool-ocaml/t172-pushenvacc3.ml
+++ b/testsuite/tests/tool-ocaml/t172-pushenvacc3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t172-pushenvacc4.ml b/testsuite/tests/tool-ocaml/t172-pushenvacc4.ml
index 16967b6f6f..061abe3d18 100644
--- a/testsuite/tests/tool-ocaml/t172-pushenvacc4.ml
+++ b/testsuite/tests/tool-ocaml/t172-pushenvacc4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t173-pushenvacc.ml b/testsuite/tests/tool-ocaml/t173-pushenvacc.ml
index 3a2c19ddb0..2a43f1c68f 100644
--- a/testsuite/tests/tool-ocaml/t173-pushenvacc.ml
+++ b/testsuite/tests/tool-ocaml/t173-pushenvacc.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t180-appterm1.ml b/testsuite/tests/tool-ocaml/t180-appterm1.ml
index 42e6c32386..56853e159e 100644
--- a/testsuite/tests/tool-ocaml/t180-appterm1.ml
+++ b/testsuite/tests/tool-ocaml/t180-appterm1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t180-appterm2.ml b/testsuite/tests/tool-ocaml/t180-appterm2.ml
index 0afccadf1f..2f68cd13ac 100644
--- a/testsuite/tests/tool-ocaml/t180-appterm2.ml
+++ b/testsuite/tests/tool-ocaml/t180-appterm2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t180-appterm3.ml b/testsuite/tests/tool-ocaml/t180-appterm3.ml
index d0ed1e6743..788c0adab8 100644
--- a/testsuite/tests/tool-ocaml/t180-appterm3.ml
+++ b/testsuite/tests/tool-ocaml/t180-appterm3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t181-appterm.ml b/testsuite/tests/tool-ocaml/t181-appterm.ml
index 4a7778e532..f001d871b6 100644
--- a/testsuite/tests/tool-ocaml/t181-appterm.ml
+++ b/testsuite/tests/tool-ocaml/t181-appterm.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t190-makefloatblock-1.ml b/testsuite/tests/tool-ocaml/t190-makefloatblock-1.ml
index 0d3c6d1374..22d52d58ac 100644
--- a/testsuite/tests/tool-ocaml/t190-makefloatblock-1.ml
+++ b/testsuite/tests/tool-ocaml/t190-makefloatblock-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t190-makefloatblock-2.ml b/testsuite/tests/tool-ocaml/t190-makefloatblock-2.ml
index 869b6de9e8..5b3ffd7c80 100644
--- a/testsuite/tests/tool-ocaml/t190-makefloatblock-2.ml
+++ b/testsuite/tests/tool-ocaml/t190-makefloatblock-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t190-makefloatblock-3.ml b/testsuite/tests/tool-ocaml/t190-makefloatblock-3.ml
index a966a2f21c..63d8e6bf31 100644
--- a/testsuite/tests/tool-ocaml/t190-makefloatblock-3.ml
+++ b/testsuite/tests/tool-ocaml/t190-makefloatblock-3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t191-vectlength.ml b/testsuite/tests/tool-ocaml/t191-vectlength.ml
index ef7a93f5c2..b154108352 100644
--- a/testsuite/tests/tool-ocaml/t191-vectlength.ml
+++ b/testsuite/tests/tool-ocaml/t191-vectlength.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t192-getfloatfield-1.ml b/testsuite/tests/tool-ocaml/t192-getfloatfield-1.ml
index 74e1f7a6ae..bd4af309e8 100644
--- a/testsuite/tests/tool-ocaml/t192-getfloatfield-1.ml
+++ b/testsuite/tests/tool-ocaml/t192-getfloatfield-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t192-getfloatfield-2.ml b/testsuite/tests/tool-ocaml/t192-getfloatfield-2.ml
index fc224244de..c5b59ebad4 100644
--- a/testsuite/tests/tool-ocaml/t192-getfloatfield-2.ml
+++ b/testsuite/tests/tool-ocaml/t192-getfloatfield-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t193-setfloatfield-1.ml b/testsuite/tests/tool-ocaml/t193-setfloatfield-1.ml
index 708c3bc42c..12e7554882 100644
--- a/testsuite/tests/tool-ocaml/t193-setfloatfield-1.ml
+++ b/testsuite/tests/tool-ocaml/t193-setfloatfield-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t193-setfloatfield-2.ml b/testsuite/tests/tool-ocaml/t193-setfloatfield-2.ml
index 80d010f6ee..d5cc07194a 100644
--- a/testsuite/tests/tool-ocaml/t193-setfloatfield-2.ml
+++ b/testsuite/tests/tool-ocaml/t193-setfloatfield-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t200-getfield0.ml b/testsuite/tests/tool-ocaml/t200-getfield0.ml
index fa768984b7..4be33c0f4a 100644
--- a/testsuite/tests/tool-ocaml/t200-getfield0.ml
+++ b/testsuite/tests/tool-ocaml/t200-getfield0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t200-getfield1.ml b/testsuite/tests/tool-ocaml/t200-getfield1.ml
index c394ab2c2f..de07981dc3 100644
--- a/testsuite/tests/tool-ocaml/t200-getfield1.ml
+++ b/testsuite/tests/tool-ocaml/t200-getfield1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t200-getfield2.ml b/testsuite/tests/tool-ocaml/t200-getfield2.ml
index 954f86f0d5..d8930fc75c 100644
--- a/testsuite/tests/tool-ocaml/t200-getfield2.ml
+++ b/testsuite/tests/tool-ocaml/t200-getfield2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t200-getfield3.ml b/testsuite/tests/tool-ocaml/t200-getfield3.ml
index 3381468e0d..8b2189ca05 100644
--- a/testsuite/tests/tool-ocaml/t200-getfield3.ml
+++ b/testsuite/tests/tool-ocaml/t200-getfield3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t201-getfield.ml b/testsuite/tests/tool-ocaml/t201-getfield.ml
index f76fe0057c..253262f201 100644
--- a/testsuite/tests/tool-ocaml/t201-getfield.ml
+++ b/testsuite/tests/tool-ocaml/t201-getfield.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t210-setfield0.ml b/testsuite/tests/tool-ocaml/t210-setfield0.ml
index 40803c4f20..e1891fa82c 100644
--- a/testsuite/tests/tool-ocaml/t210-setfield0.ml
+++ b/testsuite/tests/tool-ocaml/t210-setfield0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t210-setfield1.ml b/testsuite/tests/tool-ocaml/t210-setfield1.ml
index ff65da7a2b..ffbdc0f202 100644
--- a/testsuite/tests/tool-ocaml/t210-setfield1.ml
+++ b/testsuite/tests/tool-ocaml/t210-setfield1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t210-setfield2.ml b/testsuite/tests/tool-ocaml/t210-setfield2.ml
index 7a46e87aa6..b7d8cd50b4 100644
--- a/testsuite/tests/tool-ocaml/t210-setfield2.ml
+++ b/testsuite/tests/tool-ocaml/t210-setfield2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t210-setfield3.ml b/testsuite/tests/tool-ocaml/t210-setfield3.ml
index 20394fbbdb..d921a3043f 100644
--- a/testsuite/tests/tool-ocaml/t210-setfield3.ml
+++ b/testsuite/tests/tool-ocaml/t210-setfield3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t211-setfield.ml b/testsuite/tests/tool-ocaml/t211-setfield.ml
index 21730fae0b..f935b7e555 100644
--- a/testsuite/tests/tool-ocaml/t211-setfield.ml
+++ b/testsuite/tests/tool-ocaml/t211-setfield.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t220-assign.ml b/testsuite/tests/tool-ocaml/t220-assign.ml
index 0044f89e30..26c6287cb2 100644
--- a/testsuite/tests/tool-ocaml/t220-assign.ml
+++ b/testsuite/tests/tool-ocaml/t220-assign.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t230-check_signals.ml b/testsuite/tests/tool-ocaml/t230-check_signals.ml
index d027d690be..3df0a96759 100644
--- a/testsuite/tests/tool-ocaml/t230-check_signals.ml
+++ b/testsuite/tests/tool-ocaml/t230-check_signals.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t240-c_call1.ml b/testsuite/tests/tool-ocaml/t240-c_call1.ml
index 89758f5014..a5feaebb92 100644
--- a/testsuite/tests/tool-ocaml/t240-c_call1.ml
+++ b/testsuite/tests/tool-ocaml/t240-c_call1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t240-c_call2.ml b/testsuite/tests/tool-ocaml/t240-c_call2.ml
index 35d3916e82..963c42eaaf 100644
--- a/testsuite/tests/tool-ocaml/t240-c_call2.ml
+++ b/testsuite/tests/tool-ocaml/t240-c_call2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t240-c_call3.ml b/testsuite/tests/tool-ocaml/t240-c_call3.ml
index f98ed86f2e..994b00f09c 100644
--- a/testsuite/tests/tool-ocaml/t240-c_call3.ml
+++ b/testsuite/tests/tool-ocaml/t240-c_call3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t240-c_call4.ml b/testsuite/tests/tool-ocaml/t240-c_call4.ml
index e5a47342a2..24fa8a4ee7 100644
--- a/testsuite/tests/tool-ocaml/t240-c_call4.ml
+++ b/testsuite/tests/tool-ocaml/t240-c_call4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t240-c_call5.ml b/testsuite/tests/tool-ocaml/t240-c_call5.ml
index 14a5954a9f..e55a454edf 100644
--- a/testsuite/tests/tool-ocaml/t240-c_call5.ml
+++ b/testsuite/tests/tool-ocaml/t240-c_call5.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t250-closurerec-1.ml b/testsuite/tests/tool-ocaml/t250-closurerec-1.ml
index d8e3169f6d..3285c5c96a 100644
--- a/testsuite/tests/tool-ocaml/t250-closurerec-1.ml
+++ b/testsuite/tests/tool-ocaml/t250-closurerec-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t250-closurerec-2.ml b/testsuite/tests/tool-ocaml/t250-closurerec-2.ml
index 4ddfd208eb..cd1e1f89dd 100644
--- a/testsuite/tests/tool-ocaml/t250-closurerec-2.ml
+++ b/testsuite/tests/tool-ocaml/t250-closurerec-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t251-pushoffsetclosure0.ml b/testsuite/tests/tool-ocaml/t251-pushoffsetclosure0.ml
index aa29928be4..3df568aab5 100644
--- a/testsuite/tests/tool-ocaml/t251-pushoffsetclosure0.ml
+++ b/testsuite/tests/tool-ocaml/t251-pushoffsetclosure0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t251-pushoffsetclosure2.ml b/testsuite/tests/tool-ocaml/t251-pushoffsetclosure2.ml
index c84eea3774..9304ee1668 100644
--- a/testsuite/tests/tool-ocaml/t251-pushoffsetclosure2.ml
+++ b/testsuite/tests/tool-ocaml/t251-pushoffsetclosure2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t251-pushoffsetclosurem2.ml b/testsuite/tests/tool-ocaml/t251-pushoffsetclosurem2.ml
index bc19d6fb45..bb70ea2811 100644
--- a/testsuite/tests/tool-ocaml/t251-pushoffsetclosurem2.ml
+++ b/testsuite/tests/tool-ocaml/t251-pushoffsetclosurem2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t252-pushoffsetclosure.ml b/testsuite/tests/tool-ocaml/t252-pushoffsetclosure.ml
index dee93f84dc..1c949dde9f 100644
--- a/testsuite/tests/tool-ocaml/t252-pushoffsetclosure.ml
+++ b/testsuite/tests/tool-ocaml/t252-pushoffsetclosure.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t253-offsetclosure0.ml b/testsuite/tests/tool-ocaml/t253-offsetclosure0.ml
index 092f755a75..14f7bb92ae 100644
--- a/testsuite/tests/tool-ocaml/t253-offsetclosure0.ml
+++ b/testsuite/tests/tool-ocaml/t253-offsetclosure0.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t253-offsetclosure2.ml b/testsuite/tests/tool-ocaml/t253-offsetclosure2.ml
index 977574ded2..46769674fe 100644
--- a/testsuite/tests/tool-ocaml/t253-offsetclosure2.ml
+++ b/testsuite/tests/tool-ocaml/t253-offsetclosure2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t253-offsetclosurem2.ml b/testsuite/tests/tool-ocaml/t253-offsetclosurem2.ml
index 69b2f13915..16ada804db 100644
--- a/testsuite/tests/tool-ocaml/t253-offsetclosurem2.ml
+++ b/testsuite/tests/tool-ocaml/t253-offsetclosurem2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t254-offsetclosure.ml b/testsuite/tests/tool-ocaml/t254-offsetclosure.ml
index 1bf10ceef5..a40f94152d 100644
--- a/testsuite/tests/tool-ocaml/t254-offsetclosure.ml
+++ b/testsuite/tests/tool-ocaml/t254-offsetclosure.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t260-offsetref.ml b/testsuite/tests/tool-ocaml/t260-offsetref.ml
index 2884f468b9..4dd2d0f971 100644
--- a/testsuite/tests/tool-ocaml/t260-offsetref.ml
+++ b/testsuite/tests/tool-ocaml/t260-offsetref.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t270-push_retaddr.ml b/testsuite/tests/tool-ocaml/t270-push_retaddr.ml
index 137d668c32..8a56844657 100644
--- a/testsuite/tests/tool-ocaml/t270-push_retaddr.ml
+++ b/testsuite/tests/tool-ocaml/t270-push_retaddr.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t300-getmethod.ml b/testsuite/tests/tool-ocaml/t300-getmethod.ml
index c860060479..da4c46ea12 100644
--- a/testsuite/tests/tool-ocaml/t300-getmethod.ml
+++ b/testsuite/tests/tool-ocaml/t300-getmethod.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t301-object.ml b/testsuite/tests/tool-ocaml/t301-object.ml
index 1d035a4a0b..dc170ae97c 100644
--- a/testsuite/tests/tool-ocaml/t301-object.ml
+++ b/testsuite/tests/tool-ocaml/t301-object.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
(**** file testinterp/t301-object.ml
diff --git a/testsuite/tests/tool-ocaml/t310-alloc-1.ml b/testsuite/tests/tool-ocaml/t310-alloc-1.ml
index 7021eda5a2..5f57c1e206 100644
--- a/testsuite/tests/tool-ocaml/t310-alloc-1.ml
+++ b/testsuite/tests/tool-ocaml/t310-alloc-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t310-alloc-2.ml b/testsuite/tests/tool-ocaml/t310-alloc-2.ml
index 4118a737bd..a2f31d4a08 100644
--- a/testsuite/tests/tool-ocaml/t310-alloc-2.ml
+++ b/testsuite/tests/tool-ocaml/t310-alloc-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t320-gc-1.ml b/testsuite/tests/tool-ocaml/t320-gc-1.ml
index be95ac9e17..4c8f4bc94e 100644
--- a/testsuite/tests/tool-ocaml/t320-gc-1.ml
+++ b/testsuite/tests/tool-ocaml/t320-gc-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t320-gc-2.ml b/testsuite/tests/tool-ocaml/t320-gc-2.ml
index 54203e9e72..39678f8f7b 100644
--- a/testsuite/tests/tool-ocaml/t320-gc-2.ml
+++ b/testsuite/tests/tool-ocaml/t320-gc-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t320-gc-3.ml b/testsuite/tests/tool-ocaml/t320-gc-3.ml
index c9b4e49b3e..e3653c29c8 100644
--- a/testsuite/tests/tool-ocaml/t320-gc-3.ml
+++ b/testsuite/tests/tool-ocaml/t320-gc-3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t330-compact-1.ml b/testsuite/tests/tool-ocaml/t330-compact-1.ml
index fb58c1f859..a0a8838104 100644
--- a/testsuite/tests/tool-ocaml/t330-compact-1.ml
+++ b/testsuite/tests/tool-ocaml/t330-compact-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t330-compact-2.ml b/testsuite/tests/tool-ocaml/t330-compact-2.ml
index d466b1a246..9ef3a2acba 100644
--- a/testsuite/tests/tool-ocaml/t330-compact-2.ml
+++ b/testsuite/tests/tool-ocaml/t330-compact-2.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t330-compact-3.ml b/testsuite/tests/tool-ocaml/t330-compact-3.ml
index 490b686ce6..95dfc4c18e 100644
--- a/testsuite/tests/tool-ocaml/t330-compact-3.ml
+++ b/testsuite/tests/tool-ocaml/t330-compact-3.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t330-compact-4.ml b/testsuite/tests/tool-ocaml/t330-compact-4.ml
index e27be14bb1..a0aabcc6fd 100644
--- a/testsuite/tests/tool-ocaml/t330-compact-4.ml
+++ b/testsuite/tests/tool-ocaml/t330-compact-4.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t340-weak.ml b/testsuite/tests/tool-ocaml/t340-weak.ml
index 6c3d26e2f3..596278d393 100644
--- a/testsuite/tests/tool-ocaml/t340-weak.ml
+++ b/testsuite/tests/tool-ocaml/t340-weak.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t350-heapcheck.ml b/testsuite/tests/tool-ocaml/t350-heapcheck.ml
index bf3d137aaa..3255cf9b84 100644
--- a/testsuite/tests/tool-ocaml/t350-heapcheck.ml
+++ b/testsuite/tests/tool-ocaml/t350-heapcheck.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t360-stacks-1.ml b/testsuite/tests/tool-ocaml/t360-stacks-1.ml
index b952c18a8f..48c116c353 100644
--- a/testsuite/tests/tool-ocaml/t360-stacks-1.ml
+++ b/testsuite/tests/tool-ocaml/t360-stacks-1.ml
@@ -1,9 +1,9 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocaml/t360-stacks-2.ml b/testsuite/tests/tool-ocaml/t360-stacks-2.ml
index ee73fa3dd6..1f632d7f7d 100644
--- a/testsuite/tests/tool-ocaml/t360-stacks-2.ml
+++ b/testsuite/tests/tool-ocaml/t360-stacks-2.ml
@@ -1,10 +1,10 @@
(* TEST
-include tool-ocaml-lib
-flags = "-w -a"
-ocaml_script_as_argument = "true"
-ocamlrunparam = "l=1000000"
-* setup-ocaml-build-env
-** ocaml
+ include tool-ocaml-lib;
+ flags = "-w -a";
+ ocaml_script_as_argument = "true";
+ ocamlrunparam = "l=1000000";
+ setup-ocaml-build-env;
+ ocaml;
*)
open Lib;;
diff --git a/testsuite/tests/tool-ocamlc-compat32/compat32.ml b/testsuite/tests/tool-ocamlc-compat32/compat32.ml
index 8b09d8ab66..aca044847b 100644
--- a/testsuite/tests/tool-ocamlc-compat32/compat32.ml
+++ b/testsuite/tests/tool-ocamlc-compat32/compat32.ml
@@ -1,29 +1,29 @@
(* TEST
- * arch64
- ** setup-ocamlc.byte-build-env
- *** ocamlc.byte
- compile_only = "true"
- flags = "-compat-32"
- ocamlc_byte_exit_status = "2"
- **** ocamlc.byte
- ocamlc_byte_exit_status = "0"
- flags = ""
- ***** ocamlc.byte
- compile_only = "false"
- all_modules = "compat32.cmo"
- flags = "-compat-32 -a"
- program = "compat32.cma"
- ocamlc_byte_exit_status = "2"
- ****** ocamlc.byte
- flags = "-a"
- program = "compat32.cma"
- ocamlc_byte_exit_status = "0"
- ******* ocamlc.byte
- all_modules = "compat32.cma"
- flags = "-compat-32 -linkall"
- program = "compat32.byte"
- ocamlc_byte_exit_status = "2"
- ******** check-ocamlc.byte-output
+ arch64;
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ flags = "-compat-32";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ ocamlc_byte_exit_status = "0";
+ flags = "";
+ ocamlc.byte;
+ compile_only = "false";
+ all_modules = "compat32.cmo";
+ flags = "-compat-32 -a";
+ program = "compat32.cma";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ flags = "-a";
+ program = "compat32.cma";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ all_modules = "compat32.cma";
+ flags = "-compat-32 -linkall";
+ program = "compat32.byte";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
let a = 0xffffffffffff
diff --git a/testsuite/tests/tool-ocamlc-error-cleanup/test.ml b/testsuite/tests/tool-ocamlc-error-cleanup/test.ml
index 0624a6a8a9..f668d172a9 100644
--- a/testsuite/tests/tool-ocamlc-error-cleanup/test.ml
+++ b/testsuite/tests/tool-ocamlc-error-cleanup/test.ml
@@ -1,12 +1,12 @@
(* TEST
-* setup-ocamlc.byte-build-env
-compiler_output = "compiler-output.raw"
-** ocamlc.byte
-all_modules = "test.ml"
-flags = "-warn-error +A"
-ocamlc_byte_exit_status = "2"
-*** script
-script = "sh ${test_source_directory}/check-error-cleanup.sh"
+ compiler_output = "compiler-output.raw";
+ setup-ocamlc.byte-build-env;
+ all_modules = "test.ml";
+ flags = "-warn-error +A";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ script = "sh ${test_source_directory}/check-error-cleanup.sh";
+ script;
*)
(* Regression test for MPR#7918 *)
diff --git a/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.ml b/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.ml
index e965ca4385..cad238d97c 100644
--- a/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.ml
+++ b/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open-error.ml
@@ -1,7 +1,7 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags = "-open F("
-ocamlc_byte_exit_status = "2"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ flags = "-open F(";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open.ml b/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open.ml
index 9485a681e8..f7c275dd92 100644
--- a/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open.ml
+++ b/testsuite/tests/tool-ocamlc-open/tool-ocamlc-open.ml
@@ -1,10 +1,10 @@
(* TEST
-readonly_files = "a.ml b.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "a.ml"
-*** ocamlc.byte
-module = "b.ml"
-flags = "-open A.M"
-**** check-ocamlc.byte-output
+ readonly_files = "a.ml b.ml";
+ setup-ocamlc.byte-build-env;
+ module = "a.ml";
+ ocamlc.byte;
+ module = "b.ml";
+ flags = "-open A.M";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/tool-ocamlc-stop-after/stop_after_lambda.ml b/testsuite/tests/tool-ocamlc-stop-after/stop_after_lambda.ml
index e018d17ce6..e1c2b58670 100644
--- a/testsuite/tests/tool-ocamlc-stop-after/stop_after_lambda.ml
+++ b/testsuite/tests/tool-ocamlc-stop-after/stop_after_lambda.ml
@@ -1,9 +1,9 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
- flags = "-dlambda -stop-after lambda -nopervasives "
- ocamlc_byte_exit_status = "0"
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ flags = "-dlambda -stop-after lambda -nopervasives ";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
external p : int -> unit = ""
diff --git a/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml b/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml
index 3276733c51..0029d7b0ff 100644
--- a/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml
+++ b/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml
@@ -1,12 +1,20 @@
-(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
- flags = "-stop-after parsing -dparsetree"
- ocamlc_byte_exit_status = "0"
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_to_pr
+eserve_locatio
+ns_while_translating_from_old_syntax__Filler_
+text_added_to_preserve_locations_
+while_translating_from_old_s
*)
(* we intentionally write ill-typed output;
if `-stop-after parsing` was not supported properly,
the test would fail with an error *)
let _ = (1 + "true") + x
+
+(* TEST
+ setup-ocamlc.byte-build-env;
+ flags = "-stop-after parsing -dparsetree";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli b/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli
index 328a78d47f..802fe9abf2 100644
--- a/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli
+++ b/testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli
@@ -1,12 +1,20 @@
-(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
- flags = "-stop-after parsing -dparsetree"
- ocamlc_byte_exit_status = "0"
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_to_pr
+eserve_locatio
+ns_while_translating_from_old_syntax__Filler_
+text_added_to_preserve_locations_
+while_translating_from_old_s
*)
(* we intentionally write ill-typed output;
if `-stop-after parsing` was not supported properly,
the test would fail with an error *)
val x : Module_that_does_not_exists.type_that_does_not_exists
+
+(* TEST
+ setup-ocamlc.byte-build-env;
+ flags = "-stop-after parsing -dparsetree";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/tool-ocamlc-stop-after/stop_after_scheduling.ml b/testsuite/tests/tool-ocamlc-stop-after/stop_after_scheduling.ml
index c5eae2bb41..d4344f8ba1 100644
--- a/testsuite/tests/tool-ocamlc-stop-after/stop_after_scheduling.ml
+++ b/testsuite/tests/tool-ocamlc-stop-after/stop_after_scheduling.ml
@@ -1,14 +1,14 @@
(* TEST
-* setup-ocamlc.byte-build-env
-compiler_output = "compiler-output.raw"
-** ocamlc.byte
- flags = "-stop-after scheduling"
- ocamlc_byte_exit_status = "2"
-*** script
- script = "sh ${test_source_directory}/stop_after_scheduling.sh"
- output = "compiler-output"
-**** check-ocamlc.byte-output
-compiler_output = "compiler-output"
+ compiler_output = "compiler-output.raw";
+ setup-ocamlc.byte-build-env;
+ flags = "-stop-after scheduling";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ script = "sh ${test_source_directory}/stop_after_scheduling.sh";
+ output = "compiler-output";
+ script;
+ compiler_output = "compiler-output";
+ check-ocamlc.byte-output;
*)
(* this file is just a test driver, the test does not contain real OCaml code *)
diff --git a/testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml b/testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml
index f739509551..2cf68dbd28 100644
--- a/testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml
+++ b/testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml
@@ -1,9 +1,9 @@
-(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
- flags = "-stop-after typing -dno-unique-ids -dtypedtree"
- ocamlc_byte_exit_status = "0"
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+Filler_text_added_to_pr
+eserve_locatio
+ns_while_translating_from_old_syntax__Filler_text_added_to_p
+reserve_locations_while_translati
+ng_from_old_syntax__Filler_t
*)
(* we intentionally write an output that is type-correct
@@ -11,3 +11,11 @@
due to the incorrect type given to the %apply
compiler primitive. *)
external apply: int -> int = "%apply"
+
+(* TEST
+ setup-ocamlc.byte-build-env;
+ flags = "-stop-after typing -dno-unique-ids -dtypedtree";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/tool-ocamldep-modalias/main.ml b/testsuite/tests/tool-ocamldep-modalias/main.ml
index 801fa03339..18fe38e9e8 100644
--- a/testsuite/tests/tool-ocamldep-modalias/main.ml
+++ b/testsuite/tests/tool-ocamldep-modalias/main.ml
@@ -1,137 +1,134 @@
(* TEST
-
-readonly_files = "A.ml B.ml C.ml D.ml lib_impl.ml lib.mli \
- Makefile.build Makefile.build2"
-
-set sources = "A.ml B.ml C.ml D.ml"
-set links = "LibA.ml LibB.ml LibC.ml LibD.ml"
-set stdlib = "-nostdlib -I ${ocamlsrcdir}/stdlib"
-set OCAMLC = "${ocamlrun} ${ocamlc_byte} ${stdlib}"
-set OCAMLOPT = "${ocamlrun} ${ocamlopt_byte} ${stdlib}"
-
-* setup-ocamlc.byte-build-env
-compiler_directory_suffix = ".depend.mk"
-compiler_output = "${test_build_directory}/depend.mk"
-** copy
-src = "A.ml"
-dst = "LibA.ml"
-*** copy
-src = "B.ml"
-dst = "LibB.ml"
-**** copy
-src = "C.ml"
-dst = "LibC.ml"
-***** copy
-src = "D.ml"
-dst = "LibD.ml"
-****** copy
-src = "lib_impl.ml"
-dst = "lib.ml"
-******* ocamlc.byte
-commandline = "-depend -as-map lib.ml lib.mli"
-******** ocamlc.byte
-commandline = "-depend -map lib.ml -open Lib ${links}"
-********* check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/depend.mk.reference"
-********** hasunix
-*********** script
-script = "rm -f ${links}"
-************ script
-script = "${MAKE} -f Makefile.build byte"
-************* native-compiler
-************** script
-script = "${MAKE} -f Makefile.build opt"
-
-* setup-ocamlc.byte-build-env
-compiler_directory_suffix = ".depend.mk2"
-compiler_output = "${test_build_directory}/depend.mk2"
-** copy
-src = "A.ml"
-dst = "LibA.ml"
-*** copy
-src = "B.ml"
-dst = "LibB.ml"
-**** copy
-src = "C.ml"
-dst = "LibC.ml"
-***** copy
-src = "D.ml"
-dst = "LibD.ml"
-****** ocamlc.byte
-commandline = "-depend -map lib.mli -open Lib ${links}"
-******* check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/depend.mk2.reference"
-******** hasunix
-********* script
-script = "rm -f ${links}"
-********** script
-script = "${MAKE} -f Makefile.build2 byte"
-*********** native-compiler
-************ script
-script = "${MAKE} -f Makefile.build2 opt"
-
-* setup-ocamlc.byte-build-env
-compiler_directory_suffix = ".depend.mod"
-** copy
-src = "A.ml"
-dst = "LibA.ml"
-*** copy
-src = "B.ml"
-dst = "LibB.ml"
-**** copy
-src = "C.ml"
-dst = "LibC.ml"
-***** copy
-src = "D.ml"
-dst = "LibD.ml"
-****** copy
-src = "lib_impl.ml"
-dst = "lib.ml"
-******* ocamlc.byte
-commandline = "-depend -as-map -modules lib.ml lib.mli"
-******** ocamlc.byte
-commandline = "-depend -modules -map lib.ml -open Lib ${links}"
-********* check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/depend.mod.reference"
-
-* setup-ocamlc.byte-build-env
-compiler_directory_suffix = ".depend.mod2"
-** copy
-src = "A.ml"
-dst = "LibA.ml"
-*** copy
-src = "B.ml"
-dst = "LibB.ml"
-**** copy
-src = "C.ml"
-dst = "LibC.ml"
-***** copy
-src = "D.ml"
-dst = "LibD.ml"
-****** ocamlc.byte
-commandline = "-depend -modules -map lib.mli ${links}"
-******* check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/depend.mod2.reference"
-
-* setup-ocamlc.byte-build-env
-compiler_directory_suffix = ".depend.mod3"
-** copy
-src = "A.ml"
-dst = "LibA.ml"
-*** copy
-src = "B.ml"
-dst = "LibB.ml"
-**** copy
-src = "C.ml"
-dst = "LibC.ml"
-***** copy
-src = "D.ml"
-dst = "LibD.ml"
-****** ocamlc.byte
-commandline = "-depend -modules -as-map -map lib.mli -open Lib ${links}"
-******* check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/depend.mod3.reference"
-
+ readonly_files = "A.ml B.ml C.ml D.ml lib_impl.ml lib.mli Makefile.build Makefile.build2";
+ set sources = "A.ml B.ml C.ml D.ml";
+ set links = "LibA.ml LibB.ml LibC.ml LibD.ml";
+ set stdlib = "-nostdlib -I ${ocamlsrcdir}/stdlib";
+ set OCAMLC = "${ocamlrun} ${ocamlc_byte} ${stdlib}";
+ set OCAMLOPT = "${ocamlrun} ${ocamlopt_byte} ${stdlib}";
+ {
+ compiler_directory_suffix = ".depend.mk";
+ compiler_output = "${test_build_directory}/depend.mk";
+ setup-ocamlc.byte-build-env;
+ src = "A.ml";
+ dst = "LibA.ml";
+ copy;
+ src = "B.ml";
+ dst = "LibB.ml";
+ copy;
+ src = "C.ml";
+ dst = "LibC.ml";
+ copy;
+ src = "D.ml";
+ dst = "LibD.ml";
+ copy;
+ src = "lib_impl.ml";
+ dst = "lib.ml";
+ copy;
+ commandline = "-depend -as-map lib.ml lib.mli";
+ ocamlc.byte;
+ commandline = "-depend -map lib.ml -open Lib ${links}";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/depend.mk.reference";
+ check-ocamlc.byte-output;
+ hasunix;
+ script = "rm -f ${links}";
+ script;
+ script = "${MAKE} -f Makefile.build byte";
+ script;
+ native-compiler;
+ script = "${MAKE} -f Makefile.build opt";
+ script;
+ }{
+ compiler_directory_suffix = ".depend.mk2";
+ compiler_output = "${test_build_directory}/depend.mk2";
+ setup-ocamlc.byte-build-env;
+ src = "A.ml";
+ dst = "LibA.ml";
+ copy;
+ src = "B.ml";
+ dst = "LibB.ml";
+ copy;
+ src = "C.ml";
+ dst = "LibC.ml";
+ copy;
+ src = "D.ml";
+ dst = "LibD.ml";
+ copy;
+ commandline = "-depend -map lib.mli -open Lib ${links}";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/depend.mk2.reference";
+ check-ocamlc.byte-output;
+ hasunix;
+ script = "rm -f ${links}";
+ script;
+ script = "${MAKE} -f Makefile.build2 byte";
+ script;
+ native-compiler;
+ script = "${MAKE} -f Makefile.build2 opt";
+ script;
+ }{
+ compiler_directory_suffix = ".depend.mod";
+ setup-ocamlc.byte-build-env;
+ src = "A.ml";
+ dst = "LibA.ml";
+ copy;
+ src = "B.ml";
+ dst = "LibB.ml";
+ copy;
+ src = "C.ml";
+ dst = "LibC.ml";
+ copy;
+ src = "D.ml";
+ dst = "LibD.ml";
+ copy;
+ src = "lib_impl.ml";
+ dst = "lib.ml";
+ copy;
+ commandline = "-depend -as-map -modules lib.ml lib.mli";
+ ocamlc.byte;
+ commandline = "-depend -modules -map lib.ml -open Lib ${links}";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/depend.mod.reference";
+ check-ocamlc.byte-output;
+ }{
+ compiler_directory_suffix = ".depend.mod2";
+ setup-ocamlc.byte-build-env;
+ src = "A.ml";
+ dst = "LibA.ml";
+ copy;
+ src = "B.ml";
+ dst = "LibB.ml";
+ copy;
+ src = "C.ml";
+ dst = "LibC.ml";
+ copy;
+ src = "D.ml";
+ dst = "LibD.ml";
+ copy;
+ commandline = "-depend -modules -map lib.mli ${links}";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/depend.mod2.reference";
+ check-ocamlc.byte-output;
+ }{
+ compiler_directory_suffix = ".depend.mod3";
+ setup-ocamlc.byte-build-env;
+ src = "A.ml";
+ dst = "LibA.ml";
+ copy;
+ src = "B.ml";
+ dst = "LibB.ml";
+ copy;
+ src = "C.ml";
+ dst = "LibC.ml";
+ copy;
+ src = "D.ml";
+ dst = "LibD.ml";
+ copy;
+ commandline = "-depend -modules -as-map -map lib.mli -open Lib ${links}";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/depend.mod3.reference";
+ check-ocamlc.byte-output;
+ }
*)
open Lib
diff --git a/testsuite/tests/tool-ocamldep-shadowing/a.ml b/testsuite/tests/tool-ocamldep-shadowing/a.ml
index 066d4b5200..5da9c53937 100644
--- a/testsuite/tests/tool-ocamldep-shadowing/a.ml
+++ b/testsuite/tests/tool-ocamldep-shadowing/a.ml
@@ -1,12 +1,10 @@
(* TEST
-
-subdirectories = "dir1 dir2"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-commandline = "-depend -slash -I dir1 -I dir2 a.ml"
-*** check-ocamlc.byte-output
-compiler_reference = "${test_source_directory}/a.reference"
+ subdirectories = "dir1 dir2";
+ setup-ocamlc.byte-build-env;
+ commandline = "-depend -slash -I dir1 -I dir2 a.ml";
+ ocamlc.byte;
+ compiler_reference = "${test_source_directory}/a.reference";
+ check-ocamlc.byte-output;
*)
include B
diff --git a/testsuite/tests/tool-ocamldoc-open/main.ml b/testsuite/tests/tool-ocamldoc-open/main.ml
index 4dca4e546d..f76734e67e 100644
--- a/testsuite/tests/tool-ocamldoc-open/main.ml
+++ b/testsuite/tests/tool-ocamldoc-open/main.ml
@@ -1,8 +1,8 @@
(* TEST
- modules = "inner.ml alias.ml"
- * ocamldoc
- ocamldoc_backend="latex"
- ocamldoc_flags=" -open Alias.Container -open Aliased_inner "
+ modules = "inner.ml alias.ml";
+ ocamldoc_backend = "latex";
+ ocamldoc_flags = " -open Alias.Container -open Aliased_inner ";
+ ocamldoc;
*)
(** Documentation test *)
diff --git a/testsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference b/testsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference
index db844172f3..5c04050722 100644
--- a/testsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Alert_toplevel.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Alert_toplevel.mli b/testsuite/tests/tool-ocamldoc/Alert_toplevel.mli
index 4b67c2d769..73a9e74625 100644
--- a/testsuite/tests/tool-ocamldoc/Alert_toplevel.mli
+++ b/testsuite/tests/tool-ocamldoc/Alert_toplevel.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
(** There's a top-comment before. *)
diff --git a/testsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference b/testsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference
index 74c43e22eb..ae9af6b025 100644
--- a/testsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Alert_toplevel2.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Alert_toplevel2.mli b/testsuite/tests/tool-ocamldoc/Alert_toplevel2.mli
index a31bab4304..9284a7db66 100644
--- a/testsuite/tests/tool-ocamldoc/Alert_toplevel2.mli
+++ b/testsuite/tests/tool-ocamldoc/Alert_toplevel2.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
[@@@alert deprecated "foo"]
diff --git a/testsuite/tests/tool-ocamldoc/Alerts.html.reference b/testsuite/tests/tool-ocamldoc/Alerts.html.reference
index 0309559d6e..8441b6dd30 100644
--- a/testsuite/tests/tool-ocamldoc/Alerts.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Alerts.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Alerts.mli b/testsuite/tests/tool-ocamldoc/Alerts.mli
index 95846b0a19..c2d0a44f31 100644
--- a/testsuite/tests/tool-ocamldoc/Alerts.mli
+++ b/testsuite/tests/tool-ocamldoc/Alerts.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
(** Test the rendering of alerts. *)
diff --git a/testsuite/tests/tool-ocamldoc/Alerts_impl.html.reference b/testsuite/tests/tool-ocamldoc/Alerts_impl.html.reference
index 17672fc545..8f7c33bed4 100644
--- a/testsuite/tests/tool-ocamldoc/Alerts_impl.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Alerts_impl.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Alerts_impl.ml b/testsuite/tests/tool-ocamldoc/Alerts_impl.ml
index db38c1e573..e542af37d1 100644
--- a/testsuite/tests/tool-ocamldoc/Alerts_impl.ml
+++ b/testsuite/tests/tool-ocamldoc/Alerts_impl.ml
@@ -1,6 +1,6 @@
(* TEST
- * ocamldoc with html
- *)
+ ocamldoc with html;
+*)
(** Alerts from implementation. *)
diff --git a/testsuite/tests/tool-ocamldoc/Documentation_tags.html.reference b/testsuite/tests/tool-ocamldoc/Documentation_tags.html.reference
index 683c6c099f..90955fe369 100644
--- a/testsuite/tests/tool-ocamldoc/Documentation_tags.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Documentation_tags.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Documentation_tags.mli b/testsuite/tests/tool-ocamldoc/Documentation_tags.mli
index 0dadce6610..cffb06626d 100644
--- a/testsuite/tests/tool-ocamldoc/Documentation_tags.mli
+++ b/testsuite/tests/tool-ocamldoc/Documentation_tags.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
(** Test the html rendering of ocamldoc documentation tags *)
diff --git a/testsuite/tests/tool-ocamldoc/Entities.html.reference b/testsuite/tests/tool-ocamldoc/Entities.html.reference
index 0ef46358b3..dde148dd10 100644
--- a/testsuite/tests/tool-ocamldoc/Entities.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Entities.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Entities.ml b/testsuite/tests/tool-ocamldoc/Entities.ml
index 218817eed8..ce48d6755b 100644
--- a/testsuite/tests/tool-ocamldoc/Entities.ml
+++ b/testsuite/tests/tool-ocamldoc/Entities.ml
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
type ul
diff --git a/testsuite/tests/tool-ocamldoc/Extensible_variant.ml b/testsuite/tests/tool-ocamldoc/Extensible_variant.ml
index f459fa276b..7202a8475c 100644
--- a/testsuite/tests/tool-ocamldoc/Extensible_variant.ml
+++ b/testsuite/tests/tool-ocamldoc/Extensible_variant.ml
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)
(** Testing display of extensible variant types and exceptions.
diff --git a/testsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference b/testsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference
index 1619e2180a..b0b9089f90 100644
--- a/testsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Include_module_type_of.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Include_module_type_of.mli b/testsuite/tests/tool-ocamldoc/Include_module_type_of.mli
index c30432d472..b33cbb5c5c 100644
--- a/testsuite/tests/tool-ocamldoc/Include_module_type_of.mli
+++ b/testsuite/tests/tool-ocamldoc/Include_module_type_of.mli
@@ -1,6 +1,9 @@
(* TEST
- * ocamldoc with html
- * ocamldoc with latex
+ {
+ ocamldoc with html;
+ }{
+ ocamldoc with latex;
+ }
*)
(** Test [include module type of...] variants *)
diff --git a/testsuite/tests/tool-ocamldoc/Inline_records.html.reference b/testsuite/tests/tool-ocamldoc/Inline_records.html.reference
index cab1cd55d8..2a53b4673b 100644
--- a/testsuite/tests/tool-ocamldoc/Inline_records.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Inline_records.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Inline_records.mli b/testsuite/tests/tool-ocamldoc/Inline_records.mli
index 5b4646d9e1..1f5a15e667 100644
--- a/testsuite/tests/tool-ocamldoc/Inline_records.mli
+++ b/testsuite/tests/tool-ocamldoc/Inline_records.mli
@@ -1,7 +1,11 @@
(* TEST
- * ocamldoc with html
- * ocamldoc with latex
- * ocamldoc with man
+ {
+ ocamldoc with html;
+ }{
+ ocamldoc with latex;
+ }{
+ ocamldoc with man;
+ }
*)
(**
diff --git a/testsuite/tests/tool-ocamldoc/Inline_records_bis.ml b/testsuite/tests/tool-ocamldoc/Inline_records_bis.ml
index 4844aaf27a..970912b3f8 100644
--- a/testsuite/tests/tool-ocamldoc/Inline_records_bis.ml
+++ b/testsuite/tests/tool-ocamldoc/Inline_records_bis.ml
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)
(**
diff --git a/testsuite/tests/tool-ocamldoc/Item_ids.html.reference b/testsuite/tests/tool-ocamldoc/Item_ids.html.reference
index c3b66f3e79..460831c2a9 100644
--- a/testsuite/tests/tool-ocamldoc/Item_ids.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Item_ids.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Item_ids.mli b/testsuite/tests/tool-ocamldoc/Item_ids.mli
index 878c6fef30..744fd9d239 100644
--- a/testsuite/tests/tool-ocamldoc/Item_ids.mli
+++ b/testsuite/tests/tool-ocamldoc/Item_ids.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
(** Check that all toplevel items are given a unique id. *)
diff --git a/testsuite/tests/tool-ocamldoc/Level_0.mli b/testsuite/tests/tool-ocamldoc/Level_0.mli
index f7ac2a888e..3bd9aea977 100644
--- a/testsuite/tests/tool-ocamldoc/Level_0.mli
+++ b/testsuite/tests/tool-ocamldoc/Level_0.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)
(** Test for level 0 headings
diff --git a/testsuite/tests/tool-ocamldoc/Linebreaks.html.reference b/testsuite/tests/tool-ocamldoc/Linebreaks.html.reference
index 58ad73e63a..66b0dd9df2 100644
--- a/testsuite/tests/tool-ocamldoc/Linebreaks.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Linebreaks.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Linebreaks.mli b/testsuite/tests/tool-ocamldoc/Linebreaks.mli
index 1dce3838b8..1baf3db314 100644
--- a/testsuite/tests/tool-ocamldoc/Linebreaks.mli
+++ b/testsuite/tests/tool-ocamldoc/Linebreaks.mli
@@ -1,8 +1,8 @@
(* TEST
- * ocamldoc with html
- ** check-program-output
- output="type_Linebreaks.html"
- reference="${test_source_directory}/type_Linebreaks.reference"
+ ocamldoc with html;
+ output = "type_Linebreaks.html";
+ reference = "${test_source_directory}/type_Linebreaks.reference";
+ check-program-output;
*)
(**
diff --git a/testsuite/tests/tool-ocamldoc/Loop.html.reference b/testsuite/tests/tool-ocamldoc/Loop.html.reference
index 74ad9a7eaf..30c2864f03 100644
--- a/testsuite/tests/tool-ocamldoc/Loop.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Loop.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Loop.ml b/testsuite/tests/tool-ocamldoc/Loop.ml
index 8428f9fc15..b3c4f6888e 100644
--- a/testsuite/tests/tool-ocamldoc/Loop.ml
+++ b/testsuite/tests/tool-ocamldoc/Loop.ml
@@ -1,5 +1,8 @@
(* TEST
- * ocamldoc with html
- * ocamldoc with latex
+ {
+ ocamldoc with html;
+ }{
+ ocamldoc with latex;
+ }
*)
module rec A : sig type t end = B and B : sig type t = A.t end = A;;
diff --git a/testsuite/tests/tool-ocamldoc/Module_whitespace.html.reference b/testsuite/tests/tool-ocamldoc/Module_whitespace.html.reference
index c528be1c1f..2f5252e27c 100644
--- a/testsuite/tests/tool-ocamldoc/Module_whitespace.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Module_whitespace.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Module_whitespace.ml b/testsuite/tests/tool-ocamldoc/Module_whitespace.ml
index 75c6c29274..7b3723d6cf 100644
--- a/testsuite/tests/tool-ocamldoc/Module_whitespace.ml
+++ b/testsuite/tests/tool-ocamldoc/Module_whitespace.ml
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
module M = Set.Make(struct
diff --git a/testsuite/tests/tool-ocamldoc/No_preamble.html.reference b/testsuite/tests/tool-ocamldoc/No_preamble.html.reference
index 0f3867016c..3125b08df4 100644
--- a/testsuite/tests/tool-ocamldoc/No_preamble.html.reference
+++ b/testsuite/tests/tool-ocamldoc/No_preamble.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/No_preamble.mli b/testsuite/tests/tool-ocamldoc/No_preamble.mli
index 7d016dda22..ea8a655f19 100644
--- a/testsuite/tests/tool-ocamldoc/No_preamble.mli
+++ b/testsuite/tests/tool-ocamldoc/No_preamble.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
open String
diff --git a/testsuite/tests/tool-ocamldoc/Paragraph.html.reference b/testsuite/tests/tool-ocamldoc/Paragraph.html.reference
index 7cc2bc1fff..b132f065ad 100644
--- a/testsuite/tests/tool-ocamldoc/Paragraph.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Paragraph.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Paragraph.mli b/testsuite/tests/tool-ocamldoc/Paragraph.mli
index 8073c7cd99..73e39e9412 100644
--- a/testsuite/tests/tool-ocamldoc/Paragraph.mli
+++ b/testsuite/tests/tool-ocamldoc/Paragraph.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with html
+ ocamldoc with html;
*)
(** This file tests the generation of paragraph within module comments.
diff --git a/testsuite/tests/tool-ocamldoc/Short_description.latex.reference b/testsuite/tests/tool-ocamldoc/Short_description.latex.reference
index 4a938e4168..26241644c1 100644
--- a/testsuite/tests/tool-ocamldoc/Short_description.latex.reference
+++ b/testsuite/tests/tool-ocamldoc/Short_description.latex.reference
@@ -8,7 +8,7 @@
\begin{document}
\tableofcontents
\section{Short\_description : (* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)}
\label{Short-underscoredescription}\index{Short-underscoredescription@\verb`Short_description`}
diff --git a/testsuite/tests/tool-ocamldoc/Short_description.txt b/testsuite/tests/tool-ocamldoc/Short_description.txt
index e0021ea697..12a063ba60 100644
--- a/testsuite/tests/tool-ocamldoc/Short_description.txt
+++ b/testsuite/tests/tool-ocamldoc/Short_description.txt
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)
Short global description in text mode
diff --git a/testsuite/tests/tool-ocamldoc/Test.mli b/testsuite/tests/tool-ocamldoc/Test.mli
index b28c8e734e..cbb4aa6a21 100644
--- a/testsuite/tests/tool-ocamldoc/Test.mli
+++ b/testsuite/tests/tool-ocamldoc/Test.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)
(** Ten comments for tests *)
diff --git a/testsuite/tests/tool-ocamldoc/Variants.html.reference b/testsuite/tests/tool-ocamldoc/Variants.html.reference
index 0858bde168..35733fe8a4 100644
--- a/testsuite/tests/tool-ocamldoc/Variants.html.reference
+++ b/testsuite/tests/tool-ocamldoc/Variants.html.reference
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
diff --git a/testsuite/tests/tool-ocamldoc/Variants.mli b/testsuite/tests/tool-ocamldoc/Variants.mli
index 137a42ce6d..ba6de5b455 100644
--- a/testsuite/tests/tool-ocamldoc/Variants.mli
+++ b/testsuite/tests/tool-ocamldoc/Variants.mli
@@ -1,6 +1,9 @@
(* TEST
- * ocamldoc with html
- * ocamldoc with latex
+ {
+ ocamldoc with html;
+ }{
+ ocamldoc with latex;
+ }
*)
(** This test is here to check the latex code generated for variants *)
diff --git a/testsuite/tests/tool-ocamldoc/latex_ref.mli b/testsuite/tests/tool-ocamldoc/latex_ref.mli
index 8424aa891f..9ed1a8f86a 100644
--- a/testsuite/tests/tool-ocamldoc/latex_ref.mli
+++ b/testsuite/tests/tool-ocamldoc/latex_ref.mli
@@ -1,5 +1,5 @@
(* TEST
- * ocamldoc with latex
+ ocamldoc with latex;
*)
(** Latex-only test *)
diff --git a/testsuite/tests/tool-ocamldoc/t01.ml b/testsuite/tests/tool-ocamldoc/t01.ml
index 1003b47f2d..9d76ba51ff 100644
--- a/testsuite/tests/tool-ocamldoc/t01.ml
+++ b/testsuite/tests/tool-ocamldoc/t01.ml
@@ -1,7 +1,7 @@
(* TEST
- plugins="odoc_test.ml"
- * ocamldoc
- flags="-I ${ocamlsrcdir}/ocamldoc"
+ plugins = "odoc_test.ml";
+ flags = "-I ${ocamlsrcdir}/ocamldoc";
+ ocamldoc;
*)
(** Testing display of types.
diff --git a/testsuite/tests/tool-ocamldoc/t02.ml b/testsuite/tests/tool-ocamldoc/t02.ml
index a2280cf8f3..4dbef6c167 100644
--- a/testsuite/tests/tool-ocamldoc/t02.ml
+++ b/testsuite/tests/tool-ocamldoc/t02.ml
@@ -1,7 +1,7 @@
(* TEST
- plugins="odoc_test.ml"
- * ocamldoc
- flags="-I ${ocamlsrcdir}/ocamldoc"
+ plugins = "odoc_test.ml";
+ flags = "-I ${ocamlsrcdir}/ocamldoc";
+ ocamldoc;
*)
module Foo = struct type u type t = int let x = 1 end;;
diff --git a/testsuite/tests/tool-ocamldoc/t03.ml b/testsuite/tests/tool-ocamldoc/t03.ml
index 3ee319ba02..69022bb03a 100644
--- a/testsuite/tests/tool-ocamldoc/t03.ml
+++ b/testsuite/tests/tool-ocamldoc/t03.ml
@@ -1,7 +1,7 @@
(* TEST
- plugins="odoc_test.ml"
- * ocamldoc
- flags="-I ${ocamlsrcdir}/ocamldoc"
+ plugins = "odoc_test.ml";
+ flags = "-I ${ocamlsrcdir}/ocamldoc";
+ ocamldoc;
*)
module Foo = struct type t = int let x = 1 end;;
diff --git a/testsuite/tests/tool-ocamldoc/t04.ml b/testsuite/tests/tool-ocamldoc/t04.ml
index d815b4ccc0..85d1fe59ca 100644
--- a/testsuite/tests/tool-ocamldoc/t04.ml
+++ b/testsuite/tests/tool-ocamldoc/t04.ml
@@ -1,7 +1,7 @@
(* TEST
- plugins="odoc_test.ml"
- * ocamldoc
- flags="-I ${ocamlsrcdir}/ocamldoc"
+ plugins = "odoc_test.ml";
+ flags = "-I ${ocamlsrcdir}/ocamldoc";
+ ocamldoc;
*)
(** Testing display of inline record.
diff --git a/testsuite/tests/tool-ocamldoc/t05.ml b/testsuite/tests/tool-ocamldoc/t05.ml
index 885dc90a32..f5fb0b98e6 100644
--- a/testsuite/tests/tool-ocamldoc/t05.ml
+++ b/testsuite/tests/tool-ocamldoc/t05.ml
@@ -1,7 +1,7 @@
(* TEST
- plugins="odoc_test.ml"
- * ocamldoc
- flags="-I ${ocamlsrcdir}/ocamldoc"
+ plugins = "odoc_test.ml";
+ flags = "-I ${ocamlsrcdir}/ocamldoc";
+ ocamldoc;
*)
module rec A : sig type t end = B and B : sig type t = A.t end = A;;
diff --git a/testsuite/tests/tool-ocamlobjinfo/question.ml b/testsuite/tests/tool-ocamlobjinfo/question.ml
index 0b42dd1f9d..8689d62cd3 100644
--- a/testsuite/tests/tool-ocamlobjinfo/question.ml
+++ b/testsuite/tests/tool-ocamlobjinfo/question.ml
@@ -1,13 +1,13 @@
(* TEST
-* shared-libraries
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
-flags = "-shared"
-all_modules = "question.ml"
-program = "question.cmxs"
-**** check-ocamlopt.byte-output
-***** ocamlobjinfo
-****** check-program-output
+ shared-libraries;
+ setup-ocamlopt.byte-build-env;
+ flags = "-shared";
+ all_modules = "question.ml";
+ program = "question.cmxs";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ ocamlobjinfo;
+ check-program-output;
*)
let answer = 42
diff --git a/testsuite/tests/tool-ocamlopt-save-ir/check_for_pack.ml b/testsuite/tests/tool-ocamlopt-save-ir/check_for_pack.ml
index 610abbdc34..531aacbd7a 100644
--- a/testsuite/tests/tool-ocamlopt-save-ir/check_for_pack.ml
+++ b/testsuite/tests/tool-ocamlopt-save-ir/check_for_pack.ml
@@ -1,16 +1,16 @@
(* TEST
- * native-compiler
- ** setup-ocamlopt.byte-build-env
- *** ocamlopt.byte
- flags = "-save-ir-after scheduling"
- ocamlopt_byte_exit_status = "0"
- **** script
- script = "touch empty.ml"
- ***** ocamlopt.byte
- flags = "-S check_for_pack.cmir-linear -for-pack foo"
- module = "empty.ml"
- ocamlopt_byte_exit_status = "2"
- ****** check-ocamlopt.byte-output
+ native-compiler;
+ setup-ocamlopt.byte-build-env;
+ flags = "-save-ir-after scheduling";
+ ocamlopt_byte_exit_status = "0";
+ ocamlopt.byte;
+ script = "touch empty.ml";
+ script;
+ flags = "-S check_for_pack.cmir-linear -for-pack foo";
+ module = "empty.ml";
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
*)
let foo f x =
diff --git a/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_scheduling.ml b/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_scheduling.ml
index 1d81597856..9d8e1e11e3 100644
--- a/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_scheduling.ml
+++ b/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_scheduling.ml
@@ -1,11 +1,11 @@
(* TEST
- * native-compiler
- ** setup-ocamlopt.byte-build-env
- *** ocamlopt.byte
- flags = "-save-ir-after scheduling -S"
- **** check-ocamlopt.byte-output
- ***** script
- script = "sh ${test_source_directory}/save_ir_after_scheduling.sh"
+ native-compiler;
+ setup-ocamlopt.byte-build-env;
+ flags = "-save-ir-after scheduling -S";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ script = "sh ${test_source_directory}/save_ir_after_scheduling.sh";
+ script;
*)
let foo f x =
diff --git a/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_typing.ml b/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_typing.ml
index 15c2379f7c..17c4554e52 100644
--- a/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_typing.ml
+++ b/testsuite/tests/tool-ocamlopt-save-ir/save_ir_after_typing.ml
@@ -1,15 +1,18 @@
(* TEST
- * native-compiler
- ** setup-ocamlopt.byte-build-env
- compiler_output = "compiler-output.raw"
- *** ocamlopt.byte
- flags = "-save-ir-after typing"
- ocamlopt_byte_exit_status = "2"
- *** script
- script = "sh ${test_source_directory}/save_ir_after_typing.sh"
- output = "compiler-output"
- **** check-ocamlopt.byte-output
- compiler_output = "compiler-output"
+ native-compiler;
+ compiler_output = "compiler-output.raw";
+ setup-ocamlopt.byte-build-env;
+ {
+ flags = "-save-ir-after typing";
+ ocamlopt_byte_exit_status = "2";
+ ocamlopt.byte;
+ }{
+ script = "sh ${test_source_directory}/save_ir_after_typing.sh";
+ output = "compiler-output";
+ script;
+ compiler_output = "compiler-output";
+ check-ocamlopt.byte-output;
+ }
*)
(* this file is just a test driver, the test does not contain real OCaml code *)
diff --git a/testsuite/tests/tool-ocamlopt-save-ir/start_from_emit.ml b/testsuite/tests/tool-ocamlopt-save-ir/start_from_emit.ml
index bac85a816f..66757e0691 100644
--- a/testsuite/tests/tool-ocamlopt-save-ir/start_from_emit.ml
+++ b/testsuite/tests/tool-ocamlopt-save-ir/start_from_emit.ml
@@ -1,29 +1,28 @@
(* TEST
- * native-compiler
- ** setup-ocamlopt.byte-build-env
- *** ocamlopt.byte
- flags = "-save-ir-after scheduling -stop-after scheduling"
- ocamlopt_byte_exit_status = "0"
- **** script
- script = "touch empty.ml"
- ***** ocamlopt.byte
- flags = "-S start_from_emit.cmir-linear"
- module = "empty.ml"
- ocamlopt_byte_exit_status = "0"
- ****** check-ocamlopt.byte-output
- ******* script
- script = "sh ${test_source_directory}/start_from_emit.sh"
- ******** ocamlopt.byte
- flags = "-S start_from_emit.cmir-linear -save-ir-after scheduling"
- module = "empty.ml"
- ocamlopt_byte_exit_status = "0"
- ********* copy
- src = "start_from_emit.cmir-linear"
- dst = "expected.cmir_linear"
- ********** check-ocamlopt.byte-output
- *********** script
- script = "cmp start_from_emit.cmir-linear expected.cmir_linear"
-
+ native-compiler;
+ setup-ocamlopt.byte-build-env;
+ flags = "-save-ir-after scheduling -stop-after scheduling";
+ ocamlopt_byte_exit_status = "0";
+ ocamlopt.byte;
+ script = "touch empty.ml";
+ script;
+ flags = "-S start_from_emit.cmir-linear";
+ module = "empty.ml";
+ ocamlopt_byte_exit_status = "0";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ script = "sh ${test_source_directory}/start_from_emit.sh";
+ script;
+ flags = "-S start_from_emit.cmir-linear -save-ir-after scheduling";
+ module = "empty.ml";
+ ocamlopt_byte_exit_status = "0";
+ ocamlopt.byte;
+ src = "start_from_emit.cmir-linear";
+ dst = "expected.cmir_linear";
+ copy;
+ check-ocamlopt.byte-output;
+ script = "cmp start_from_emit.cmir-linear expected.cmir_linear";
+ script;
*)
let foo f x =
diff --git a/testsuite/tests/tool-ocamlopt-stop-after/stop_after_lambda.ml b/testsuite/tests/tool-ocamlopt-stop-after/stop_after_lambda.ml
index 591f3d112b..a3f08f4bfc 100644
--- a/testsuite/tests/tool-ocamlopt-stop-after/stop_after_lambda.ml
+++ b/testsuite/tests/tool-ocamlopt-stop-after/stop_after_lambda.ml
@@ -1,10 +1,10 @@
(* TEST
-* no-flambda
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
- flags = "-dlambda -stop-after lambda -nopervasives "
- ocamlopt_byte_exit_status = "0"
-**** check-ocamlopt.byte-output
+ no-flambda;
+ setup-ocamlopt.byte-build-env;
+ flags = "-dlambda -stop-after lambda -nopervasives ";
+ ocamlopt_byte_exit_status = "0";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
*)
(* no-flambda: the -lambda output differs with flambda, and
diff --git a/testsuite/tests/tool-ocamlopt-stop-after/stop_after_scheduling.ml b/testsuite/tests/tool-ocamlopt-stop-after/stop_after_scheduling.ml
index dfa97ffd68..d446248f1b 100644
--- a/testsuite/tests/tool-ocamlopt-stop-after/stop_after_scheduling.ml
+++ b/testsuite/tests/tool-ocamlopt-stop-after/stop_after_scheduling.ml
@@ -1,12 +1,12 @@
(* TEST
- * native-compiler
- ** setup-ocamlopt.byte-build-env
- *** ocamlopt.byte
- flags = "-stop-after scheduling -S"
- ocamlopt_byte_exit_status = "0"
- **** check-ocamlopt.byte-output
- ***** script
- script = "sh ${test_source_directory}/stop_after_scheduling.sh"
+ native-compiler;
+ setup-ocamlopt.byte-build-env;
+ flags = "-stop-after scheduling -S";
+ ocamlopt_byte_exit_status = "0";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ script = "sh ${test_source_directory}/stop_after_scheduling.sh";
+ script;
*)
(* this file is just a test driver, the test does not contain real OCaml code *)
diff --git a/testsuite/tests/tool-ocamltest/norm1.ml b/testsuite/tests/tool-ocamltest/norm1.ml
index ea32acffed..d4f5e418e8 100644
--- a/testsuite/tests/tool-ocamltest/norm1.ml
+++ b/testsuite/tests/tool-ocamltest/norm1.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
let () = set_binary_mode_out stdout true in
(* ocamltest must normalise the \r\n *)
print_string "line1\r\n"; flush stdout
diff --git a/testsuite/tests/tool-ocamltest/norm2.ml b/testsuite/tests/tool-ocamltest/norm2.ml
index 284e99d694..cdf4afaf96 100644
--- a/testsuite/tests/tool-ocamltest/norm2.ml
+++ b/testsuite/tests/tool-ocamltest/norm2.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
let () = set_binary_mode_out stdout true in
(* ocamltest must normalise the \r\n *)
print_string "line1\r\nline2\r\n"; flush stdout
diff --git a/testsuite/tests/tool-ocamltest/norm3.ml b/testsuite/tests/tool-ocamltest/norm3.ml
index eb7baa75ce..9818a2c3b4 100644
--- a/testsuite/tests/tool-ocamltest/norm3.ml
+++ b/testsuite/tests/tool-ocamltest/norm3.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
let () = set_binary_mode_out stdout true in
(* ocamltest must normalise the \r\n but preserve the final \r *)
print_string "line1\r\nline2\r"; flush stdout
diff --git a/testsuite/tests/tool-ocamltest/norm4.ml b/testsuite/tests/tool-ocamltest/norm4.ml
index 7b06b92228..b91b390a65 100644
--- a/testsuite/tests/tool-ocamltest/norm4.ml
+++ b/testsuite/tests/tool-ocamltest/norm4.ml
@@ -1,5 +1,4 @@
-(* TEST
- *)
+(* TEST *)
let () = set_binary_mode_out stdout true in
(* ocamltest must normalise the \r\n *)
print_string "line1\r\nline2"; flush stdout
diff --git a/testsuite/tests/tool-toplevel-invocation/test.ml b/testsuite/tests/tool-toplevel-invocation/test.ml
index b5c54d5499..7951c7e2a9 100644
--- a/testsuite/tests/tool-toplevel-invocation/test.ml
+++ b/testsuite/tests/tool-toplevel-invocation/test.ml
@@ -1,51 +1,47 @@
(* TEST
-
-readonly_files = "first_arg_fail.txt last_arg_fail.txt"
-
-* setup-ocaml-build-env
-
-** ocaml
-flags = "-args ${test_source_directory}/first_arg_fail.txt"
-compiler_reference = "${test_source_directory}/first_arg_fail.txt.reference"
-compiler_output = "${test_build_directory}/first_arg_fail.output"
-ocaml_exit_status = "2"
-*** check-ocaml-output
-
-** ocaml
-flags = "-args ${test_source_directory}/indirect_first_arg_fail.txt"
-compiler_reference =
- "${test_source_directory}/indirect_first_arg_fail.txt.reference"
-compiler_output = "${test_build_directory}/indirect_first_arg_fail.output"
-ocaml_exit_status = "2"
-*** check-ocaml-output
-
-** ocaml
-flags = "-args ${test_source_directory}/indirect_last_arg_fail.txt"
-compiler_reference =
- "${test_source_directory}/indirect_last_arg_fail.txt.reference"
-compiler_output = "${test_build_directory}/indirect_last_arg_fail.output"
-ocaml_exit_status = "2"
-*** check-ocaml-output
-
-** ocaml
-flags = "-args ${test_source_directory}/last_arg_fail.txt"
-compiler_reference = "${test_source_directory}/last_arg_fail.txt.reference"
-compiler_output = "${test_build_directory}/last_arg_fail.output"
-ocaml_exit_status = "2"
-*** check-ocaml-output
-
-** ocaml
-flags = "-args ${test_source_directory}/working_arg.txt"
-compiler_reference = "${test_source_directory}/working_arg.txt.reference"
-compiler_output = "${test_build_directory}/working_arg.output"
-*** check-ocaml-output
-
-** ocaml
-flags = "${test_source_directory}/print_args.ml foo bar"
-compiler_reference = "${test_source_directory}/print_args.reference"
-compiler_output = "${test_build_directory}/print_args.output"
-*** check-ocaml-output
-
+ readonly_files = "first_arg_fail.txt last_arg_fail.txt";
+ setup-ocaml-build-env;
+ {
+ flags = "-args ${test_source_directory}/first_arg_fail.txt";
+ compiler_reference = "${test_source_directory}/first_arg_fail.txt.reference";
+ compiler_output = "${test_build_directory}/first_arg_fail.output";
+ ocaml_exit_status = "2";
+ ocaml;
+ check-ocaml-output;
+ }{
+ flags = "-args ${test_source_directory}/indirect_first_arg_fail.txt";
+ compiler_reference = "${test_source_directory}/indirect_first_arg_fail.txt.reference";
+ compiler_output = "${test_build_directory}/indirect_first_arg_fail.output";
+ ocaml_exit_status = "2";
+ ocaml;
+ check-ocaml-output;
+ }{
+ flags = "-args ${test_source_directory}/indirect_last_arg_fail.txt";
+ compiler_reference = "${test_source_directory}/indirect_last_arg_fail.txt.reference";
+ compiler_output = "${test_build_directory}/indirect_last_arg_fail.output";
+ ocaml_exit_status = "2";
+ ocaml;
+ check-ocaml-output;
+ }{
+ flags = "-args ${test_source_directory}/last_arg_fail.txt";
+ compiler_reference = "${test_source_directory}/last_arg_fail.txt.reference";
+ compiler_output = "${test_build_directory}/last_arg_fail.output";
+ ocaml_exit_status = "2";
+ ocaml;
+ check-ocaml-output;
+ }{
+ flags = "-args ${test_source_directory}/working_arg.txt";
+ compiler_reference = "${test_source_directory}/working_arg.txt.reference";
+ compiler_output = "${test_build_directory}/working_arg.output";
+ ocaml;
+ check-ocaml-output;
+ }{
+ flags = "${test_source_directory}/print_args.ml foo bar";
+ compiler_reference = "${test_source_directory}/print_args.reference";
+ compiler_output = "${test_build_directory}/print_args.output";
+ ocaml;
+ check-ocaml-output;
+ }
*)
printf "Test succeeds\n";;
diff --git a/testsuite/tests/tool-toplevel/error_highlighting.ml b/testsuite/tests/tool-toplevel/error_highlighting.ml
index dbf3810387..eb6f98af1f 100644
--- a/testsuite/tests/tool-toplevel/error_highlighting.ml
+++ b/testsuite/tests/tool-toplevel/error_highlighting.ml
@@ -1,9 +1,9 @@
-(* TEST
- readonly_files = "error_highlighting_use1.ml \
- error_highlighting_use2.ml \
- error_highlighting_use3.ml \
- error_highlighting_use4.ml"
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
let x = (1 + 2) +. 3. in ();;
@@ -109,3 +109,8 @@ let x = 1 in ();;
#use "error_highlighting_use2.ml";;
#use "error_highlighting_use3.ml";;
#use "error_highlighting_use4.ml";;
+
+(* TEST
+ readonly_files = "error_highlighting_use1.ml error_highlighting_use2.ml error_highlighting_use3.ml error_highlighting_use4.ml";
+ toplevel;
+*)
diff --git a/testsuite/tests/tool-toplevel/exotic_lists.ml b/testsuite/tests/tool-toplevel/exotic_lists.ml
index bb09823bd9..a42ff0534b 100644
--- a/testsuite/tests/tool-toplevel/exotic_lists.ml
+++ b/testsuite/tests/tool-toplevel/exotic_lists.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
module L = struct
diff --git a/testsuite/tests/tool-toplevel/install_printer.ml b/testsuite/tests/tool-toplevel/install_printer.ml
index e14a0ced8f..1f5478fcfc 100644
--- a/testsuite/tests/tool-toplevel/install_printer.ml
+++ b/testsuite/tests/tool-toplevel/install_printer.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* simple printer *)
diff --git a/testsuite/tests/tool-toplevel/known-bugs/broken_rec_in_show.ml b/testsuite/tests/tool-toplevel/known-bugs/broken_rec_in_show.ml
index de8262bc0f..d496f06be4 100644
--- a/testsuite/tests/tool-toplevel/known-bugs/broken_rec_in_show.ml
+++ b/testsuite/tests/tool-toplevel/known-bugs/broken_rec_in_show.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* This is a known-bug file for use of 'rec' by the '#show' command,
diff --git a/testsuite/tests/tool-toplevel/mod_use.ml b/testsuite/tests/tool-toplevel/mod_use.ml
index 4ea967e5c0..0b40a600e1 100644
--- a/testsuite/tests/tool-toplevel/mod_use.ml
+++ b/testsuite/tests/tool-toplevel/mod_use.ml
@@ -1,6 +1,6 @@
(* TEST
- readonly_files = "mod.ml"
- * expect
+ readonly_files = "mod.ml";
+ expect;
*)
#mod_use "mod.ml"
diff --git a/testsuite/tests/tool-toplevel/pr6468.ml b/testsuite/tests/tool-toplevel/pr6468.ml
index 69680ccfdd..e4dc5c8f5c 100644
--- a/testsuite/tests/tool-toplevel/pr6468.ml
+++ b/testsuite/tests/tool-toplevel/pr6468.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Make the test reproducible regardless of whether OCAMLRUNPARAM=b or not *)
diff --git a/testsuite/tests/tool-toplevel/pr7060.ml b/testsuite/tests/tool-toplevel/pr7060.ml
index e6ad740888..87e00e6010 100644
--- a/testsuite/tests/tool-toplevel/pr7060.ml
+++ b/testsuite/tests/tool-toplevel/pr7060.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
type t = A | B;;
diff --git a/testsuite/tests/tool-toplevel/pr7751.ml b/testsuite/tests/tool-toplevel/pr7751.ml
index 40ce9ffd44..d0c42e209c 100644
--- a/testsuite/tests/tool-toplevel/pr7751.ml
+++ b/testsuite/tests/tool-toplevel/pr7751.ml
@@ -1,6 +1,6 @@
(* TEST
- include ocamlcommon
- * toplevel
+ include ocamlcommon;
+ toplevel;
*)
Parse.expression (Lexing.from_string "1");;
diff --git a/testsuite/tests/tool-toplevel/pr9701.ml b/testsuite/tests/tool-toplevel/pr9701.ml
index 4dbbc2d614..daefafbff3 100644
--- a/testsuite/tests/tool-toplevel/pr9701.ml
+++ b/testsuite/tests/tool-toplevel/pr9701.ml
@@ -1,9 +1,9 @@
(* TEST
-ocaml_script_as_argument = "true"
-ocaml_exit_status = "2"
-* setup-ocaml-build-env
-** ocaml
-*** check-ocaml-output
+ ocaml_script_as_argument = "true";
+ ocaml_exit_status = "2";
+ setup-ocaml-build-env;
+ ocaml;
+ check-ocaml-output;
*)
#1 "pr9701.ml"
diff --git a/testsuite/tests/tool-toplevel/printval.ml b/testsuite/tests/tool-toplevel/printval.ml
index 17c2744440..1305dad3fe 100644
--- a/testsuite/tests/tool-toplevel/printval.ml
+++ b/testsuite/tests/tool-toplevel/printval.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Test a success case *)
diff --git a/testsuite/tests/tool-toplevel/redefinition_hints.ml b/testsuite/tests/tool-toplevel/redefinition_hints.ml
index ee90af82db..2b691b7dd0 100644
--- a/testsuite/tests/tool-toplevel/redefinition_hints.ml
+++ b/testsuite/tests/tool-toplevel/redefinition_hints.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* This is a toplevel test to trigger toplevel specific hints *)
diff --git a/testsuite/tests/tool-toplevel/show.ml b/testsuite/tests/tool-toplevel/show.ml
index 28b59d9fdb..35ad009167 100644
--- a/testsuite/tests/tool-toplevel/show.ml
+++ b/testsuite/tests/tool-toplevel/show.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* this is a set of tests to test the #show functionality
diff --git a/testsuite/tests/tool-toplevel/show_short_paths.ml b/testsuite/tests/tool-toplevel/show_short_paths.ml
index 000e775234..1051a1839f 100644
--- a/testsuite/tests/tool-toplevel/show_short_paths.ml
+++ b/testsuite/tests/tool-toplevel/show_short_paths.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -short-paths "
- * expect
+ flags = " -short-paths ";
+ expect;
*)
(* This is currently just a regression test for the bug
diff --git a/testsuite/tests/tool-toplevel/strings.ml b/testsuite/tests/tool-toplevel/strings.ml
index baf2987153..982f2dd80d 100644
--- a/testsuite/tests/tool-toplevel/strings.ml
+++ b/testsuite/tests/tool-toplevel/strings.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Test the printing of strings in the terminal *)
diff --git a/testsuite/tests/tool-toplevel/topeval.ml b/testsuite/tests/tool-toplevel/topeval.ml
index 802f04b5af..8be3c3232e 100644
--- a/testsuite/tests/tool-toplevel/topeval.ml
+++ b/testsuite/tests/tool-toplevel/topeval.ml
@@ -1,6 +1,9 @@
(* TEST
- * toplevel
- * toplevel.opt
+ {
+ toplevel;
+ }{
+ toplevel.opt;
+ }
*)
(* Various test-cases ensuring that the native and bytecode toplevels produce
diff --git a/testsuite/tests/tool-toplevel/tracing.ml b/testsuite/tests/tool-toplevel/tracing.ml
index 8a1221f63a..f76e7026cf 100644
--- a/testsuite/tests/tool-toplevel/tracing.ml
+++ b/testsuite/tests/tool-toplevel/tracing.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
List.fold_left;;
diff --git a/testsuite/tests/tool-toplevel/uncaught_exceptions.ml b/testsuite/tests/tool-toplevel/uncaught_exceptions.ml
index 3544e1ddd0..634ef4a5b7 100644
--- a/testsuite/tests/tool-toplevel/uncaught_exceptions.ml
+++ b/testsuite/tests/tool-toplevel/uncaught_exceptions.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#8594 *)
diff --git a/testsuite/tests/tool-toplevel/use_command.ml b/testsuite/tests/tool-toplevel/use_command.ml
index 7bb9d8fa27..dbe28558a4 100644
--- a/testsuite/tests/tool-toplevel/use_command.ml
+++ b/testsuite/tests/tool-toplevel/use_command.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Test a success case *)
diff --git a/testsuite/tests/translprim/array_spec.ml b/testsuite/tests/translprim/array_spec.ml
index 6d0c1e49f8..70b65919ca 100644
--- a/testsuite/tests/translprim/array_spec.ml
+++ b/testsuite/tests/translprim/array_spec.ml
@@ -1,15 +1,16 @@
(* TEST
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- flags = "-dlambda -dno-unique-ids"
- *** flat-float-array
- **** check-ocamlc.byte-output
- compiler_reference =
- "${test_source_directory}/array_spec.compilers.flat.reference"
- *** no-flat-float-array
- **** check-ocamlc.byte-output
- compiler_reference =
- "${test_source_directory}/array_spec.compilers.no-flat.reference"
+ setup-ocamlc.byte-build-env;
+ flags = "-dlambda -dno-unique-ids";
+ ocamlc.byte;
+ {
+ flat-float-array;
+ compiler_reference = "${test_source_directory}/array_spec.compilers.flat.reference";
+ check-ocamlc.byte-output;
+ }{
+ no-flat-float-array;
+ compiler_reference = "${test_source_directory}/array_spec.compilers.no-flat.reference";
+ check-ocamlc.byte-output;
+ }
*)
external len : 'a array -> int = "%array_length"
diff --git a/testsuite/tests/translprim/comparison_table.ml b/testsuite/tests/translprim/comparison_table.ml
index 1a91430681..56ec388067 100644
--- a/testsuite/tests/translprim/comparison_table.ml
+++ b/testsuite/tests/translprim/comparison_table.ml
@@ -1,8 +1,8 @@
(* TEST
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- flags = "-dlambda -dno-unique-ids"
- *** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ flags = "-dlambda -dno-unique-ids";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
external cmp : 'a -> 'a -> int = "%compare";;
diff --git a/testsuite/tests/translprim/locs.ml b/testsuite/tests/translprim/locs.ml
index 79e4646875..b734f73505 100644
--- a/testsuite/tests/translprim/locs.ml
+++ b/testsuite/tests/translprim/locs.ml
@@ -1,4 +1,4 @@
-(* TEST *)
+(* TEST_BELOW*)
let print_loc loc =
print_endline loc
@@ -159,3 +159,6 @@ let () =
(new klass)#meth ();
inline_object ();
bang ()
+
+(* TEST
+*)
diff --git a/testsuite/tests/translprim/module_coercion.ml b/testsuite/tests/translprim/module_coercion.ml
index a6d334c8ad..282e96e323 100644
--- a/testsuite/tests/translprim/module_coercion.ml
+++ b/testsuite/tests/translprim/module_coercion.ml
@@ -1,15 +1,16 @@
(* TEST
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- flags = "-dlambda -dno-unique-ids"
- *** flat-float-array
- **** check-ocamlc.byte-output
- compiler_reference =
- "${test_source_directory}/module_coercion.compilers.flat.reference"
- *** no-flat-float-array
- **** check-ocamlc.byte-output
- compiler_reference =
- "${test_source_directory}/module_coercion.compilers.no-flat.reference"
+ setup-ocamlc.byte-build-env;
+ flags = "-dlambda -dno-unique-ids";
+ ocamlc.byte;
+ {
+ flat-float-array;
+ compiler_reference = "${test_source_directory}/module_coercion.compilers.flat.reference";
+ check-ocamlc.byte-output;
+ }{
+ no-flat-float-array;
+ compiler_reference = "${test_source_directory}/module_coercion.compilers.no-flat.reference";
+ check-ocamlc.byte-output;
+ }
*)
module M = struct
diff --git a/testsuite/tests/translprim/ref_spec.ml b/testsuite/tests/translprim/ref_spec.ml
index 82cbd1eeef..de70cd5ec5 100644
--- a/testsuite/tests/translprim/ref_spec.ml
+++ b/testsuite/tests/translprim/ref_spec.ml
@@ -1,8 +1,8 @@
(* TEST
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte
- flags = "-dlambda -dno-unique-ids"
- *** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ flags = "-dlambda -dno-unique-ids";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type 'a custom_rec = { x : unit; mutable y : 'a }
diff --git a/testsuite/tests/typing-core-bugs/const_int_hint.ml b/testsuite/tests/typing-core-bugs/const_int_hint.ml
index e802b02b45..1c82c0600f 100644
--- a/testsuite/tests/typing-core-bugs/const_int_hint.ml
+++ b/testsuite/tests/typing-core-bugs/const_int_hint.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let _ = Int32.(add 1 2l);;
diff --git a/testsuite/tests/typing-core-bugs/missing_rec_hint.ml b/testsuite/tests/typing-core-bugs/missing_rec_hint.ml
index f3e62e2b04..e62607a34c 100644
--- a/testsuite/tests/typing-core-bugs/missing_rec_hint.ml
+++ b/testsuite/tests/typing-core-bugs/missing_rec_hint.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let facto n = (* missing [rec] *)
diff --git a/testsuite/tests/typing-core-bugs/repeated_did_you_mean.ml b/testsuite/tests/typing-core-bugs/repeated_did_you_mean.ml
index 3c187fa4a2..d5ff406d01 100644
--- a/testsuite/tests/typing-core-bugs/repeated_did_you_mean.ml
+++ b/testsuite/tests/typing-core-bugs/repeated_did_you_mean.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* MPR 7864 *)
diff --git a/testsuite/tests/typing-core-bugs/type_expected_explanation.ml b/testsuite/tests/typing-core-bugs/type_expected_explanation.ml
index fe9bc478ed..9616ffbc89 100644
--- a/testsuite/tests/typing-core-bugs/type_expected_explanation.ml
+++ b/testsuite/tests/typing-core-bugs/type_expected_explanation.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-strict-sequence"
- * expect
+ flags = "-strict-sequence";
+ expect;
*)
if 3 then ();;
diff --git a/testsuite/tests/typing-core-bugs/unit_fun_hints.ml b/testsuite/tests/typing-core-bugs/unit_fun_hints.ml
index 73b4ad22d6..1b9acece95 100644
--- a/testsuite/tests/typing-core-bugs/unit_fun_hints.ml
+++ b/testsuite/tests/typing-core-bugs/unit_fun_hints.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-strict-sequence"
- * expect
+ flags = "-strict-sequence";
+ expect;
*)
let g f = f ()
diff --git a/testsuite/tests/typing-deprecated/alerts.ml b/testsuite/tests/typing-deprecated/alerts.ml
index edc07e4320..e9d7d89829 100644
--- a/testsuite/tests/typing-deprecated/alerts.ml
+++ b/testsuite/tests/typing-deprecated/alerts.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
diff --git a/testsuite/tests/typing-deprecated/deprecated.ml b/testsuite/tests/typing-deprecated/deprecated.ml
index c8c3707703..0ac02d610f 100644
--- a/testsuite/tests/typing-deprecated/deprecated.ml
+++ b/testsuite/tests/typing-deprecated/deprecated.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
[@@@ocaml.warning "+3"];;
diff --git a/testsuite/tests/typing-extension-constructor/test.ml b/testsuite/tests/typing-extension-constructor/test.ml
index d18777c72d..b486694d92 100644
--- a/testsuite/tests/typing-extension-constructor/test.ml
+++ b/testsuite/tests/typing-extension-constructor/test.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
type t = ..;;
diff --git a/testsuite/tests/typing-extensions/cast.ml b/testsuite/tests/typing-extensions/cast.ml
index 7e155f5368..8bad32bb05 100644
--- a/testsuite/tests/typing-extensions/cast.ml
+++ b/testsuite/tests/typing-extensions/cast.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Ignore OCAMLRUNPARAM=b to be reproducible *)
diff --git a/testsuite/tests/typing-extensions/disambiguation.ml b/testsuite/tests/typing-extensions/disambiguation.ml
index 4201763397..ba63fad7d2 100644
--- a/testsuite/tests/typing-extensions/disambiguation.ml
+++ b/testsuite/tests/typing-extensions/disambiguation.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Test type-directed disambiguation and spellchecker hints *)
diff --git a/testsuite/tests/typing-extensions/extensions.ml b/testsuite/tests/typing-extensions/extensions.ml
index 060302105d..d9cacb9b22 100644
--- a/testsuite/tests/typing-extensions/extensions.ml
+++ b/testsuite/tests/typing-extensions/extensions.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Ignore OCAMLRUNPARAM=b to be reproducible *)
diff --git a/testsuite/tests/typing-extensions/msg.ml b/testsuite/tests/typing-extensions/msg.ml
index 07cdba656a..0a66f2a932 100644
--- a/testsuite/tests/typing-extensions/msg.ml
+++ b/testsuite/tests/typing-extensions/msg.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Typed names *)
diff --git a/testsuite/tests/typing-extensions/open_types.ml b/testsuite/tests/typing-extensions/open_types.ml
index 16d4b03583..3ffbbd8c84 100644
--- a/testsuite/tests/typing-extensions/open_types.ml
+++ b/testsuite/tests/typing-extensions/open_types.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type foo = ..
diff --git a/testsuite/tests/typing-external/pr11392.ml b/testsuite/tests/typing-external/pr11392.ml
index 91c8ea77eb..61cd5cada6 100644
--- a/testsuite/tests/typing-external/pr11392.ml
+++ b/testsuite/tests/typing-external/pr11392.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'self nat =
diff --git a/testsuite/tests/typing-fstclassmod/aliases.ml b/testsuite/tests/typing-fstclassmod/aliases.ml
index f6043ed443..0ad18c98a0 100644
--- a/testsuite/tests/typing-fstclassmod/aliases.ml
+++ b/testsuite/tests/typing-fstclassmod/aliases.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M = struct end
diff --git a/testsuite/tests/typing-fstclassmod/fstclassmod.ml b/testsuite/tests/typing-fstclassmod/fstclassmod.ml
index 3330f957d8..2c31f30039 100644
--- a/testsuite/tests/typing-fstclassmod/fstclassmod.ml
+++ b/testsuite/tests/typing-fstclassmod/fstclassmod.ml
@@ -1,5 +1,5 @@
(* TEST
- flags = "-w +A-70 -warn-error +A"
+ flags = "-w +A-70 -warn-error +A";
*)
(* Example of algorithm parametrized with modules *)
diff --git a/testsuite/tests/typing-fstclassmod/nondep_instance.ml b/testsuite/tests/typing-fstclassmod/nondep_instance.ml
index 34f37b1c86..fec690651c 100644
--- a/testsuite/tests/typing-fstclassmod/nondep_instance.ml
+++ b/testsuite/tests/typing-fstclassmod/nondep_instance.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
module type Vector_space = sig
type t
diff --git a/testsuite/tests/typing-fstclassmod/scope_escape.ml b/testsuite/tests/typing-fstclassmod/scope_escape.ml
new file mode 100644
index 0000000000..c3e52e3d53
--- /dev/null
+++ b/testsuite/tests/typing-fstclassmod/scope_escape.ml
@@ -0,0 +1,137 @@
+(* TEST
+ expect;
+*)
+
+(* Typing for recursive modules checks scope escape *)
+module type S = sig
+ type t
+end;;
+
+let rec (module M : S) =
+ (module struct
+ type t = M.t
+ end : S
+ with type t = M.t)
+in
+();;
+[%%expect{|
+module type S = sig type t end
+Lines 6-9, characters 2-22:
+6 | ..(module struct
+7 | type t = M.t
+8 | end : S
+9 | with type t = M.t)
+Error: This expression has type (module S with type t = M.t)
+ but an expression was expected of type (module S)
+|}];;
+
+let rec k =
+ let (module K : S with type t = A.t) = k in
+ (module struct
+ type t = K.t
+ end : S
+ with type t = K.t)
+and (module A : S) =
+ (module struct
+ type t = unit
+
+ let x = ()
+ end)
+in
+();;
+[%%expect{|
+Lines 2-6, characters 2-22:
+2 | ..let (module K : S with type t = A.t) = k in
+3 | (module struct
+4 | type t = K.t
+5 | end : S
+6 | with type t = K.t)
+Error: This expression has type (module S with type t = A.t)
+ but an expression was expected of type 'a
+ The type constructor A.t would escape its scope
+|}, Principal{|
+Lines 8-12, characters 2-6:
+ 8 | ..(module struct
+ 9 | type t = unit
+10 |
+11 | let x = ()
+12 | end)
+Warning 18 [not-principal]: this module packing is not principal.
+
+Lines 2-6, characters 2-22:
+2 | ..let (module K : S with type t = A.t) = k in
+3 | (module struct
+4 | type t = K.t
+5 | end : S
+6 | with type t = K.t)
+Error: This expression has type (module S with type t = A.t)
+ but an expression was expected of type 'a
+ The type constructor A.t would escape its scope
+|}];;
+
+(* The locally abstract type lets us check the module's type
+ without scope escape. *)
+let f (type a) () =
+ let rec (module M : S with type t = a) =
+ (module struct
+ type t = M.t
+ end : S with type t = M.t)
+ in
+ ()
+;;
+[%%expect{|
+val f : unit -> unit = <fun>
+|}];;
+
+let f (type a) () =
+ let rec (module M : S with type t = a) =
+ (module struct
+ type t = M.t
+ end : S with type t = a)
+ in
+ ();;
+[%%expect{|
+val f : unit -> unit = <fun>
+|}];;
+
+(* Reject scope escape via unification *)
+
+module type S = sig
+ type t
+ val x : t
+end;;
+
+let f () =
+ let (module M : S) =
+ (module struct
+ type t = unit
+
+ let x = ()
+ end)
+ in
+ let unify x = if true then M.x else x in
+ unify ()
+;;
+[%%expect{|
+module type S = sig type t val x : t end
+Line 15, characters 8-10:
+15 | unify ()
+ ^^
+Error: This expression has type unit but an expression was expected of type
+ M.t
+|}, Principal{|
+module type S = sig type t val x : t end
+Lines 8-12, characters 4-8:
+ 8 | ....(module struct
+ 9 | type t = unit
+10 |
+11 | let x = ()
+12 | end)
+Warning 18 [not-principal]: this module packing is not principal.
+
+Line 15, characters 8-10:
+15 | unify ()
+ ^^
+Error: This expression has type unit but an expression was expected of type
+ M.t
+|}];;
diff --git a/testsuite/tests/typing-gadts/ambiguity.ml b/testsuite/tests/typing-gadts/ambiguity.ml
index 36b651f13b..d6e9f86d75 100644
--- a/testsuite/tests/typing-gadts/ambiguity.ml
+++ b/testsuite/tests/typing-gadts/ambiguity.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
[@@@warning "-8-11-12"] (* reduce the noise. *)
diff --git a/testsuite/tests/typing-gadts/ambivalent_apply.ml b/testsuite/tests/typing-gadts/ambivalent_apply.ml
index 5e44d26de5..2dc0cf72bd 100644
--- a/testsuite/tests/typing-gadts/ambivalent_apply.ml
+++ b/testsuite/tests/typing-gadts/ambivalent_apply.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_,_) eq = Refl : ('a,'a) eq;;
diff --git a/testsuite/tests/typing-gadts/didier.ml b/testsuite/tests/typing-gadts/didier.ml
index 0e120e8503..75062f7608 100644
--- a/testsuite/tests/typing-gadts/didier.ml
+++ b/testsuite/tests/typing-gadts/didier.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a ty =
diff --git a/testsuite/tests/typing-gadts/dynamic_frisch.ml b/testsuite/tests/typing-gadts/dynamic_frisch.ml
index 8bef407420..56ad6d0576 100644
--- a/testsuite/tests/typing-gadts/dynamic_frisch.ml
+++ b/testsuite/tests/typing-gadts/dynamic_frisch.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Encoding generics using GADTs *)
diff --git a/testsuite/tests/typing-gadts/gadthead.ml b/testsuite/tests/typing-gadts/gadthead.ml
index 57a0f04d82..5e4cbfd5b0 100644
--- a/testsuite/tests/typing-gadts/gadthead.ml
+++ b/testsuite/tests/typing-gadts/gadthead.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M : sig
diff --git a/testsuite/tests/typing-gadts/name_existentials.ml b/testsuite/tests/typing-gadts/name_existentials.ml
index 91b2f5bb1d..71bc112d8d 100644
--- a/testsuite/tests/typing-gadts/name_existentials.ml
+++ b/testsuite/tests/typing-gadts/name_existentials.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ ty = Int : int ty
diff --git a/testsuite/tests/typing-gadts/nested_equations.ml b/testsuite/tests/typing-gadts/nested_equations.ml
index b1719bfbd0..4a9173c039 100644
--- a/testsuite/tests/typing-gadts/nested_equations.ml
+++ b/testsuite/tests/typing-gadts/nested_equations.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Tests for nested equations (bind abstract types from other modules) *)
diff --git a/testsuite/tests/typing-gadts/omega07.ml b/testsuite/tests/typing-gadts/omega07.ml
index a8e6388035..01600502df 100644
--- a/testsuite/tests/typing-gadts/omega07.ml
+++ b/testsuite/tests/typing-gadts/omega07.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(*
diff --git a/testsuite/tests/typing-gadts/or_patterns.ml b/testsuite/tests/typing-gadts/or_patterns.ml
index e6606fb27f..623cd612b8 100644
--- a/testsuite/tests/typing-gadts/or_patterns.ml
+++ b/testsuite/tests/typing-gadts/or_patterns.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t =
diff --git a/testsuite/tests/typing-gadts/packed-module-recasting.ml b/testsuite/tests/typing-gadts/packed-module-recasting.ml
index 9cb8821673..73ac738c96 100644
--- a/testsuite/tests/typing-gadts/packed-module-recasting.ml
+++ b/testsuite/tests/typing-gadts/packed-module-recasting.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) eq = Refl : ('a, 'a) eq;;
diff --git a/testsuite/tests/typing-gadts/pr10189.ml b/testsuite/tests/typing-gadts/pr10189.ml
index 5df054fd10..65cb8183a3 100644
--- a/testsuite/tests/typing-gadts/pr10189.ml
+++ b/testsuite/tests/typing-gadts/pr10189.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type i = <m : 'c. 'c -> 'c >
diff --git a/testsuite/tests/typing-gadts/pr10271.ml b/testsuite/tests/typing-gadts/pr10271.ml
index 37b6bdbc62..061e5568dc 100644
--- a/testsuite/tests/typing-gadts/pr10271.ml
+++ b/testsuite/tests/typing-gadts/pr10271.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M = struct
diff --git a/testsuite/tests/typing-gadts/pr10348.ml b/testsuite/tests/typing-gadts/pr10348.ml
index ba3e860770..23437dca3a 100644
--- a/testsuite/tests/typing-gadts/pr10348.ml
+++ b/testsuite/tests/typing-gadts/pr10348.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
diff --git a/testsuite/tests/typing-gadts/pr10735.ml b/testsuite/tests/typing-gadts/pr10735.ml
index 5405670b11..6202c3629e 100644
--- a/testsuite/tests/typing-gadts/pr10735.ml
+++ b/testsuite/tests/typing-gadts/pr10735.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module X : sig
diff --git a/testsuite/tests/typing-gadts/pr10907.ml b/testsuite/tests/typing-gadts/pr10907.ml
index abd431f265..e0b9d4d557 100644
--- a/testsuite/tests/typing-gadts/pr10907.ml
+++ b/testsuite/tests/typing-gadts/pr10907.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* from @dyzsr *)
diff --git a/testsuite/tests/typing-gadts/pr11888.ml b/testsuite/tests/typing-gadts/pr11888.ml
index b0ff6fcea0..b4d72ce91e 100644
--- a/testsuite/tests/typing-gadts/pr11888.ml
+++ b/testsuite/tests/typing-gadts/pr11888.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type z
diff --git a/testsuite/tests/typing-gadts/pr5332.ml b/testsuite/tests/typing-gadts/pr5332.ml
index f81fff4955..851864a2f0 100644
--- a/testsuite/tests/typing-gadts/pr5332.ml
+++ b/testsuite/tests/typing-gadts/pr5332.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('env, 'a) var =
diff --git a/testsuite/tests/typing-gadts/pr5689.ml b/testsuite/tests/typing-gadts/pr5689.ml
index f61d80af8e..87b2bef9e8 100644
--- a/testsuite/tests/typing-gadts/pr5689.ml
+++ b/testsuite/tests/typing-gadts/pr5689.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type inkind = [ `Link | `Nonlink ]
diff --git a/testsuite/tests/typing-gadts/pr5785.ml b/testsuite/tests/typing-gadts/pr5785.ml
index 7817cb0422..102ba05f4b 100644
--- a/testsuite/tests/typing-gadts/pr5785.ml
+++ b/testsuite/tests/typing-gadts/pr5785.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Add (T : sig type two end) =
diff --git a/testsuite/tests/typing-gadts/pr5848.ml b/testsuite/tests/typing-gadts/pr5848.ml
index 1c908d781d..d76ecff296 100644
--- a/testsuite/tests/typing-gadts/pr5848.ml
+++ b/testsuite/tests/typing-gadts/pr5848.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module B : sig
diff --git a/testsuite/tests/typing-gadts/pr5906.ml b/testsuite/tests/typing-gadts/pr5906.ml
index 86ebfd0e36..30d372733c 100644
--- a/testsuite/tests/typing-gadts/pr5906.ml
+++ b/testsuite/tests/typing-gadts/pr5906.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ constant =
diff --git a/testsuite/tests/typing-gadts/pr5948.ml b/testsuite/tests/typing-gadts/pr5948.ml
index 9581adc3c6..9edbf430bd 100644
--- a/testsuite/tests/typing-gadts/pr5948.ml
+++ b/testsuite/tests/typing-gadts/pr5948.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type tag = [`TagA | `TagB | `TagC];;
diff --git a/testsuite/tests/typing-gadts/pr5981.ml b/testsuite/tests/typing-gadts/pr5981.ml
index 3d01d36c9d..83502759c8 100644
--- a/testsuite/tests/typing-gadts/pr5981.ml
+++ b/testsuite/tests/typing-gadts/pr5981.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module F(S : sig type 'a t end) = struct
diff --git a/testsuite/tests/typing-gadts/pr5985.ml b/testsuite/tests/typing-gadts/pr5985.ml
index d38d9eecca..d38e7e789d 100644
--- a/testsuite/tests/typing-gadts/pr5985.ml
+++ b/testsuite/tests/typing-gadts/pr5985.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Report from Jeremy Yallop *)
diff --git a/testsuite/tests/typing-gadts/pr5989.ml b/testsuite/tests/typing-gadts/pr5989.ml
index 27d086d3f0..a23ade0926 100644
--- a/testsuite/tests/typing-gadts/pr5989.ml
+++ b/testsuite/tests/typing-gadts/pr5989.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) t =
diff --git a/testsuite/tests/typing-gadts/pr5997.ml b/testsuite/tests/typing-gadts/pr5997.ml
index 0f9f85b469..907a394426 100644
--- a/testsuite/tests/typing-gadts/pr5997.ml
+++ b/testsuite/tests/typing-gadts/pr5997.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) comp =
diff --git a/testsuite/tests/typing-gadts/pr6158.ml b/testsuite/tests/typing-gadts/pr6158.ml
index 711304bb37..388cfbc4be 100644
--- a/testsuite/tests/typing-gadts/pr6158.ml
+++ b/testsuite/tests/typing-gadts/pr6158.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a t = T of 'a
diff --git a/testsuite/tests/typing-gadts/pr6163.ml b/testsuite/tests/typing-gadts/pr6163.ml
index cf06eaf58f..4ceecfe098 100644
--- a/testsuite/tests/typing-gadts/pr6163.ml
+++ b/testsuite/tests/typing-gadts/pr6163.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ nat =
diff --git a/testsuite/tests/typing-gadts/pr6174.ml b/testsuite/tests/typing-gadts/pr6174.ml
index bf710891f8..d689f656c8 100644
--- a/testsuite/tests/typing-gadts/pr6174.ml
+++ b/testsuite/tests/typing-gadts/pr6174.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t = C : ((('a -> 'o) -> 'o) -> ('b -> 'o) -> 'o) t
diff --git a/testsuite/tests/typing-gadts/pr6241.ml b/testsuite/tests/typing-gadts/pr6241.ml
index bf1108aeac..c7975600df 100644
--- a/testsuite/tests/typing-gadts/pr6241.ml
+++ b/testsuite/tests/typing-gadts/pr6241.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) t =
diff --git a/testsuite/tests/typing-gadts/pr6690.ml b/testsuite/tests/typing-gadts/pr6690.ml
index ebf308d095..9e952be9fd 100644
--- a/testsuite/tests/typing-gadts/pr6690.ml
+++ b/testsuite/tests/typing-gadts/pr6690.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a visit_action
diff --git a/testsuite/tests/typing-gadts/pr6817.ml b/testsuite/tests/typing-gadts/pr6817.ml
index 6462143637..bc48ca8e29 100644
--- a/testsuite/tests/typing-gadts/pr6817.ml
+++ b/testsuite/tests/typing-gadts/pr6817.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module A = struct
diff --git a/testsuite/tests/typing-gadts/pr6934.ml b/testsuite/tests/typing-gadts/pr6934.ml
index 76cb0563da..e2a692df34 100644
--- a/testsuite/tests/typing-gadts/pr6934.ml
+++ b/testsuite/tests/typing-gadts/pr6934.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type nonrec t = A : t;;
diff --git a/testsuite/tests/typing-gadts/pr6980.ml b/testsuite/tests/typing-gadts/pr6980.ml
index 191443240e..d265467962 100644
--- a/testsuite/tests/typing-gadts/pr6980.ml
+++ b/testsuite/tests/typing-gadts/pr6980.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a t = [< `Foo | `Bar] as 'a;;
diff --git a/testsuite/tests/typing-gadts/pr6993_bad.ml b/testsuite/tests/typing-gadts/pr6993_bad.ml
index d3a74ce497..adfe73b74f 100644
--- a/testsuite/tests/typing-gadts/pr6993_bad.ml
+++ b/testsuite/tests/typing-gadts/pr6993_bad.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) eqp = Y : ('a, 'a) eqp | N : string -> ('a, 'b) eqp
diff --git a/testsuite/tests/typing-gadts/pr7016.ml b/testsuite/tests/typing-gadts/pr7016.ml
index 3da34245b8..8cc75878d4 100644
--- a/testsuite/tests/typing-gadts/pr7016.ml
+++ b/testsuite/tests/typing-gadts/pr7016.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) t =
diff --git a/testsuite/tests/typing-gadts/pr7160.ml b/testsuite/tests/typing-gadts/pr7160.ml
index 5a613052b8..b5584cefdb 100644
--- a/testsuite/tests/typing-gadts/pr7160.ml
+++ b/testsuite/tests/typing-gadts/pr7160.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t =
diff --git a/testsuite/tests/typing-gadts/pr7214.ml b/testsuite/tests/typing-gadts/pr7214.ml
index a14616d766..9923678685 100644
--- a/testsuite/tests/typing-gadts/pr7214.ml
+++ b/testsuite/tests/typing-gadts/pr7214.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t = I : int t;;
diff --git a/testsuite/tests/typing-gadts/pr7222.ml b/testsuite/tests/typing-gadts/pr7222.ml
index d0177e23c7..834d043e16 100644
--- a/testsuite/tests/typing-gadts/pr7222.ml
+++ b/testsuite/tests/typing-gadts/pr7222.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type +'a n = private int
diff --git a/testsuite/tests/typing-gadts/pr7230.ml b/testsuite/tests/typing-gadts/pr7230.ml
index 1c29f5e4aa..40be65fb3b 100644
--- a/testsuite/tests/typing-gadts/pr7230.ml
+++ b/testsuite/tests/typing-gadts/pr7230.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t = T : int t;;
diff --git a/testsuite/tests/typing-gadts/pr7234.ml b/testsuite/tests/typing-gadts/pr7234.ml
index 614f0adce1..90d70026e7 100644
--- a/testsuite/tests/typing-gadts/pr7234.ml
+++ b/testsuite/tests/typing-gadts/pr7234.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) eq = Eq : ('a, 'a) eq | Neq : int -> ('a, 'b) eq;;
diff --git a/testsuite/tests/typing-gadts/pr7260.ml b/testsuite/tests/typing-gadts/pr7260.ml
index 2685e3b23b..d0a830d806 100644
--- a/testsuite/tests/typing-gadts/pr7260.ml
+++ b/testsuite/tests/typing-gadts/pr7260.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type bar = < bar: unit >
diff --git a/testsuite/tests/typing-gadts/pr7269.ml b/testsuite/tests/typing-gadts/pr7269.ml
index 58da0d5ef5..def15bc141 100644
--- a/testsuite/tests/typing-gadts/pr7269.ml
+++ b/testsuite/tests/typing-gadts/pr7269.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type s = [`A | `B] and sub = [`B];;
diff --git a/testsuite/tests/typing-gadts/pr7298.ml b/testsuite/tests/typing-gadts/pr7298.ml
index 931d96129b..06118652bb 100644
--- a/testsuite/tests/typing-gadts/pr7298.ml
+++ b/testsuite/tests/typing-gadts/pr7298.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = T : t;;
diff --git a/testsuite/tests/typing-gadts/pr7374.ml b/testsuite/tests/typing-gadts/pr7374.ml
index 6e2d5e42ba..7aa139d9ce 100644
--- a/testsuite/tests/typing-gadts/pr7374.ml
+++ b/testsuite/tests/typing-gadts/pr7374.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('a, 'b) eq = Refl : ('a, 'a) eq
diff --git a/testsuite/tests/typing-gadts/pr7378.ml b/testsuite/tests/typing-gadts/pr7378.ml
index fe771d8d0a..1499ac5960 100644
--- a/testsuite/tests/typing-gadts/pr7378.ml
+++ b/testsuite/tests/typing-gadts/pr7378.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module X = struct
diff --git a/testsuite/tests/typing-gadts/pr7381.ml b/testsuite/tests/typing-gadts/pr7381.ml
index 7609cce77d..cdc9c88de5 100644
--- a/testsuite/tests/typing-gadts/pr7381.ml
+++ b/testsuite/tests/typing-gadts/pr7381.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_,_) eql = Refl : ('a, 'a) eql;;
diff --git a/testsuite/tests/typing-gadts/pr7390.ml b/testsuite/tests/typing-gadts/pr7390.ml
index 7522209a38..5601519582 100644
--- a/testsuite/tests/typing-gadts/pr7390.ml
+++ b/testsuite/tests/typing-gadts/pr7390.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type empty = Empty and filled = Filled
diff --git a/testsuite/tests/typing-gadts/pr7391.ml b/testsuite/tests/typing-gadts/pr7391.ml
index f16654c5a0..a4160b0b9c 100644
--- a/testsuite/tests/typing-gadts/pr7391.ml
+++ b/testsuite/tests/typing-gadts/pr7391.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class virtual child1 parent =
diff --git a/testsuite/tests/typing-gadts/pr7397.ml b/testsuite/tests/typing-gadts/pr7397.ml
index 8a85eaff8c..328f5a88c7 100644
--- a/testsuite/tests/typing-gadts/pr7397.ml
+++ b/testsuite/tests/typing-gadts/pr7397.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type +'a t
diff --git a/testsuite/tests/typing-gadts/pr7421.ml b/testsuite/tests/typing-gadts/pr7421.ml
index 79acaceb7d..8bf4025a90 100644
--- a/testsuite/tests/typing-gadts/pr7421.ml
+++ b/testsuite/tests/typing-gadts/pr7421.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) eq = Refl : ('a, 'a) eq;;
diff --git a/testsuite/tests/typing-gadts/pr7432.ml b/testsuite/tests/typing-gadts/pr7432.ml
index abb2167be1..9e2903311a 100644
--- a/testsuite/tests/typing-gadts/pr7432.ml
+++ b/testsuite/tests/typing-gadts/pr7432.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
#labels false;;
diff --git a/testsuite/tests/typing-gadts/pr7520.ml b/testsuite/tests/typing-gadts/pr7520.ml
index b4bfe2f4a8..1ee5446390 100644
--- a/testsuite/tests/typing-gadts/pr7520.ml
+++ b/testsuite/tests/typing-gadts/pr7520.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('a, 'b) eq = Refl : ('a, 'a) eq
diff --git a/testsuite/tests/typing-gadts/pr7618.ml b/testsuite/tests/typing-gadts/pr7618.ml
index afff67b5e2..8fa12ef353 100644
--- a/testsuite/tests/typing-gadts/pr7618.ml
+++ b/testsuite/tests/typing-gadts/pr7618.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t = I : int t;;
diff --git a/testsuite/tests/typing-gadts/pr7747.ml b/testsuite/tests/typing-gadts/pr7747.ml
index 97b89061d0..ca5eeaa719 100644
--- a/testsuite/tests/typing-gadts/pr7747.ml
+++ b/testsuite/tests/typing-gadts/pr7747.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_,_) eq = Refl : ('a,'a) eq
diff --git a/testsuite/tests/typing-gadts/pr7902.ml b/testsuite/tests/typing-gadts/pr7902.ml
index b88fc23e49..cee0ad0df3 100644
--- a/testsuite/tests/typing-gadts/pr7902.ml
+++ b/testsuite/tests/typing-gadts/pr7902.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('a, 'b) segment =
diff --git a/testsuite/tests/typing-gadts/pr9019.ml b/testsuite/tests/typing-gadts/pr9019.ml
index 4f65c94398..47e408a2c6 100644
--- a/testsuite/tests/typing-gadts/pr9019.ml
+++ b/testsuite/tests/typing-gadts/pr9019.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* #9012 by Thomas Refis *)
diff --git a/testsuite/tests/typing-gadts/pr9759.ml b/testsuite/tests/typing-gadts/pr9759.ml
index cf68cebbc5..7cdd9abd1b 100644
--- a/testsuite/tests/typing-gadts/pr9759.ml
+++ b/testsuite/tests/typing-gadts/pr9759.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* #9759 by Thomas Refis *)
diff --git a/testsuite/tests/typing-gadts/pr9799.ml b/testsuite/tests/typing-gadts/pr9799.ml
index 5d083684bb..de7e598700 100644
--- a/testsuite/tests/typing-gadts/pr9799.ml
+++ b/testsuite/tests/typing-gadts/pr9799.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a t =
diff --git a/testsuite/tests/typing-gadts/principality-and-gadts.ml b/testsuite/tests/typing-gadts/principality-and-gadts.ml
index 4a1bbb52bc..83b8b2c8c7 100644
--- a/testsuite/tests/typing-gadts/principality-and-gadts.ml
+++ b/testsuite/tests/typing-gadts/principality-and-gadts.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
module M = struct type t = A | B end;;
[%%expect{|
diff --git a/testsuite/tests/typing-gadts/return_type.ml b/testsuite/tests/typing-gadts/return_type.ml
index ebd5340a69..7c2a16b7ab 100644
--- a/testsuite/tests/typing-gadts/return_type.ml
+++ b/testsuite/tests/typing-gadts/return_type.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type i = int
diff --git a/testsuite/tests/typing-gadts/term-conv.ml b/testsuite/tests/typing-gadts/term-conv.ml
index 436100bac8..3c7f008055 100644
--- a/testsuite/tests/typing-gadts/term-conv.ml
+++ b/testsuite/tests/typing-gadts/term-conv.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* HOAS to de Bruijn, by chak *)
diff --git a/testsuite/tests/typing-gadts/test.ml b/testsuite/tests/typing-gadts/test.ml
index 178b9c9590..b107d4e97c 100644
--- a/testsuite/tests/typing-gadts/test.ml
+++ b/testsuite/tests/typing-gadts/test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Exp =
@@ -682,9 +682,9 @@ let f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) =
;; (* fail *)
[%%expect{|
type (_, _) eq = Eq : ('a, 'a) eq
-Lines 3-4, characters 4-15:
-3 | ....f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) =
-4 | fun Eq o -> o
+Line 3, characters 18-72:
+3 | let f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) =
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: The universal type variable 'b cannot be generalized:
it is already bound to another variable.
|}];;
diff --git a/testsuite/tests/typing-gadts/unexpected_existentials.ml b/testsuite/tests/typing-gadts/unexpected_existentials.ml
index 5216dc5032..db79e922bb 100644
--- a/testsuite/tests/typing-gadts/unexpected_existentials.ml
+++ b/testsuite/tests/typing-gadts/unexpected_existentials.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Test the error message for existential types apparearing
in unexpected position *)
diff --git a/testsuite/tests/typing-gadts/unify_mb.ml b/testsuite/tests/typing-gadts/unify_mb.ml
index cea21717f9..7b0fafc0f0 100644
--- a/testsuite/tests/typing-gadts/unify_mb.ml
+++ b/testsuite/tests/typing-gadts/unify_mb.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* First-Order Unification by Structural Recursion *)
diff --git a/testsuite/tests/typing-gadts/variables_in_mcomp.ml b/testsuite/tests/typing-gadts/variables_in_mcomp.ml
index 0a37045499..8e8985af4d 100644
--- a/testsuite/tests/typing-gadts/variables_in_mcomp.ml
+++ b/testsuite/tests/typing-gadts/variables_in_mcomp.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M = struct
diff --git a/testsuite/tests/typing-gadts/yallop_bugs.ml b/testsuite/tests/typing-gadts/yallop_bugs.ml
index 24181efc3b..bdd2a55d7c 100644
--- a/testsuite/tests/typing-gadts/yallop_bugs.ml
+++ b/testsuite/tests/typing-gadts/yallop_bugs.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Injectivity *)
diff --git a/testsuite/tests/typing-immediate/immediate.ml b/testsuite/tests/typing-immediate/immediate.ml
index 030f9bd79e..d1f09426f7 100644
--- a/testsuite/tests/typing-immediate/immediate.ml
+++ b/testsuite/tests/typing-immediate/immediate.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type S = sig type t [@@immediate] end;;
diff --git a/testsuite/tests/typing-implicit_unpack/implicit_unpack.ml b/testsuite/tests/typing-implicit_unpack/implicit_unpack.ml
index f967e0be9e..ae5fbbfad8 100644
--- a/testsuite/tests/typing-implicit_unpack/implicit_unpack.ml
+++ b/testsuite/tests/typing-implicit_unpack/implicit_unpack.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(*
diff --git a/testsuite/tests/typing-kind/kind_mismatch.ml b/testsuite/tests/typing-kind/kind_mismatch.ml
index 93f5e54d97..003645f7ed 100644
--- a/testsuite/tests/typing-kind/kind_mismatch.ml
+++ b/testsuite/tests/typing-kind/kind_mismatch.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Error messages for kind mismatches. *)
diff --git a/testsuite/tests/typing-misc-bugs/core_array_reduced_ok.ml b/testsuite/tests/typing-misc-bugs/core_array_reduced_ok.ml
index 38b630185a..ca36163faa 100644
--- a/testsuite/tests/typing-misc-bugs/core_array_reduced_ok.ml
+++ b/testsuite/tests/typing-misc-bugs/core_array_reduced_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type sexp = A of string | L of sexp list
diff --git a/testsuite/tests/typing-misc-bugs/gadt_declaration_check.ml b/testsuite/tests/typing-misc-bugs/gadt_declaration_check.ml
index 432a502ff2..dd16d40c76 100644
--- a/testsuite/tests/typing-misc-bugs/gadt_declaration_check.ml
+++ b/testsuite/tests/typing-misc-bugs/gadt_declaration_check.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type foo = Foo;;
[%%expect{|
diff --git a/testsuite/tests/typing-misc-bugs/pr6303_bad.ml b/testsuite/tests/typing-misc-bugs/pr6303_bad.ml
index e2980e0f03..8a1706c1fc 100644
--- a/testsuite/tests/typing-misc-bugs/pr6303_bad.ml
+++ b/testsuite/tests/typing-misc-bugs/pr6303_bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
type 'a foo = {x: 'a; y: int}
let r = {{x = 0; y = 0} with x = 0}
let r' : string foo = r
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-misc-bugs/pr6946_bad.ml b/testsuite/tests/typing-misc-bugs/pr6946_bad.ml
index 5142becdf9..aae63d899c 100644
--- a/testsuite/tests/typing-misc-bugs/pr6946_bad.ml
+++ b/testsuite/tests/typing-misc-bugs/pr6946_bad.ml
@@ -1,10 +1,18 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
external foo : int = "%ignore";;
let _ = foo ();;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-misc/apply_non_function.ml b/testsuite/tests/typing-misc/apply_non_function.ml
index 8d544f2776..7e768c6473 100644
--- a/testsuite/tests/typing-misc/apply_non_function.ml
+++ b/testsuite/tests/typing-misc/apply_non_function.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let print_lines = List.iter print_endline
@@ -83,3 +83,60 @@ Line 4, characters 19-20:
^
This extra argument is not expected.
|}]
+
+(* The result of [(+) 1 2] is not [unit], we don't expect the hint to insert a
+ ';'. *)
+
+let () =
+ (+) 1 2 3
+[%%expect{|
+Line 2, characters 2-11:
+2 | (+) 1 2 3
+ ^^^^^^^^^
+Error: The function '(+)' has type int -> int -> int
+ It is applied to too many arguments
+Line 2, characters 10-11:
+2 | (+) 1 2 3
+ ^
+ This extra argument is not expected.
+|}]
+
+(* The arrow type might be hidden behind a constructor. *)
+
+type t = int -> int -> unit
+let f (x:t) = x 0 1 2
+[%%expect{|
+type t = int -> int -> unit
+Line 2, characters 14-21:
+2 | let f (x:t) = x 0 1 2
+ ^^^^^^^
+Error: The function 'x' has type int -> int -> unit
+ It is applied to too many arguments
+Line 2, characters 18-20:
+2 | let f (x:t) = x 0 1 2
+ ^^
+ Hint: Did you forget a ';'?
+Line 2, characters 20-21:
+2 | let f (x:t) = x 0 1 2
+ ^
+ This extra argument is not expected.
+|}]
+
+type t = int -> unit
+let f (x:int -> t) = x 0 1 2
+[%%expect{|
+type t = int -> unit
+Line 2, characters 21-28:
+2 | let f (x:int -> t) = x 0 1 2
+ ^^^^^^^
+Error: The function 'x' has type int -> t
+ It is applied to too many arguments
+Line 2, characters 25-27:
+2 | let f (x:int -> t) = x 0 1 2
+ ^^
+ Hint: Did you forget a ';'?
+Line 2, characters 27-28:
+2 | let f (x:int -> t) = x 0 1 2
+ ^
+ This extra argument is not expected.
+|}]
diff --git a/testsuite/tests/typing-misc/build_as_type.ml b/testsuite/tests/typing-misc/build_as_type.ml
index 51aa4e2338..b1b8de7812 100644
--- a/testsuite/tests/typing-misc/build_as_type.ml
+++ b/testsuite/tests/typing-misc/build_as_type.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f = function
diff --git a/testsuite/tests/typing-misc/constraints.ml b/testsuite/tests/typing-misc/constraints.ml
index ec6e052319..3550a0b7ec 100644
--- a/testsuite/tests/typing-misc/constraints.ml
+++ b/testsuite/tests/typing-misc/constraints.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a t = [`A of 'a t t] as 'a;; (* fails *)
diff --git a/testsuite/tests/typing-misc/deep.ml b/testsuite/tests/typing-misc/deep.ml
index 01ade06106..e8d207d55f 100644
--- a/testsuite/tests/typing-misc/deep.ml
+++ b/testsuite/tests/typing-misc/deep.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M : sig
diff --git a/testsuite/tests/typing-misc/disambiguate_principality.ml b/testsuite/tests/typing-misc/disambiguate_principality.ml
index d5529524fe..cec00b5c2a 100644
--- a/testsuite/tests/typing-misc/disambiguate_principality.ml
+++ b/testsuite/tests/typing-misc/disambiguate_principality.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(*** Record ***)
diff --git a/testsuite/tests/typing-misc/distant_errors.ml b/testsuite/tests/typing-misc/distant_errors.ml
index f5f2ffd0fb..ef28cb8dfb 100644
--- a/testsuite/tests/typing-misc/distant_errors.ml
+++ b/testsuite/tests/typing-misc/distant_errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** The aim of this file is to keep track of programs that are "far" from being well-typed *)
diff --git a/testsuite/tests/typing-misc/empty_variant.ml b/testsuite/tests/typing-misc/empty_variant.ml
index 7aaa1afab4..6b2f7b8205 100644
--- a/testsuite/tests/typing-misc/empty_variant.ml
+++ b/testsuite/tests/typing-misc/empty_variant.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* empty variant *)
diff --git a/testsuite/tests/typing-misc/enrich_typedecl.ml b/testsuite/tests/typing-misc/enrich_typedecl.ml
index ac699720d9..34e659cd91 100644
--- a/testsuite/tests/typing-misc/enrich_typedecl.ml
+++ b/testsuite/tests/typing-misc/enrich_typedecl.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module rec A : sig
diff --git a/testsuite/tests/typing-misc/exotic_unifications.ml b/testsuite/tests/typing-misc/exotic_unifications.ml
index 2e3e69692f..56480999be 100644
--- a/testsuite/tests/typing-misc/exotic_unifications.ml
+++ b/testsuite/tests/typing-misc/exotic_unifications.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class virtual t = object method virtual x: float end
diff --git a/testsuite/tests/typing-misc/external_arity.ml b/testsuite/tests/typing-misc/external_arity.ml
index bad0fb1729..487fa83563 100644
--- a/testsuite/tests/typing-misc/external_arity.ml
+++ b/testsuite/tests/typing-misc/external_arity.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f a b c = a + b + c
diff --git a/testsuite/tests/typing-misc/filter_params.ml b/testsuite/tests/typing-misc/filter_params.ml
index 879693680b..7035dd74e0 100644
--- a/testsuite/tests/typing-misc/filter_params.ml
+++ b/testsuite/tests/typing-misc/filter_params.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('a, 'b) t constraint 'a = 'b
diff --git a/testsuite/tests/typing-misc/gpr2277.ml b/testsuite/tests/typing-misc/gpr2277.ml
index eabd3cc0ca..3d2b8b8d27 100644
--- a/testsuite/tests/typing-misc/gpr2277.ml
+++ b/testsuite/tests/typing-misc/gpr2277.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f (type t) (x : t) = x
diff --git a/testsuite/tests/typing-misc/includeclass_errors.ml b/testsuite/tests/typing-misc/includeclass_errors.ml
index 033669e2a5..ddc5d16523 100644
--- a/testsuite/tests/typing-misc/includeclass_errors.ml
+++ b/testsuite/tests/typing-misc/includeclass_errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class type foo_t =
diff --git a/testsuite/tests/typing-misc/injectivity.ml b/testsuite/tests/typing-misc/injectivity.ml
index e6aedfa63d..42fc65d61a 100644
--- a/testsuite/tests/typing-misc/injectivity.ml
+++ b/testsuite/tests/typing-misc/injectivity.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Syntax *)
diff --git a/testsuite/tests/typing-misc/inside_out.ml b/testsuite/tests/typing-misc/inside_out.ml
index 077af37050..541586e4e6 100644
--- a/testsuite/tests/typing-misc/inside_out.ml
+++ b/testsuite/tests/typing-misc/inside_out.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('a, 'b) eq = Refl : ('a, 'a) eq
diff --git a/testsuite/tests/typing-misc/is_expansive.ml b/testsuite/tests/typing-misc/is_expansive.ml
index 3bab4f9378..9a4d66da5e 100644
--- a/testsuite/tests/typing-misc/is_expansive.ml
+++ b/testsuite/tests/typing-misc/is_expansive.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
match [] with x -> (fun x -> x);;
[%%expect{|
diff --git a/testsuite/tests/typing-misc/labels.ml b/testsuite/tests/typing-misc/labels.ml
index 7cb3a7156f..862673752e 100644
--- a/testsuite/tests/typing-misc/labels.ml
+++ b/testsuite/tests/typing-misc/labels.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#5835 *)
diff --git a/testsuite/tests/typing-misc/normalize_type.ml b/testsuite/tests/typing-misc/normalize_type.ml
index 0b21b18303..6812764e5d 100644
--- a/testsuite/tests/typing-misc/normalize_type.ml
+++ b/testsuite/tests/typing-misc/normalize_type.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* #8907 *)
diff --git a/testsuite/tests/typing-misc/occur_check.ml b/testsuite/tests/typing-misc/occur_check.ml
index 9d681c88a9..7a5d9c6d93 100644
--- a/testsuite/tests/typing-misc/occur_check.ml
+++ b/testsuite/tests/typing-misc/occur_check.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#5907 *)
diff --git a/testsuite/tests/typing-misc/optbinders.ml b/testsuite/tests/typing-misc/optbinders.ml
index ab1390675d..01af6bbf0b 100644
--- a/testsuite/tests/typing-misc/optbinders.ml
+++ b/testsuite/tests/typing-misc/optbinders.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Optional binders can be used in value declarations,
diff --git a/testsuite/tests/typing-misc/pat_type_sharing.ml b/testsuite/tests/typing-misc/pat_type_sharing.ml
index 1cbf69641b..4fd5dfa095 100644
--- a/testsuite/tests/typing-misc/pat_type_sharing.ml
+++ b/testsuite/tests/typing-misc/pat_type_sharing.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a r = { a : 'a; b : 'a; }
type 'a ty = Int : int ty | Float : float ty;;
diff --git a/testsuite/tests/typing-misc/pattern_open.ml b/testsuite/tests/typing-misc/pattern_open.ml
index 16572b6eea..9fe25d5452 100644
--- a/testsuite/tests/typing-misc/pattern_open.ml
+++ b/testsuite/tests/typing-misc/pattern_open.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let pp fmt = Format.printf (fmt^^"@.")
diff --git a/testsuite/tests/typing-misc/polyvars.ml b/testsuite/tests/typing-misc/polyvars.ml
index 714bcf22c4..aaf281ec85 100644
--- a/testsuite/tests/typing-misc/polyvars.ml
+++ b/testsuite/tests/typing-misc/polyvars.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ab = [ `A | `B ];;
diff --git a/testsuite/tests/typing-misc/pr6416.ml b/testsuite/tests/typing-misc/pr6416.ml
index 0bfe20a11c..48edc2b2a3 100644
--- a/testsuite/tests/typing-misc/pr6416.ml
+++ b/testsuite/tests/typing-misc/pr6416.ml
@@ -1,6 +1,6 @@
(* TEST
- flags="-no-alias-deps -w +40"
- * expect
+ flags = "-no-alias-deps -w +40";
+ expect;
*)
module M = struct
type t = A
diff --git a/testsuite/tests/typing-misc/pr6634.ml b/testsuite/tests/typing-misc/pr6634.ml
index e96126cfcb..ffac718322 100644
--- a/testsuite/tests/typing-misc/pr6634.ml
+++ b/testsuite/tests/typing-misc/pr6634.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- *)
+ expect;
+*)
type t = int
module M : sig type t end with type t = [`T of t] =
diff --git a/testsuite/tests/typing-misc/pr6939-flat-float-array.ml b/testsuite/tests/typing-misc/pr6939-flat-float-array.ml
index 6c25346006..91ad731705 100644
--- a/testsuite/tests/typing-misc/pr6939-flat-float-array.ml
+++ b/testsuite/tests/typing-misc/pr6939-flat-float-array.ml
@@ -1,6 +1,6 @@
(* TEST
- * flat-float-array
- ** expect
+ flat-float-array;
+ expect;
*)
let rec x = [| x |]; 1.;;
diff --git a/testsuite/tests/typing-misc/pr6939-no-flat-float-array.ml b/testsuite/tests/typing-misc/pr6939-no-flat-float-array.ml
index 1450efc75c..a3d139ac39 100644
--- a/testsuite/tests/typing-misc/pr6939-no-flat-float-array.ml
+++ b/testsuite/tests/typing-misc/pr6939-no-flat-float-array.ml
@@ -1,6 +1,6 @@
(* TEST
- * no-flat-float-array
- ** expect
+ no-flat-float-array;
+ expect;
*)
let rec x = [| x |]; 1.;;
@@ -9,6 +9,7 @@ Line 1, characters 12-19:
1 | let rec x = [| x |]; 1.;;
^^^^^^^
Warning 10 [non-unit-statement]: this expression should have type unit.
+
val x : float = 1.
|}];;
@@ -18,6 +19,7 @@ Line 1, characters 16-17:
1 | let rec x = let u = [|y|] in 10. and y = 1.;;
^
Warning 26 [unused-var]: unused variable u.
+
val x : float = 10.
val y : float = 1.
|}];;
diff --git a/testsuite/tests/typing-misc/pr7103.ml b/testsuite/tests/typing-misc/pr7103.ml
index 8156462392..ddb3b61ca7 100644
--- a/testsuite/tests/typing-misc/pr7103.ml
+++ b/testsuite/tests/typing-misc/pr7103.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a t
diff --git a/testsuite/tests/typing-misc/pr7228.ml b/testsuite/tests/typing-misc/pr7228.ml
index 1e98cca59d..480fa549af 100644
--- a/testsuite/tests/typing-misc/pr7228.ml
+++ b/testsuite/tests/typing-misc/pr7228.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = A of {mutable x: int};;
diff --git a/testsuite/tests/typing-misc/pr7668_bad.ml b/testsuite/tests/typing-misc/pr7668_bad.ml
index e713488696..e9fe766d53 100644
--- a/testsuite/tests/typing-misc/pr7668_bad.ml
+++ b/testsuite/tests/typing-misc/pr7668_bad.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let partition_map f xs =
diff --git a/testsuite/tests/typing-misc/pr7712.ml b/testsuite/tests/typing-misc/pr7712.ml
index 09ffb4d297..b7ba586bef 100644
--- a/testsuite/tests/typing-misc/pr7712.ml
+++ b/testsuite/tests/typing-misc/pr7712.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a or_error = string
diff --git a/testsuite/tests/typing-misc/pr7937.ml b/testsuite/tests/typing-misc/pr7937.ml
index af812700fc..4c6ab29906 100644
--- a/testsuite/tests/typing-misc/pr7937.ml
+++ b/testsuite/tests/typing-misc/pr7937.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a r = [< `X of int & 'a ] as 'a
diff --git a/testsuite/tests/typing-misc/pr8548.ml b/testsuite/tests/typing-misc/pr8548.ml
index 7053ed6817..dd6cac13ef 100644
--- a/testsuite/tests/typing-misc/pr8548.ml
+++ b/testsuite/tests/typing-misc/pr8548.ml
@@ -1,5 +1,6 @@
(* TEST
- * expect *)
+ expect;
+*)
module type Endpoint_intf = sig
type t
diff --git a/testsuite/tests/typing-misc/pr8548_split.ml b/testsuite/tests/typing-misc/pr8548_split.ml
index 751dfa5603..5ba2cb09c7 100644
--- a/testsuite/tests/typing-misc/pr8548_split.ml
+++ b/testsuite/tests/typing-misc/pr8548_split.ml
@@ -1,20 +1,26 @@
(* TEST
-readonly_files = "mapping.ml range_intf.ml ranged_intf.ml range.ml ranged.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags = "-no-alias-deps -w -49 -o Pr8548__Mapping"
-module = "mapping.ml"
-** ocamlc.byte
-flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Range_intf.cmo"
-module = "range_intf.ml"
-*** ocamlc.byte
-flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Range.cmo"
-module = "range.ml"
-*** ocamlc.byte
-flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Ranged_intf.cmo"
-module = "ranged_intf.ml"
-**** ocamlc.byte
-flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Ranged.cmo"
-module = "ranged.ml"
-ocamlc_byte_exit_status = "0"
+ readonly_files = "mapping.ml range_intf.ml ranged_intf.ml range.ml ranged.ml";
+ setup-ocamlc.byte-build-env;
+ {
+ flags = "-no-alias-deps -w -49 -o Pr8548__Mapping";
+ module = "mapping.ml";
+ ocamlc.byte;
+ }{
+ flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Range_intf.cmo";
+ module = "range_intf.ml";
+ ocamlc.byte;
+ {
+ flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Range.cmo";
+ module = "range.ml";
+ ocamlc.byte;
+ }{
+ flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Ranged_intf.cmo";
+ module = "ranged_intf.ml";
+ ocamlc.byte;
+ flags = "-no-alias-deps -open Pr8548__Mapping -o pr8548__Ranged.cmo";
+ module = "ranged.ml";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ }
+ }
*)
diff --git a/testsuite/tests/typing-misc/printing.ml b/testsuite/tests/typing-misc/printing.ml
index 1825ec439d..4a7113ff01 100644
--- a/testsuite/tests/typing-misc/printing.ml
+++ b/testsuite/tests/typing-misc/printing.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#7012 *)
diff --git a/testsuite/tests/typing-misc/records.ml b/testsuite/tests/typing-misc/records.ml
index 8bdf1988c5..bef54ec4ae 100644
--- a/testsuite/tests/typing-misc/records.ml
+++ b/testsuite/tests/typing-misc/records.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* undefined labels *)
diff --git a/testsuite/tests/typing-misc/scope_escape.ml b/testsuite/tests/typing-misc/scope_escape.ml
index 94a47d236e..248cafc167 100644
--- a/testsuite/tests/typing-misc/scope_escape.ml
+++ b/testsuite/tests/typing-misc/scope_escape.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let x = ref []
diff --git a/testsuite/tests/typing-misc/typecore_empty_polyvariant_error.ml b/testsuite/tests/typing-misc/typecore_empty_polyvariant_error.ml
index 9b4624d3e2..041f1f8eb0 100644
--- a/testsuite/tests/typing-misc/typecore_empty_polyvariant_error.ml
+++ b/testsuite/tests/typing-misc/typecore_empty_polyvariant_error.ml
@@ -1,12 +1,12 @@
(* TEST
- readonly_files = "empty_ppx.ml"
- * setup-ocamlc.byte-build-env
- ** ocamlc.byte with ocamlcommon
- all_modules="empty_ppx.ml"
- program="ppx.exe"
- *** toplevel
- all_modules="${test_file}"
- flags="-ppx '${ocamlrun} ${test_build_directory_prefix}/ocamlc.byte/ppx.exe'"
+ readonly_files = "empty_ppx.ml";
+ setup-ocamlc.byte-build-env;
+ all_modules = "empty_ppx.ml";
+ program = "ppx.exe";
+ ocamlc.byte with ocamlcommon;
+ all_modules = "${test_file}";
+ flags = "-ppx '${ocamlrun} ${test_build_directory_prefix}/ocamlc.byte/ppx.exe'";
+ toplevel;
*)
type t = [%empty_polyvar];;
diff --git a/testsuite/tests/typing-misc/typecore_errors.ml b/testsuite/tests/typing-misc/typecore_errors.ml
index 9b00a4f692..432630f11a 100644
--- a/testsuite/tests/typing-misc/typecore_errors.ml
+++ b/testsuite/tests/typing-misc/typecore_errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
diff --git a/testsuite/tests/typing-misc/typecore_nolabel_errors.ml b/testsuite/tests/typing-misc/typecore_nolabel_errors.ml
index 04ecb52578..d0dcc9d1a6 100644
--- a/testsuite/tests/typing-misc/typecore_nolabel_errors.ml
+++ b/testsuite/tests/typing-misc/typecore_nolabel_errors.ml
@@ -1,6 +1,6 @@
(* TEST
- flags="-nolabels"
- * expect
+ flags = "-nolabels";
+ expect;
*)
diff --git a/testsuite/tests/typing-misc/typetexp_errors.ml b/testsuite/tests/typing-misc/typetexp_errors.ml
index 986d858586..4f71bd478b 100644
--- a/testsuite/tests/typing-misc/typetexp_errors.ml
+++ b/testsuite/tests/typing-misc/typetexp_errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type ('a,'at,'any,'en) t = A of 'an
@@ -31,3 +31,26 @@ Line 1, characters 6-9:
^^^
Error: The type variable name '_a is not allowed in programs
|}]
+
+(* The next two hit the unification error case at the end of
+ Typetexp.globalize_used_variables. *)
+let f (x: int as 'a) (y: float as 'a) = (x,y)
+[%%expect{|
+Line 1, characters 25-36:
+1 | let f (x: int as 'a) (y: float as 'a) = (x,y)
+ ^^^^^^^^^^^
+Error: This type float should be an instance of type int
+|}]
+
+type 'a t1 = 'a constraint 'a = 'b list
+type 'a t2 = 'a constraint 'a = 'b option
+
+let f (x : 'a t1) = (assert false : 'a t2)
+[%%expect{|
+type 'a t1 = 'a constraint 'a = 'b list
+type 'a t2 = 'a constraint 'a = 'b option
+Line 4, characters 36-38:
+4 | let f (x : 'a t1) = (assert false : 'a t2)
+ ^^
+Error: This type 'a option should be an instance of type 'b list
+|}]
diff --git a/testsuite/tests/typing-misc/unbound_type_variables.ml b/testsuite/tests/typing-misc/unbound_type_variables.ml
index c00d036079..285d54ae0d 100644
--- a/testsuite/tests/typing-misc/unbound_type_variables.ml
+++ b/testsuite/tests/typing-misc/unbound_type_variables.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type synonym = 'a -> 'a
diff --git a/testsuite/tests/typing-misc/unique_names_in_unification.ml b/testsuite/tests/typing-misc/unique_names_in_unification.ml
index 18a69f32bd..c1c1d546b6 100644
--- a/testsuite/tests/typing-misc/unique_names_in_unification.ml
+++ b/testsuite/tests/typing-misc/unique_names_in_unification.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- *)
+ expect;
+*)
type t = A
let x = A
module M = struct
diff --git a/testsuite/tests/typing-misc/variance.ml b/testsuite/tests/typing-misc/variance.ml
index d0f754f716..d95282886f 100644
--- a/testsuite/tests/typing-misc/variance.ml
+++ b/testsuite/tests/typing-misc/variance.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* #8698 *)
diff --git a/testsuite/tests/typing-misc/variant.ml b/testsuite/tests/typing-misc/variant.ml
index b7d5ae8aee..70052e22c3 100644
--- a/testsuite/tests/typing-misc/variant.ml
+++ b/testsuite/tests/typing-misc/variant.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#6394 *)
diff --git a/testsuite/tests/typing-misc/wellfounded.ml b/testsuite/tests/typing-misc/wellfounded.ml
index c8820f7ec8..3d0385167f 100644
--- a/testsuite/tests/typing-misc/wellfounded.ml
+++ b/testsuite/tests/typing-misc/wellfounded.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#6768 *)
diff --git a/testsuite/tests/typing-misc/wrong_kind.ml b/testsuite/tests/typing-misc/wrong_kind.ml
index 76d1a07688..8638b6a2d2 100644
--- a/testsuite/tests/typing-misc/wrong_kind.ml
+++ b/testsuite/tests/typing-misc/wrong_kind.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Constr = struct
diff --git a/testsuite/tests/typing-missing-cmi-2/test.ml b/testsuite/tests/typing-missing-cmi-2/test.ml
index 3321ba4622..72a30aee2e 100644
--- a/testsuite/tests/typing-missing-cmi-2/test.ml
+++ b/testsuite/tests/typing-missing-cmi-2/test.ml
@@ -1,15 +1,15 @@
(* TEST
-readonly_files = "foo.mli bar.mli baz.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "foo.mli"
-*** ocamlc.byte
-module = "bar.mli"
-**** script
-script = "rm foo.cmi"
-***** ocamlc.byte
-flags = "-c -i"
-module = "baz.ml"
-ocamlc_byte_exit_status = "0"
-****** check-ocamlc.byte-output
+ readonly_files = "foo.mli bar.mli baz.ml";
+ setup-ocamlc.byte-build-env;
+ module = "foo.mli";
+ ocamlc.byte;
+ module = "bar.mli";
+ ocamlc.byte;
+ script = "rm foo.cmi";
+ script;
+ flags = "-c -i";
+ module = "baz.ml";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/typing-missing-cmi-3/user.ml b/testsuite/tests/typing-missing-cmi-3/user.ml
index d34bff284a..497f97ace9 100644
--- a/testsuite/tests/typing-missing-cmi-3/user.ml
+++ b/testsuite/tests/typing-missing-cmi-3/user.ml
@@ -1,14 +1,13 @@
(* TEST
-
-readonly_files = "original.ml middle.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "original.ml"
-*** ocamlc.byte
-module = "middle.ml"
-**** script
-script = "rm -f original.cmi"
-***** expect
+ readonly_files = "original.ml middle.ml";
+ setup-ocamlc.byte-build-env;
+ module = "original.ml";
+ ocamlc.byte;
+ module = "middle.ml";
+ ocamlc.byte;
+ script = "rm -f original.cmi";
+ script;
+ expect;
*)
diff --git a/testsuite/tests/typing-missing-cmi/test.ml b/testsuite/tests/typing-missing-cmi/test.ml
index b946a8c1cb..a100351501 100644
--- a/testsuite/tests/typing-missing-cmi/test.ml
+++ b/testsuite/tests/typing-missing-cmi/test.ml
@@ -1,21 +1,21 @@
(* TEST
-readonly_files = "a.ml b.ml c.ml main.ml main_ok.ml"
-subdirectories = "subdir"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "subdir/m.ml"
-*** ocamlc.byte
-flags = "-I subdir"
-module = "a.ml"
-**** ocamlc.byte
-module = "b.ml"
-***** ocamlc.byte
-module = "c.ml"
-****** ocamlc.byte
-flags = ""
-module = "main_ok.ml"
-******* ocamlc.byte
-module = "main.ml"
-ocamlc_byte_exit_status = "2"
-******** check-ocamlc.byte-output
+ readonly_files = "a.ml b.ml c.ml main.ml main_ok.ml";
+ subdirectories = "subdir";
+ setup-ocamlc.byte-build-env;
+ module = "subdir/m.ml";
+ ocamlc.byte;
+ flags = "-I subdir";
+ module = "a.ml";
+ ocamlc.byte;
+ module = "b.ml";
+ ocamlc.byte;
+ module = "c.ml";
+ ocamlc.byte;
+ flags = "";
+ module = "main_ok.ml";
+ ocamlc.byte;
+ module = "main.ml";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/typing-modules-bugs/gatien_baron_20131019_ok.ml b/testsuite/tests/typing-modules-bugs/gatien_baron_20131019_ok.ml
index fea9becac8..6b86ec4310 100644
--- a/testsuite/tests/typing-modules-bugs/gatien_baron_20131019_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/gatien_baron_20131019_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module Std = struct module Hash = Hashtbl end;;
diff --git a/testsuite/tests/typing-modules-bugs/pr10661_ok.ml b/testsuite/tests/typing-modules-bugs/pr10661_ok.ml
index 1dfa42f434..300fe8f19c 100644
--- a/testsuite/tests/typing-modules-bugs/pr10661_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr10661_ok.ml
@@ -1,7 +1,7 @@
(* TEST
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = struct
diff --git a/testsuite/tests/typing-modules-bugs/pr10693_bad.ml b/testsuite/tests/typing-modules-bugs/pr10693_bad.ml
index 4e964c9e13..02122c9096 100644
--- a/testsuite/tests/typing-modules-bugs/pr10693_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr10693_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = "-no-app-funct"
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module type Dep = sig type t val x : t end
module String = struct type t = string let x = "Forty Two" end
@@ -44,3 +44,11 @@ module N' = N.M(String)
module N'' = N'.M(Int)
let () = print_endline (Option.get N''.x)
+
+(* TEST
+ flags = "-no-app-funct";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr5164_ok.ml b/testsuite/tests/typing-modules-bugs/pr5164_ok.ml
index 9d8e571519..af34ebbcce 100644
--- a/testsuite/tests/typing-modules-bugs/pr5164_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr5164_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type INCLUDING = sig
diff --git a/testsuite/tests/typing-modules-bugs/pr51_ok.ml b/testsuite/tests/typing-modules-bugs/pr51_ok.ml
index 740d9bcca6..4e87369880 100644
--- a/testsuite/tests/typing-modules-bugs/pr51_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr51_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module X=struct
diff --git a/testsuite/tests/typing-modules-bugs/pr5663_ok.ml b/testsuite/tests/typing-modules-bugs/pr5663_ok.ml
index 670869b8a5..1eebb3dd2c 100644
--- a/testsuite/tests/typing-modules-bugs/pr5663_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr5663_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module F (M : sig
diff --git a/testsuite/tests/typing-modules-bugs/pr5914_ok.ml b/testsuite/tests/typing-modules-bugs/pr5914_ok.ml
index a027c0b090..766030b34c 100644
--- a/testsuite/tests/typing-modules-bugs/pr5914_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr5914_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type 't a = [ `A ]
diff --git a/testsuite/tests/typing-modules-bugs/pr6240_ok.ml b/testsuite/tests/typing-modules-bugs/pr6240_ok.ml
index ce0ef4de5f..bed38dbc83 100644
--- a/testsuite/tests/typing-modules-bugs/pr6240_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6240_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M : sig
diff --git a/testsuite/tests/typing-modules-bugs/pr6293_bad.ml b/testsuite/tests/typing-modules-bugs/pr6293_bad.ml
index db93799513..ba9997d11b 100644
--- a/testsuite/tests/typing-modules-bugs/pr6293_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6293_bad.ml
@@ -1,10 +1,18 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module type S = sig type t = { a : int; b : int; } end;;
let f (module M : S with type t = int) = { M.a = 0 };;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr6427_bad.ml b/testsuite/tests/typing-modules-bugs/pr6427_bad.ml
index 426c0369d5..85b4b1766c 100644
--- a/testsuite/tests/typing-modules-bugs/pr6427_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6427_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
let flag = ref false
@@ -26,3 +26,11 @@ let () = flag := true
module M2 = M(Float)(Int)
let _ = [| M2.X.x; M1.X.x |]
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr6485_ok.ml b/testsuite/tests/typing-modules-bugs/pr6485_ok.ml
index cf9a946933..cf3b244a2a 100644
--- a/testsuite/tests/typing-modules-bugs/pr6485_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6485_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(** Check that rebinding module preserves private type aliases *)
diff --git a/testsuite/tests/typing-modules-bugs/pr6513_ok.ml b/testsuite/tests/typing-modules-bugs/pr6513_ok.ml
index 6148732604..a6caa16bd2 100644
--- a/testsuite/tests/typing-modules-bugs/pr6513_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6513_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type PR6513 = sig
diff --git a/testsuite/tests/typing-modules-bugs/pr6572_ok.ml b/testsuite/tests/typing-modules-bugs/pr6572_ok.ml
index 28f33d3520..39a73814d2 100644
--- a/testsuite/tests/typing-modules-bugs/pr6572_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6572_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type S = sig
diff --git a/testsuite/tests/typing-modules-bugs/pr6651_ok.ml b/testsuite/tests/typing-modules-bugs/pr6651_ok.ml
index db48d15f17..33c5db2387 100644
--- a/testsuite/tests/typing-modules-bugs/pr6651_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6651_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type S = sig
diff --git a/testsuite/tests/typing-modules-bugs/pr6752_bad.ml b/testsuite/tests/typing-modules-bugs/pr6752_bad.ml
index 42d39e6afd..3e087e88ff 100644
--- a/testsuite/tests/typing-modules-bugs/pr6752_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6752_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Sorry, we have to disable this as this requires accepting
@@ -52,3 +52,11 @@ module M1 =
let () = Common.add (Reload "config.file")
let () = Common.add (Alert "Initialisation done")
end
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr6752_ok.ml b/testsuite/tests/typing-modules-bugs/pr6752_ok.ml
index 2d5ac02ad3..fe1b3ce37c 100644
--- a/testsuite/tests/typing-modules-bugs/pr6752_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6752_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* Adding a type annotation is sufficient to make typing go through *)
diff --git a/testsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference b/testsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference
index 82c11aa338..dd02da6895 100644
--- a/testsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference
+++ b/testsuite/tests/typing-modules-bugs/pr6899_first_bad.compilers.reference
@@ -2,4 +2,5 @@ File "pr6899_first_bad.ml", line 9, characters 4-17:
9 | let should_reject =
^^^^^^^^^^^^^
Error: The type of this expression, '_weak1 -> '_weak2 -> unit,
- contains type variables that cannot be generalized
+ contains the non-generalizable type variable(s): '_weak2, '_weak1.
+ (see manual section 6.1.2)
diff --git a/testsuite/tests/typing-modules-bugs/pr6899_first_bad.ml b/testsuite/tests/typing-modules-bugs/pr6899_first_bad.ml
index d7c1f71a33..4a265df2c5 100644
--- a/testsuite/tests/typing-modules-bugs/pr6899_first_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6899_first_bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
let should_reject =
let table = Hashtbl.create 1 in
fun x y -> Hashtbl.add table x y
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr6899_ok.ml b/testsuite/tests/typing-modules-bugs/pr6899_ok.ml
index 95d0860c0b..85a8ab55a8 100644
--- a/testsuite/tests/typing-modules-bugs/pr6899_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6899_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type 'a t = 'a option
diff --git a/testsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference b/testsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference
index 7646edba86..3c414af3d0 100644
--- a/testsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference
+++ b/testsuite/tests/typing-modules-bugs/pr6899_second_bad.compilers.reference
@@ -2,4 +2,5 @@ File "pr6899_second_bad.ml", line 12, characters 6-9:
12 | let bar = wrap ()
^^^
Error: The type of this expression, ([< `Test ] as '_weak1) -> unit,
- contains type variables that cannot be generalized
+ contains the non-generalizable type variable(s): '_weak1.
+ (see manual section 6.1.2)
diff --git a/testsuite/tests/typing-modules-bugs/pr6899_second_bad.ml b/testsuite/tests/typing-modules-bugs/pr6899_second_bad.ml
index 42d8bdde48..3600362368 100644
--- a/testsuite/tests/typing-modules-bugs/pr6899_second_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6899_second_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
include struct
@@ -11,3 +11,11 @@ include struct
let wrap f `Test = f
let bar = wrap ()
end
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr6944_ok.ml b/testsuite/tests/typing-modules-bugs/pr6944_ok.ml
index 9ff8d3564e..a54f65dbeb 100644
--- a/testsuite/tests/typing-modules-bugs/pr6944_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6944_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
let f () =
diff --git a/testsuite/tests/typing-modules-bugs/pr6954_ok.ml b/testsuite/tests/typing-modules-bugs/pr6954_ok.ml
index 2970e4f340..b6963da967 100644
--- a/testsuite/tests/typing-modules-bugs/pr6954_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6954_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module X = struct module Y = struct module type S = sig type t end end end
diff --git a/testsuite/tests/typing-modules-bugs/pr6981_ok.ml b/testsuite/tests/typing-modules-bugs/pr6981_ok.ml
index 449e9dc754..2f7f54bd22 100644
--- a/testsuite/tests/typing-modules-bugs/pr6981_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6981_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type S =
diff --git a/testsuite/tests/typing-modules-bugs/pr6982_ok.ml b/testsuite/tests/typing-modules-bugs/pr6982_ok.ml
index 47b65abba8..81261287b0 100644
--- a/testsuite/tests/typing-modules-bugs/pr6982_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6982_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module A = struct
diff --git a/testsuite/tests/typing-modules-bugs/pr6985_extended.ml b/testsuite/tests/typing-modules-bugs/pr6985_extended.ml
index 01faa3fe04..26c1ed1678 100644
--- a/testsuite/tests/typing-modules-bugs/pr6985_extended.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6985_extended.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
diff --git a/testsuite/tests/typing-modules-bugs/pr6985_ok.ml b/testsuite/tests/typing-modules-bugs/pr6985_ok.ml
index 043502dae9..8852a8fa98 100644
--- a/testsuite/tests/typing-modules-bugs/pr6985_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6985_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module Foo
diff --git a/testsuite/tests/typing-modules-bugs/pr6992_bad.ml b/testsuite/tests/typing-modules-bugs/pr6992_bad.ml
index 18733c706b..48f1f592af 100644
--- a/testsuite/tests/typing-modules-bugs/pr6992_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr6992_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* PR#6992, reported by Stephen Dolan *)
@@ -21,3 +21,11 @@ module FixId = Fix (struct type 'a f = 'a end)
let bad : (int, string) eq = FixId.uniq Eq Eq
let _ = Printf.printf "Oh dear: %s" (cast bad 42)
*)
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr7036_ok.ml b/testsuite/tests/typing-modules-bugs/pr7036_ok.ml
index 305d2425a7..711e9af2d5 100644
--- a/testsuite/tests/typing-modules-bugs/pr7036_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7036_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M = struct
diff --git a/testsuite/tests/typing-modules-bugs/pr7082_ok.ml b/testsuite/tests/typing-modules-bugs/pr7082_ok.ml
index 849427d44b..59f714acfa 100644
--- a/testsuite/tests/typing-modules-bugs/pr7082_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7082_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type FOO = sig type t end
diff --git a/testsuite/tests/typing-modules-bugs/pr7112_bad.ml b/testsuite/tests/typing-modules-bugs/pr7112_bad.ml
index ffc634901f..20738024e1 100644
--- a/testsuite/tests/typing-modules-bugs/pr7112_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7112_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module A = struct module type S module S = struct end end
@@ -11,3 +11,11 @@ module F (_ : sig end) = struct module type S module S = A.S end
module M = struct end
module N = M
module G (X : F(N).S) : A.S = X
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr7112_ok.ml b/testsuite/tests/typing-modules-bugs/pr7112_ok.ml
index 666c604c56..1ce72502e4 100644
--- a/testsuite/tests/typing-modules-bugs/pr7112_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7112_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module F (_ : sig end) = struct module type S end
diff --git a/testsuite/tests/typing-modules-bugs/pr7152_ok.ml b/testsuite/tests/typing-modules-bugs/pr7152_ok.ml
index eada285f76..29543b1c39 100644
--- a/testsuite/tests/typing-modules-bugs/pr7152_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7152_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M : sig
diff --git a/testsuite/tests/typing-modules-bugs/pr7182_ok.ml b/testsuite/tests/typing-modules-bugs/pr7182_ok.ml
index 801348f9f6..8e9bfd9c12 100644
--- a/testsuite/tests/typing-modules-bugs/pr7182_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7182_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module rec M
diff --git a/testsuite/tests/typing-modules-bugs/pr7305_principal.ml b/testsuite/tests/typing-modules-bugs/pr7305_principal.ml
index 3371e37886..7d31856a72 100644
--- a/testsuite/tests/typing-modules-bugs/pr7305_principal.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7305_principal.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -principal -w +18+19 -warn-error +A "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -principal -w +18+19 -warn-error +A ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type c1 = < c1: c1 >
diff --git a/testsuite/tests/typing-modules-bugs/pr7321_ok.ml b/testsuite/tests/typing-modules-bugs/pr7321_ok.ml
index 9d21784738..b0ad633dbe 100644
--- a/testsuite/tests/typing-modules-bugs/pr7321_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7321_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type S = sig type 'a t end
diff --git a/testsuite/tests/typing-modules-bugs/pr7414_2_bad.ml b/testsuite/tests/typing-modules-bugs/pr7414_2_bad.ml
index 1926ae4425..1d503a059c 100644
--- a/testsuite/tests/typing-modules-bugs/pr7414_2_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7414_2_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module type T = sig
@@ -48,3 +48,11 @@ let () =
let () = (!M'.r) := [M'.Choice.x] in
let module N' = (N : S) in
List.iter (fun x -> print_string (N'.Choice.show x)) !(!N'.r)
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr7414_bad.ml b/testsuite/tests/typing-modules-bugs/pr7414_bad.ml
index 7bc294599d..25b1b80d59 100644
--- a/testsuite/tests/typing-modules-bugs/pr7414_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7414_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module type T = sig
@@ -61,3 +61,11 @@ module N' = (N : S)
let () = List.iter (fun x -> print_string (N'.Choice.show x)) !(!N'.r)
*)
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules-bugs/pr7519_ok.ml b/testsuite/tests/typing-modules-bugs/pr7519_ok.ml
index c6278ce392..4b1cd79747 100644
--- a/testsuite/tests/typing-modules-bugs/pr7519_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7519_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module Gen_spec = struct type 't extra = unit end
diff --git a/testsuite/tests/typing-modules-bugs/pr7601_ok.ml b/testsuite/tests/typing-modules-bugs/pr7601_ok.ml
index 8000392014..b9ed83c7cf 100644
--- a/testsuite/tests/typing-modules-bugs/pr7601_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7601_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(**************************************************************************)
diff --git a/testsuite/tests/typing-modules-bugs/pr7601a_ok.ml b/testsuite/tests/typing-modules-bugs/pr7601a_ok.ml
index ce2b8bb71b..4e062e0b45 100644
--- a/testsuite/tests/typing-modules-bugs/pr7601a_ok.ml
+++ b/testsuite/tests/typing-modules-bugs/pr7601a_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type Param1 = sig
diff --git a/testsuite/tests/typing-modules-bugs/pr9695_bad.ml b/testsuite/tests/typing-modules-bugs/pr9695_bad.ml
index 86ea3f8cdf..b0e8803b35 100644
--- a/testsuite/tests/typing-modules-bugs/pr9695_bad.ml
+++ b/testsuite/tests/typing-modules-bugs/pr9695_bad.ml
@@ -1,10 +1,18 @@
-(* TEST
-flags = " -w -a -no-alias-deps"
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module A = MissingModule
let () = let open A in x
+
+(* TEST
+ flags = " -w -a -no-alias-deps";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-modules/Test.ml b/testsuite/tests/typing-modules/Test.ml
index f87fa521d1..17afb6483f 100644
--- a/testsuite/tests/typing-modules/Test.ml
+++ b/testsuite/tests/typing-modules/Test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* with module *)
diff --git a/testsuite/tests/typing-modules/aliases.ml b/testsuite/tests/typing-modules/aliases.ml
index b9ed5c6e8c..a242d844bd 100644
--- a/testsuite/tests/typing-modules/aliases.ml
+++ b/testsuite/tests/typing-modules/aliases.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module C = Char;;
diff --git a/testsuite/tests/typing-modules/anonymous.ml b/testsuite/tests/typing-modules/anonymous.ml
index 7d006eddd9..367eb38184 100644
--- a/testsuite/tests/typing-modules/anonymous.ml
+++ b/testsuite/tests/typing-modules/anonymous.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module _ = struct end;;
diff --git a/testsuite/tests/typing-modules/applicative_functor_type.ml b/testsuite/tests/typing-modules/applicative_functor_type.ml
index 01c6127490..172a0dd30a 100644
--- a/testsuite/tests/typing-modules/applicative_functor_type.ml
+++ b/testsuite/tests/typing-modules/applicative_functor_type.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = Set.Make(String).t
diff --git a/testsuite/tests/typing-modules/extension_constructors_errors_test.ml b/testsuite/tests/typing-modules/extension_constructors_errors_test.ml
index b37f9d17a2..b273c9d0e8 100644
--- a/testsuite/tests/typing-modules/extension_constructors_errors_test.ml
+++ b/testsuite/tests/typing-modules/extension_constructors_errors_test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = ..;;
diff --git a/testsuite/tests/typing-modules/firstclass.ml b/testsuite/tests/typing-modules/firstclass.ml
index a79d01d93f..6a442b5270 100644
--- a/testsuite/tests/typing-modules/firstclass.ml
+++ b/testsuite/tests/typing-modules/firstclass.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type S = sig type u type t end;;
diff --git a/testsuite/tests/typing-modules/functors.ml b/testsuite/tests/typing-modules/functors.ml
index f51e2081a8..9aa275bfcd 100644
--- a/testsuite/tests/typing-modules/functors.ml
+++ b/testsuite/tests/typing-modules/functors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
diff --git a/testsuite/tests/typing-modules/generative.ml b/testsuite/tests/typing-modules/generative.ml
index a3710a4ce0..ce168e3a29 100644
--- a/testsuite/tests/typing-modules/generative.ml
+++ b/testsuite/tests/typing-modules/generative.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Using generative functors *)
diff --git a/testsuite/tests/typing-modules/illegal_permutation.ml b/testsuite/tests/typing-modules/illegal_permutation.ml
index fabe8548c5..820dfb9483 100644
--- a/testsuite/tests/typing-modules/illegal_permutation.ml
+++ b/testsuite/tests/typing-modules/illegal_permutation.ml
@@ -1,5 +1,5 @@
(* TEST
-* expect
+ expect;
*)
class type ct = object end
module type s = sig type a val one:int type b class two:ct type c type exn+=Three type d end
diff --git a/testsuite/tests/typing-modules/inclusion_errors.ml b/testsuite/tests/typing-modules/inclusion_errors.ml
index fa5d3d5358..fe5243e258 100644
--- a/testsuite/tests/typing-modules/inclusion_errors.ml
+++ b/testsuite/tests/typing-modules/inclusion_errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(********************************** Equality **********************************)
diff --git a/testsuite/tests/typing-modules/inclusion_errors_elision.ml b/testsuite/tests/typing-modules/inclusion_errors_elision.ml
index 3dbd0e67ff..1ce88ba424 100644
--- a/testsuite/tests/typing-modules/inclusion_errors_elision.ml
+++ b/testsuite/tests/typing-modules/inclusion_errors_elision.ml
@@ -1,7 +1,7 @@
(* TEST
- flags ="-keep-original-error-size"
- * expect
- *)
+ flags = "-keep-original-error-size";
+ expect;
+*)
module A = struct
diff --git a/testsuite/tests/typing-modules/merge_constraint.ml b/testsuite/tests/typing-modules/merge_constraint.ml
index d5c439e941..54fb887ac4 100644
--- a/testsuite/tests/typing-modules/merge_constraint.ml
+++ b/testsuite/tests/typing-modules/merge_constraint.ml
@@ -1,6 +1,7 @@
(* TEST
- ocamlrunparam = "l=1000000"
- * expect *)
+ ocamlrunparam = "l=1000000";
+ expect;
+*)
(* #9623 *)
diff --git a/testsuite/tests/typing-modules/module_type_substitution.ml b/testsuite/tests/typing-modules/module_type_substitution.ml
index 09f16ce7be..3aa341ab37 100644
--- a/testsuite/tests/typing-modules/module_type_substitution.ml
+++ b/testsuite/tests/typing-modules/module_type_substitution.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Basic *)
diff --git a/testsuite/tests/typing-modules/nondep.ml b/testsuite/tests/typing-modules/nondep.ml
index 36e541127f..e74731dd4e 100644
--- a/testsuite/tests/typing-modules/nondep.ml
+++ b/testsuite/tests/typing-modules/nondep.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module F(X : sig type t end) = struct
diff --git a/testsuite/tests/typing-modules/nondep_private_abbrev.ml b/testsuite/tests/typing-modules/nondep_private_abbrev.ml
index a0daa1fb95..282b04e130 100644
--- a/testsuite/tests/typing-modules/nondep_private_abbrev.ml
+++ b/testsuite/tests/typing-modules/nondep_private_abbrev.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module F(_ : sig end) : sig
diff --git a/testsuite/tests/typing-modules/nongen.ml b/testsuite/tests/typing-modules/nongen.ml
new file mode 100644
index 0000000000..9aca5a1f88
--- /dev/null
+++ b/testsuite/tests/typing-modules/nongen.ml
@@ -0,0 +1,23 @@
+(* TEST
+ expect;
+*)
+
+module X = struct
+ let t = ref None
+end
+
+module type X' = module type of X
+[%%expect{|
+module X : sig val t : '_weak1 option ref end
+Line 5, characters 32-33:
+5 | module type X' = module type of X
+ ^
+Error: The type of this module, sig val t : '_weak1 option ref end,
+ contains non-generalizable type variable(s).
+ (see manual section 6.1.2)
+Line 2, characters 6-7:
+2 | let t = ref None
+ ^
+ The type of this value, '_weak1 option ref,
+ contains the non-generalizable type variable(s) '_weak1.
+|}]
diff --git a/testsuite/tests/typing-modules/normalize_path.ml b/testsuite/tests/typing-modules/normalize_path.ml
index 44f45ef49e..fcca202ee7 100644
--- a/testsuite/tests/typing-modules/normalize_path.ml
+++ b/testsuite/tests/typing-modules/normalize_path.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module X = struct
diff --git a/testsuite/tests/typing-modules/packed_module_levels.ml b/testsuite/tests/typing-modules/packed_module_levels.ml
index a4883d00de..a111d2fd4c 100644
--- a/testsuite/tests/typing-modules/packed_module_levels.ml
+++ b/testsuite/tests/typing-modules/packed_module_levels.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type (_, _) equ = Refl : ('q, 'q) equ
diff --git a/testsuite/tests/typing-modules/pr10298.ml b/testsuite/tests/typing-modules/pr10298.ml
index 58a9509cd7..d1f8f9eafe 100644
--- a/testsuite/tests/typing-modules/pr10298.ml
+++ b/testsuite/tests/typing-modules/pr10298.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type S = sig type t end
diff --git a/testsuite/tests/typing-modules/pr10399.ml b/testsuite/tests/typing-modules/pr10399.ml
index cce02f41a2..89e25af0de 100644
--- a/testsuite/tests/typing-modules/pr10399.ml
+++ b/testsuite/tests/typing-modules/pr10399.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* From jctis: <https://github.com/ocaml/ocaml/issues/10399> *)
diff --git a/testsuite/tests/typing-modules/pr5911.ml b/testsuite/tests/typing-modules/pr5911.ml
index 1c08b37af2..44f141e583 100644
--- a/testsuite/tests/typing-modules/pr5911.ml
+++ b/testsuite/tests/typing-modules/pr5911.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type S = sig
diff --git a/testsuite/tests/typing-modules/pr6394.ml b/testsuite/tests/typing-modules/pr6394.ml
index d785fb5065..0546f86414 100644
--- a/testsuite/tests/typing-modules/pr6394.ml
+++ b/testsuite/tests/typing-modules/pr6394.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
[@@@ ocaml.warning "+4"]
diff --git a/testsuite/tests/typing-modules/pr6633.ml b/testsuite/tests/typing-modules/pr6633.ml
index 084cc63cd3..f8b791961e 100644
--- a/testsuite/tests/typing-modules/pr6633.ml
+++ b/testsuite/tests/typing-modules/pr6633.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
diff --git a/testsuite/tests/typing-modules/pr7207.ml b/testsuite/tests/typing-modules/pr7207.ml
index a061a34d67..aa9b7b5e92 100644
--- a/testsuite/tests/typing-modules/pr7207.ml
+++ b/testsuite/tests/typing-modules/pr7207.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module F (X : sig end) = struct type t = int end;;
diff --git a/testsuite/tests/typing-modules/pr7348.ml b/testsuite/tests/typing-modules/pr7348.ml
index dc0cf4050d..4cd0671e3e 100644
--- a/testsuite/tests/typing-modules/pr7348.ml
+++ b/testsuite/tests/typing-modules/pr7348.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module F (X : sig type t = private < foo:int; ..> val x : t end) = struct
diff --git a/testsuite/tests/typing-modules/pr7726.ml b/testsuite/tests/typing-modules/pr7726.ml
index 2fdd500dbd..6ea1b7f5ea 100644
--- a/testsuite/tests/typing-modules/pr7726.ml
+++ b/testsuite/tests/typing-modules/pr7726.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type T = sig type t end
diff --git a/testsuite/tests/typing-modules/pr7787.ml b/testsuite/tests/typing-modules/pr7787.ml
index 4738df3876..ccb32cfd8d 100644
--- a/testsuite/tests/typing-modules/pr7787.ml
+++ b/testsuite/tests/typing-modules/pr7787.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module O (T : sig
diff --git a/testsuite/tests/typing-modules/pr7818.ml b/testsuite/tests/typing-modules/pr7818.ml
index eea55e3f7d..e6e03298a2 100644
--- a/testsuite/tests/typing-modules/pr7818.ml
+++ b/testsuite/tests/typing-modules/pr7818.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* cannot_alias.ml *)
diff --git a/testsuite/tests/typing-modules/pr7851.ml b/testsuite/tests/typing-modules/pr7851.ml
index 9e1eef73a1..f19c1c108a 100644
--- a/testsuite/tests/typing-modules/pr7851.ml
+++ b/testsuite/tests/typing-modules/pr7851.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Leo's version *)
diff --git a/testsuite/tests/typing-modules/pr8810.ml b/testsuite/tests/typing-modules/pr8810.ml
index 57bfa17fc7..58a07c2f3b 100644
--- a/testsuite/tests/typing-modules/pr8810.ml
+++ b/testsuite/tests/typing-modules/pr8810.ml
@@ -1,7 +1,7 @@
(* TEST
-* setup-ocamlc.byte-build-env
-flags = "-no-alias-deps -w -49 -c"
-** ocamlc.byte
-ocamlc_byte_exit_status = "2"
+ flags = "-no-alias-deps -w -49 -c";
+ setup-ocamlc.byte-build-env;
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
*)
module Loop = Pr8810
diff --git a/testsuite/tests/typing-modules/pr9384.ml b/testsuite/tests/typing-modules/pr9384.ml
index 941bdadfdd..ba55288c80 100644
--- a/testsuite/tests/typing-modules/pr9384.ml
+++ b/testsuite/tests/typing-modules/pr9384.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M : sig
diff --git a/testsuite/tests/typing-modules/pr9695.ml b/testsuite/tests/typing-modules/pr9695.ml
index ad025fead2..c77c222fba 100644
--- a/testsuite/tests/typing-modules/pr9695.ml
+++ b/testsuite/tests/typing-modules/pr9695.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Test (S : sig module type S end) (M : S.S) =
diff --git a/testsuite/tests/typing-modules/printing.ml b/testsuite/tests/typing-modules/printing.ml
index 796431507e..1cd554ef00 100644
--- a/testsuite/tests/typing-modules/printing.ml
+++ b/testsuite/tests/typing-modules/printing.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#6650 *)
diff --git a/testsuite/tests/typing-modules/private.ml b/testsuite/tests/typing-modules/private.ml
index 940c1eb6a9..202b90e9e1 100644
--- a/testsuite/tests/typing-modules/private.ml
+++ b/testsuite/tests/typing-modules/private.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- *)
+ expect;
+*)
module M :
sig type t = private [< `A | `B of string] end
diff --git a/testsuite/tests/typing-modules/records_errors_test.ml b/testsuite/tests/typing-modules/records_errors_test.ml
index ef327db4eb..a691a3e7e5 100644
--- a/testsuite/tests/typing-modules/records_errors_test.ml
+++ b/testsuite/tests/typing-modules/records_errors_test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M1 : sig
diff --git a/testsuite/tests/typing-modules/recursive.ml b/testsuite/tests/typing-modules/recursive.ml
index 23ad13013e..35e4e88bd3 100644
--- a/testsuite/tests/typing-modules/recursive.ml
+++ b/testsuite/tests/typing-modules/recursive.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* PR#7324 *)
diff --git a/testsuite/tests/typing-modules/struct_include_optimisation.ml b/testsuite/tests/typing-modules/struct_include_optimisation.ml
index 264af898fc..b5f205204f 100644
--- a/testsuite/tests/typing-modules/struct_include_optimisation.ml
+++ b/testsuite/tests/typing-modules/struct_include_optimisation.ml
@@ -1,5 +1,6 @@
(* TEST
- * native *)
+ native;
+*)
type alloc_count = { mutable total: float }
let allocs = Sys.opaque_identity { total = 0. }
let[@inline never] set_allocs () =
diff --git a/testsuite/tests/typing-modules/unroll_private_abbrev.ml b/testsuite/tests/typing-modules/unroll_private_abbrev.ml
index 4fa7f7da2f..cb9bf74d5d 100644
--- a/testsuite/tests/typing-modules/unroll_private_abbrev.ml
+++ b/testsuite/tests/typing-modules/unroll_private_abbrev.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M : sig
diff --git a/testsuite/tests/typing-modules/variants_errors_test.ml b/testsuite/tests/typing-modules/variants_errors_test.ml
index 253bc080e2..dab5ad9541 100644
--- a/testsuite/tests/typing-modules/variants_errors_test.ml
+++ b/testsuite/tests/typing-modules/variants_errors_test.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- *)
+ expect;
+*)
module M1 : sig
type t =
diff --git a/testsuite/tests/typing-modules/with_ghosts.ml b/testsuite/tests/typing-modules/with_ghosts.ml
index ab9ad14fa9..8824054fce 100644
--- a/testsuite/tests/typing-modules/with_ghosts.ml
+++ b/testsuite/tests/typing-modules/with_ghosts.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(**
diff --git a/testsuite/tests/typing-multifile/pr6372.ml b/testsuite/tests/typing-multifile/pr6372.ml
index 74457647da..fd148a1603 100644
--- a/testsuite/tests/typing-multifile/pr6372.ml
+++ b/testsuite/tests/typing-multifile/pr6372.ml
@@ -1,9 +1,9 @@
(* TEST
-readonly_files = "d.mli e.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "d.mli"
-*** ocamlc.byte
-module = "e.ml"
-**** check-ocamlc.byte-output
+ readonly_files = "d.mli e.ml";
+ setup-ocamlc.byte-build-env;
+ module = "d.mli";
+ ocamlc.byte;
+ module = "e.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/typing-multifile/pr7325.ml b/testsuite/tests/typing-multifile/pr7325.ml
index 87cad1ab54..a30178f8e2 100644
--- a/testsuite/tests/typing-multifile/pr7325.ml
+++ b/testsuite/tests/typing-multifile/pr7325.ml
@@ -1,13 +1,13 @@
(* TEST
-readonly_files = "a.ml b.ml c.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "a.ml"
-*** ocamlc.byte
-module = "b.ml"
-**** script
-script = "rm a.cmi"
-***** ocamlc.byte
-module = "c.ml"
-****** check-ocamlc.byte-output
+ readonly_files = "a.ml b.ml c.ml";
+ setup-ocamlc.byte-build-env;
+ module = "a.ml";
+ ocamlc.byte;
+ module = "b.ml";
+ ocamlc.byte;
+ script = "rm a.cmi";
+ script;
+ module = "c.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
diff --git a/testsuite/tests/typing-multifile/pr7563.ml b/testsuite/tests/typing-multifile/pr7563.ml
index d7950efbea..87c8491dd3 100644
--- a/testsuite/tests/typing-multifile/pr7563.ml
+++ b/testsuite/tests/typing-multifile/pr7563.ml
@@ -1,5 +1,5 @@
(* TEST
-modules = "f.ml"
+ modules = "f.ml";
*)
exit (if F.Alias = F.alias then 0 else 1)
diff --git a/testsuite/tests/typing-multifile/pr9218.ml b/testsuite/tests/typing-multifile/pr9218.ml
index 3c025aff37..c2fb461a98 100644
--- a/testsuite/tests/typing-multifile/pr9218.ml
+++ b/testsuite/tests/typing-multifile/pr9218.ml
@@ -1,7 +1,7 @@
(* TEST
- flags="-annot"
- modules="a.ml"
- *)
+ flags = "-annot";
+ modules = "a.ml";
+*)
(* Test interference between inline record path
[a.A] and the [a.ml] compilation unit *)
diff --git a/testsuite/tests/typing-objects-bugs/pr3968_bad.ml b/testsuite/tests/typing-objects-bugs/pr3968_bad.ml
index e60b35044f..02094f0a6e 100644
--- a/testsuite/tests/typing-objects-bugs/pr3968_bad.ml
+++ b/testsuite/tests/typing-objects-bugs/pr3968_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
type expr =
@@ -27,3 +27,11 @@ object
body
| _ -> `App(l,r);
end
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-objects-bugs/pr4018_bad.ml b/testsuite/tests/typing-objects-bugs/pr4018_bad.ml
index a2a7235fef..6142ea8a82 100644
--- a/testsuite/tests/typing-objects-bugs/pr4018_bad.ml
+++ b/testsuite/tests/typing-objects-bugs/pr4018_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
class virtual ['subject, 'event] observer =
@@ -51,3 +51,11 @@ class world =
end
*)
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-objects-bugs/pr4435_bad.ml b/testsuite/tests/typing-objects-bugs/pr4435_bad.ml
index 9cbd777ee4..fb2e486895 100644
--- a/testsuite/tests/typing-objects-bugs/pr4435_bad.ml
+++ b/testsuite/tests/typing-objects-bugs/pr4435_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Two v's in the same class *)
@@ -17,3 +17,11 @@ class c (v : int) =
inherit ((fun v -> object method v : string = v end) "42")
end;;
(new c 42)#v0;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-objects-bugs/pr4766_ok.ml b/testsuite/tests/typing-objects-bugs/pr4766_ok.ml
index 565275a499..fd240ee226 100644
--- a/testsuite/tests/typing-objects-bugs/pr4766_ok.ml
+++ b/testsuite/tests/typing-objects-bugs/pr4766_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
class virtual ['a] c =
diff --git a/testsuite/tests/typing-objects-bugs/pr4824_ok.ml b/testsuite/tests/typing-objects-bugs/pr4824_ok.ml
index 114a5a7534..09748aef1d 100644
--- a/testsuite/tests/typing-objects-bugs/pr4824_ok.ml
+++ b/testsuite/tests/typing-objects-bugs/pr4824_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M :
diff --git a/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml b/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml
index 566cd0c771..cdd6486087 100644
--- a/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml
+++ b/testsuite/tests/typing-objects-bugs/pr4824a_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module M : sig class c : 'a -> object val x : 'b end end =
@@ -12,3 +12,11 @@ module M : sig class c : 'a -> object val x : 'b end end =
class c (x : int) = object inherit M.c x method x : bool = x end
let r = (new c 2)#x;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-objects-bugs/pr5156_ok.ml b/testsuite/tests/typing-objects-bugs/pr5156_ok.ml
index e17bf711d2..d3e85071a5 100644
--- a/testsuite/tests/typing-objects-bugs/pr5156_ok.ml
+++ b/testsuite/tests/typing-objects-bugs/pr5156_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
class type t = object end;;
diff --git a/testsuite/tests/typing-objects-bugs/pr7284_bad.ml b/testsuite/tests/typing-objects-bugs/pr7284_bad.ml
index ab7bc55d82..a868d5bc00 100644
--- a/testsuite/tests/typing-objects-bugs/pr7284_bad.ml
+++ b/testsuite/tests/typing-objects-bugs/pr7284_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module type S = sig
@@ -39,3 +39,11 @@ module type S = sig
module N = F(M)
let () = N.f (N.V2 0)
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-objects-bugs/pr7293_ok.ml b/testsuite/tests/typing-objects-bugs/pr7293_ok.ml
index 40ba424e05..ae796dc03a 100644
--- a/testsuite/tests/typing-objects-bugs/pr7293_ok.ml
+++ b/testsuite/tests/typing-objects-bugs/pr7293_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type t = T : t
diff --git a/testsuite/tests/typing-objects-bugs/woodyatt_ok.ml b/testsuite/tests/typing-objects-bugs/woodyatt_ok.ml
index a109ed052c..b56953cdbd 100644
--- a/testsuite/tests/typing-objects-bugs/woodyatt_ok.ml
+++ b/testsuite/tests/typing-objects-bugs/woodyatt_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* test.ml *)
diff --git a/testsuite/tests/typing-objects-bugs/yamagata021012_ok.ml b/testsuite/tests/typing-objects-bugs/yamagata021012_ok.ml
index eb7ed2a72a..fa4579ce24 100644
--- a/testsuite/tests/typing-objects-bugs/yamagata021012_ok.ml
+++ b/testsuite/tests/typing-objects-bugs/yamagata021012_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* The module begins *)
diff --git a/testsuite/tests/typing-objects/Exemples.ml b/testsuite/tests/typing-objects/Exemples.ml
index 3ab4072c14..513b28d13d 100644
--- a/testsuite/tests/typing-objects/Exemples.ml
+++ b/testsuite/tests/typing-objects/Exemples.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class point x_init = object
diff --git a/testsuite/tests/typing-objects/Tests.ml b/testsuite/tests/typing-objects/Tests.ml
index 5ca2804f44..c671375805 100644
--- a/testsuite/tests/typing-objects/Tests.ml
+++ b/testsuite/tests/typing-objects/Tests.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Subtyping is "syntactic" *)
@@ -185,7 +185,8 @@ Lines 1-3, characters 0-3:
Error: The type of this class,
class ['a] c :
unit -> object constraint 'a = '_weak1 list ref method f : 'a end,
- contains type variables that cannot be generalized
+ contains the non-generalizable type variable(s): '_weak1.
+ (see manual section 6.1.2)
|}];;
(* Abbreviations *)
diff --git a/testsuite/tests/typing-objects/abstract_rows.ml b/testsuite/tests/typing-objects/abstract_rows.ml
index 0ae3d307a2..3b92692530 100644
--- a/testsuite/tests/typing-objects/abstract_rows.ml
+++ b/testsuite/tests/typing-objects/abstract_rows.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type u = <x:int>
type t = private <u; ..>
diff --git a/testsuite/tests/typing-objects/class_2.ml b/testsuite/tests/typing-objects/class_2.ml
index 2d70884cdd..0944768382 100644
--- a/testsuite/tests/typing-objects/class_2.ml
+++ b/testsuite/tests/typing-objects/class_2.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* class expressions may also contain local recursive bindings *)
diff --git a/testsuite/tests/typing-objects/dummy.ml b/testsuite/tests/typing-objects/dummy.ml
index de8b18822a..d85c5d102a 100644
--- a/testsuite/tests/typing-objects/dummy.ml
+++ b/testsuite/tests/typing-objects/dummy.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class virtual child1 parent =
diff --git a/testsuite/tests/typing-objects/errors.ml b/testsuite/tests/typing-objects/errors.ml
index 236f7e1d5b..eb839fee15 100644
--- a/testsuite/tests/typing-objects/errors.ml
+++ b/testsuite/tests/typing-objects/errors.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class type virtual ['a] c = object constraint 'a = [<`A of int & float] end
diff --git a/testsuite/tests/typing-objects/field_kind.ml b/testsuite/tests/typing-objects/field_kind.ml
index 287e3c6770..53dea44bac 100644
--- a/testsuite/tests/typing-objects/field_kind.ml
+++ b/testsuite/tests/typing-objects/field_kind.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type _ t = Int : int t;;
diff --git a/testsuite/tests/typing-objects/nongen.ml b/testsuite/tests/typing-objects/nongen.ml
new file mode 100644
index 0000000000..f4937be122
--- /dev/null
+++ b/testsuite/tests/typing-objects/nongen.ml
@@ -0,0 +1,23 @@
+(* TEST
+ expect;
+*)
+
+let x = ref None
+
+class test =
+object
+ method b v = x := Some v
+end
+
+[%%expect{|
+val x : '_weak1 option ref = {contents = None}
+Lines 3-6, characters 0-3:
+3 | class test =
+4 | object
+5 | method b v = x := Some v
+6 | end
+Error: The type of this class,
+ class test : object method b : '_weak1 -> unit end,
+ contains the non-generalizable type variable(s): '_weak1.
+ (see manual section 6.1.2)
+|}]
diff --git a/testsuite/tests/typing-objects/open_in_classes.ml b/testsuite/tests/typing-objects/open_in_classes.ml
index 05f33b9192..f374c08393 100644
--- a/testsuite/tests/typing-objects/open_in_classes.ml
+++ b/testsuite/tests/typing-objects/open_in_classes.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M = struct
diff --git a/testsuite/tests/typing-objects/pr11569.ml b/testsuite/tests/typing-objects/pr11569.ml
index 321f0a9b25..70d303852b 100644
--- a/testsuite/tests/typing-objects/pr11569.ml
+++ b/testsuite/tests/typing-objects/pr11569.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class ['a] c = object constraint 'a = int method m (x: bool #c) = () end;;
diff --git a/testsuite/tests/typing-objects/pr5545.ml b/testsuite/tests/typing-objects/pr5545.ml
index 8bb92adfda..c0ec1b71ee 100644
--- a/testsuite/tests/typing-objects/pr5545.ml
+++ b/testsuite/tests/typing-objects/pr5545.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type foo = int;;
diff --git a/testsuite/tests/typing-objects/pr5619_bad.ml b/testsuite/tests/typing-objects/pr5619_bad.ml
index bfbf6dd861..766f5adc87 100644
--- a/testsuite/tests/typing-objects/pr5619_bad.ml
+++ b/testsuite/tests/typing-objects/pr5619_bad.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class type foo_t =
diff --git a/testsuite/tests/typing-objects/pr5858.ml b/testsuite/tests/typing-objects/pr5858.ml
index a7f0bf84b3..6fa0162a86 100644
--- a/testsuite/tests/typing-objects/pr5858.ml
+++ b/testsuite/tests/typing-objects/pr5858.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class type c = object end;;
diff --git a/testsuite/tests/typing-objects/pr6123_bad.ml b/testsuite/tests/typing-objects/pr6123_bad.ml
index 6dff6598ff..066ae48472 100644
--- a/testsuite/tests/typing-objects/pr6123_bad.ml
+++ b/testsuite/tests/typing-objects/pr6123_bad.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class virtual name =
diff --git a/testsuite/tests/typing-objects/pr6383.ml b/testsuite/tests/typing-objects/pr6383.ml
index 12bc876ed8..3f9e701d30 100644
--- a/testsuite/tests/typing-objects/pr6383.ml
+++ b/testsuite/tests/typing-objects/pr6383.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let f (x: #M.foo) = 0;;
diff --git a/testsuite/tests/typing-objects/pr6907_bad.ml b/testsuite/tests/typing-objects/pr6907_bad.ml
index cafe04f440..7b5da5ba68 100644
--- a/testsuite/tests/typing-objects/pr6907_bad.ml
+++ b/testsuite/tests/typing-objects/pr6907_bad.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class type ['e] t = object('s)
diff --git a/testsuite/tests/typing-objects/pr7711_ok.ml b/testsuite/tests/typing-objects/pr7711_ok.ml
index 7f188cf59b..3f910e7f16 100644
--- a/testsuite/tests/typing-objects/pr7711_ok.ml
+++ b/testsuite/tests/typing-objects/pr7711_ok.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a r = <w: int -> int; .. > as 'a;;
diff --git a/testsuite/tests/typing-objects/self_cannot_be_closed.ml b/testsuite/tests/typing-objects/self_cannot_be_closed.ml
index f2cbc406b1..ccd0f91832 100644
--- a/testsuite/tests/typing-objects/self_cannot_be_closed.ml
+++ b/testsuite/tests/typing-objects/self_cannot_be_closed.ml
@@ -1,6 +1,6 @@
(* TEST
- * expect
- *)
+ expect;
+*)
let is_empty (x : < >) = ();;
[%%expect {|
val is_empty : < > -> unit = <fun>
diff --git a/testsuite/tests/typing-objects/self_cannot_escape_pr7865.ml b/testsuite/tests/typing-objects/self_cannot_escape_pr7865.ml
index d350fbb52c..c192a16cfe 100644
--- a/testsuite/tests/typing-objects/self_cannot_escape_pr7865.ml
+++ b/testsuite/tests/typing-objects/self_cannot_escape_pr7865.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class c =
diff --git a/testsuite/tests/typing-objects/unbound-type-var.ml b/testsuite/tests/typing-objects/unbound-type-var.ml
index 9e00cea202..1a533cac91 100644
--- a/testsuite/tests/typing-objects/unbound-type-var.ml
+++ b/testsuite/tests/typing-objects/unbound-type-var.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class test a c =
diff --git a/testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.ml b/testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.ml
index f6ec3f9b1d..32bbfde36d 100644
--- a/testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.ml
+++ b/testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.ml
@@ -1,8 +1,8 @@
-(* TEST
-flags = "-i -w +63"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
type fpclass = A
@@ -12,3 +12,10 @@ module Stdlib = struct
end
let f A Stdlib.B = FP_normal
+
+(* TEST
+ flags = "-i -w +63";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-ocamlc-i/pr4791.ml b/testsuite/tests/typing-ocamlc-i/pr4791.ml
index f781017001..953e44e933 100644
--- a/testsuite/tests/typing-ocamlc-i/pr4791.ml
+++ b/testsuite/tests/typing-ocamlc-i/pr4791.ml
@@ -1,8 +1,8 @@
-(* TEST
-flags = "-i -w +63"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
type t = A
@@ -11,3 +11,10 @@ struct
type t = B
let f A = B
end
+
+(* TEST
+ flags = "-i -w +63";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-ocamlc-i/pr6323.ml b/testsuite/tests/typing-ocamlc-i/pr6323.ml
index 7aff93f1fa..6084550d13 100644
--- a/testsuite/tests/typing-ocamlc-i/pr6323.ml
+++ b/testsuite/tests/typing-ocamlc-i/pr6323.ml
@@ -1,8 +1,8 @@
-(* TEST
-flags = "-i -w +63"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
type 'a t = B of 'a t list
@@ -15,3 +15,10 @@ module DT = struct
type 'a t = {bar : 'a}
let p t = foo (fun x -> x) t
end
+
+(* TEST
+ flags = "-i -w +63";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-ocamlc-i/pr7402.ml b/testsuite/tests/typing-ocamlc-i/pr7402.ml
index b1ccef885e..38b52e8fad 100644
--- a/testsuite/tests/typing-ocamlc-i/pr7402.ml
+++ b/testsuite/tests/typing-ocamlc-i/pr7402.ml
@@ -1,8 +1,8 @@
-(* TEST
-flags = "-i -w +63"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
*)
module M: sig type t val v:t end = struct
@@ -17,3 +17,10 @@ module M = struct
let v = M.v
end
+
+(* TEST
+ flags = "-i -w +63";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-ocamlc-i/pr7620_bad.ml b/testsuite/tests/typing-ocamlc-i/pr7620_bad.ml
index 25d199a64e..2775db7e9c 100644
--- a/testsuite/tests/typing-ocamlc-i/pr7620_bad.ml
+++ b/testsuite/tests/typing-ocamlc-i/pr7620_bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = "-i"
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
let t =
(function `A | `B -> () : 'a) (`A : [`A]);
(failwith "dummy" : 'a) (* to know how 'a is unified *)
+
+(* TEST
+ flags = "-i";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-poly-bugs/pr5322_ok.ml b/testsuite/tests/typing-poly-bugs/pr5322_ok.ml
index 7534c64f3e..f6523107b8 100644
--- a/testsuite/tests/typing-poly-bugs/pr5322_ok.ml
+++ b/testsuite/tests/typing-poly-bugs/pr5322_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type 'par t = 'par
diff --git a/testsuite/tests/typing-poly-bugs/pr5673_ok.ml b/testsuite/tests/typing-poly-bugs/pr5673_ok.ml
index f30487b18d..73151ec9eb 100644
--- a/testsuite/tests/typing-poly-bugs/pr5673_ok.ml
+++ b/testsuite/tests/typing-poly-bugs/pr5673_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module Classdef = struct
diff --git a/testsuite/tests/typing-poly-bugs/pr6922_ok.ml b/testsuite/tests/typing-poly-bugs/pr6922_ok.ml
index a251762ede..f05f09f8a9 100644
--- a/testsuite/tests/typing-poly-bugs/pr6922_ok.ml
+++ b/testsuite/tests/typing-poly-bugs/pr6922_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module Order = struct
diff --git a/testsuite/tests/typing-poly/error_messages.ml b/testsuite/tests/typing-poly/error_messages.ml
index 02a6b748f7..d25f972844 100644
--- a/testsuite/tests/typing-poly/error_messages.ml
+++ b/testsuite/tests/typing-poly/error_messages.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type t = < x : 'a. int as 'a >
diff --git a/testsuite/tests/typing-poly/poly.ml b/testsuite/tests/typing-poly/poly.ml
index 00a506b439..4d84a44248 100644
--- a/testsuite/tests/typing-poly/poly.ml
+++ b/testsuite/tests/typing-poly/poly.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(*
@@ -1821,7 +1821,8 @@ Line 1, characters 0-63:
Error: The type of this class,
class ['a] r :
object constraint 'a = '_weak2 list ref method get : 'a end,
- contains type variables that cannot be generalized
+ contains the non-generalizable type variable(s): '_weak2.
+ (see manual section 6.1.2)
|}]
(* #8701 *)
diff --git a/testsuite/tests/typing-poly/pr7636.ml b/testsuite/tests/typing-poly/pr7636.ml
index 16074ab5ee..1c4ef67ccb 100644
--- a/testsuite/tests/typing-poly/pr7636.ml
+++ b/testsuite/tests/typing-poly/pr7636.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M = struct
diff --git a/testsuite/tests/typing-poly/pr9603.ml b/testsuite/tests/typing-poly/pr9603.ml
index 02f1e921b9..9e48b344c5 100644
--- a/testsuite/tests/typing-poly/pr9603.ml
+++ b/testsuite/tests/typing-poly/pr9603.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'p pair = 'a * 'b constraint 'p = < left:'a; right:'b>
diff --git a/testsuite/tests/typing-polyvariants-bugs-2/pr3918c.ml b/testsuite/tests/typing-polyvariants-bugs-2/pr3918c.ml
index 7eabcd700b..5475dfe11e 100644
--- a/testsuite/tests/typing-polyvariants-bugs-2/pr3918c.ml
+++ b/testsuite/tests/typing-polyvariants-bugs-2/pr3918c.ml
@@ -1,16 +1,16 @@
-(* TEST
-readonly_files = "pr3918a.mli pr3918b.mli"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "pr3918a.mli"
-*** ocamlc.byte
-module = "pr3918b.mli"
-**** script
-script = "rm -f pr3918a.cmi"
-***** ocamlc.byte
-module = "pr3918c.ml"
-ocamlc_byte_exit_status = "2"
-***** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
*)
(*
@@ -23,3 +23,21 @@ open Pr3918b
let f x = (x : 'a vlist :> 'b vlist)
let f (x : 'a vlist) = (x : 'b vlist)
+
+(* TEST
+ readonly_files = "pr3918a.mli pr3918b.mli";
+ setup-ocamlc.byte-build-env;
+ module = "pr3918a.mli";
+ ocamlc.byte;
+ module = "pr3918b.mli";
+ ocamlc.byte;
+ script = "rm -f pr3918a.cmi";
+ script;
+ {
+ module = "pr3918c.ml";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ }{
+ check-ocamlc.byte-output;
+ }
+*)
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr10664.ml b/testsuite/tests/typing-polyvariants-bugs/pr10664.ml
index 1957e1fce6..109e1c5df2 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr10664.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr10664.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
class idfunc =
object
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr10664a.ml b/testsuite/tests/typing-polyvariants-bugs/pr10664a.ml
index 7993e10a40..115f810ced 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr10664a.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr10664a.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
class idfunc =
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr4775_ok.ml b/testsuite/tests/typing-polyvariants-bugs/pr4775_ok.ml
index e5d5f5978e..bdbf3c438d 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr4775_ok.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr4775_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type Poly = sig
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr4933_ok.ml b/testsuite/tests/typing-polyvariants-bugs/pr4933_ok.ml
index 7a0bffcd54..b9f49b63ea 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr4933_ok.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr4933_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type Priv = sig
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml b/testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml
index 355eecd3ab..cbc0b5a6a2 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr5057_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* PR5057 *)
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml b/testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml
index fa61001722..85a11060c4 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr5057a_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* This one should fail *)
@@ -13,3 +13,11 @@ let f flag =
let _ = match flag with `A -> 0 | `B r -> r in
let _ = match flag with `A -> T.mem | `B r -> r in
()
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr7199_ok.ml b/testsuite/tests/typing-polyvariants-bugs/pr7199_ok.ml
index 75ef0cce6a..2f8d2d0217 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr7199_ok.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr7199_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module type S = sig
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr7817_bad.ml b/testsuite/tests/typing-polyvariants-bugs/pr7817_bad.ml
index 999420fd2b..99ae350930 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr7817_bad.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr7817_bad.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let r = ref None
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr7824.ml b/testsuite/tests/typing-polyvariants-bugs/pr7824.ml
index a58c9ddc98..f2901c3bb9 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr7824.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr7824.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module Element : sig
diff --git a/testsuite/tests/typing-polyvariants-bugs/pr8575.ml b/testsuite/tests/typing-polyvariants-bugs/pr8575.ml
index 98a70d80c1..1cb1bc3b38 100644
--- a/testsuite/tests/typing-polyvariants-bugs/pr8575.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/pr8575.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module A = struct type t = A | B let x = B end;;
diff --git a/testsuite/tests/typing-polyvariants-bugs/privrowsabate_ok.ml b/testsuite/tests/typing-polyvariants-bugs/privrowsabate_ok.ml
index 9274c9d4af..4858be18b4 100644
--- a/testsuite/tests/typing-polyvariants-bugs/privrowsabate_ok.ml
+++ b/testsuite/tests/typing-polyvariants-bugs/privrowsabate_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
type 'a termpc =
diff --git a/testsuite/tests/typing-private-bugs/pr5026_bad.ml b/testsuite/tests/typing-private-bugs/pr5026_bad.ml
index c62a3cb99c..cc3509b242 100644
--- a/testsuite/tests/typing-private-bugs/pr5026_bad.ml
+++ b/testsuite/tests/typing-private-bugs/pr5026_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
type untyped;;
@@ -17,3 +17,11 @@ end;;
class ['a] s3object r : ['a] s3 = object
val underlying = r
end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-private-bugs/pr5469_ok.ml b/testsuite/tests/typing-private-bugs/pr5469_ok.ml
index a5f36390a7..faa2eaa4ad 100644
--- a/testsuite/tests/typing-private-bugs/pr5469_ok.ml
+++ b/testsuite/tests/typing-private-bugs/pr5469_ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module M (T:sig type t end)
diff --git a/testsuite/tests/typing-private/invalid_private_row.ml b/testsuite/tests/typing-private/invalid_private_row.ml
index 361b982c11..18ec0fc71d 100644
--- a/testsuite/tests/typing-private/invalid_private_row.ml
+++ b/testsuite/tests/typing-private/invalid_private_row.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Error message for trying to make private a row type variable
diff --git a/testsuite/tests/typing-private/private.ml b/testsuite/tests/typing-private/private.ml
index 156e9ba51d..bd2b9da5e9 100644
--- a/testsuite/tests/typing-private/private.ml
+++ b/testsuite/tests/typing-private/private.ml
@@ -1,6 +1,9 @@
(* TEST
- * toplevel
- * toplevel with principal
+ {
+ toplevel;
+ }{
+ toplevel with principal;
+ }
*)
module Foobar : sig
diff --git a/testsuite/tests/typing-recmod/gpr1626.ml b/testsuite/tests/typing-recmod/gpr1626.ml
index 9629f2c603..69429ec142 100644
--- a/testsuite/tests/typing-recmod/gpr1626.ml
+++ b/testsuite/tests/typing-recmod/gpr1626.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type S = sig module M : sig end module N = M end;;
diff --git a/testsuite/tests/typing-recmod/pr6491.ml b/testsuite/tests/typing-recmod/pr6491.ml
index 410c11b364..8d6e673902 100644
--- a/testsuite/tests/typing-recmod/pr6491.ml
+++ b/testsuite/tests/typing-recmod/pr6491.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module rec Foo : sig class type c = object method x : int end end = Foo
diff --git a/testsuite/tests/typing-recmod/pr9494.ml b/testsuite/tests/typing-recmod/pr9494.ml
index 41fda6aa15..2b5c17d025 100644
--- a/testsuite/tests/typing-recmod/pr9494.ml
+++ b/testsuite/tests/typing-recmod/pr9494.ml
@@ -1,5 +1,5 @@
-(* TEST
-*)
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)*)
(* PR#9494 *)
@@ -36,3 +36,6 @@ let _ = try
let basic_set = IdSet.singleton {id = 0} in
IdSet.mem {id = 1} basic_set (* diverge here *)
with e -> print_endline @@ Printexc.to_string e; false
+
+(* TEST
+*)
diff --git a/testsuite/tests/typing-recmod/t01bad.ml b/testsuite/tests/typing-recmod/t01bad.ml
index 5bf6197f37..faedd9f2e8 100644
--- a/testsuite/tests/typing-recmod/t01bad.ml
+++ b/testsuite/tests/typing-recmod/t01bad.ml
@@ -1,10 +1,18 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (t = t) *)
module rec A : sig type t = A.t end = struct type t = A.t end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t02bad.ml b/testsuite/tests/typing-recmod/t02bad.ml
index 1faba72b87..9a52879bcd 100644
--- a/testsuite/tests/typing-recmod/t02bad.ml
+++ b/testsuite/tests/typing-recmod/t02bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (t = t) *)
module rec A : sig type t = B.t end = struct type t = B.t end
and B : sig type t = A.t end = struct type t = A.t end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t03ok.ml b/testsuite/tests/typing-recmod/t03ok.ml
index a1c9b32a95..94e4a09f32 100644
--- a/testsuite/tests/typing-recmod/t03ok.ml
+++ b/testsuite/tests/typing-recmod/t03ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* OK (t = int) *)
diff --git a/testsuite/tests/typing-recmod/t04bad.ml b/testsuite/tests/typing-recmod/t04bad.ml
index a671b414d4..6f39c910e1 100644
--- a/testsuite/tests/typing-recmod/t04bad.ml
+++ b/testsuite/tests/typing-recmod/t04bad.ml
@@ -1,10 +1,18 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (t = int * t) *)
module rec A : sig type t = int * A.t end = struct type t = int * A.t end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t05bad.ml b/testsuite/tests/typing-recmod/t05bad.ml
index 1f1df6c590..94d4fc2587 100644
--- a/testsuite/tests/typing-recmod/t05bad.ml
+++ b/testsuite/tests/typing-recmod/t05bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (t = t -> int) *)
module rec A : sig type t = B.t -> int end = struct type t = B.t -> int end
and B : sig type t = A.t end = struct type t = A.t end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t06ok.ml b/testsuite/tests/typing-recmod/t06ok.ml
index a0cfebdbc2..c39b0fa99a 100644
--- a/testsuite/tests/typing-recmod/t06ok.ml
+++ b/testsuite/tests/typing-recmod/t06ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* OK (t = <m:t>) *)
diff --git a/testsuite/tests/typing-recmod/t07bad.ml b/testsuite/tests/typing-recmod/t07bad.ml
index 27e8f1859f..61f8972253 100644
--- a/testsuite/tests/typing-recmod/t07bad.ml
+++ b/testsuite/tests/typing-recmod/t07bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (not regular) *)
module rec A : sig type 'a t = <m: 'a list A.t> end
= struct type 'a t = <m: 'a list A.t> end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t08bad.ml b/testsuite/tests/typing-recmod/t08bad.ml
index 46d2b727c4..341459a6d1 100644
--- a/testsuite/tests/typing-recmod/t08bad.ml
+++ b/testsuite/tests/typing-recmod/t08bad.ml
@@ -1,12 +1,20 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (not regular) *)
module rec A : sig type 'a t = <m: 'a list B.t; n: 'a array B.t> end
= struct type 'a t = <m: 'a list B.t; n: 'a array B.t> end
and B : sig type 'a t = 'a A.t end = struct type 'a t = 'a A.t end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t09bad.ml b/testsuite/tests/typing-recmod/t09bad.ml
index 9ac5d3133d..21fa28620d 100644
--- a/testsuite/tests/typing-recmod/t09bad.ml
+++ b/testsuite/tests/typing-recmod/t09bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (not regular) *)
@@ -11,3 +11,11 @@ module rec A : sig type 'a t = 'a B.t end
= struct type 'a t = 'a B.t end
and B : sig type 'a t = <m: 'a list A.t; n: 'a array A.t> end
= struct type 'a t = <m: 'a list A.t; n: 'a array A.t> end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t10ok.ml b/testsuite/tests/typing-recmod/t10ok.ml
index 626ab888fc..8f8b376f34 100644
--- a/testsuite/tests/typing-recmod/t10ok.ml
+++ b/testsuite/tests/typing-recmod/t10ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* OK *)
diff --git a/testsuite/tests/typing-recmod/t11bad.ml b/testsuite/tests/typing-recmod/t11bad.ml
index f6f2fed846..58f186ebdb 100644
--- a/testsuite/tests/typing-recmod/t11bad.ml
+++ b/testsuite/tests/typing-recmod/t11bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (not regular) *)
@@ -11,3 +11,11 @@ module rec A : sig type 'a t = 'a list B.t end
= struct type 'a t = 'a list B.t end
and B : sig type 'a t = <m: 'a array B.t> end
= struct type 'a t = <m: 'a array B.t> end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t12bad.ml b/testsuite/tests/typing-recmod/t12bad.ml
index cbc8c5bbaf..f7a5ec730c 100644
--- a/testsuite/tests/typing-recmod/t12bad.ml
+++ b/testsuite/tests/typing-recmod/t12bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad (not regular) *)
@@ -19,3 +19,11 @@ module rec M :
= fun f -> new M.c (f x)
end
end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t13ok.ml b/testsuite/tests/typing-recmod/t13ok.ml
index ee50f89041..0b0eb85073 100644
--- a/testsuite/tests/typing-recmod/t13ok.ml
+++ b/testsuite/tests/typing-recmod/t13ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* OK *)
diff --git a/testsuite/tests/typing-recmod/t14bad.ml b/testsuite/tests/typing-recmod/t14bad.ml
index 4fe91cccc1..ec5f926b34 100644
--- a/testsuite/tests/typing-recmod/t14bad.ml
+++ b/testsuite/tests/typing-recmod/t14bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad - PR 4261 *)
@@ -23,3 +23,11 @@ module PR_4261 = struct
module rec U : T with type D.t = U'.t = U
and U' : S with type t = U'.t = U
end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t15bad.ml b/testsuite/tests/typing-recmod/t15bad.ml
index efb99e681e..25840b192a 100644
--- a/testsuite/tests/typing-recmod/t15bad.ml
+++ b/testsuite/tests/typing-recmod/t15bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
(* Bad - PR 4512 *)
module type S' = sig type t = int end
module rec M : S' with type t = M.t = struct type t = M.t end;;
+
+(* TEST
+ flags = " -w -a ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-recmod/t16ok.ml b/testsuite/tests/typing-recmod/t16ok.ml
index 1e87f4f82d..96090e147b 100644
--- a/testsuite/tests/typing-recmod/t16ok.ml
+++ b/testsuite/tests/typing-recmod/t16ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* PR#4450 *)
diff --git a/testsuite/tests/typing-recmod/t17ok.ml b/testsuite/tests/typing-recmod/t17ok.ml
index 2a760d1013..3518ed71f7 100644
--- a/testsuite/tests/typing-recmod/t17ok.ml
+++ b/testsuite/tests/typing-recmod/t17ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* A synthetic example of bootstrapped data structure
diff --git a/testsuite/tests/typing-recmod/t18ok.ml b/testsuite/tests/typing-recmod/t18ok.ml
index e4e3ffa611..f5309952ac 100644
--- a/testsuite/tests/typing-recmod/t18ok.ml
+++ b/testsuite/tests/typing-recmod/t18ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* PR 4470: simplified from OMake's sources *)
diff --git a/testsuite/tests/typing-recmod/t20ok.ml b/testsuite/tests/typing-recmod/t20ok.ml
index ae0eed3264..5fe410f711 100644
--- a/testsuite/tests/typing-recmod/t20ok.ml
+++ b/testsuite/tests/typing-recmod/t20ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* PR 4557 *)
diff --git a/testsuite/tests/typing-recmod/t21ok.ml b/testsuite/tests/typing-recmod/t21ok.ml
index 2c97da3fb9..9eb46a1209 100644
--- a/testsuite/tests/typing-recmod/t21ok.ml
+++ b/testsuite/tests/typing-recmod/t21ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
module F ( X : Set.OrderedType ) = struct
diff --git a/testsuite/tests/typing-recmod/t22ok.ml b/testsuite/tests/typing-recmod/t22ok.ml
index 4709f23c9a..2b5b4d051d 100644
--- a/testsuite/tests/typing-recmod/t22ok.ml
+++ b/testsuite/tests/typing-recmod/t22ok.ml
@@ -1,8 +1,8 @@
(* TEST
-flags = " -w -a "
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+ flags = " -w -a ";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
*)
(* Tests for recursive modules *)
diff --git a/testsuite/tests/typing-recordarg/recordarg.ml b/testsuite/tests/typing-recordarg/recordarg.ml
index 5477de1e8a..7aa9939cb6 100644
--- a/testsuite/tests/typing-recordarg/recordarg.ml
+++ b/testsuite/tests/typing-recordarg/recordarg.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
type t = A of {x:int; mutable y:int};;
diff --git a/testsuite/tests/typing-rectypes-bugs/pr5343_bad.ml b/testsuite/tests/typing-rectypes-bugs/pr5343_bad.ml
index 518dafe019..e576d93197 100644
--- a/testsuite/tests/typing-rectypes-bugs/pr5343_bad.ml
+++ b/testsuite/tests/typing-rectypes-bugs/pr5343_bad.ml
@@ -1,9 +1,9 @@
-(* TEST
-flags = " -w -a -rectypes "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module M : sig
@@ -19,3 +19,11 @@ end = struct
end;;
let h (x : int) : bool = M.g (M.f x);;
+
+(* TEST
+ flags = " -w -a -rectypes ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-rectypes-bugs/pr6174_bad.ml b/testsuite/tests/typing-rectypes-bugs/pr6174_bad.ml
index d5c704416c..e0f92db7d9 100644
--- a/testsuite/tests/typing-rectypes-bugs/pr6174_bad.ml
+++ b/testsuite/tests/typing-rectypes-bugs/pr6174_bad.ml
@@ -1,11 +1,19 @@
-(* TEST
-flags = " -w -a -rectypes "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
type _ t = C : ((('a -> 'o) -> 'o) -> ('b -> 'o) -> 'o) t
let f : type a o. ((a -> o) -> o) t -> (a -> o) -> o =
fun C k -> k (fun x -> x);;
+
+(* TEST
+ flags = " -w -a -rectypes ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-rectypes-bugs/pr6870_bad.ml b/testsuite/tests/typing-rectypes-bugs/pr6870_bad.ml
index 186e07088b..a04e08eae7 100644
--- a/testsuite/tests/typing-rectypes-bugs/pr6870_bad.ml
+++ b/testsuite/tests/typing-rectypes-bugs/pr6870_bad.ml
@@ -1,10 +1,18 @@
-(* TEST
-flags = " -w -a -rectypes "
-ocamlc_byte_exit_status = "2"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
*)
module type T = sig type 'a t end
module Fix (T : T) = struct type r = ('r T.t as 'r) end
+
+(* TEST
+ flags = " -w -a -rectypes ";
+ ocamlc_byte_exit_status = "2";
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-safe-linking/b_bad.ml b/testsuite/tests/typing-safe-linking/b_bad.ml
index 33eecadf6e..dd67c54a8a 100644
--- a/testsuite/tests/typing-safe-linking/b_bad.ml
+++ b/testsuite/tests/typing-safe-linking/b_bad.ml
@@ -1,13 +1,13 @@
-(* TEST
-readonly_files = "a.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "a.ml"
-*** ocamlc.byte
-module = "b_bad.ml"
-flags = "-warn-error +8"
-ocamlc_byte_exit_status = "2"
-**** check-ocamlc.byte-output
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
*)
let f : string A.t -> unit = function
@@ -16,3 +16,15 @@ let f : string A.t -> unit = function
(* It is important that the line below is the last line of the file
(see Makefile) *)
let () = f A.y
+
+(* TEST
+ readonly_files = "a.ml";
+ setup-ocamlc.byte-build-env;
+ module = "a.ml";
+ ocamlc.byte;
+ module = "b_bad.ml";
+ flags = "-warn-error +8";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile.ml b/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile.ml
index 68401fa56e..38aed3e472 100644
--- a/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile.ml
+++ b/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile.ml
@@ -1,4 +1,4 @@
(* TEST
- modules = "largeFile.ml"
+ modules = "largeFile.ml";
*)
print_endline LargeFile.message
diff --git a/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile_top.ml b/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile_top.ml
index 883e8c7943..e436262dce 100644
--- a/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile_top.ml
+++ b/testsuite/tests/typing-shadowing-of-pervasives-submodules/redefine_largefile_top.ml
@@ -1,15 +1,15 @@
(* TEST
- readonly_files = "largeFile.ml"
- * setup-ocaml-build-env
- ** ocamlc.byte
- compile_only = "true"
- all_modules = "largeFile.ml"
- *** script
- script = "mkdir -p inc"
- **** script
- script = "mv largeFile.cmi largeFile.cmo inc/"
- ***** ocaml
- ****** check-ocaml-output
+ readonly_files = "largeFile.ml";
+ setup-ocaml-build-env;
+ compile_only = "true";
+ all_modules = "largeFile.ml";
+ ocamlc.byte;
+ script = "mkdir -p inc";
+ script;
+ script = "mv largeFile.cmi largeFile.cmo inc/";
+ script;
+ ocaml;
+ check-ocaml-output;
*)
#directory "inc";;
#load "largeFile.cmo";;
diff --git a/testsuite/tests/typing-short-paths/errors.ml b/testsuite/tests/typing-short-paths/errors.ml
index 577c149930..948c36e2f6 100644
--- a/testsuite/tests/typing-short-paths/errors.ml
+++ b/testsuite/tests/typing-short-paths/errors.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -short-paths "
- * expect
+ flags = " -short-paths ";
+ expect;
*)
module M = struct type t = T end
diff --git a/testsuite/tests/typing-short-paths/gpr1223.ml b/testsuite/tests/typing-short-paths/gpr1223.ml
index 9e66dfb90e..2a631f34e3 100644
--- a/testsuite/tests/typing-short-paths/gpr1223.ml
+++ b/testsuite/tests/typing-short-paths/gpr1223.ml
@@ -1,7 +1,7 @@
(* TEST
- flags = " -short-paths "
- modules = "gpr1223_foo.mli gpr1223_bar.mli"
- * toplevel
+ flags = " -short-paths ";
+ modules = "gpr1223_foo.mli gpr1223_bar.mli";
+ toplevel;
*)
let y = Gpr1223_bar.N.O.T;;
diff --git a/testsuite/tests/typing-short-paths/pr5918.ml b/testsuite/tests/typing-short-paths/pr5918.ml
index 191ee1fde0..4eac4e28a0 100644
--- a/testsuite/tests/typing-short-paths/pr5918.ml
+++ b/testsuite/tests/typing-short-paths/pr5918.ml
@@ -1,6 +1,6 @@
-(* TEST
- flags = " -short-paths "
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
module rec A : sig
@@ -10,3 +10,8 @@ end = struct
let _ = { a = () }
end
;;
+
+(* TEST
+ flags = " -short-paths ";
+ toplevel;
+*)
diff --git a/testsuite/tests/typing-short-paths/pr6836.ml b/testsuite/tests/typing-short-paths/pr6836.ml
index ade6635b0c..93a8b3ee45 100644
--- a/testsuite/tests/typing-short-paths/pr6836.ml
+++ b/testsuite/tests/typing-short-paths/pr6836.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -short-paths "
- * toplevel
+ flags = " -short-paths ";
+ toplevel;
*)
type t = [`A | `B];;
diff --git a/testsuite/tests/typing-short-paths/pr7543.ml b/testsuite/tests/typing-short-paths/pr7543.ml
index abe5d5306b..3dc33fb4c7 100644
--- a/testsuite/tests/typing-short-paths/pr7543.ml
+++ b/testsuite/tests/typing-short-paths/pr7543.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -short-paths "
- * toplevel
+ flags = " -short-paths ";
+ toplevel;
*)
(** Test that short-path printtyp does not fail on packed module.
diff --git a/testsuite/tests/typing-short-paths/short-paths.ml b/testsuite/tests/typing-short-paths/short-paths.ml
index e6721af45f..c5c725ed43 100644
--- a/testsuite/tests/typing-short-paths/short-paths.ml
+++ b/testsuite/tests/typing-short-paths/short-paths.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -short-paths "
- * toplevel
+ flags = " -short-paths ";
+ toplevel;
*)
module Core = struct
diff --git a/testsuite/tests/typing-signatures/els.ml b/testsuite/tests/typing-signatures/els.ml
index a438c735aa..429d68e4ca 100644
--- a/testsuite/tests/typing-signatures/els.ml
+++ b/testsuite/tests/typing-signatures/els.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
(* Adapted from: An Expressive Language of Signatures
diff --git a/testsuite/tests/typing-signatures/nondep_regression.ml b/testsuite/tests/typing-signatures/nondep_regression.ml
index 76033b3c4e..2e446b44e5 100644
--- a/testsuite/tests/typing-signatures/nondep_regression.ml
+++ b/testsuite/tests/typing-signatures/nondep_regression.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
type 'a seq = 'a list
diff --git a/testsuite/tests/typing-signatures/pr6371.ml b/testsuite/tests/typing-signatures/pr6371.ml
index c5516c3f2f..d7b36fdc0b 100644
--- a/testsuite/tests/typing-signatures/pr6371.ml
+++ b/testsuite/tests/typing-signatures/pr6371.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
module M = struct
diff --git a/testsuite/tests/typing-signatures/pr6672.ml b/testsuite/tests/typing-signatures/pr6672.ml
index 66852161de..1a533e6ba6 100644
--- a/testsuite/tests/typing-signatures/pr6672.ml
+++ b/testsuite/tests/typing-signatures/pr6672.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
module type S = sig type 'a t end;;
diff --git a/testsuite/tests/typing-sigsubst/sig_local_aliases.ml b/testsuite/tests/typing-sigsubst/sig_local_aliases.ml
index 096312adfa..a13be7ae85 100644
--- a/testsuite/tests/typing-sigsubst/sig_local_aliases.ml
+++ b/testsuite/tests/typing-sigsubst/sig_local_aliases.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module M = struct
diff --git a/testsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.ml b/testsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.ml
index b387ec6aee..b56f6eebc5 100644
--- a/testsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.ml
+++ b/testsuite/tests/typing-sigsubst/sig_local_aliases_syntax_errors.ml
@@ -1,5 +1,5 @@
-(* TEST
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
*)
module type Rejected1 = sig
@@ -34,3 +34,7 @@ end;;
module type Rejected0 = sig
type nonrec t := int
end;;
+
+(* TEST
+ toplevel;
+*)
diff --git a/testsuite/tests/typing-sigsubst/sigsubst.ml b/testsuite/tests/typing-sigsubst/sigsubst.ml
index 1acad669c2..20f58f038e 100644
--- a/testsuite/tests/typing-sigsubst/sigsubst.ml
+++ b/testsuite/tests/typing-sigsubst/sigsubst.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
module type Printable = sig
diff --git a/testsuite/tests/typing-sigsubst/test_locations.ml b/testsuite/tests/typing-sigsubst/test_locations.ml
index 4e727100f4..3ad1898195 100644
--- a/testsuite/tests/typing-sigsubst/test_locations.ml
+++ b/testsuite/tests/typing-sigsubst/test_locations.ml
@@ -1,26 +1,35 @@
(* TEST
-readonly_files = "test_functor.ml test_loc_modtype_type_eq.ml \
- test_loc_modtype_type_subst.ml test_loc_type_eq.ml \
- test_loc_type_subst.ml mpr7852.mli"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "test_functor.ml"
-** ocamlc.byte
-module = "test_loc_type_eq.ml"
-ocamlc_byte_exit_status = "2"
-** ocamlc.byte
-module = "test_loc_modtype_type_eq.ml"
-ocamlc_byte_exit_status = "2"
-** ocamlc.byte
-module = "test_loc_type_subst.ml"
-ocamlc_byte_exit_status = "2"
-** ocamlc.byte
-module = "test_loc_modtype_type_subst.ml"
-ocamlc_byte_exit_status = "2"
-** check-ocamlc.byte-output
-** ocamlc.byte
-flags = "-w +32"
-module = "mpr7852.mli"
-ocamlc_byte_exit_status = "0"
-** check-ocamlc.byte-output
+ readonly_files = "test_functor.ml test_loc_modtype_type_eq.ml \
+ test_loc_modtype_type_subst.ml test_loc_type_eq.ml test_loc_type_subst.ml \
+ mpr7852.mli";
+ setup-ocamlc.byte-build-env;
+ {
+ module = "test_functor.ml";
+ ocamlc.byte;
+ }{
+ module = "test_loc_type_eq.ml";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ }{
+ module = "test_loc_modtype_type_eq.ml";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ }{
+ module = "test_loc_type_subst.ml";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ }{
+ module = "test_loc_modtype_type_subst.ml";
+ ocamlc_byte_exit_status = "2";
+ ocamlc.byte;
+ }{
+ check-ocamlc.byte-output;
+ }{
+ flags = "-w +32";
+ module = "mpr7852.mli";
+ ocamlc_byte_exit_status = "0";
+ ocamlc.byte;
+ }{
+ check-ocamlc.byte-output;
+ }
*)
diff --git a/testsuite/tests/typing-typeparam/newtype.ml b/testsuite/tests/typing-typeparam/newtype.ml
index b41d0dfcf1..a372a12bdc 100644
--- a/testsuite/tests/typing-typeparam/newtype.ml
+++ b/testsuite/tests/typing-typeparam/newtype.ml
@@ -1,5 +1,5 @@
(* TEST
- * toplevel
+ toplevel;
*)
let property (type t) () =
diff --git a/testsuite/tests/typing-unboxed-types/test.ml b/testsuite/tests/typing-unboxed-types/test.ml
index 5e81a3d75f..34e0035d9b 100644
--- a/testsuite/tests/typing-unboxed-types/test.ml
+++ b/testsuite/tests/typing-unboxed-types/test.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(* Check the unboxing *)
diff --git a/testsuite/tests/typing-unboxed-types/test_flat.ml b/testsuite/tests/typing-unboxed-types/test_flat.ml
index 43791ed245..78b5c93d7c 100644
--- a/testsuite/tests/typing-unboxed-types/test_flat.ml
+++ b/testsuite/tests/typing-unboxed-types/test_flat.ml
@@ -1,6 +1,6 @@
(* TEST
- * flat-float-array
- ** expect
+ flat-float-array;
+ expect;
*)
(* should fail *)
diff --git a/testsuite/tests/typing-unboxed-types/test_no_flat.ml b/testsuite/tests/typing-unboxed-types/test_no_flat.ml
index a1c48d2c03..980c519c81 100644
--- a/testsuite/tests/typing-unboxed-types/test_no_flat.ml
+++ b/testsuite/tests/typing-unboxed-types/test_no_flat.ml
@@ -1,6 +1,6 @@
(* TEST
- * no-flat-float-array
- ** expect
+ no-flat-float-array;
+ expect;
*)
(* This file copies the tests from test_flat.ml,
diff --git a/testsuite/tests/typing-unboxed/test.ml b/testsuite/tests/typing-unboxed/test.ml
index a4ecd29120..8c29545f8b 100644
--- a/testsuite/tests/typing-unboxed/test.ml
+++ b/testsuite/tests/typing-unboxed/test.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-strict-sequence"
- * expect
+ flags = "-strict-sequence";
+ expect;
*)
external a : (int [@untagged]) -> unit = "a" "a_nat"
external b : (int32 [@unboxed]) -> unit = "b" "b_nat"
diff --git a/testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml b/testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml
index 0250841e91..eff6a73aec 100644
--- a/testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml
+++ b/testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
(* Ignore OCAMLRUNPARAM=b to be reproducible *)
@@ -30,7 +30,7 @@ Line 2, characters 4-29:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable x appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous_typical_example : expr * expr -> unit = <fun>
|}]
@@ -100,7 +100,7 @@ Line 2, characters 4-43:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable y appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__y : [> `B of 'a * bool option * bool option ] -> unit = <fun>
|}]
@@ -134,7 +134,7 @@ Line 2, characters 4-43:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable y appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__x_y : [> `B of 'a * 'a option * 'a option ] -> unit = <fun>
|}]
@@ -150,7 +150,7 @@ Line 2, characters 4-43:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variables y, z appear in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__x_y_z : [> `B of 'a * 'a option * 'a option ] -> unit = <fun>
|}]
@@ -184,7 +184,7 @@ Line 2, characters 4-40:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable x appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__in_depth :
[> `A of [> `B of bool option * bool option ] ] -> unit = <fun>
@@ -218,7 +218,7 @@ Lines 2-3, characters 4-58:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable x appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__first_orpat :
[> `A of
@@ -239,7 +239,7 @@ Lines 2-3, characters 4-42:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable y appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__second_orpat :
[> `A of
@@ -335,7 +335,7 @@ Lines 2-3, characters 2-17:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variables x, y appear in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__amoi : amoi -> int = <fun>
|}]
@@ -358,7 +358,7 @@ Lines 2-3, characters 4-24:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable M appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous__module_variable :
(module S) * (module S) * (int * int) -> bool -> int = <fun>
@@ -411,7 +411,7 @@ Line 2, characters 4-56:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variables x, y appear in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous_xy_but_not_ambiguous_z : (int -> int -> bool) -> t2 -> int =
<fun>
@@ -447,7 +447,7 @@ Line 2, characters 4-56:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variables x, y appear in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val ambiguous_xy_but_not_ambiguous_z : (int -> int -> bool) -> t2 -> int =
<fun>
@@ -509,7 +509,7 @@ Line 3, characters 4-29:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable y appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val guarded_ambiguity : expr * expr -> unit = <fun>
|}]
@@ -541,7 +541,7 @@ Line 4, characters 4-29:
Warning 57 [ambiguous-var-in-pattern-guard]: Ambiguous or-pattern variables under guard;
variable x appears in different places in different or-pattern alternatives.
Only the first match will be used to evaluate the guard expression.
-(See manual section 13.5)
+(see manual section 13.5.4)
val cmp : (a -> bool) -> a alg -> a alg -> unit = <fun>
|}]
diff --git a/testsuite/tests/typing-warnings/application.ml b/testsuite/tests/typing-warnings/application.ml
index 04883f44e5..8ad444b079 100644
--- a/testsuite/tests/typing-warnings/application.ml
+++ b/testsuite/tests/typing-warnings/application.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
(* Ignore OCAMLRUNPARAM=b to be reproducible *)
@@ -79,6 +79,52 @@ maybe some arguments are missing.
val f : t -> unit = <fun>
|}]
+let f a b = a + b;;
+match f 42 with
+| _ -> ();;
+[%%expect {|
+val f : int -> int -> int = <fun>
+Line 2, characters 6-10:
+2 | match f 42 with
+ ^^^^
+Warning 5 [ignored-partial-application]: this function application is partial,
+maybe some arguments are missing.
+
+- : unit = ()
+|}]
+
+let f a b = a + b;;
+match f 42 with
+| _ -> ()
+| exception _ -> ();;
+[%%expect {|
+val f : int -> int -> int = <fun>
+Line 2, characters 6-10:
+2 | match f 42 with
+ ^^^^
+Warning 5 [ignored-partial-application]: this function application is partial,
+maybe some arguments are missing.
+
+- : unit = ()
+|}]
+
+let f a b = a + b;;
+match f 42 with
+| x -> ignore (x 34);;
+[%%expect {|
+val f : int -> int -> int = <fun>
+- : unit = ()
+|}]
+
+
+let f a b = a + b;;
+match (f 42 : _) with
+| _ -> ();;
+[%%expect {|
+val f : int -> int -> int = <fun>
+- : unit = ()
+|}]
+
let _ = raise Exit 3;;
[%%expect {|
Line 1, characters 19-20:
diff --git a/testsuite/tests/typing-warnings/coercions.ml b/testsuite/tests/typing-warnings/coercions.ml
index 4c96caa4ed..874dd35d71 100644
--- a/testsuite/tests/typing-warnings/coercions.ml
+++ b/testsuite/tests/typing-warnings/coercions.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
(* comment 9644 of PR#6000 *)
diff --git a/testsuite/tests/typing-warnings/disable_warnings_classes.ml b/testsuite/tests/typing-warnings/disable_warnings_classes.ml
index 79f1f4b686..cd502a9b1a 100644
--- a/testsuite/tests/typing-warnings/disable_warnings_classes.ml
+++ b/testsuite/tests/typing-warnings/disable_warnings_classes.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A "
- * expect
+ flags = " -w +A ";
+ expect;
*)
class c = object
diff --git a/testsuite/tests/typing-warnings/exhaustiveness.ml b/testsuite/tests/typing-warnings/exhaustiveness.ml
index 62add57930..702ab1e51c 100644
--- a/testsuite/tests/typing-warnings/exhaustiveness.ml
+++ b/testsuite/tests/typing-warnings/exhaustiveness.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
let f = function
diff --git a/testsuite/tests/typing-warnings/never_returns.ml b/testsuite/tests/typing-warnings/never_returns.ml
index fac31d9dd3..b12b4da71a 100644
--- a/testsuite/tests/typing-warnings/never_returns.ml
+++ b/testsuite/tests/typing-warnings/never_returns.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w -a+21 "
- * expect
+ flags = " -w -a+21 ";
+ expect;
*)
let () = (let module L = List in raise Exit); () ;;
diff --git a/testsuite/tests/typing-warnings/open_warnings.ml b/testsuite/tests/typing-warnings/open_warnings.ml
index de810ae106..9e4f33817e 100644
--- a/testsuite/tests/typing-warnings/open_warnings.ml
+++ b/testsuite/tests/typing-warnings/open_warnings.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A-41-42-18"
- * expect
+ flags = " -w +A-41-42-18";
+ expect;
*)
module T1 : sig end = struct
module M = struct type t end (* unused type t *)
diff --git a/testsuite/tests/typing-warnings/pr5892.ml b/testsuite/tests/typing-warnings/pr5892.ml
index 08939c033f..c1cdd26d8b 100644
--- a/testsuite/tests/typing-warnings/pr5892.ml
+++ b/testsuite/tests/typing-warnings/pr5892.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
open CamlinternalOO;;
diff --git a/testsuite/tests/typing-warnings/pr6587.ml b/testsuite/tests/typing-warnings/pr6587.ml
index 36b9044718..ba4b14ea1e 100644
--- a/testsuite/tests/typing-warnings/pr6587.ml
+++ b/testsuite/tests/typing-warnings/pr6587.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
diff --git a/testsuite/tests/typing-warnings/pr6872.ml b/testsuite/tests/typing-warnings/pr6872.ml
index 0fbf076da6..b3d8b803a9 100644
--- a/testsuite/tests/typing-warnings/pr6872.ml
+++ b/testsuite/tests/typing-warnings/pr6872.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
(* Ignore OCAMLRUNPARAM=b to be reproducible *)
diff --git a/testsuite/tests/typing-warnings/pr7085.ml b/testsuite/tests/typing-warnings/pr7085.ml
index c286f154f2..25560ad82e 100644
--- a/testsuite/tests/typing-warnings/pr7085.ml
+++ b/testsuite/tests/typing-warnings/pr7085.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
module TypEq = struct
diff --git a/testsuite/tests/typing-warnings/pr7115.ml b/testsuite/tests/typing-warnings/pr7115.ml
index c1e5bef11a..64b1b37735 100644
--- a/testsuite/tests/typing-warnings/pr7115.ml
+++ b/testsuite/tests/typing-warnings/pr7115.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
type t = A : t;;
diff --git a/testsuite/tests/typing-warnings/pr7261.ml b/testsuite/tests/typing-warnings/pr7261.ml
index 65c44ecf17..f032cff317 100644
--- a/testsuite/tests/typing-warnings/pr7261.ml
+++ b/testsuite/tests/typing-warnings/pr7261.ml
@@ -1,9 +1,14 @@
-(* TEST
- flags = " -w +A -strict-sequence "
- * toplevel
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
*)
type foo =
Foo: [> `Bla ] as 'b ) * 'b -> foo;;
type foo =
Foo: 'b * 'b -> foo constraint 'b = [> `Bla ];;
+
+(* TEST
+ flags = " -w +A -strict-sequence ";
+ toplevel;
+*)
diff --git a/testsuite/tests/typing-warnings/pr7297.ml b/testsuite/tests/typing-warnings/pr7297.ml
index 572bdb2c95..3d4d724463 100644
--- a/testsuite/tests/typing-warnings/pr7297.ml
+++ b/testsuite/tests/typing-warnings/pr7297.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
(* Ignore OCAMLRUNPARAM=b to be reproducible *)
diff --git a/testsuite/tests/typing-warnings/pr7553.ml b/testsuite/tests/typing-warnings/pr7553.ml
index ef57b0ee7b..25defbed8b 100644
--- a/testsuite/tests/typing-warnings/pr7553.ml
+++ b/testsuite/tests/typing-warnings/pr7553.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
module A = struct type foo end;;
diff --git a/testsuite/tests/typing-warnings/pr9244.ml b/testsuite/tests/typing-warnings/pr9244.ml
index 8fb319707e..282123cd33 100644
--- a/testsuite/tests/typing-warnings/pr9244.ml
+++ b/testsuite/tests/typing-warnings/pr9244.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A "
- * expect
+ flags = " -w +A ";
+ expect;
*)
module type U = sig end
diff --git a/testsuite/tests/typing-warnings/records.ml b/testsuite/tests/typing-warnings/records.ml
index 5079418d76..afb2e34bbe 100644
--- a/testsuite/tests/typing-warnings/records.ml
+++ b/testsuite/tests/typing-warnings/records.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
(* Use type information *)
diff --git a/testsuite/tests/typing-warnings/unused_functor_parameter.ml b/testsuite/tests/typing-warnings/unused_functor_parameter.ml
index d14ec34aaa..a0905b0db8 100644
--- a/testsuite/tests/typing-warnings/unused_functor_parameter.ml
+++ b/testsuite/tests/typing-warnings/unused_functor_parameter.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A "
- * expect
+ flags = " -w +A ";
+ expect;
*)
module Foo(Unused : sig end) = struct end;;
diff --git a/testsuite/tests/typing-warnings/unused_rec.ml b/testsuite/tests/typing-warnings/unused_rec.ml
index 3f38f848aa..7e5bc66dc7 100644
--- a/testsuite/tests/typing-warnings/unused_rec.ml
+++ b/testsuite/tests/typing-warnings/unused_rec.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
[@@@ocaml.warning "+39"]
diff --git a/testsuite/tests/typing-warnings/unused_recmodule.ml b/testsuite/tests/typing-warnings/unused_recmodule.ml
index 46c68e8a21..8ee636b538 100644
--- a/testsuite/tests/typing-warnings/unused_recmodule.ml
+++ b/testsuite/tests/typing-warnings/unused_recmodule.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
[@@@ocaml.warning "+a"]
diff --git a/testsuite/tests/typing-warnings/unused_types.ml b/testsuite/tests/typing-warnings/unused_types.ml
index 66d18f1a57..c000d27bb1 100644
--- a/testsuite/tests/typing-warnings/unused_types.ml
+++ b/testsuite/tests/typing-warnings/unused_types.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = " -w +A -strict-sequence "
- * expect
+ flags = " -w +A -strict-sequence ";
+ expect;
*)
module Unused : sig
diff --git a/testsuite/tests/typing-warnings/warning16.ml b/testsuite/tests/typing-warnings/warning16.ml
index a4ee983973..0cfa2974cc 100644
--- a/testsuite/tests/typing-warnings/warning16.ml
+++ b/testsuite/tests/typing-warnings/warning16.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
let foo ?x = ()
[%%expect{|
diff --git a/testsuite/tests/unboxed-primitive-args/test.ml b/testsuite/tests/unboxed-primitive-args/test.ml
index b93120dd67..6490954a68 100644
--- a/testsuite/tests/unboxed-primitive-args/test.ml
+++ b/testsuite/tests/unboxed-primitive-args/test.ml
@@ -1,19 +1,16 @@
(* TEST
-
-readonly_files = "common.mli common.ml test_common.c test_common.h"
-
-* setup-ocamlopt.byte-build-env
-** ocaml
-test_file = "${test_source_directory}/gen_test.ml"
-ocaml_script_as_argument = "true"
-arguments = "c"
-compiler_output = "stubs.c"
-*** ocaml
-arguments = "ml"
-compiler_output = "main.ml"
-**** ocamlopt.byte
-all_modules = "test_common.c stubs.c common.mli common.ml main.ml"
-***** run
-****** check-program-output
-
+ readonly_files = "common.mli common.ml test_common.c test_common.h";
+ setup-ocamlopt.byte-build-env;
+ test_file = "${test_source_directory}/gen_test.ml";
+ ocaml_script_as_argument = "true";
+ arguments = "c";
+ compiler_output = "stubs.c";
+ ocaml;
+ arguments = "ml";
+ compiler_output = "main.ml";
+ ocaml;
+ all_modules = "test_common.c stubs.c common.mli common.ml main.ml";
+ ocamlopt.byte;
+ run;
+ check-program-output;
*)
diff --git a/testsuite/tests/unwind/driver.ml b/testsuite/tests/unwind/driver.ml
index 7df39daf0e..d56bef4339 100644
--- a/testsuite/tests/unwind/driver.ml
+++ b/testsuite/tests/unwind/driver.ml
@@ -1,26 +1,23 @@
(* TEST
-
-script = "sh ${test_source_directory}/check-linker-version.sh"
-readonly_files = "mylib.mli mylib.ml stack_walker.c"
-
-* macos
-** script
-*** setup-ocamlopt.byte-build-env
-**** ocamlopt.byte
-flags = "-opaque"
-module = "mylib.mli"
-***** ocamlopt.byte
-module = ""
-flags = "-cclib -Wl,-keep_dwarf_unwind"
-all_modules = "mylib.ml driver.ml stack_walker.c"
-program = "${test_build_directory}/unwind_test"
-****** run
-output = "${test_build_directory}/program-output"
-stdout = "${output}"
-stderr = "${output}"
-******* check-program-output
-reference = "${test_source_directory}/unwind_test.reference"
-
+ script = "sh ${test_source_directory}/check-linker-version.sh";
+ readonly_files = "mylib.mli mylib.ml stack_walker.c";
+ macos;
+ script;
+ setup-ocamlopt.byte-build-env;
+ flags = "-opaque";
+ module = "mylib.mli";
+ ocamlopt.byte;
+ module = "";
+ flags = "-cclib -Wl,-keep_dwarf_unwind";
+ all_modules = "mylib.ml driver.ml stack_walker.c";
+ program = "${test_build_directory}/unwind_test";
+ ocamlopt.byte;
+ output = "${test_build_directory}/program-output";
+ stdout = "${output}";
+ stderr = "${output}";
+ run;
+ reference = "${test_source_directory}/unwind_test.reference";
+ check-program-output;
*)
let () =
diff --git a/testsuite/tests/utils/edit_distance.ml b/testsuite/tests/utils/edit_distance.ml
index 1ac1070136..cf2e60cba9 100644
--- a/testsuite/tests/utils/edit_distance.ml
+++ b/testsuite/tests/utils/edit_distance.ml
@@ -1,8 +1,8 @@
(* TEST
-include config
-include testing
-binary_modules = "config build_path_prefix_map misc identifiable numbers"
-* bytecode
+ include config;
+ include testing;
+ binary_modules = "config build_path_prefix_map misc identifiable numbers";
+ bytecode;
*)
let edit_distance = Misc.edit_distance
diff --git a/testsuite/tests/utils/find_first_mono.ml b/testsuite/tests/utils/find_first_mono.ml
index 80ea5e6255..1970eb9e40 100644
--- a/testsuite/tests/utils/find_first_mono.ml
+++ b/testsuite/tests/utils/find_first_mono.ml
@@ -1,8 +1,8 @@
(* TEST
-include config
-include testing
-binary_modules = "config build_path_prefix_map misc"
-* bytecode
+ include config;
+ include testing;
+ binary_modules = "config build_path_prefix_map misc";
+ bytecode;
*)
let check_and_count_calls n =
diff --git a/testsuite/tests/utils/magic_number.ml b/testsuite/tests/utils/magic_number.ml
index a443e253e5..42664ec80b 100644
--- a/testsuite/tests/utils/magic_number.ml
+++ b/testsuite/tests/utils/magic_number.ml
@@ -1,7 +1,7 @@
(* TEST
-include config
-binary_modules = "config build_path_prefix_map misc"
-* bytecode
+ include config;
+ binary_modules = "config build_path_prefix_map misc";
+ bytecode;
*)
open Misc
diff --git a/testsuite/tests/utils/overflow_detection.ml b/testsuite/tests/utils/overflow_detection.ml
index 11f3aafaeb..c9d984b55b 100644
--- a/testsuite/tests/utils/overflow_detection.ml
+++ b/testsuite/tests/utils/overflow_detection.ml
@@ -1,8 +1,8 @@
(* TEST
-include config
-include testing
-binary_modules = "config build_path_prefix_map misc identifiable numbers"
-* bytecode
+ include config;
+ include testing;
+ binary_modules = "config build_path_prefix_map misc identifiable numbers";
+ bytecode;
*)
let print_int i =
diff --git a/testsuite/tests/utils/test_strongly_connected_components.ml b/testsuite/tests/utils/test_strongly_connected_components.ml
index 05845228b5..32cdc6bb25 100644
--- a/testsuite/tests/utils/test_strongly_connected_components.ml
+++ b/testsuite/tests/utils/test_strongly_connected_components.ml
@@ -1,10 +1,8 @@
(* TEST
-include config
-include testing
-binary_modules =
- "config build_path_prefix_map misc identifiable numbers \
- strongly_connected_components"
-* bytecode
+ include config;
+ include testing;
+ binary_modules = "config build_path_prefix_map misc identifiable numbers strongly_connected_components";
+ bytecode;
*)
module Int = Numbers.Int
diff --git a/testsuite/tests/warnings/deprecated_module.ml b/testsuite/tests/warnings/deprecated_module.ml
index 178483d728..a8ec2c4aef 100644
--- a/testsuite/tests/warnings/deprecated_module.ml
+++ b/testsuite/tests/warnings/deprecated_module.ml
@@ -1,8 +1,8 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
-flags = "-w +A"
-* bytecode
*)
@@ -15,3 +15,8 @@ end
let _ = M.x
include M
+
+(* TEST
+ flags = "-w +A";
+ bytecode;
+*)
diff --git a/testsuite/tests/warnings/deprecated_module_assigment.ml b/testsuite/tests/warnings/deprecated_module_assigment.ml
index c4f9b2b676..68ccd43b95 100644
--- a/testsuite/tests/warnings/deprecated_module_assigment.ml
+++ b/testsuite/tests/warnings/deprecated_module_assigment.ml
@@ -1,8 +1,8 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
-flags = "-w +A-70"
-* bytecode
*)
@@ -84,3 +84,8 @@ struct module M = struct end [@@deprecated "FOO"] end
module MD_OK :
sig module M : sig end [@@deprecated] end =
struct module M = struct end [@@deprecated "FOO"] end
+
+(* TEST
+ flags = "-w +A-70";
+ bytecode;
+*)
diff --git a/testsuite/tests/warnings/deprecated_module_use.ml b/testsuite/tests/warnings/deprecated_module_use.ml
index ca582ee1f6..b6a568ad0f 100644
--- a/testsuite/tests/warnings/deprecated_module_use.ml
+++ b/testsuite/tests/warnings/deprecated_module_use.ml
@@ -1,17 +1,17 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
-modules = "deprecated_module.mli deprecated_module.ml"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-flags = "-w -a"
-module = "deprecated_module.mli"
-*** ocamlc.byte
-module = "deprecated_module.ml"
-**** ocamlc.byte
-flags = "-w +A-70"
-module = "deprecated_module_use.ml"
-***** check-ocamlc.byte-output
*)
@@ -21,3 +21,17 @@ type s = M.t
open M
let _ = x
+
+(* TEST
+ modules = "deprecated_module.mli deprecated_module.ml";
+ setup-ocamlc.byte-build-env;
+ flags = "-w -a";
+ module = "deprecated_module.mli";
+ ocamlc.byte;
+ module = "deprecated_module.ml";
+ ocamlc.byte;
+ flags = "-w +A-70";
+ module = "deprecated_module_use.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/deprecated_mutable.ml b/testsuite/tests/warnings/deprecated_mutable.ml
index 78fb12ac41..82ea7ec00b 100644
--- a/testsuite/tests/warnings/deprecated_mutable.ml
+++ b/testsuite/tests/warnings/deprecated_mutable.ml
@@ -1,8 +1,8 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
-flags = "-w +A-70"
-* bytecode
*)
@@ -11,3 +11,8 @@ type t = {mutable x : int [@deprecated_mutable]}
let y : t = {x = 5}
let () = y.x <- 42
+
+(* TEST
+ flags = "-w +A-70";
+ bytecode;
+*)
diff --git a/testsuite/tests/warnings/deprecated_warning_specs.ml b/testsuite/tests/warnings/deprecated_warning_specs.ml
index ac41e084c1..903b4757c4 100644
--- a/testsuite/tests/warnings/deprecated_warning_specs.ml
+++ b/testsuite/tests/warnings/deprecated_warning_specs.ml
@@ -1,5 +1,5 @@
(* TEST
- * expect
+ expect;
*)
(** Deprecated sequences of unsigned letters *)
diff --git a/testsuite/tests/warnings/mnemonics.mll b/testsuite/tests/warnings/mnemonics.mll
index d1225ed0e3..3c6050b312 100644
--- a/testsuite/tests/warnings/mnemonics.mll
+++ b/testsuite/tests/warnings/mnemonics.mll
@@ -1,7 +1,5 @@
(* TEST
-
-ocamllex_flags = "-q"
-
+ ocamllex_flags = "-q";
*)
{
diff --git a/testsuite/tests/warnings/w01.ml b/testsuite/tests/warnings/w01.ml
index e72ec1901d..d78b2b5477 100644
--- a/testsuite/tests/warnings/w01.ml
+++ b/testsuite/tests/warnings/w01.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -52,3 +52,11 @@ match 1 with
(* X *)
(* re-re *)
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w03.ml b/testsuite/tests/warnings/w03.ml
index d0a581220a..ff5aee7db1 100644
--- a/testsuite/tests/warnings/w03.ml
+++ b/testsuite/tests/warnings/w03.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -22,3 +22,11 @@ let _ = B
exception C [@deprecated]
let _ = B [@warning "-53"]
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w04.ml b/testsuite/tests/warnings/w04.ml
index 21a09f52da..b2ddf4c935 100644
--- a/testsuite/tests/warnings/w04.ml
+++ b/testsuite/tests/warnings/w04.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -21,3 +21,11 @@ type t = A | B
let g x = match x with
| A -> 0
| _ -> 1
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w04_failure.ml b/testsuite/tests/warnings/w04_failure.ml
index 0ce23ca0ae..60462390c3 100644
--- a/testsuite/tests/warnings/w04_failure.ml
+++ b/testsuite/tests/warnings/w04_failure.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -37,3 +37,11 @@ let silent_fragile2 (type t) (r1 : t repr) (r2 : t repr) (t : t) =
| _, XY, X -> ()
| AB, _, _ -> ()
| _, XY, _ -> ()
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w06.ml b/testsuite/tests/warnings/w06.ml
index dc4e6e6a6a..94bf0486de 100644
--- a/testsuite/tests/warnings/w06.ml
+++ b/testsuite/tests/warnings/w06.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -15,3 +15,11 @@ let bar ~foo ~baz = ignore (foo, baz) (* two labels *)
let () = foo 2
let () = bar 4 2
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w32.ml b/testsuite/tests/warnings/w32.ml
index 1a8e7b7a1d..cbb1630e61 100644
--- a/testsuite/tests/warnings/w32.ml
+++ b/testsuite/tests/warnings/w32.ml
@@ -1,13 +1,13 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
-flags = "-w +A"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "w32.mli"
-*** ocamlc.byte
-module = "w32.ml"
-**** check-ocamlc.byte-output
*)
@@ -69,3 +69,13 @@ module H (X : sig val x : int end) = X
module type S = sig
module F: sig val x : int end -> sig end
end
+
+(* TEST
+ flags = "-w +A";
+ setup-ocamlc.byte-build-env;
+ module = "w32.mli";
+ ocamlc.byte;
+ module = "w32.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w32b.ml b/testsuite/tests/warnings/w32b.ml
index bcb2fc2588..70f1b861b3 100644
--- a/testsuite/tests/warnings/w32b.ml
+++ b/testsuite/tests/warnings/w32b.ml
@@ -1,13 +1,21 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
(* Check that [t] is considered unused without an .mli file (see GPR#1358) *)
module Q (M : sig type t end) = struct end
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w33.ml b/testsuite/tests/warnings/w33.ml
index 4c4abfd666..34635c8d39 100644
--- a/testsuite/tests/warnings/w33.ml
+++ b/testsuite/tests/warnings/w33.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -25,3 +25,11 @@ let i (A|B) = B
open! M (* useless open! *)
open M (* useless open *)
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w45.ml b/testsuite/tests/warnings/w45.ml
index 01af3e796e..9091842c7f 100644
--- a/testsuite/tests/warnings/w45.ml
+++ b/testsuite/tests/warnings/w45.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -25,3 +25,11 @@ module T3 = struct
let _ = (A, X) (* X belongs to several types *)
end
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w47_inline.ml b/testsuite/tests/warnings/w47_inline.ml
index fcdaedc475..30c7cc7101 100644
--- a/testsuite/tests/warnings/w47_inline.ml
+++ b/testsuite/tests/warnings/w47_inline.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -39,3 +39,11 @@ let test x =
else f5 x
in
f4 (f6 r)
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w50.ml b/testsuite/tests/warnings/w50.ml
index b6e868f89a..a9a1a92329 100644
--- a/testsuite/tests/warnings/w50.ml
+++ b/testsuite/tests/warnings/w50.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -16,3 +16,11 @@ module A : sig end = struct
module Y1 = X1
end
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w51.ml b/testsuite/tests/warnings/w51.ml
index abfee541f4..a471ccffcd 100644
--- a/testsuite/tests/warnings/w51.ml
+++ b/testsuite/tests/warnings/w51.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-w +A-70"
- * expect
+ flags = "-w +A-70";
+ expect;
*)
let rec fact = function
diff --git a/testsuite/tests/warnings/w51_bis.ml b/testsuite/tests/warnings/w51_bis.ml
index bb5bcaac1a..660210627c 100644
--- a/testsuite/tests/warnings/w51_bis.ml
+++ b/testsuite/tests/warnings/w51_bis.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -14,3 +14,11 @@ let rec foldl op acc = function
| x :: xs ->
try (foldl [@tailcall]) op (op x acc) xs
with Not_found -> assert false
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w52.ml b/testsuite/tests/warnings/w52.ml
index 292e82172a..c444c1a458 100644
--- a/testsuite/tests/warnings/w52.ml
+++ b/testsuite/tests/warnings/w52.ml
@@ -1,6 +1,6 @@
(* TEST
- flags = "-w +A"
- * expect
+ flags = "-w +A";
+ expect;
*)
let () = try () with Invalid_argument "Any" -> ();;
@@ -10,7 +10,7 @@ Line 1, characters 38-43:
^^^^^
Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of
this constructor's arguments. They are only for information
-and may change in future versions. (See manual section 13.5)
+and may change in future versions. (see manual section 13.5.3)
|}];;
let () = try () with Match_failure ("Any",_,_) -> ();;
@@ -20,7 +20,7 @@ Line 1, characters 35-46:
^^^^^^^^^^^
Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of
this constructor's arguments. They are only for information
-and may change in future versions. (See manual section 13.5)
+and may change in future versions. (see manual section 13.5.3)
|}];;
let () = try () with Match_failure (_,0,_) -> ();;
@@ -30,7 +30,7 @@ Line 1, characters 35-42:
^^^^^^^
Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of
this constructor's arguments. They are only for information
-and may change in future versions. (See manual section 13.5)
+and may change in future versions. (see manual section 13.5.3)
|}];;
type t =
@@ -55,7 +55,7 @@ Line 2, characters 7-17:
^^^^^^^^^^
Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of
this constructor's arguments. They are only for information
-and may change in future versions. (See manual section 13.5)
+and may change in future versions. (see manual section 13.5.3)
val f : t -> unit = <fun>
|}];;
@@ -69,7 +69,7 @@ Line 2, characters 8-10:
^^
Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of
this constructor's arguments. They are only for information
-and may change in future versions. (See manual section 13.5)
+and may change in future versions. (see manual section 13.5.3)
val g : t -> unit = <fun>
|}];;
@@ -97,7 +97,7 @@ Line 2, characters 7-34:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of
this constructor's arguments. They are only for information
-and may change in future versions. (See manual section 13.5)
+and may change in future versions. (see manual section 13.5.3)
val j : t -> unit = <fun>
|}];;
diff --git a/testsuite/tests/warnings/w53.ml b/testsuite/tests/warnings/w53.ml
index 4a31ed446e..545fec18b1 100644
--- a/testsuite/tests/warnings/w53.ml
+++ b/testsuite/tests/warnings/w53.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-60-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -47,3 +47,11 @@ module I' = Set.Make [@ocaml.inlined]
module J = Set.Make [@@inlined]
module J' = Set.Make [@@ocaml.inlined]
+
+(* TEST
+ flags = "-w +A-60-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w54.ml b/testsuite/tests/warnings/w54.ml
index e9f29cb3e2..80f3b2604c 100644
--- a/testsuite/tests/warnings/w54.ml
+++ b/testsuite/tests/warnings/w54.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -17,3 +17,11 @@ let h x = (g [@inlined] [@ocaml.inlined never]) x
let v = ((fun x -> x) [@inline] [@inlined]) 1 (* accepted *)
let i = ((fun x -> x) [@inline]) [@@inline]
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w55.ml b/testsuite/tests/warnings/w55.ml
index d597d46687..9654a0c3e2 100644
--- a/testsuite/tests/warnings/w55.ml
+++ b/testsuite/tests/warnings/w55.ml
@@ -1,22 +1,22 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
+
-flags = "-w +A-70"
-compile_only = "true"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
-* no-flambda
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
-**** check-ocamlopt.byte-output
-* flambda
-compiler_reference = "${test_source_directory}/w55.flambda.reference"
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
-**** check-ocamlopt.byte-output
*)
@@ -50,3 +50,24 @@ let h' x = (j [@inlined hint]) x
let b' x y = (a [@inlined hint]) x y
let d' x = (c [@inlined hint]) x
+
+(* TEST
+ flags = "-w +A-70";
+ compile_only = "true";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ }{
+ no-flambda;
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }{
+ compiler_reference = "${test_source_directory}/w55.flambda.reference";
+ flambda;
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }
+*)
diff --git a/testsuite/tests/warnings/w58.ml b/testsuite/tests/warnings/w58.ml
index cb8ab6194e..401ddf12c8 100644
--- a/testsuite/tests/warnings/w58.ml
+++ b/testsuite/tests/warnings/w58.ml
@@ -1,22 +1,21 @@
(* TEST
-
-flags = "-w +A-70"
-readonly_files = "module_without_cmx.mli"
-
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-module = "module_without_cmx.mli"
-*** ocamlc.byte
-module = "w58.ml"
-**** check-ocamlc.byte-output
-
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-module = "module_without_cmx.mli"
-*** ocamlopt.byte
-module = "w58.ml"
-**** check-ocamlopt.byte-output
-
+ flags = "-w +A-70";
+ readonly_files = "module_without_cmx.mli";
+ {
+ setup-ocamlc.byte-build-env;
+ module = "module_without_cmx.mli";
+ ocamlc.byte;
+ module = "w58.ml";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ }{
+ setup-ocamlopt.byte-build-env;
+ module = "module_without_cmx.mli";
+ ocamlopt.byte;
+ module = "w58.ml";
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }
*)
let () = print_endline (Module_without_cmx.id "Hello World")
diff --git a/testsuite/tests/warnings/w59.ml b/testsuite/tests/warnings/w59.ml
index 64d4c76fa1..9d8cd4cec8 100644
--- a/testsuite/tests/warnings/w59.ml
+++ b/testsuite/tests/warnings/w59.ml
@@ -1,23 +1,23 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-flags = "-w +A-70"
-compile_only = "true"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-*** check-ocamlc.byte-output
-* no-flambda
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
-**** check-ocamlopt.byte-output
-* flambda
-compiler_reference = "${test_source_directory}/w59.flambda.reference"
-flags = "-w +A-70 -dflambda-invariants"
-** setup-ocamlopt.byte-build-env
-*** ocamlopt.byte
-**** check-ocamlopt.byte-output
*)
@@ -64,3 +64,25 @@ let set_opaque =
(Obj.repr opaque)
0
(Obj.repr 3)
+
+(* TEST
+ flags = "-w +A-70";
+ compile_only = "true";
+ {
+ setup-ocamlc.byte-build-env;
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+ }{
+ no-flambda;
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }{
+ compiler_reference = "${test_source_directory}/w59.flambda.reference";
+ flags = "-w +A-70 -dflambda-invariants";
+ flambda;
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ }
+*)
diff --git a/testsuite/tests/warnings/w60.ml b/testsuite/tests/warnings/w60.ml
index aeab53db9d..7081bea80c 100644
--- a/testsuite/tests/warnings/w60.ml
+++ b/testsuite/tests/warnings/w60.ml
@@ -1,11 +1,11 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
-flags = "-w +A-67"
-* setup-ocamlc.byte-build-env
-** ocamlc.byte
-compile_only = "true"
-*** check-ocamlc.byte-output
*)
@@ -39,3 +39,11 @@ let () =
(* M is unused, but no warning was emitted before 4.10. *)
let module M = struct end in
()
+
+(* TEST
+ flags = "-w +A-67";
+ setup-ocamlc.byte-build-env;
+ compile_only = "true";
+ ocamlc.byte;
+ check-ocamlc.byte-output;
+*)
diff --git a/testsuite/tests/warnings/w68.ml b/testsuite/tests/warnings/w68.ml
index 4fe03ef788..ffd98ed0f4 100644
--- a/testsuite/tests/warnings/w68.ml
+++ b/testsuite/tests/warnings/w68.ml
@@ -1,12 +1,12 @@
-(* TEST
+(* TEST_BELOW
+(* Blank lines added here to preserve locations. *)
+
+
+
+
+
-flags = "-w +A-70"
-* setup-ocamlopt.byte-build-env
-** ocamlopt.byte
-*** check-ocamlopt.byte-output
-**** run
-***** check-program-output
*)
type a = { mutable a : int }
@@ -32,3 +32,12 @@ let () =
let dont_warn_with_partial_match None x = x
+
+(* TEST
+ flags = "-w +A-70";
+ setup-ocamlopt.byte-build-env;
+ ocamlopt.byte;
+ check-ocamlopt.byte-output;
+ run;
+ check-program-output;
+*)
diff --git a/testsuite/tests/weak-ephe-final/ephetest.ml b/testsuite/tests/weak-ephe-final/ephetest.ml
index 2835ab8b7a..c246d647ef 100644
--- a/testsuite/tests/weak-ephe-final/ephetest.ml
+++ b/testsuite/tests/weak-ephe-final/ephetest.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let debug = false
diff --git a/testsuite/tests/weak-ephe-final/ephetest2.ml b/testsuite/tests/weak-ephe-final/ephetest2.ml
index 03e354f815..aa3f3e28a4 100644
--- a/testsuite/tests/weak-ephe-final/ephetest2.ml
+++ b/testsuite/tests/weak-ephe-final/ephetest2.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(***
This test evaluate boolean formula composed by conjunction and
diff --git a/testsuite/tests/weak-ephe-final/ephetest3.ml b/testsuite/tests/weak-ephe-final/ephetest3.ml
index 541910c91a..012563c5e6 100644
--- a/testsuite/tests/weak-ephe-final/ephetest3.ml
+++ b/testsuite/tests/weak-ephe-final/ephetest3.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
(** This test weak table by application to the memoization of collatz
(also known as syracuse) algorithm suite computation *)
diff --git a/testsuite/tests/weak-ephe-final/finaliser.ml b/testsuite/tests/weak-ephe-final/finaliser.ml
index 68cb7b2662..b4e63794e4 100644
--- a/testsuite/tests/weak-ephe-final/finaliser.ml
+++ b/testsuite/tests/weak-ephe-final/finaliser.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let m = 1000
let m' = 100
diff --git a/testsuite/tests/weak-ephe-final/pr12001.ml b/testsuite/tests/weak-ephe-final/pr12001.ml
index e17c31bcf8..6d0c784404 100644
--- a/testsuite/tests/weak-ephe-final/pr12001.ml
+++ b/testsuite/tests/weak-ephe-final/pr12001.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let [@inline never] foo () =
let s = "Hello" ^ " world!" in
diff --git a/testsuite/tests/weak-ephe-final/weaklifetime.ml b/testsuite/tests/weak-ephe-final/weaklifetime.ml
index 233d986dfa..678850d1dc 100644
--- a/testsuite/tests/weak-ephe-final/weaklifetime.ml
+++ b/testsuite/tests/weak-ephe-final/weaklifetime.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let () = Random.init 12345
diff --git a/testsuite/tests/weak-ephe-final/weaklifetime2.ml b/testsuite/tests/weak-ephe-final/weaklifetime2.ml
index 2c75b00bfe..8c27aa6750 100644
--- a/testsuite/tests/weak-ephe-final/weaklifetime2.ml
+++ b/testsuite/tests/weak-ephe-final/weaklifetime2.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let n = 500
let loop = 2
diff --git a/testsuite/tests/weak-ephe-final/weaktest.ml b/testsuite/tests/weak-ephe-final/weaktest.ml
index 5b66088722..464944a960 100644
--- a/testsuite/tests/weak-ephe-final/weaktest.ml
+++ b/testsuite/tests/weak-ephe-final/weaktest.ml
@@ -1,5 +1,4 @@
-(* TEST
-*)
+(* TEST *)
let debug = false;;
diff --git a/testsuite/tests/win-unicode/mltest.ml b/testsuite/tests/win-unicode/mltest.ml
index f4760967bb..0ea18c6232 100644
--- a/testsuite/tests/win-unicode/mltest.ml
+++ b/testsuite/tests/win-unicode/mltest.ml
@@ -1,8 +1,8 @@
(* TEST
-include unix
-flags += "-strict-sequence -w +A -warn-error +A"
-* windows-unicode
-** toplevel
+ include unix;
+ flags += "-strict-sequence -w +A -warn-error +A";
+ windows-unicode;
+ toplevel;
*)
let foreign_names =
diff --git a/testsuite/tools/parsecmm.mly b/testsuite/tools/parsecmm.mly
index 312b335154..d9807e24d5 100644
--- a/testsuite/tools/parsecmm.mly
+++ b/testsuite/tools/parsecmm.mly
@@ -1,19 +1,19 @@
-(**************************************************************************)
-(* *)
-(* OCaml *)
-(* *)
-(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* en Automatique. *)
-(* *)
-(* All rights reserved. This file is distributed under the terms of *)
-(* the GNU Lesser General Public License version 2.1, with the *)
-(* special exception on linking described in the file LICENSE. *)
-(* *)
-(**************************************************************************)
+/**************************************************************************/
+/* */
+/* OCaml */
+/* */
+/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
+/* */
+/* Copyright 1996 Institut National de Recherche en Informatique et */
+/* en Automatique. */
+/* */
+/* All rights reserved. This file is distributed under the terms of */
+/* the GNU Lesser General Public License version 2.1, with the */
+/* special exception on linking described in the file LICENSE. */
+/* */
+/**************************************************************************/
-(* A simple parser for C-- *)
+/* A simple parser for C-- */
%{
open Cmm
@@ -188,7 +188,7 @@ fun_name:
| IDENT { $1 }
params:
oneparam params { $1 :: $2 }
- | (**) { [] }
+ | /**/ { [] }
;
oneparam:
IDENT COLON machtype { (bind_ident $1, $3) }
@@ -293,14 +293,14 @@ expr:
;
exprlist:
exprlist expr { $2 :: $1 }
- | (**) { [] }
+ | /**/ { [] }
;
letdef:
oneletdef { [$1] }
| LPAREN letdefmult RPAREN { $2 }
;
letdefmult:
- (**) { [] }
+ /**/ { [] }
| oneletdef letdefmult { $1 :: $2 }
;
oneletdef:
@@ -311,7 +311,7 @@ letmutdef:
| LPAREN letmutdefmult RPAREN { $2 }
;
letmutdefmult:
- (**) { [] }
+ /**/ { [] }
| oneletmutdef letmutdefmult { $1 :: $2 }
;
oneletmutdef:
@@ -389,7 +389,7 @@ sequence:
;
caselist:
onecase sequence caselist { ($1, $2) :: $3 }
- | (**) { [] }
+ | /**/ { [] }
;
onecase:
CASE INTCONST COLON onecase { $2 :: $4 }
@@ -404,7 +404,7 @@ datadecl:
;
datalist:
datalist dataitem { $2 :: $1 }
- | (**) { [] }
+ | /**/ { [] }
;
dataitem:
STRING COLON { Cdefine_symbol $1 }
@@ -432,5 +432,5 @@ catch_handler:
{ find_label $2, $3, $5, debuginfo () }
location:
- (**) { None }
+ /**/ { None }
| LOCATION { Some $1 }
diff --git a/tools/gdb-macros b/tools/gdb-macros
index 17c3110e2a..6b12b3b86b 100644
--- a/tools/gdb-macros
+++ b/tools/gdb-macros
@@ -16,19 +16,30 @@
# A set of macros for low-level debugging of OCaml programs and of the
# OCaml runtime itself (both native and byte-code).
+# Advice to future developers: rewrite this in Python which will be
+# faster, more reliable, and more maintainable. See also gdb_ocamlrun.py
+
# This file should be loaded in gdb with [ source gdb-macros ].
-# It defines one command: [caml]
+# It defines a few related commands:
+#
# Usage:
# [caml <value>]
# If <value> is an OCaml value, this will display it in a low-level
# but legible format, including the header information.
+#
+# [caml-next]
+# If the most recent value shown with "caml" is a heap block,
+# this will describe the following block.
+#
+# [caml-field <N>]
+# If the most recent value shown with "caml" is a heap block,
+# this will describe the Nth field in that block.
-# To do: a [camlsearch] command to find all (gc-traceable) pointers to
-# a given heap block.
-
-set $camlwordsize = sizeof(char *)
+set $caml_word_size = sizeof(char *)
+set $caml_word_bits = 8 * $caml_word_size
+set $caml_pool_size = 4096 * $caml_word_size
-if $camlwordsize == 8
+if $caml_word_size == 8
set $caml_unalloc_mask = 0xFF00FFFFFF00FFFF
set $caml_unalloc_value = 0xD700D7D7D700D6D7
else
@@ -36,57 +47,48 @@ else
set $caml_unalloc_value = 0xD700D6D7
end
-define camlcheckheader
- if $arg0 >> 10 <= 0 || $arg0 >> 10 >= 0x1000000000000
- if ($arg0 & $caml_unalloc_mask) == $caml_unalloc_value
- set $camlcheckheader_result = 2
- else
- if $arg0 == (unsigned long) 0
- set $camlcheckheader_result = 3
- else
- set $camlcheckheader_result = 1
- end
- end
- else
- set $camlcheckheader_result = 0
- end
-end
+# `caml header item` Displays information about the header of a Caml
+# block `item`, with no new-line.
-define camlheader
- set $hd = * (unsigned long *) ($arg0 - $camlwordsize)
+define caml_header
+ set $hd = * (unsigned long *) ($arg0 - $caml_word_size)
set $tag = $hd & 0xFF
- set $color = ($hd >> 8) & 3
+ set $color = $hd & (3 << 8)
set $size = $hd >> 10
- camlcheckheader $hd
- if $camlcheckheader_result != 0
- if $camlcheckheader_result == 2
+ if $size <= 0 || $size >= 0x1000000000000
+ if ($hd & $caml_unalloc_mask) == $caml_unalloc_value
printf "[UNALLOCATED MEMORY]"
else
- if $camlcheckheader_result == 3
- printf "[** fragment **] 0x%016lu", $hd
+ if !$hd
+ printf "[** fragment **] 0x%lx", $hd
else
- printf "[**invalid header**] 0x%016lu", $hd
+ printf "[** invalid header **] 0x%lx", $hd
end
end
- set $size = 0
else
printf "["
- if $color == 0
- printf "white "
+ if $color == caml_global_heap_state.MARKED
+ printf "marked "
end
- if $color == 1
- printf "gray "
+ if $color == caml_global_heap_state.UNMARKED
+ printf "unmarked "
end
- if $color == 2
- printf "blue "
+ if $color == caml_global_heap_state.GARBAGE
+ printf "garbage "
end
- if $color == 3
- printf "black "
+ if $color == 3 << 8
+ printf "not markable "
end
- if $tag < 246
- printf "tag%d ", $tag
+ if $tag < 244
+ printf "tag %d ", $tag
+ end
+ if $tag == 244
+ printf "Forcing "
+ end
+ if $tag == 245
+ printf "Continuation "
end
if $tag == 246
printf "Lazy "
@@ -123,31 +125,144 @@ define camlheader
end
end
-define camlheap
- if $arg0 >= Caml_state->young_start && $arg0 < Caml_state->young_end
- printf "YOUNG"
- set $camlheap_result = 1
- else
- set $chunk = Caml_state->heap_start
- set $found = 0
- while $chunk != 0 && ! $found
- set $chunk_size = * (unsigned long *) ($chunk - 2 * $camlwordsize)
- if $arg0 > $chunk && $arg0 <= $chunk + $chunk_size
- printf "OLD"
- set $found = 1
+# Various caml_search_* functions which understand the layout of the
+# Caml heap. Main driver function is "caml_search". This is slow and
+# would benefit from being rewritten in a faster or more capable
+# language (e.g. Python). To debug the heap searching itself, set
+# $caml_search_debug=1.
+
+# `caml_search_pools name pool item` searches the pool list from
+# `pool` onwards for the block `item`. If found, it outputs `FOUND`
+# and a description of the pool where it was found. If
+# $caml_search_debug is set, it also describes all the pools on the
+# list. `name` is a string describing the pool list.
+
+define caml_search_pools
+ set $pool = $arg1
+ while $pool && ($caml_search_debug || !$found)
+ set $found_here = 0
+ if ($arg2 >= (char*)($pool+1)) && ($arg2 < (char*)$pool + $caml_pool_size)
+ printf "FOUND"
+ set $found_here = 1
+ set $found = 1
+ end
+ if $caml_search_debug || $found_here
+ printf " domain %d %s pool %lx-%lx sizeclass %d(%d)", \
+ $domain_index, $arg0, $pool, ((char*)$pool)+$caml_pool_size, \
+ $pool->sz, wsize_sizeclass[$pool->sz]
+ if $caml_search_debug
+ printf "\n"
end
- set $chunk = * (unsigned long *) ($chunk - $camlwordsize)
end
- if $found
- set $camlheap_result = 1
- else
- printf "OUT-OF-HEAP"
- set $camlheap_result = 0
+ set $pool = $pool->next
+ end
+end
+
+# `caml_search_large name large item` searches the large block list
+# from `large` onwards for the block `item`. If found, it outputs
+# `FOUND` and a description of the large block where it was found. If
+# $caml_search_debug is set, it also describes all the large blocks
+# on the list. `name` is a string describing the large object list.
+
+define caml_search_large
+ set $large = $arg1
+ while $large && ($caml_search_debug || !$found)
+ set $large_hd = * (unsigned long *)($large+1)
+ set $large_size = ((($large_hd) >> 10)+1)*sizeof(unsigned long)
+ set $large_end = ((char*)($large+1))+$large_size
+ set $found_here = 0
+ if ($arg2 > (char*)$large) && ($arg2 < $large_end)
+ printf "FOUND"
+ set $found_here = 1
+ set $found = 1
+ end
+ if $caml_search_debug || $found_here
+ printf " domain %d %s large %lx-%lx? (size %d?)", \
+ $domain_index, $arg0, $large, $large_end, $large_size
+ if $caml_search_debug
+ printf "\n"
+ end
+ end
+ set $large = $large->next
+ end
+end
+
+# `caml_search_heap_state state item` searches the pool and large
+# object lists in the caml_heap_state `state` for the block `item`.
+# If found, it outputs `FOUND` and a description of the zone where it
+# was found. If $caml_search_debug is set, it also describes all the
+# areas searched.
+
+define caml_search_heap_state
+ set $heap_state = $arg0
+ set $NUM_SIZECLASSES = sizeof($heap_state->avail_pools)/ \
+ sizeof($heap_state->avail_pools[0])
+ set $sizeclass = 0
+ while $sizeclass < $NUM_SIZECLASSES && ($caml_search_debug || !$found)
+ caml_search_pools "avail" $heap_state->avail_pools[$sizeclass] $arg1
+ caml_search_pools "full" $heap_state->full_pools[$sizeclass] $arg1
+ caml_search_pools "unswept avail" \
+ $heap_state->unswept_avail_pools[$sizeclass] $arg1
+ caml_search_pools "unswept full" \
+ $heap_state->unswept_full_pools[$sizeclass] $arg1
+ set $sizeclass = $sizeclass + 1
+ end
+ caml_search_large "swept" $heap_state->swept_large $arg1
+ caml_search_large "unswept" $heap_state->unswept_large $arg1
+end
+
+# `caml_search item` searches the entire Caml heap for `item` and
+# outputs text describing the location, where it was found, with no
+# new-line.
+
+define caml_search
+ set $Max_domains = sizeof(all_domains)/sizeof(all_domains[0])
+ set $domain_index = 0
+ set $found = 0
+ while $domain_index < $Max_domains && !$found
+ set $domain = all_domains + $domain_index
+ if $domain->state != 0
+ if $caml_search_debug
+ printf "domain %d minor %lx-%lx\n", \
+ $domain_index, \
+ $domain->state->young_start, $domain->state->young_end
+ end
+ if $arg0 >= $domain->state->young_start && \
+ $arg0 < $domain->state->young_end
+ printf "FOUND young (domain %d)", $domain_index
+ set $found = 1
+ end
+ if $caml_search_debug || !$found
+ caml_search_heap_state $domain->state->shared_heap $arg0
+ end
end
+ set $domain_index = $domain_index + 1
+ end
+ if $caml_search_debug
+ printf "Global (orphaned) heap:\n"
+ end
+ if $caml_search_debug || !$found
+ set $sizeclass = 0
+ set $domain_index = -1
+ while $sizeclass < $NUM_SIZECLASSES && ($caml_search_debug || !$found)
+ caml_search_pools "global avail" \
+ pool_freelist.global_avail_pools[$sizeclass] $arg0
+ caml_search_pools "global full" \
+ pool_freelist.global_full_pools[$sizeclass] $arg0
+ set $sizeclass = $sizeclass + 1
+ end
+ caml_search_large "global large" pool_freelist.global_large $arg0
+ end
+ set $caml_search_result = $found
+ if !$caml_search_result
+ printf "not on Caml heap"
end
end
-define camlint
+# `caml_int item` describes `item`, with no new line, on the
+# assumption that it's a Caml (tagged) integer.
+
+define caml_int
if ($arg0 & $caml_unalloc_mask) == $caml_unalloc_value
printf "UNALLOCATED MEMORY"
else
@@ -158,164 +273,144 @@ define camlint
end
end
-define camlblock
- printf "%#lx: ", $arg0 - $camlwordsize
- camlheap $arg0
+# `caml_summary item` outputs a short text description of `item`, with
+# no newline.
+
+define caml_summary
+ if ($arg0 & 1) == 1
+ caml_int $arg0
+ end
+ if ($arg0 & 7) == 0
+ # aligned pointer
+ caml_search $arg0
+ printf " "
+ caml_header $arg0
+ end
+ if ($arg0 & 1) == 0 && ($arg0 & 7)
+ printf "UNALIGNED POINTER: %lx\n", $caml_last
+ end
+end
+
+# `caml_block item` describes `item`, which should be a pointer to a
+# Caml block, over several lines.
+
+define caml_block
+ printf "%#lx: ", $arg0 - $caml_word_size
+ set $caml_block_ptr = $arg0
+ caml_search $caml_block_ptr
printf " "
- camlheader $arg0
- set $mysize = $size
- set $camlnext = $arg0 + $camlwordsize * ($size + 1)
+ caml_header $caml_block_ptr
+ set $caml_block_size = $size
+ set $caml_block_tag = $tag
+ set $caml_next = $caml_block_ptr + $caml_word_size * ($caml_block_size + 1)
printf "\n"
- if $tag == 252
- x/s $arg0
+ if $caml_block_tag == 252
+ x/s $caml_block_ptr
end
- if $tag == 253
- x/f $arg0
+ if $caml_block_tag == 253
+ x/f $caml_block_ptr
end
- if $tag == 254
- while $count < $mysize && $count < 10
- if $count + 1 < $size
- x/2f $arg0 + $camlwordsize * $count
+ if $caml_block_tag == 254
+ while $count < $caml_block_size && $count < 10
+ if $count + 1 < $caml_block_size
+ x/2f $caml_block_ptr + $caml_word_size * $count
else
- x/f $arg0 + $camlwordsize * $count
+ x/f $caml_block_ptr + $caml_word_size * $count
end
set $count = $count + 2
end
- if $count < $mysize
+ if $count < $caml_block_size
printf "... truncated ...\n"
end
end
- if $tag == 249
+ if $caml_block_tag == 249
printf "... infix header, displaying enclosing block:\n"
- set $mybaseaddr = $arg0 - $camlwordsize * $mysize
- camlblock $mybaseaddr
- # reset $tag, which was clobbered by the recursive call (yuck)
- set $tag = 249
+ set $mybaseaddr = $caml_block_ptr - $caml_word_size * $caml_block_size
+ set $save_ptr = $caml_block_ptr
+ set $save_size = $caml_block_size
+ caml_block $mybaseaddr
+ # restore values clobbered by the recursive call (yuck)
+ set $caml_block_tag = 249
+ set $caml_block_ptr = $save_ptr
+ set $caml_block_size = $save_size
end
- if $tag != 249 && $tag != 252 && $tag != 253 && $tag != 254
- set $isvalues = $tag < 251
+ if $caml_block_tag != 249 && $caml_block_tag != 252 && \
+ $caml_block_tag != 253 && $caml_block_tag != 254
+ set $isvalues = $caml_block_tag < 251
set $count = 0
- while $count < $mysize && $count < 10
- set $adr = $arg0 + $camlwordsize * $count
+ while $count < $caml_block_size && $count < 10
+ set $adr = $caml_block_ptr + $caml_word_size * $count
set $field = * (unsigned long *) $adr
printf "%#lx: [%d] 0x%016lx ", $adr, $count, $field
- if ($field & 7) == 0 && $isvalues
- camlheap $field
- if $camlheap_result
- printf " "
- camlheader $field
- end
+ # If closure, zeroth field is a code address.
+ if $caml_block_tag == 247 && $count == 0
+ printf "code address? "
end
- if ($field & 1) == 1
- camlint $field
+ # Decode closure information field
+ if ($field & 1) == 1 && $caml_block_tag == 247 && $count == 1
+ printf "arity %d non-scannable %d", \
+ $field >> ($caml_word_bits - 8), \
+ ($field & ((1ul << ($caml_word_bits-8))-1)) >> 1
+ else
+ caml_summary $field
end
printf "\n"
set $count = $count + 1
end
- if $count < $mysize
+ if $count < $caml_block_size
printf "... truncated ...\n"
end
end
printf "next block head: %#lx value: %#lx\n", \
- $arg0 + $camlwordsize * $mysize, $arg0 + $camlwordsize * ($mysize+1)
+ $caml_block_ptr + $caml_word_size * $caml_block_size, \
+ $caml_block_ptr + $caml_word_size * ($caml_block_size+1)
end
-# displays an OCaml value
+# `caml item` describes the Caml value `item`, over several lines if
+# appropriate. This function is the main point of this file.
+
define caml
- set $camllast = (long) $arg0
- if ($camllast & 1) == 1
- set $camlnext = 0
- camlint $camllast
- printf "\n"
- end
- if ($camllast & 7) == 0
- camlblock $camllast
+ set $caml_last = $arg0
+ set $caml_next = 0
+ if ($caml_last & 1) == 1
+ caml_int $caml_last
end
- if ($camllast & 7) != 0 && ($camllast & 1) != 1
- set $camlnext = 0
- printf "invalid pointer: %#016lx\n", $camllast
+ if ($caml_last & 7) == 0
+ caml_block $caml_last
end
+ printf "\n"
end
-# displays the next OCaml value in memory
-define camlnext
- caml $camlnext
-end
-
-# displays the n-th field of the previously displayed value
-define camlfield
- set $camlfield_addr = ((long *) $camllast)[$arg0]
- caml $camlfield_addr
+document caml
+Output a description of a the Caml value VALUE, in a low-level but legible
+format, including information about where on the heap it is located, and any
+header and fields it contains.
end
-# displays the list of heap chunks
-define camlchunks
- set $chunk = * (unsigned long *) &Caml_state->heap_start
- while $chunk != 0
- set $chunk_size = * (unsigned long *) ($chunk - 2 * $camlwordsize)
- set $chunk_alloc = * (unsigned long *) ($chunk - 3 * $camlwordsize)
- printf "chunk: addr = %#lx .. %#lx", $chunk, $chunk + $chunk_size
- printf " (size = %#lx; alloc = %#lx)\n", $chunk_size, $chunk_alloc
- set $chunk = * (unsigned long *) ($chunk - $camlwordsize)
+# displays the next OCaml value in memory
+define caml_next
+ if $caml_next
+ caml $caml_next
+ else
+ printf "No next block\n"
end
end
-# walk the heap and launch command `camlvisitfun` on each block
-# the variables `$hp` `$val` `$hd` `$tag` `$color` and `$size`
-# are set before calling `camlvisitfun`
-# `camlvisitfun` can set `$camlvisitstop` to stop the iteration
-
-define camlvisit
- set $cvchunk = * (unsigned long *) &Caml_state->heap_start
- set $camlvisitstop = 0
- while $cvchunk != 0 && ! $camlvisitstop
- set $cvchunk_size = * (unsigned long *) ($cvchunk - 2 * $camlwordsize)
- set $cvhp = $cvchunk
- while $cvhp < $cvchunk + $cvchunk_size && !$camlvisitstop
- set $hp = $cvhp
- set $val = $hp + $camlwordsize
- set $hd = * (unsigned long *) $hp
- set $tag = $hd & 0xFF
- set $color = ($hd >> 8) & 3
- set $cvsize = $hd >> 10
- set $size = $cvsize
- camlvisitfun
- set $cvhp = $cvhp + (($cvsize + 1) * $camlwordsize)
- end
- set $cvchunk = * (unsigned long *) ($cvchunk - $camlwordsize)
- end
+document caml_next
+If the most recent value described was a heap block, "caml-next" describes
+the following block on the heap.
end
-define caml_cv_check_fl0
- if $hp == * (unsigned long *) &Caml_state->heap_start
- set $flcheck_prev = ((unsigned long) &sentinels + 16)
- end
- if $color == 2 && $size > 5
- if $val != * (unsigned long *) $flcheck_prev
- printf "free-list: missing link %#x -> %#x\n", $flcheck_prev, $val
- set $camlvisitstop = 1
- end
- set $flcheck_prev = $val
- end
+# displays the n-th field of the previously displayed value
+define caml_field
+ set $caml_field = ((long *) $caml_last)[$arg0]
+ caml $caml_field
end
-define caml_check_fl
- set $listsize = $arg0
- set $blueseen = $listsize == 0
- set $val = * (unsigned long *) ((long) &sentinels + 16 + 32 * $listsize)
- while $val != 0
- printf "%#x\n", $val
- set $hd = * (unsigned long *) ($val - 8)
- set $color = ($hd >> 8) & 3
- if $blueseen && $color != 2
- printf "non-blue block at address %#x\n", $val
- loop_break
- else
- set $blueseen = 1
- end
- set $val = * (unsigned long *) $val
- end
+document caml_field
+If the most recent value described was a heap block, "caml-field N" describes
+the Nth field in that block.
end
diff --git a/tools/gdb_ocamlrun.py b/tools/gdb_ocamlrun.py
index 12f438bfb7..d01deddd08 100644
--- a/tools/gdb_ocamlrun.py
+++ b/tools/gdb_ocamlrun.py
@@ -127,7 +127,7 @@ class BlockPrinter:
else:
s = 'wosize=%d' % self.length
- markbits = gdb.lookup_symbol("global")[0].value()
+ markbits = gdb.lookup_symbol("caml_global_heap_state")[0].value()
gc = {
int(markbits['MARKED']): 'MARKED',
int(markbits['UNMARKED']): 'UNMARKED',
diff --git a/tools/translate-all-tests b/tools/translate-all-tests
new file mode 100755
index 0000000000..febed2d5f8
--- /dev/null
+++ b/tools/translate-all-tests
@@ -0,0 +1,1412 @@
+#!/bin/sh
+
+#**************************************************************************
+#* *
+#* OCaml *
+#* *
+#* Damien Doligez, projet Cambium, INRIA *
+#* *
+#* Copyright 2023 Institut National de Recherche en Informatique et *
+#* en Automatique. *
+#* *
+#* All rights reserved. This file is distributed under the terms of *
+#* the GNU Lesser General Public License version 2.1, with the *
+#* special exception on linking described in the file LICENSE. *
+#* *
+#**************************************************************************
+
+# This is the list of tests present in commit
+# cd195d6f4f8696af36efaea82941482e92f85464
+
+# This script assumes that ../trunk contains a check-out of trunk to get
+# the old-syntax test files from.
+
+# There are 1328 test scripts detected by ocamltest
+
+# These tests will be translated in plain mode but need manual intervention
+# to restore comments.
+
+TESTS_COMMENTS="
+afl-instrumentation/afl-fuzz-test.ml \
+afl-instrumentation/afl-showmap-test.ml \
+badly-ordered-deps/main.ml \
+lib-dynlink-native/main.ml \
+lib-scanf-2/tscanf2_master.ml \
+lib-systhreads/testpreempt.ml \
+lib-systhreads/testyield.ml \
+lib-threads/delayintr.ml \
+lib-threads/signal.ml \
+lib-threads/sockets.ml \
+lib-unix/common/cloexec.ml \
+manual-intf-c/prog.ml \
+opaque/test.ml \
+shadow_include/shadow_all.ml \
+"
+
+# These tests can be translated without special care
+TESTS_PLAIN="
+arch-power/exn_raise.ml \
+array-functions/test.ml \
+asmcomp/0001-test.ml \
+asmcomp/bind_tuples.ml \
+asmcomp/compare.ml \
+asmcomp/evaluation_order.ml \
+asmcomp/func_sections.ml \
+asmcomp/lift_mutable_let_flambda.ml \
+asmcomp/optargs.ml \
+asmcomp/poll_attr_inserted.ml \
+asmcomp/polling_insertion.ml \
+asmcomp/prevent_fma.ml \
+asmcomp/register_typing.ml \
+asmcomp/register_typing_switch.ml \
+asmcomp/select_addr.ml \
+asmcomp/staticalloc.ml \
+asmcomp/try_checkbound.ml \
+asmcomp/unrolling_flambda.ml \
+asmcomp/unrolling_flambda2.ml \
+asmgen/arith.cmm \
+asmgen/catch-float.cmm \
+asmgen/catch-multiple.cmm \
+asmgen/catch-rec-deadhandler.cmm \
+asmgen/catch-rec.cmm \
+asmgen/catch-try-float.cmm \
+asmgen/catch-try.cmm \
+asmgen/checkbound.cmm \
+asmgen/even-odd-spill-float.cmm \
+asmgen/even-odd-spill.cmm \
+asmgen/even-odd.cmm \
+asmgen/fib.cmm \
+asmgen/immediates.cmm \
+asmgen/integr.cmm \
+asmgen/invariants.cmm \
+asmgen/pgcd.cmm \
+asmgen/quicksort.cmm \
+asmgen/quicksort2.cmm \
+asmgen/soli.cmm \
+asmgen/tagged-fib.cmm \
+asmgen/tagged-integr.cmm \
+asmgen/tagged-quicksort.cmm \
+asmgen/tagged-tak.cmm \
+asmgen/tak.cmm \
+ast-invariants/test.ml \
+backtrace/backtrace.ml \
+backtrace/backtraces_and_finalizers.ml \
+backtrace/lazy.ml \
+basic-float/float_compare.ml \
+basic-float/float_literals.ml \
+basic-float/tfloat_hex.ml \
+basic-float/tfloat_record.ml \
+basic-float/zero_sized_float_arrays.ml \
+basic-io/wc.ml \
+basic-io-2/io.ml \
+basic-manyargs/manyargs.ml \
+basic-modules/main.ml \
+basic-modules/pr11186.ml \
+basic-modules/recursive_module_evaluation_errors.ml \
+basic-modules/recursive_module_init.ml \
+basic-more/bounds.ml \
+basic-more/div_by_zero.ml \
+basic-more/function_in_ref.ml \
+basic-more/if_in_if.ml \
+basic-more/opaque_prim.ml \
+basic-more/pr10294.ml \
+basic-more/pr1271.ml \
+basic-more/pr2719.ml \
+basic-more/pr6216.ml \
+basic-more/pr7683.ml \
+basic-more/record_evaluation_order.ml \
+basic-more/robustmatch.ml \
+basic-more/sequential_and_or.ml \
+basic-more/structural_constants.ml \
+basic-more/tbuffer.ml \
+basic-more/top_level_patterns.ml \
+basic-more/tprintf.ml \
+basic-multdef/usemultdef.ml \
+basic-private/tlength.ml \
+basic/arrays.ml \
+basic/bigints.ml \
+basic/boxedints.ml \
+basic/constprop.ml.c \
+basic/divint.ml \
+basic/equality.ml \
+basic/eval_order_1.ml \
+basic/eval_order_2.ml \
+basic/eval_order_3.ml \
+basic/eval_order_4.ml \
+basic/eval_order_6.ml \
+basic/eval_order_7.ml \
+basic/eval_order_8.ml \
+basic/eval_order_pr10283.ml \
+basic/float.ml \
+basic/float_physical_equality.ml \
+basic/includestruct.ml \
+basic/localexn.ml \
+basic/localfunction.ml \
+basic/maps.ml \
+basic/min_int.ml \
+basic/objects.ml \
+basic/opt_variants.ml \
+basic/patmatch.ml \
+basic/patmatch_for_multiple.ml \
+basic/patmatch_incoherence.ml \
+basic/patmatch_split_no_or.ml \
+basic/pr7253.ml \
+basic/pr7533.ml \
+basic/pr7657.ml \
+basic/recvalues.ml \
+basic/sets.ml \
+basic/stringmatch.ml \
+basic/switch_opts.ml \
+basic/tailcalls.ml \
+basic/trigraph.ml \
+basic/tuple_match.ml \
+basic/zero_divided_by_n.ml \
+c-api/alloc_async.ml \
+c-api/test_c_thread_has_lock.ml \
+c-api/test_c_thread_has_lock_systhread.ml \
+callback/callback_effects_gc.ml \
+callback/minor_named.ml \
+callback/nested_fiber.ml \
+callback/signals_alloc.ml \
+callback/stack_overflow.ml \
+callback/test1.ml \
+callback/test2.ml \
+callback/test3.ml \
+callback/test4.ml \
+callback/test5.ml \
+callback/test6.ml \
+callback/test7.ml \
+callback/test_finaliser_gc.ml \
+callback/test_signalhandler.ml \
+compiler-libs/test_longident.ml \
+compiler-libs/test_untypeast.ml \
+effects/cmphash.ml \
+effects/evenodd.ml \
+effects/issue479.ml \
+effects/manylive.ml \
+effects/marshal.ml \
+effects/overflow.ml \
+effects/partial.ml \
+effects/reperform.ml \
+effects/sched.ml \
+effects/shallow_state.ml \
+effects/shallow_state_io.ml \
+effects/test1.ml \
+effects/test10.ml \
+effects/test11.ml \
+effects/test2.ml \
+effects/test3.ml \
+effects/test4.ml \
+effects/test5.ml \
+effects/test6.ml \
+effects/test_lazy.ml \
+effects/unhandled_unlinked.ml \
+effects/used_cont.ml \
+embedded/cmcaml.ml \
+ephe-c-api/test.ml \
+exotic-syntax/exotic.ml \
+extension-constructor/test.ml \
+flambda/afl_lazy.ml \
+flambda/approx_meet.ml \
+flambda/gpr2239.ml \
+flambda/gpr998.ml \
+flambda/specialise.ml \
+float-unboxing/float_subst_boxed_number.ml \
+float-unboxing/unbox_under_assign.ml \
+fma/fma.ml \
+formats-transition/deprecated_unsigned_printers.ml \
+formats-transition/ignored_scan_counters.ml \
+formats-transition/legacy_incompatible_flags.ml \
+formats-transition/legacy_unfinished_modifiers.ml \
+formatting/errors_batch.ml \
+formatting/margins.ml \
+frame-pointers/c_call.ml \
+frame-pointers/effects.ml \
+frame-pointers/exception_handler.ml \
+frame-pointers/reperform.ml \
+frame-pointers/stack_realloc.ml \
+frame-pointers/stack_realloc2.ml \
+functors/functors.ml \
+gc-roots/globroots.ml \
+gc-roots/globroots_parallel.ml \
+gc-roots/globroots_parallel_spawn_burn.ml \
+gc-roots/globroots_sequential.ml \
+generalized-open/accepted_batch.ml \
+generalized-open/accepted_expect.ml \
+generalized-open/clambda_optim.ml \
+generalized-open/expansiveness.ml \
+generalized-open/gpr1506.ml \
+generalized-open/pr10048.ml \
+generalized-open/shadowing.ml \
+generated-parse-errors/errors.ml \
+int64-unboxing/test.ml \
+lazy/lazy1.ml \
+lazy/lazy2.ml \
+lazy/lazy3.ml \
+lazy/lazy4.ml \
+lazy/lazy5.ml \
+lazy/lazy6.ml \
+lazy/lazy7.ml \
+lazy/lazy8.ml \
+lazy/minor_major_force.ml \
+let-syntax/let_syntax.ml \
+letrec-check/basic.ml \
+letrec-check/extension_constructor.ml \
+letrec-check/flat_float_array.ml \
+letrec-check/float_unboxing.ml \
+letrec-check/labels.ml \
+letrec-check/lazy_.ml \
+letrec-check/modules.ml \
+letrec-check/no_flat_float_array.ml \
+letrec-check/objects.ml \
+letrec-check/pr7215.ml \
+letrec-check/records.ml \
+letrec-check/unboxed.ml \
+letrec-compilation/backreferences.ml \
+letrec-compilation/class_1.ml \
+letrec-compilation/class_2.ml \
+letrec-compilation/evaluation_order_1.ml \
+letrec-compilation/evaluation_order_2.ml \
+letrec-compilation/evaluation_order_3.ml \
+letrec-compilation/float_block_1.ml \
+letrec-compilation/generic_array.ml \
+letrec-compilation/labels.ml \
+letrec-compilation/lazy_.ml \
+letrec-compilation/lists.ml \
+letrec-compilation/mixing_value_closures_1.ml \
+letrec-compilation/mixing_value_closures_2.ml \
+letrec-compilation/mutual_functions.ml \
+letrec-compilation/nested.ml \
+letrec-compilation/pr12153_miscompilation_of_recursive_atoms.ml \
+letrec-compilation/pr4989.ml \
+letrec-compilation/pr8681.ml \
+letrec-compilation/record_with.ml \
+letrec-compilation/ref.ml \
+lexing/comments.ml \
+lexing/uchar_esc.ml \
+lf_skiplist/test.ml \
+lf_skiplist/test_parallel.ml \
+lib-arg/test_rest_all.ml \
+lib-arg/testarg.ml \
+lib-arg/testerror.ml \
+lib-array/test_array.ml \
+lib-atomic/test_atomic.ml \
+lib-bigarray-2/bigarrcml.ml \
+lib-bigarray-2/bigarrfml.ml \
+lib-bigarray-file/mapfile.ml \
+lib-bigarray/bigarrays.ml \
+lib-bigarray/change_layout.ml \
+lib-bigarray/fftba.ml \
+lib-bigarray/pr5115.ml \
+lib-bigarray/weak_bigarray.ml \
+lib-bool/test.ml \
+lib-buffer/test.ml \
+lib-bytes-utf/test.ml \
+lib-bytes/binary.ml \
+lib-bytes/test_bytes.ml \
+lib-channels/buffered.ml \
+lib-channels/close_in.ml \
+lib-channels/in_channel_length.ml \
+lib-channels/input_all.ml \
+lib-channels/input_lines.ml \
+lib-channels/refcounting.ml \
+lib-channels/seek_in.ml \
+lib-digest/md5.ml \
+lib-dynlink-bytecode/main.ml \
+lib-dynlink-csharp/main.ml \
+lib-dynlink-domains/main.ml \
+lib-dynlink-init-info/test.ml \
+lib-dynlink-initializers/test1_main.ml \
+lib-dynlink-initializers/test2_main.ml \
+lib-dynlink-initializers/test3_main.ml \
+lib-dynlink-initializers/test4_main.ml \
+lib-dynlink-initializers/test5_main.ml \
+lib-dynlink-initializers/test6_main.ml \
+lib-dynlink-initializers/test7_main.ml \
+lib-dynlink-initializers/test8_main.ml \
+lib-dynlink-initializers/test9_main.ml \
+lib-dynlink-packed/loader.ml \
+lib-dynlink-pr4229/main.ml \
+lib-dynlink-pr4839/test.ml \
+lib-dynlink-pr6950/loader.ml \
+lib-dynlink-pr9209/dyn.ml \
+lib-dynlink-private/test.ml \
+lib-either/test.ml \
+lib-filename/extension.ml \
+lib-filename/null.ml \
+lib-filename/quotecommand.ml \
+lib-filename/suffix.ml \
+lib-filename/temp.ml \
+lib-float/test.ml \
+lib-floatarray/floatarray.ml \
+lib-format/domains.ml \
+lib-format/mc_pr586_par.ml \
+lib-format/mc_pr586_par2.ml \
+lib-format/pp_print_custom_break.ml \
+lib-format/pr6824.ml \
+lib-format/print_array.ml \
+lib-format/print_if_newline.ml \
+lib-format/print_seq.ml \
+lib-format/tformat.ml \
+lib-fun/test.ml \
+lib-hashtbl/compatibility.ml \
+lib-hashtbl/hfun.ml \
+lib-hashtbl/htbl.ml \
+lib-int/test.ml \
+lib-int64/issue9460.ml \
+lib-int64/test.ml \
+lib-internalformat/test.ml \
+lib-lazy/test.ml \
+lib-list/test.ml \
+lib-marshal/intern_final.ml \
+lib-marshal/intext.ml \
+lib-marshal/intext_par.ml \
+lib-marshal/marshal_bigarray.ml \
+lib-obj/new_obj.ml \
+lib-obj/reachable_words.ml \
+lib-obj/reachable_words_bug.ml \
+lib-obj/with_tag.ml \
+lib-option/test.ml \
+lib-printf/pr6534.ml \
+lib-printf/pr6938.ml \
+lib-printf/tprintf.ml \
+lib-queue/test.ml \
+lib-random/chi2.ml \
+lib-random/defaultinit.ml \
+lib-random/parallel.ml \
+lib-random/selfinit.ml \
+lib-random/testvectors.ml \
+lib-result/test.ml \
+lib-runtime-events/test.ml \
+lib-runtime-events/test_caml.ml \
+lib-runtime-events/test_caml_counters.ml \
+lib-runtime-events/test_caml_exception.ml \
+lib-runtime-events/test_caml_parallel.ml \
+lib-runtime-events/test_caml_reentry.ml \
+lib-runtime-events/test_caml_runparams.ml \
+lib-runtime-events/test_caml_slot_reuse.ml \
+lib-runtime-events/test_caml_stubs_gc.ml \
+lib-runtime-events/test_dropped_events.ml \
+lib-runtime-events/test_env_start.ml \
+lib-runtime-events/test_external.ml \
+lib-runtime-events/test_external_preserve.ml \
+lib-runtime-events/test_fork.ml \
+lib-runtime-events/test_instrumented.ml \
+lib-runtime-events/test_user_event.ml \
+lib-runtime-events/test_user_event_unknown.ml \
+lib-scanf/tscanf.ml \
+lib-seq/test.ml \
+lib-set/testmap.ml \
+lib-set/testset.ml \
+lib-stack/test.ml \
+lib-stdlabels/test_stdlabels.ml \
+lib-str/parallel.ml \
+lib-str/t01.ml \
+lib-string/binary.ml \
+lib-string/test_string.ml \
+lib-sync/prodcons.ml \
+lib-sync/trylock.ml \
+lib-sync/trylock2.ml \
+lib-sys/immediate64.ml \
+lib-sys/opaque.ml \
+lib-sys/rename.ml \
+lib-systhreads/boundscheck.ml \
+lib-systhreads/eintr.ml \
+lib-systhreads/multicore_lifecycle.ml \
+lib-systhreads/test_c_thread_register.ml \
+lib-systhreads/testfork.ml \
+lib-systhreads/testfork2.ml \
+lib-systhreads/threadsigmask.ml \
+lib-threads/backtrace_threads.ml \
+lib-threads/bank.ml \
+lib-threads/beat.ml \
+lib-threads/bufchan.ml \
+lib-threads/close.ml \
+lib-threads/fileio.ml \
+lib-threads/mutex_errors.ml \
+lib-threads/pr4466.ml \
+lib-threads/pr5325.ml \
+lib-threads/pr7638.ml \
+lib-threads/pr8857.ml \
+lib-threads/prodcons.ml \
+lib-threads/prodcons2.ml \
+lib-threads/sieve.ml \
+lib-threads/swapchan.ml \
+lib-threads/tls.ml \
+lib-threads/torture.ml \
+lib-uchar/test.ml \
+lib-unix/common/channel_of.ml \
+lib-unix/common/dup.ml \
+lib-unix/common/dup2.ml \
+lib-unix/common/fork_cleanup.ml \
+lib-unix/common/fork_cleanup_systhreads.ml \
+lib-unix/common/getaddrinfo.ml \
+lib-unix/common/gethostbyaddr.ml \
+lib-unix/common/multicore_fork_domain_alone.ml \
+lib-unix/common/multicore_fork_domain_alone2.ml \
+lib-unix/common/pipe_eof.ml \
+lib-unix/common/process_pid.ml \
+lib-unix/common/redirections.ml \
+lib-unix/common/rename.ml \
+lib-unix/common/test_unix_cmdline.ml \
+lib-unix/common/test_unixlabels.ml \
+lib-unix/common/truncate.ml \
+lib-unix/common/uexit.ml \
+lib-unix/common/utimes.ml \
+lib-unix/common/wait_nohang.ml \
+lib-unix/isatty/isatty_std.ml \
+lib-unix/isatty/isatty_tty.ml \
+lib-unix/kill/unix_kill.ml \
+lib-unix/realpath/test.ml \
+lib-unix/unix-execvpe/exec.ml \
+lib-unix/unix-socket/recvfrom_linux.ml \
+lib-unix/unix-socket/recvfrom_unix.ml \
+lib-unix/win-channel-of/parallel_channel_of.ml \
+lib-unix/win-createprocess/test.ml \
+lib-unix/win-env/test_env.ml \
+lib-unix/win-socketpair/test.ml \
+lib-unix/win-stat/test.ml \
+lib-unix/win-symlink/parallel_symlink.ml \
+lib-unix/win-symlink/test.ml \
+link-test/empty.ml \
+link-test/test.ml \
+load_path/test.ml \
+local-functions/tupled.ml \
+local-functions/tupled2.ml \
+locale/test.ml \
+match-exception-warnings/exhaustiveness_warnings.ml \
+match-exception-warnings/no_mixing_under_guard.ml \
+match-exception-warnings/no_value_clauses.ml \
+match-exception-warnings/placement.ml \
+match-exception-warnings/pr7083.ml \
+match-exception-warnings/reachability.ml \
+match-exception/allocation.ml \
+match-exception/exception_propagation.ml \
+match-exception/identifier_sharing.ml \
+match-exception/match_failure.ml \
+match-exception/nested_handlers.ml \
+match-exception/raise_from_success_continuation.ml \
+match-exception/streams.ml \
+match-exception/tail_calls.ml \
+memory-model/forbidden.ml \
+memory-model/publish.ml \
+messages/highlight_tabs.ml \
+messages/precise_locations.ml \
+messages/spellcheck.ml \
+misc-kb/kbmain.ml \
+misc-unsafe/almabench.ml \
+misc-unsafe/fft.ml \
+misc-unsafe/quicksort.ml \
+misc-unsafe/soli.ml \
+misc/bdd.ml \
+misc/boyer.ml \
+misc/exotic.ml \
+misc/fib.ml \
+misc/gc_mark_stack_overflow.ml \
+misc/gcwords.ml \
+misc/gpr1370.ml \
+misc/hamming.ml \
+misc/nucleic.ml \
+misc/pr7168.ml \
+misc/sieve.ml \
+misc/sorts.ml \
+misc/takc.ml \
+misc/taku.ml \
+no-alias-deps/gpr2235.ml \
+output-complete-obj/github9344.ml \
+output-complete-obj/test.ml \
+output-complete-obj/test2.ml \
+parallel/atomics.ml \
+parallel/backup_thread.ml \
+parallel/backup_thread_pipe.ml \
+parallel/constpromote.ml \
+parallel/deadcont.ml \
+parallel/domain_dls.ml \
+parallel/domain_dls2.ml \
+parallel/domain_id.ml \
+parallel/domain_parallel_spawn_burn.ml \
+parallel/domain_parallel_spawn_burn_gc_set.ml \
+parallel/domain_serial_spawn_burn.ml \
+parallel/fib_threads.ml \
+parallel/join.ml \
+parallel/major_gc_wait_backup.ml \
+parallel/mctest.ml \
+parallel/multicore_systhreads.ml \
+parallel/pingpong.ml \
+parallel/poll.ml \
+parallel/prodcons_domains.ml \
+parallel/recommended_domain_count.ml \
+parallel/recommended_domain_count_unix.ml \
+parallel/tak.ml \
+parallel/test_c_thread_register.ml \
+parallel/test_issue_11094.ml \
+parsetree/test.ml \
+parsing/anonymous_class_parameter.ml \
+parsing/change_start_loc.ml \
+parsing/docstrings.ml \
+parsing/extended_indexoperators.ml \
+parsing/extension_operators.ml \
+parsing/multi_indices.ml \
+parsing/pr10468.ml \
+parsing/pr6604_3.ml \
+parsing/reloc.ml \
+ppx-attributes/inline.ml \
+ppx-attributes/warning.ml \
+ppx-contexts/test.ml \
+prim-bigstring/bigstring_access.ml \
+prim-bigstring/string_access.ml \
+prim-bswap/bswap.ml \
+prim-revapply/apply.ml \
+prim-revapply/revapply.ml \
+printing-types/disambiguation.ml \
+printing-types/pr248.ml \
+raise-counts/main.ml \
+regression/gpr1623/gpr1623.ml \
+regression/missing_set_of_closures/missing_set_of_closures.ml \
+regression/pr10611/pr10611.ml \
+regression/pr11887/pr11887.ml \
+regression/pr1580/pr1580.ml \
+regression/pr3612/pr3612.ml \
+regression/pr5233/pr5233.ml \
+regression/pr5757/pr5757.ml \
+regression/pr6024/pr6024.ml \
+regression/pr7042/pr7042.ml \
+regression/pr7426/pr7426.ml \
+regression/pr7718/pr7718.ml \
+regression/pr7798/pr7798.ml \
+regression/pr7920/pr7920.ml \
+regression/pr8769/pr8769.ml \
+regression/pr9028/pr9028.ml \
+regression/pr9292/pr9292.ml \
+regression/pr9326/gc_set.ml \
+regression/pr9443/pr9443.ml \
+regression/pr9853/compaction_corner_case.ml \
+reproducibility/cmis_on_file_system.ml \
+required-external/main.ml \
+runtime-C-exceptions/test.ml \
+runtime-errors/stackoverflow.ml \
+runtime-errors/syserror.ml \
+runtime-objects/Tests.ml \
+self-contained-toplevel/main.ml \
+shadow_include/artificial.ml \
+shadow_include/ghosts.ml \
+shapes/comp_units.ml \
+shapes/functors.ml \
+shapes/incl_md_typeof.ml \
+shapes/open_arg.ml \
+shapes/open_struct.ml \
+shapes/recmodules.ml \
+shapes/rotor_example.ml \
+shapes/shape_size_blowup.ml \
+shapes/simple.ml \
+shapes/typeof_include.ml \
+statmemprof/alloc_counts.ml \
+statmemprof/arrays_in_major.ml \
+statmemprof/arrays_in_minor.ml \
+statmemprof/blocking_in_callback.ml \
+statmemprof/callstacks.ml \
+statmemprof/comballoc.ml \
+statmemprof/custom.ml \
+statmemprof/exception_callback.ml \
+statmemprof/exception_callback_minor.ml \
+statmemprof/intern.ml \
+statmemprof/lists_in_minor.ml \
+statmemprof/minor_no_postpone.ml \
+statmemprof/moved_while_blocking.ml \
+statmemprof/thread_exit_in_callback.ml \
+tmc/ambiguities.ml \
+tmc/other_features.ml \
+tmc/readable_output.ml \
+tmc/semantic.ml \
+tmc/stack_space.ml \
+tmc/tupled_function.ml \
+tmc/usage_warnings.ml \
+tool-caml-tex/ellipses.ml \
+tool-caml-tex/redirections.ml \
+tool-command-line/test-o-one-c-file.ml \
+tool-command-line/test-o-several-files.ml \
+tool-command-line/test-unknown-file.ml \
+tool-debugger/basic/debuggee.ml \
+tool-debugger/dynlink/host.ml \
+tool-debugger/find-artifacts/debuggee.ml \
+tool-debugger/no_debug_event/noev.ml \
+tool-dumpobj/test.ml \
+tool-expect-test/clean_typer.ml \
+tool-lexyacc/calc.ml \
+tool-lexyacc/chars.mll \
+tool-lexyacc/csets.mll \
+tool-lexyacc/mpr7760.mll \
+tool-lexyacc/parsecheck.mly \
+tool-ocaml-annot/failure.ml \
+tool-ocaml-annot/success.ml \
+tool-ocaml-annot/typeonly.ml \
+tool-ocaml/directive_failure.ml \
+tool-ocaml/t000.ml \
+tool-ocaml/t010-const0.ml \
+tool-ocaml/t010-const1.ml \
+tool-ocaml/t010-const2.ml \
+tool-ocaml/t010-const3.ml \
+tool-ocaml/t011-constint.ml \
+tool-ocaml/t020.ml \
+tool-ocaml/t021-pushconst1.ml \
+tool-ocaml/t021-pushconst2.ml \
+tool-ocaml/t021-pushconst3.ml \
+tool-ocaml/t022-pushconstint.ml \
+tool-ocaml/t040-makeblock1.ml \
+tool-ocaml/t040-makeblock2.ml \
+tool-ocaml/t040-makeblock3.ml \
+tool-ocaml/t041-makeblock.ml \
+tool-ocaml/t050-getglobal.ml \
+tool-ocaml/t050-pushgetglobal.ml \
+tool-ocaml/t051-getglobalfield.ml \
+tool-ocaml/t051-pushgetglobalfield.ml \
+tool-ocaml/t060-raise.ml \
+tool-ocaml/t070-branch.ml \
+tool-ocaml/t070-branchif.ml \
+tool-ocaml/t070-branchifnot.ml \
+tool-ocaml/t071-boolnot.ml \
+tool-ocaml/t080-eq.ml \
+tool-ocaml/t080-geint.ml \
+tool-ocaml/t080-gtint.ml \
+tool-ocaml/t080-leint.ml \
+tool-ocaml/t080-ltint.ml \
+tool-ocaml/t080-neq.ml \
+tool-ocaml/t090-acc0.ml \
+tool-ocaml/t090-acc1.ml \
+tool-ocaml/t090-acc2.ml \
+tool-ocaml/t090-acc3.ml \
+tool-ocaml/t090-acc4.ml \
+tool-ocaml/t090-acc5.ml \
+tool-ocaml/t090-acc6.ml \
+tool-ocaml/t090-acc7.ml \
+tool-ocaml/t091-acc.ml \
+tool-ocaml/t092-pushacc.ml \
+tool-ocaml/t092-pushacc0.ml \
+tool-ocaml/t092-pushacc1.ml \
+tool-ocaml/t092-pushacc2.ml \
+tool-ocaml/t092-pushacc3.ml \
+tool-ocaml/t092-pushacc4.ml \
+tool-ocaml/t092-pushacc5.ml \
+tool-ocaml/t092-pushacc6.ml \
+tool-ocaml/t092-pushacc7.ml \
+tool-ocaml/t093-pushacc.ml \
+tool-ocaml/t100-pushtrap.ml \
+tool-ocaml/t101-poptrap.ml \
+tool-ocaml/t110-addint.ml \
+tool-ocaml/t110-andint.ml \
+tool-ocaml/t110-asrint-1.ml \
+tool-ocaml/t110-asrint-2.ml \
+tool-ocaml/t110-divint-1.ml \
+tool-ocaml/t110-divint-2.ml \
+tool-ocaml/t110-divint-3.ml \
+tool-ocaml/t110-lslint.ml \
+tool-ocaml/t110-lsrint.ml \
+tool-ocaml/t110-modint-1.ml \
+tool-ocaml/t110-modint-2.ml \
+tool-ocaml/t110-mulint.ml \
+tool-ocaml/t110-negint.ml \
+tool-ocaml/t110-offsetint.ml \
+tool-ocaml/t110-orint.ml \
+tool-ocaml/t110-subint.ml \
+tool-ocaml/t110-xorint.ml \
+tool-ocaml/t120-getstringchar.ml \
+tool-ocaml/t121-setstringchar.ml \
+tool-ocaml/t130-getvectitem.ml \
+tool-ocaml/t130-vectlength.ml \
+tool-ocaml/t131-setvectitem.ml \
+tool-ocaml/t140-switch-1.ml \
+tool-ocaml/t140-switch-2.ml \
+tool-ocaml/t140-switch-3.ml \
+tool-ocaml/t140-switch-4.ml \
+tool-ocaml/t141-switch-5.ml \
+tool-ocaml/t141-switch-6.ml \
+tool-ocaml/t141-switch-7.ml \
+tool-ocaml/t142-switch-8.ml \
+tool-ocaml/t142-switch-9.ml \
+tool-ocaml/t142-switch-A.ml \
+tool-ocaml/t150-push-1.ml \
+tool-ocaml/t150-push-2.ml \
+tool-ocaml/t160-closure.ml \
+tool-ocaml/t161-apply1.ml \
+tool-ocaml/t162-return.ml \
+tool-ocaml/t163.ml \
+tool-ocaml/t164-apply2.ml \
+tool-ocaml/t164-apply3.ml \
+tool-ocaml/t165-apply.ml \
+tool-ocaml/t170-envacc2.ml \
+tool-ocaml/t170-envacc3.ml \
+tool-ocaml/t170-envacc4.ml \
+tool-ocaml/t171-envacc.ml \
+tool-ocaml/t172-pushenvacc1.ml \
+tool-ocaml/t172-pushenvacc2.ml \
+tool-ocaml/t172-pushenvacc3.ml \
+tool-ocaml/t172-pushenvacc4.ml \
+tool-ocaml/t173-pushenvacc.ml \
+tool-ocaml/t180-appterm1.ml \
+tool-ocaml/t180-appterm2.ml \
+tool-ocaml/t180-appterm3.ml \
+tool-ocaml/t181-appterm.ml \
+tool-ocaml/t190-makefloatblock-1.ml \
+tool-ocaml/t190-makefloatblock-2.ml \
+tool-ocaml/t190-makefloatblock-3.ml \
+tool-ocaml/t191-vectlength.ml \
+tool-ocaml/t192-getfloatfield-1.ml \
+tool-ocaml/t192-getfloatfield-2.ml \
+tool-ocaml/t193-setfloatfield-1.ml \
+tool-ocaml/t193-setfloatfield-2.ml \
+tool-ocaml/t200-getfield0.ml \
+tool-ocaml/t200-getfield1.ml \
+tool-ocaml/t200-getfield2.ml \
+tool-ocaml/t200-getfield3.ml \
+tool-ocaml/t201-getfield.ml \
+tool-ocaml/t210-setfield0.ml \
+tool-ocaml/t210-setfield1.ml \
+tool-ocaml/t210-setfield2.ml \
+tool-ocaml/t210-setfield3.ml \
+tool-ocaml/t211-setfield.ml \
+tool-ocaml/t220-assign.ml \
+tool-ocaml/t230-check_signals.ml \
+tool-ocaml/t240-c_call1.ml \
+tool-ocaml/t240-c_call2.ml \
+tool-ocaml/t240-c_call3.ml \
+tool-ocaml/t240-c_call4.ml \
+tool-ocaml/t240-c_call5.ml \
+tool-ocaml/t250-closurerec-1.ml \
+tool-ocaml/t250-closurerec-2.ml \
+tool-ocaml/t251-pushoffsetclosure0.ml \
+tool-ocaml/t251-pushoffsetclosure2.ml \
+tool-ocaml/t251-pushoffsetclosurem2.ml \
+tool-ocaml/t252-pushoffsetclosure.ml \
+tool-ocaml/t253-offsetclosure0.ml \
+tool-ocaml/t253-offsetclosure2.ml \
+tool-ocaml/t253-offsetclosurem2.ml \
+tool-ocaml/t254-offsetclosure.ml \
+tool-ocaml/t260-offsetref.ml \
+tool-ocaml/t270-push_retaddr.ml \
+tool-ocaml/t300-getmethod.ml \
+tool-ocaml/t301-object.ml \
+tool-ocaml/t310-alloc-1.ml \
+tool-ocaml/t310-alloc-2.ml \
+tool-ocaml/t320-gc-1.ml \
+tool-ocaml/t320-gc-2.ml \
+tool-ocaml/t320-gc-3.ml \
+tool-ocaml/t330-compact-1.ml \
+tool-ocaml/t330-compact-2.ml \
+tool-ocaml/t330-compact-3.ml \
+tool-ocaml/t330-compact-4.ml \
+tool-ocaml/t340-weak.ml \
+tool-ocaml/t350-heapcheck.ml \
+tool-ocaml/t360-stacks-1.ml \
+tool-ocaml/t360-stacks-2.ml \
+tool-ocamlc-compat32/compat32.ml \
+tool-ocamlc-error-cleanup/test.ml \
+tool-ocamlc-open/tool-ocamlc-open-error.ml \
+tool-ocamlc-open/tool-ocamlc-open.ml \
+tool-ocamlc-stop-after/stop_after_lambda.ml \
+tool-ocamlc-stop-after/stop_after_scheduling.ml \
+tool-ocamldep-modalias/main.ml \
+tool-ocamldep-shadowing/a.ml \
+tool-ocamldoc-open/main.ml \
+tool-ocamldoc/Alert_toplevel.mli \
+tool-ocamldoc/Alert_toplevel2.mli \
+tool-ocamldoc/Alerts.mli \
+tool-ocamldoc/Alerts_impl.ml \
+tool-ocamldoc/Documentation_tags.mli \
+tool-ocamldoc/Entities.ml \
+tool-ocamldoc/Extensible_variant.ml \
+tool-ocamldoc/Include_module_type_of.mli \
+tool-ocamldoc/Inline_records.mli \
+tool-ocamldoc/Inline_records_bis.ml \
+tool-ocamldoc/Item_ids.mli \
+tool-ocamldoc/Level_0.mli \
+tool-ocamldoc/Linebreaks.mli \
+tool-ocamldoc/Loop.ml \
+tool-ocamldoc/Module_whitespace.ml \
+tool-ocamldoc/No_preamble.mli \
+tool-ocamldoc/Paragraph.mli \
+tool-ocamldoc/Short_description.txt \
+tool-ocamldoc/Test.mli \
+tool-ocamldoc/Variants.mli \
+tool-ocamldoc/latex_ref.mli \
+tool-ocamldoc/t01.ml \
+tool-ocamldoc/t02.ml \
+tool-ocamldoc/t03.ml \
+tool-ocamldoc/t04.ml \
+tool-ocamldoc/t05.ml \
+tool-ocamlobjinfo/question.ml \
+tool-ocamlopt-save-ir/check_for_pack.ml \
+tool-ocamlopt-save-ir/save_ir_after_scheduling.ml \
+tool-ocamlopt-save-ir/save_ir_after_typing.ml \
+tool-ocamlopt-save-ir/start_from_emit.ml \
+tool-ocamlopt-stop-after/stop_after_lambda.ml \
+tool-ocamlopt-stop-after/stop_after_scheduling.ml \
+tool-ocamltest/norm1.ml \
+tool-ocamltest/norm2.ml \
+tool-ocamltest/norm3.ml \
+tool-ocamltest/norm4.ml \
+tool-toplevel-invocation/test.ml \
+tool-toplevel/exotic_lists.ml \
+tool-toplevel/install_printer.ml \
+tool-toplevel/known-bugs/broken_rec_in_show.ml \
+tool-toplevel/mod_use.ml \
+tool-toplevel/pr6468.ml \
+tool-toplevel/pr7060.ml \
+tool-toplevel/pr7751.ml \
+tool-toplevel/pr9701.ml \
+tool-toplevel/printval.ml \
+tool-toplevel/redefinition_hints.ml \
+tool-toplevel/show.ml \
+tool-toplevel/show_short_paths.ml \
+tool-toplevel/strings.ml \
+tool-toplevel/topeval.ml \
+tool-toplevel/tracing.ml \
+tool-toplevel/uncaught_exceptions.ml \
+tool-toplevel/use_command.ml \
+translprim/array_spec.ml \
+translprim/comparison_table.ml \
+translprim/module_coercion.ml \
+translprim/ref_spec.ml \
+translprim/sendcache.ml \
+typing-core-bugs/const_int_hint.ml \
+typing-core-bugs/missing_rec_hint.ml \
+typing-core-bugs/repeated_did_you_mean.ml \
+typing-core-bugs/type_expected_explanation.ml \
+typing-core-bugs/unit_fun_hints.ml \
+typing-deprecated/alerts.ml \
+typing-deprecated/deprecated.ml \
+typing-extension-constructor/test.ml \
+typing-extensions/cast.ml \
+typing-extensions/disambiguation.ml \
+typing-extensions/extensions.ml \
+typing-extensions/msg.ml \
+typing-extensions/open_types.ml \
+typing-external/pr11392.ml \
+typing-fstclassmod/aliases.ml \
+typing-fstclassmod/fstclassmod.ml \
+typing-fstclassmod/nondep_instance.ml \
+typing-fstclassmod/scope_escape.ml \
+typing-gadts/ambiguity.ml \
+typing-gadts/ambivalent_apply.ml \
+typing-gadts/didier.ml \
+typing-gadts/dynamic_frisch.ml \
+typing-gadts/gadthead.ml \
+typing-gadts/name_existentials.ml \
+typing-gadts/nested_equations.ml \
+typing-gadts/omega07.ml \
+typing-gadts/or_patterns.ml \
+typing-gadts/packed-module-recasting.ml \
+typing-gadts/pr10189.ml \
+typing-gadts/pr10271.ml \
+typing-gadts/pr10348.ml \
+typing-gadts/pr10735.ml \
+typing-gadts/pr10907.ml \
+typing-gadts/pr11888.ml \
+typing-gadts/pr5332.ml \
+typing-gadts/pr5689.ml \
+typing-gadts/pr5785.ml \
+typing-gadts/pr5848.ml \
+typing-gadts/pr5906.ml \
+typing-gadts/pr5948.ml \
+typing-gadts/pr5981.ml \
+typing-gadts/pr5985.ml \
+typing-gadts/pr5989.ml \
+typing-gadts/pr5997.ml \
+typing-gadts/pr6158.ml \
+typing-gadts/pr6163.ml \
+typing-gadts/pr6174.ml \
+typing-gadts/pr6241.ml \
+typing-gadts/pr6690.ml \
+typing-gadts/pr6817.ml \
+typing-gadts/pr6934.ml \
+typing-gadts/pr6980.ml \
+typing-gadts/pr6993_bad.ml \
+typing-gadts/pr7016.ml \
+typing-gadts/pr7160.ml \
+typing-gadts/pr7214.ml \
+typing-gadts/pr7222.ml \
+typing-gadts/pr7230.ml \
+typing-gadts/pr7234.ml \
+typing-gadts/pr7260.ml \
+typing-gadts/pr7269.ml \
+typing-gadts/pr7298.ml \
+typing-gadts/pr7374.ml \
+typing-gadts/pr7378.ml \
+typing-gadts/pr7381.ml \
+typing-gadts/pr7390.ml \
+typing-gadts/pr7391.ml \
+typing-gadts/pr7397.ml \
+typing-gadts/pr7421.ml \
+typing-gadts/pr7432.ml \
+typing-gadts/pr7520.ml \
+typing-gadts/pr7618.ml \
+typing-gadts/pr7747.ml \
+typing-gadts/pr7902.ml \
+typing-gadts/pr9019.ml \
+typing-gadts/pr9759.ml \
+typing-gadts/pr9799.ml \
+typing-gadts/principality-and-gadts.ml \
+typing-gadts/return_type.ml \
+typing-gadts/term-conv.ml \
+typing-gadts/test.ml \
+typing-gadts/unexpected_existentials.ml \
+typing-gadts/unify_mb.ml \
+typing-gadts/variables_in_mcomp.ml \
+typing-gadts/yallop_bugs.ml \
+typing-immediate/immediate.ml \
+typing-implicit_unpack/implicit_unpack.ml \
+typing-kind/kind_mismatch.ml \
+typing-labels/mixin.ml \
+typing-labels/mixin2.ml \
+typing-labels/mixin3.ml \
+typing-misc-bugs/core_array_reduced_ok.ml \
+typing-misc-bugs/gadt_declaration_check.ml \
+typing-misc/apply_non_function.ml \
+typing-misc/build_as_type.ml \
+typing-misc/constraints.ml \
+typing-misc/deep.ml \
+typing-misc/disambiguate_principality.ml \
+typing-misc/distant_errors.ml \
+typing-misc/empty_variant.ml \
+typing-misc/enrich_typedecl.ml \
+typing-misc/exotic_unifications.ml \
+typing-misc/external_arity.ml \
+typing-misc/filter_params.ml \
+typing-misc/gpr2277.ml \
+typing-misc/includeclass_errors.ml \
+typing-misc/injectivity.ml \
+typing-misc/inside_out.ml \
+typing-misc/is_expansive.ml \
+typing-misc/labels.ml \
+typing-misc/normalize_type.ml \
+typing-misc/occur_check.ml \
+typing-misc/optbinders.ml \
+typing-misc/pat_type_sharing.ml \
+typing-misc/pattern_open.ml \
+typing-misc/polyvars.ml \
+typing-misc/pr6416.ml \
+typing-misc/pr6634.ml \
+typing-misc/pr6939-flat-float-array.ml \
+typing-misc/pr6939-no-flat-float-array.ml \
+typing-misc/pr7103.ml \
+typing-misc/pr7228.ml \
+typing-misc/pr7668_bad.ml \
+typing-misc/pr7712.ml \
+typing-misc/pr7937.ml \
+typing-misc/pr8548.ml \
+typing-misc/pr8548_split.ml \
+typing-misc/printing.ml \
+typing-misc/records.ml \
+typing-misc/scope_escape.ml \
+typing-misc/typecore_empty_polyvariant_error.ml \
+typing-misc/typecore_errors.ml \
+typing-misc/typecore_nolabel_errors.ml \
+typing-misc/typetexp_errors.ml \
+typing-misc/unbound_type_variables.ml \
+typing-misc/unique_names_in_unification.ml \
+typing-misc/variance.ml \
+typing-misc/variant.ml \
+typing-misc/wellfounded.ml \
+typing-misc/wrong_kind.ml \
+typing-missing-cmi-2/test.ml \
+typing-missing-cmi-3/user.ml \
+typing-missing-cmi/test.ml \
+typing-modules-bugs/gatien_baron_20131019_ok.ml \
+typing-modules-bugs/pr10661_ok.ml \
+typing-modules-bugs/pr5164_ok.ml \
+typing-modules-bugs/pr51_ok.ml \
+typing-modules-bugs/pr5663_ok.ml \
+typing-modules-bugs/pr5914_ok.ml \
+typing-modules-bugs/pr6240_ok.ml \
+typing-modules-bugs/pr6485_ok.ml \
+typing-modules-bugs/pr6513_ok.ml \
+typing-modules-bugs/pr6572_ok.ml \
+typing-modules-bugs/pr6651_ok.ml \
+typing-modules-bugs/pr6752_ok.ml \
+typing-modules-bugs/pr6899_ok.ml \
+typing-modules-bugs/pr6944_ok.ml \
+typing-modules-bugs/pr6954_ok.ml \
+typing-modules-bugs/pr6981_ok.ml \
+typing-modules-bugs/pr6982_ok.ml \
+typing-modules-bugs/pr6985_extended.ml \
+typing-modules-bugs/pr6985_ok.ml \
+typing-modules-bugs/pr7036_ok.ml \
+typing-modules-bugs/pr7082_ok.ml \
+typing-modules-bugs/pr7112_ok.ml \
+typing-modules-bugs/pr7152_ok.ml \
+typing-modules-bugs/pr7182_ok.ml \
+typing-modules-bugs/pr7305_principal.ml \
+typing-modules-bugs/pr7321_ok.ml \
+typing-modules-bugs/pr7519_ok.ml \
+typing-modules-bugs/pr7601_ok.ml \
+typing-modules-bugs/pr7601a_ok.ml \
+typing-modules/Test.ml \
+typing-modules/aliases.ml \
+typing-modules/anonymous.ml \
+typing-modules/applicative_functor_type.ml \
+typing-modules/extension_constructors_errors_test.ml \
+typing-modules/firstclass.ml \
+typing-modules/functors.ml \
+typing-modules/generative.ml \
+typing-modules/illegal_permutation.ml \
+typing-modules/inclusion_errors.ml \
+typing-modules/inclusion_errors_elision.ml \
+typing-modules/merge_constraint.ml \
+typing-modules/module_type_substitution.ml \
+typing-modules/nondep.ml \
+typing-modules/nondep_private_abbrev.ml \
+typing-modules/nongen.ml \
+typing-modules/normalize_path.ml \
+typing-modules/packed_module_levels.ml \
+typing-modules/pr10298.ml \
+typing-modules/pr10399.ml \
+typing-modules/pr5911.ml \
+typing-modules/pr6394.ml \
+typing-modules/pr6633.ml \
+typing-modules/pr7207.ml \
+typing-modules/pr7348.ml \
+typing-modules/pr7726.ml \
+typing-modules/pr7787.ml \
+typing-modules/pr7818.ml \
+typing-modules/pr7851.ml \
+typing-modules/pr8810.ml \
+typing-modules/pr9384.ml \
+typing-modules/pr9695.ml \
+typing-modules/printing.ml \
+typing-modules/private.ml \
+typing-modules/records_errors_test.ml \
+typing-modules/recursive.ml \
+typing-modules/struct_include_optimisation.ml \
+typing-modules/unroll_private_abbrev.ml \
+typing-modules/variants_errors_test.ml \
+typing-modules/with_ghosts.ml \
+typing-multifile/pr6372.ml \
+typing-multifile/pr7325.ml \
+typing-multifile/pr7563.ml \
+typing-multifile/pr9218.ml \
+typing-objects-bugs/pr4766_ok.ml \
+typing-objects-bugs/pr4824_ok.ml \
+typing-objects-bugs/pr5156_ok.ml \
+typing-objects-bugs/pr7293_ok.ml \
+typing-objects-bugs/woodyatt_ok.ml \
+typing-objects-bugs/yamagata021012_ok.ml \
+typing-objects/Exemples.ml \
+typing-objects/Tests.ml \
+typing-objects/abstract_rows.ml \
+typing-objects/class_2.ml \
+typing-objects/dummy.ml \
+typing-objects/errors.ml \
+typing-objects/field_kind.ml \
+typing-objects/nongen.ml \
+typing-objects/open_in_classes.ml \
+typing-objects/pr11569.ml \
+typing-objects/pr5545.ml \
+typing-objects/pr5619_bad.ml \
+typing-objects/pr5858.ml \
+typing-objects/pr6123_bad.ml \
+typing-objects/pr6383.ml \
+typing-objects/pr6907_bad.ml \
+typing-objects/pr7711_ok.ml \
+typing-objects/self_cannot_be_closed.ml \
+typing-objects/self_cannot_escape_pr7865.ml \
+typing-objects/unbound-type-var.ml \
+typing-poly-bugs/pr5322_ok.ml \
+typing-poly-bugs/pr5673_ok.ml \
+typing-poly-bugs/pr6922_ok.ml \
+typing-poly/error_messages.ml \
+typing-poly/poly.ml \
+typing-poly/pr7636.ml \
+typing-poly/pr9603.ml \
+typing-polyvariants-bugs/pr10664.ml \
+typing-polyvariants-bugs/pr10664a.ml \
+typing-polyvariants-bugs/pr4775_ok.ml \
+typing-polyvariants-bugs/pr4933_ok.ml \
+typing-polyvariants-bugs/pr5057_ok.ml \
+typing-polyvariants-bugs/pr7199_ok.ml \
+typing-polyvariants-bugs/pr7817_bad.ml \
+typing-polyvariants-bugs/pr7824.ml \
+typing-polyvariants-bugs/pr8575.ml \
+typing-polyvariants-bugs/privrowsabate_ok.ml \
+typing-private-bugs/pr5469_ok.ml \
+typing-private/invalid_private_row.ml \
+typing-private/private.ml \
+typing-recmod/gpr1626.ml \
+typing-recmod/pr6491.ml \
+typing-recmod/t03ok.ml \
+typing-recmod/t06ok.ml \
+typing-recmod/t10ok.ml \
+typing-recmod/t13ok.ml \
+typing-recmod/t16ok.ml \
+typing-recmod/t17ok.ml \
+typing-recmod/t18ok.ml \
+typing-recmod/t20ok.ml \
+typing-recmod/t21ok.ml \
+typing-recmod/t22ok.ml \
+typing-recordarg/recordarg.ml \
+typing-shadowing-of-pervasives-submodules/redefine_largefile.ml \
+typing-shadowing-of-pervasives-submodules/redefine_largefile_top.ml \
+typing-short-paths/errors.ml \
+typing-short-paths/gpr1223.ml \
+typing-short-paths/pr6836.ml \
+typing-short-paths/pr7543.ml \
+typing-short-paths/short-paths.ml \
+typing-signatures/els.ml \
+typing-signatures/nondep_regression.ml \
+typing-signatures/pr6371.ml \
+typing-signatures/pr6672.ml \
+typing-sigsubst/sig_local_aliases.ml \
+typing-sigsubst/sigsubst.ml \
+typing-sigsubst/test_locations.ml \
+typing-typeparam/newtype.ml \
+typing-unboxed-types/test.ml \
+typing-unboxed-types/test_flat.ml \
+typing-unboxed-types/test_no_flat.ml \
+typing-unboxed/test.ml \
+typing-warnings/ambiguous_guarded_disjunction.ml \
+typing-warnings/application.ml \
+typing-warnings/coercions.ml \
+typing-warnings/disable_warnings_classes.ml \
+typing-warnings/exhaustiveness.ml \
+typing-warnings/fragile_matching.ml \
+typing-warnings/never_returns.ml \
+typing-warnings/open_warnings.ml \
+typing-warnings/pr5892.ml \
+typing-warnings/pr6587.ml \
+typing-warnings/pr6872.ml \
+typing-warnings/pr7085.ml \
+typing-warnings/pr7115.ml \
+typing-warnings/pr7297.ml \
+typing-warnings/pr7553.ml \
+typing-warnings/pr9244.ml \
+typing-warnings/records.ml \
+typing-warnings/unused_functor_parameter.ml \
+typing-warnings/unused_rec.ml \
+typing-warnings/unused_recmodule.ml \
+typing-warnings/unused_types.ml \
+typing-warnings/warning16.ml \
+unboxed-primitive-args/test.ml \
+unwind/driver.ml \
+utils/edit_distance.ml \
+utils/find_first_mono.ml \
+utils/magic_number.ml \
+utils/overflow_detection.ml \
+utils/test_strongly_connected_components.ml \
+warnings/deprecated_warning_specs.ml \
+warnings/mnemonics.mll \
+warnings/w51.ml \
+warnings/w52.ml \
+warnings/w58.ml \
+weak-ephe-final/ephe_infix.ml \
+weak-ephe-final/ephetest.ml \
+weak-ephe-final/ephetest2.ml \
+weak-ephe-final/ephetest3.ml \
+weak-ephe-final/ephetest_par.ml \
+weak-ephe-final/finaliser.ml \
+weak-ephe-final/finaliser2.ml \
+weak-ephe-final/finaliser_handover.ml \
+weak-ephe-final/pr12001.ml \
+weak-ephe-final/weaklifetime.ml \
+weak-ephe-final/weaklifetime2.ml \
+weak-ephe-final/weaktest.ml \
+weak-ephe-final/weaktest_par_load.ml \
+win-unicode/mltest.ml \
+"
+
+# These tests have to be translated in `lines` mode to preserve line numbers
+TESTS_LINES="
+asmcomp/poll_attr_both.ml \
+asmcomp/poll_attr_prologue.ml \
+asmcomp/poll_attr_user.ml \
+backtrace/backtrace2.ml \
+backtrace/backtrace3.ml \
+backtrace/backtrace_bounds_exn.ml \
+backtrace/backtrace_c_exn.ml \
+backtrace/backtrace_deprecated.ml \
+backtrace/backtrace_dynlink.ml \
+backtrace/backtrace_effects.ml \
+backtrace/backtrace_effects_nested.ml \
+backtrace/backtrace_or_exception.ml \
+backtrace/backtrace_slots.ml \
+backtrace/backtrace_systhreads.ml \
+backtrace/callstack.ml \
+backtrace/event_after_prim.ml \
+backtrace/inline_test.ml \
+backtrace/inline_traversal_test.ml \
+backtrace/methods.ml \
+backtrace/names.ml \
+backtrace/pr2195.ml \
+backtrace/pr6920_why_at.ml \
+backtrace/pr6920_why_swallow.ml \
+backtrace/raw_backtrace.ml \
+basic-modules/anonymous.ml \
+basic-more/morematch.ml \
+basic-more/pr10338.ml \
+basic-more/safer_matching.ml \
+basic/unit_naming.ml \
+effects/backtrace.ml \
+generalized-open/funct_body.ml \
+letrec-check/pr7231.ml \
+letrec-check/pr7706.ml \
+lexing/escape.ml \
+lib-dynlink-initializers/test10_main.ml \
+lib-threads/uncaught_exception_handler.ml \
+local-functions/non_local.ml \
+no-alias-deps/aliases.ml \
+parse-errors/escape_error.ml \
+parse-errors/expecting.ml \
+parse-errors/mismatch_struct_sig.ml \
+parse-errors/pr7847.ml \
+parsing/assert_location.ml \
+parsing/broken_invariants.ml \
+parsing/constructor_declarations.ml \
+parsing/pr6604.ml \
+parsing/pr6604_2.ml \
+parsing/pr7165.ml \
+shadow_include/cannot_shadow_error.ml \
+tmc/partial_application.ml \
+tmc/tupled_function_calls.ml \
+tool-debugger/module_named_main/main.ml \
+tool-debugger/printer/debuggee.ml \
+tool-toplevel/error_highlighting.ml \
+translprim/locs.ml \
+typing-misc-bugs/pr6303_bad.ml \
+typing-misc-bugs/pr6946_bad.ml \
+typing-modules-bugs/pr10693_bad.ml \
+typing-modules-bugs/pr6293_bad.ml \
+typing-modules-bugs/pr6427_bad.ml \
+typing-modules-bugs/pr6752_bad.ml \
+typing-modules-bugs/pr6899_first_bad.ml \
+typing-modules-bugs/pr6899_second_bad.ml \
+typing-modules-bugs/pr6992_bad.ml \
+typing-modules-bugs/pr7112_bad.ml \
+typing-modules-bugs/pr7414_2_bad.ml \
+typing-modules-bugs/pr7414_bad.ml \
+typing-modules-bugs/pr9695_bad.ml \
+typing-objects-bugs/pr3968_bad.ml \
+typing-objects-bugs/pr4018_bad.ml \
+typing-objects-bugs/pr4435_bad.ml \
+typing-objects-bugs/pr4824a_bad.ml \
+typing-objects-bugs/pr7284_bad.ml \
+typing-ocamlc-i/pervasives_leitmotiv.ml \
+typing-ocamlc-i/pr4791.ml \
+typing-ocamlc-i/pr6323.ml \
+typing-ocamlc-i/pr7402.ml \
+typing-ocamlc-i/pr7620_bad.ml \
+typing-polyvariants-bugs-2/pr3918c.ml \
+typing-polyvariants-bugs/pr5057a_bad.ml \
+typing-private-bugs/pr5026_bad.ml \
+typing-recmod/pr9494.ml \
+typing-recmod/t01bad.ml \
+typing-recmod/t02bad.ml \
+typing-recmod/t04bad.ml \
+typing-recmod/t05bad.ml \
+typing-recmod/t07bad.ml \
+typing-recmod/t08bad.ml \
+typing-recmod/t09bad.ml \
+typing-recmod/t11bad.ml \
+typing-recmod/t12bad.ml \
+typing-recmod/t14bad.ml \
+typing-recmod/t15bad.ml \
+typing-rectypes-bugs/pr5343_bad.ml \
+typing-rectypes-bugs/pr6174_bad.ml \
+typing-rectypes-bugs/pr6870_bad.ml \
+typing-safe-linking/b_bad.ml \
+typing-short-paths/pr5918.ml \
+typing-sigsubst/sig_local_aliases_syntax_errors.ml \
+typing-warnings/pr7261.ml \
+warnings/deprecated_module.ml \
+warnings/deprecated_module_assigment.ml \
+warnings/deprecated_module_use.ml \
+warnings/deprecated_mutable.ml \
+warnings/w01.ml \
+warnings/w03.ml \
+warnings/w04.ml \
+warnings/w04_failure.ml \
+warnings/w06.ml \
+warnings/w32.ml \
+warnings/w32b.ml \
+warnings/w33.ml \
+warnings/w45.ml \
+warnings/w47_inline.ml \
+warnings/w50.ml \
+warnings/w51_bis.ml \
+warnings/w53.ml \
+warnings/w54.ml \
+warnings/w55.ml \
+warnings/w59.ml \
+warnings/w60.ml \
+warnings/w68.ml \
+"
+
+# These tests have to be translated without extra blank lines in order
+# to preserve at the same time line numbers and the position of EOF
+TESTS_COMPACT="
+parse-errors/unclosed_class_signature.mli \
+parse-errors/unclosed_class_simpl_expr1.ml \
+parse-errors/unclosed_class_simpl_expr2.ml \
+parse-errors/unclosed_class_simpl_expr3.ml \
+parse-errors/unclosed_object.ml \
+parse-errors/unclosed_paren_module_expr1.ml \
+parse-errors/unclosed_paren_module_expr2.ml \
+parse-errors/unclosed_paren_module_expr3.ml \
+parse-errors/unclosed_paren_module_expr4.ml \
+parse-errors/unclosed_paren_module_expr5.ml \
+parse-errors/unclosed_paren_module_type.mli \
+parse-errors/unclosed_sig.mli \
+parse-errors/unclosed_simple_expr.ml \
+parse-errors/unclosed_simple_pattern.ml \
+parse-errors/unclosed_struct.ml \
+parsing/arrow_ambiguity.ml \
+"
+
+# These tests have to be translated in `chars` mode to preserve char offsets
+TESTS_CHARS="
+formatting/test_locations.ml \
+parsetree/locations_test.ml \
+parsing/attributes.ml \
+parsing/extensions.ml \
+parsing/hash_ambiguity.ml \
+parsing/int_and_float_with_modifier.ml \
+parsing/pr6865.ml \
+parsing/quotedextensions.ml \
+parsing/shortcut_ext_attr.ml \
+tool-ocamlc-stop-after/stop_after_parsing_impl.ml \
+tool-ocamlc-stop-after/stop_after_parsing_intf.mli \
+tool-ocamlc-stop-after/stop_after_typing_impl.ml \
+"
+
+for f in $TESTS_COMMENTS; do
+ echo comments: $f
+ ff="testsuite/tests/$f"
+ echo "$ff:1.1: warning: contains comments, needs to be done by hand"
+done
+
+for f in $TESTS_PLAIN; do
+ echo plain: $f
+ ff="testsuite/tests/$f"
+ ocamltest/ocamltest -translate -compact ../trunk/$ff >$ff
+done
+
+for f in $TESTS_LINES; do
+ echo lines: $f
+ ff="testsuite/tests/$f"
+ ocamltest/ocamltest -translate -compact -keep-lines ../trunk/$ff >$ff
+done
+
+for f in $TESTS_COMPACT; do
+ echo compact: $f
+ ff="testsuite/tests/$f"
+ ocamltest/ocamltest -translate -compact ../trunk/$ff >$ff
+done
+
+for f in $TESTS_CHARS; do
+ echo chars: $f
+ ff="testsuite/tests/$f"
+ ocamltest/ocamltest -translate -compact -keep-chars ../trunk/$ff >$ff
+done
+
+N=$(echo $TESTS_COMMENTS $TESTS_PLAIN $TESTS_COMPACT $TESTS_LINES $TESTS_CHARS \
+ | wc -w)
+if [ $N -ne 1328 ]; then
+ printf "Error: wrong number of test files (%d should be 1328)\n" $N
+ exit 5
+fi
diff --git a/typing/ctype.ml b/typing/ctype.ml
index 8cebcf1d68..bec19ae528 100644
--- a/typing/ctype.ml
+++ b/typing/ctype.ml
@@ -307,6 +307,11 @@ let can_assume_injective () =
| Expression | Subst -> false
| Pattern { assume_injective } -> assume_injective
+let in_counterexample () =
+ match !umode with
+ | Expression | Subst -> false
+ | Pattern { allow_recursive_equations } -> allow_recursive_equations
+
let allow_recursive_equations () =
!Clflags.recursive_types
|| match !umode with
@@ -1210,20 +1215,22 @@ let instance_list schl =
For_copy.with_scope (fun copy_scope ->
List.map (fun t -> copy copy_scope t) schl)
-let reified_var_counter = ref Vars.empty
-let reset_reified_var_counter () =
- reified_var_counter := Vars.empty
-
-(* names given to new type constructors.
- Used for existential types and
- local constraints *)
-let get_new_abstract_name s =
- let index =
- try Vars.find s !reified_var_counter + 1
- with Not_found -> 0 in
- reified_var_counter := Vars.add s index !reified_var_counter;
- if index = 0 && s <> "" && s.[String.length s - 1] <> '$' then s else
- Printf.sprintf "%s%d" s index
+(* Create unique names to new type constructors.
+ Used for existential types and local constraints. *)
+let get_new_abstract_name env s =
+ (* unique names are needed only for error messages *)
+ if in_counterexample () then s else
+ let name index =
+ if index = 0 && s <> "" && s.[String.length s - 1] <> '$' then s else
+ Printf.sprintf "%s%d" s index
+ in
+ let check index =
+ match Env.find_type_by_name (Longident.Lident (name index)) env with
+ | _ -> false
+ | exception Not_found -> true
+ in
+ let index = Misc.find_first_mono check in
+ name index
let new_local_type ?(loc = Location.none) ?manifest_and_scope () =
let manifest, expansion_scope =
@@ -1267,7 +1274,7 @@ let instance_constructor existential_treatment cstr =
let decl = new_local_type () in
let name = existential_name cstr existential in
let (id, new_env) =
- Env.enter_type (get_new_abstract_name name) decl !env
+ Env.enter_type (get_new_abstract_name !env name) decl !env
~scope:fresh_constr_scope in
env := new_env;
let to_unify = newty (Tconstr (Path.Pident id,[],ref Mnil)) in
@@ -2163,7 +2170,7 @@ let reify env t =
let name = match name with Some s -> "$'"^s | _ -> "$" in
let decl = new_local_type () in
let (id, new_env) =
- Env.enter_type (get_new_abstract_name name) decl !env
+ Env.enter_type (get_new_abstract_name !env name) decl !env
~scope:fresh_constr_scope in
let path = Path.Pident id in
let t = newty2 ~level:lev (Tconstr (path,[],ref Mnil)) in
@@ -5038,69 +5045,108 @@ let rec arity ty =
| _ -> 0
(* Check for non-generalizable type variables *)
-exception Nongen
-let visited = ref TypeSet.empty
-
-let rec nongen_schema_rec env ty =
- if TypeSet.mem ty !visited then () else begin
- visited := TypeSet.add ty !visited;
- match get_desc ty with
- Tvar _ when get_level ty <> generic_level ->
- raise Nongen
- | Tconstr _ ->
- let old = !visited in
- begin try iter_type_expr (nongen_schema_rec env) ty
- with Nongen -> try
- visited := old;
- nongen_schema_rec env (try_expand_head try_expand_safe env ty)
- with Cannot_expand ->
- raise Nongen
- end
- | Tfield(_, kind, t1, t2) ->
- if field_kind_repr kind = Fpublic then
- nongen_schema_rec env t1;
- nongen_schema_rec env t2
- | Tvariant row ->
- iter_row (nongen_schema_rec env) row;
- if not (static_row row) then nongen_schema_rec env (row_more row)
- | _ ->
- iter_type_expr (nongen_schema_rec env) ty
- end
+let add_nongen_vars_in_schema =
+ let rec loop env ((visited, weak_set) as acc) ty =
+ if TypeSet.mem ty visited
+ then acc
+ else begin
+ let visited = TypeSet.add ty visited in
+ match get_desc ty with
+ | Tvar _ when get_level ty <> generic_level ->
+ visited, TypeSet.add ty weak_set
+ | Tconstr _ ->
+ let (_, unexpanded_candidate) as unexpanded_candidate' =
+ fold_type_expr
+ (loop env)
+ (visited, weak_set)
+ ty
+ in
+ (* Using `==` is okay because `loop` will return the original set
+ when it does not change it. Similarly, `TypeSet.add` will return
+ the original set if the element is already present. *)
+ if unexpanded_candidate == weak_set
+ then (visited, weak_set)
+ else begin
+ match
+ loop env (visited, weak_set)
+ (try_expand_head try_expand_safe env ty)
+ with
+ | exception Cannot_expand -> unexpanded_candidate'
+ | expanded_result -> expanded_result
+ end
+ | Tfield(_, kind, t1, t2) ->
+ let visited, weak_set =
+ match field_kind_repr kind with
+ | Fpublic -> loop env (visited, weak_set) t1
+ | _ -> visited, weak_set
+ in
+ loop env (visited, weak_set) t2
+ | Tvariant row ->
+ let visited, weak_set =
+ fold_row (loop env) (visited, weak_set) row
+ in
+ if not (static_row row)
+ then loop env (visited, weak_set) (row_more row)
+ else (visited, weak_set)
+ | _ ->
+ fold_type_expr (loop env) (visited, weak_set) ty
+ end
+ in
+ fun env acc ty ->
+ let _, result = loop env (TypeSet.empty, acc) ty in
+ result
-(* Return whether all variables of type [ty] are generic. *)
-let nongen_schema env ty =
- visited := TypeSet.empty;
- try
- nongen_schema_rec env ty;
- visited := TypeSet.empty;
- false
- with Nongen ->
- visited := TypeSet.empty;
- true
+(* Return all non-generic variables of [ty]. *)
+let nongen_vars_in_schema env ty =
+ let result = add_nongen_vars_in_schema env TypeSet.empty ty in
+ if TypeSet.is_empty result
+ then None
+ else Some result
(* Check that all type variables are generalizable *)
(* Use Env.empty to prevent expansion of recursively defined object types;
cf. typing-poly/poly.ml *)
-let rec nongen_class_type = function
- | Cty_constr (_, params, _) ->
- List.exists (nongen_schema Env.empty) params
- | Cty_signature sign ->
- nongen_schema Env.empty sign.csig_self
- || nongen_schema Env.empty sign.csig_self_row
- || Meths.exists
- (fun _ (_, _, ty) -> nongen_schema Env.empty ty)
- sign.csig_meths
- || Vars.exists
- (fun _ (_, _, ty) -> nongen_schema Env.empty ty)
- sign.csig_vars
- | Cty_arrow (_, ty, cty) ->
- nongen_schema Env.empty ty
- || nongen_class_type cty
+let nongen_class_type =
+ let add_nongen_vars_in_schema' ty weak_set =
+ add_nongen_vars_in_schema Env.empty weak_set ty
+ in
+ let add_nongen_vars_in_schema_fold fold m weak_set =
+ let f _key (_,_,ty) weak_set =
+ add_nongen_vars_in_schema Env.empty weak_set ty
+ in
+ fold f m weak_set
+ in
+ let rec nongen_class_type cty weak_set =
+ match cty with
+ | Cty_constr (_, params, _) ->
+ List.fold_left
+ (add_nongen_vars_in_schema Env.empty)
+ weak_set
+ params
+ | Cty_signature sign ->
+ weak_set
+ |> add_nongen_vars_in_schema' sign.csig_self
+ |> add_nongen_vars_in_schema' sign.csig_self_row
+ |> add_nongen_vars_in_schema_fold Meths.fold sign.csig_meths
+ |> add_nongen_vars_in_schema_fold Vars.fold sign.csig_vars
+ | Cty_arrow (_, ty, cty) ->
+ add_nongen_vars_in_schema' ty weak_set
+ |> nongen_class_type cty
+ in
+ nongen_class_type
let nongen_class_declaration cty =
- List.exists (nongen_schema Env.empty) cty.cty_params
- || nongen_class_type cty.cty_type
-
+ List.fold_left
+ (add_nongen_vars_in_schema Env.empty)
+ TypeSet.empty
+ cty.cty_params
+ |> nongen_class_type cty.cty_type
+
+let nongen_vars_in_class_declaration cty =
+ let result = nongen_class_declaration cty in
+ if TypeSet.is_empty result
+ then None
+ else Some result
(* Normalize a type before printing, saving... *)
(* Cannot use mark_type because deep_occur uses it too *)
diff --git a/typing/ctype.mli b/typing/ctype.mli
index 0806250ebd..d252f8a622 100644
--- a/typing/ctype.mli
+++ b/typing/ctype.mli
@@ -414,13 +414,12 @@ val nondep_cltype_declaration:
val is_contractive: Env.t -> Path.t -> bool
val normalize_type: type_expr -> unit
-val nongen_schema: Env.t -> type_expr -> bool
- (* Check whether the given type scheme contains no non-generic
- type variables *)
+val nongen_vars_in_schema: Env.t -> type_expr -> Btype.TypeSet.t option
+ (* Return any non-generic variables in the type scheme *)
-val nongen_class_declaration: class_declaration -> bool
- (* Check whether the given class type contains no non-generic
- type variables. Uses the empty environment. *)
+val nongen_vars_in_class_declaration:class_declaration -> Btype.TypeSet.t option
+ (* Return any non-generic variables in the class type.
+ Uses the empty environment. *)
type variable_kind = Row_variable | Type_variable
type closed_class_failure = {
@@ -448,7 +447,6 @@ val collapse_conj_params: Env.t -> type_expr list -> unit
val get_current_level: unit -> int
val wrap_trace_gadt_instances: Env.t -> ('a -> 'b) -> 'a -> 'b
-val reset_reified_var_counter: unit -> unit
val immediacy : Env.t -> type_expr -> Type_immediacy.t
diff --git a/typing/parmatch.ml b/typing/parmatch.ml
index 138e9cea44..afb9f10777 100644
--- a/typing/parmatch.ml
+++ b/typing/parmatch.ml
@@ -2312,52 +2312,17 @@ let pattern_stable_vars ns p =
(* All identifier paths that appear in an expression that occurs
as a clause right hand side or guard.
-
- The function is rather complex due to the compilation of
- unpack patterns by introducing code in rhs expressions
- and **guards**.
-
- For pattern (module M:S) -> e the code is
- let module M_mod = unpack M .. in e
-
- Hence M is "free" in e iff M_mod is free in e.
-
- Not doing so will yield excessive warning in
- (module (M:S) } ...) when true -> ....
- as M is always present in
- let module M_mod = unpack M .. in true
*)
let all_rhs_idents exp =
let ids = ref Ident.Set.empty in
-(* Very hackish, detect unpack pattern compilation
- and perform "indirect check for them" *)
- let is_unpack exp =
- List.exists
- (fun attr -> attr.Parsetree.attr_name.txt = "#modulepat")
- exp.exp_attributes in
let open Tast_iterator in
let expr_iter iter exp =
- (match exp.exp_desc with
- | Texp_ident (path, _lid, _descr) ->
+ match exp.exp_desc with
+ | Texp_ident (path, _lid, _descr) ->
List.iter (fun id -> ids := Ident.Set.add id !ids) (Path.heads path)
- (* Use default iterator methods for rest of match.*)
- | _ -> Tast_iterator.default_iterator.expr iter exp);
-
- if is_unpack exp then begin match exp.exp_desc with
- | Texp_letmodule
- (id_mod,_,_,
- {mod_desc=
- Tmod_unpack ({exp_desc=Texp_ident (Path.Pident id_exp,_,_)},_)},
- _) ->
- assert (Ident.Set.mem id_exp !ids) ;
- begin match id_mod with
- | Some id_mod when not (Ident.Set.mem id_mod !ids) ->
- ids := Ident.Set.remove id_exp !ids
- | _ -> ()
- end
- | _ -> assert false
- end
+ (* Use default iterator methods for rest of match.*)
+ | _ -> Tast_iterator.default_iterator.expr iter exp
in
let iterator = {Tast_iterator.default_iterator with expr = expr_iter} in
iterator.expr iterator exp;
diff --git a/typing/printtyp.ml b/typing/printtyp.ml
index b14b4feab8..42b11a4d21 100644
--- a/typing/printtyp.ml
+++ b/typing/printtyp.ml
@@ -1123,7 +1123,7 @@ let rec tree_of_typexp mode ty =
let tpath = tree_of_best_type_path p p' in
Otyp_constr (tpath, tree_of_typlist mode tyl')
| Tvariant row ->
- let Row {fields; name; closed} = row_repr row in
+ let Row {fields; name; closed; _} = row_repr row in
let fields =
if closed then
List.filter (fun (_, f) -> row_field_repr f <> Rabsent)
@@ -1281,9 +1281,11 @@ let shared_type_scheme ppf ty =
prepare_type ty;
typexp Type_scheme ppf ty
+let prepared_type_scheme ppf ty = typexp Type_scheme ppf ty
+
let type_scheme ppf ty =
prepare_for_printing [ty];
- typexp Type_scheme ppf ty
+ prepared_type_scheme ppf ty
let type_path ppf p =
let (p', s) = best_type_path p in
diff --git a/typing/printtyp.mli b/typing/printtyp.mli
index eaa3599183..838a54f362 100644
--- a/typing/printtyp.mli
+++ b/typing/printtyp.mli
@@ -119,6 +119,7 @@ val prepared_type_expr: formatter -> type_expr -> unit
val constructor_arguments: formatter -> constructor_arguments -> unit
val tree_of_type_scheme: type_expr -> out_type
val type_scheme: formatter -> type_expr -> unit
+val prepared_type_scheme: formatter -> type_expr -> unit
val shared_type_scheme: formatter -> type_expr -> unit
(** [shared_type_scheme] is very similar to [type_scheme], but does not reset
the printing context first. This is intended to be used in cases where the
diff --git a/typing/typeclass.ml b/typing/typeclass.ml
index 3b4c354266..9450e14fde 100644
--- a/typing/typeclass.ml
+++ b/typing/typeclass.ml
@@ -94,7 +94,11 @@ type error =
| Class_match_failure of Ctype.class_match_failure list
| Unbound_val of string
| Unbound_type_var of (formatter -> unit) * Ctype.closed_class_failure
- | Non_generalizable_class of Ident.t * Types.class_declaration
+ | Non_generalizable_class of
+ { id : Ident.t
+ ; clty : Types.class_declaration
+ ; nongen_vars : type_expr list
+ }
| Cannot_coerce_self of type_expr
| Non_collapsable_conjunction of
Ident.t * Types.class_declaration * Errortrace.unification_error
@@ -1171,7 +1175,7 @@ and class_expr_aux cl_num val_env met_env virt self_scope scl =
in
let partial =
let dummy = type_exp val_env (Ast_helper.Exp.unreachable ()) in
- Typecore.check_partial val_env pat.pat_type pat.pat_loc
+ Typecore.check_partial Modules_rejected val_env pat.pat_type pat.pat_loc
[{c_lhs = pat; c_guard = None; c_rhs = dummy}]
in
let cl =
@@ -1716,8 +1720,12 @@ let final_decl env define_class
List.iter Ctype.generalize cl_abbr.type_params;
Option.iter Ctype.generalize cl_abbr.type_manifest;
- if Ctype.nongen_class_declaration clty then
- raise(Error(cl.pci_loc, env, Non_generalizable_class (id, clty)));
+ Ctype.nongen_vars_in_class_declaration clty
+ |> Option.iter (fun vars ->
+ let nongen_vars = Btype.TypeSet.elements vars in
+ raise(Error(cl.pci_loc, env
+ , Non_generalizable_class { id; clty; nongen_vars }));
+ );
begin match
Ctype.closed_class clty.cty_params
@@ -2100,11 +2108,17 @@ let report_error env ppf = function
"@[<v>@[Some type variables are unbound in this type:@;<1 2>%t@]@ \
@[%a@]@]"
printer print_reason reason
- | Non_generalizable_class (id, clty) ->
+ | Non_generalizable_class {id; clty; nongen_vars } ->
+ let[@manual.ref "ss:valuerestriction"] manual_ref = [ 6; 1; 2] in
+ Printtyp.prepare_for_printing nongen_vars;
fprintf ppf
"@[The type of this class,@ %a,@ \
- contains type variables that cannot be generalized@]"
+ contains the non-generalizable type variable(s): %a.@ %a@]"
(Printtyp.class_declaration id) clty
+ (pp_print_list ~pp_sep:(fun f () -> fprintf f ",@ ")
+ Printtyp.prepared_type_scheme) nongen_vars
+ Misc.print_see_manual manual_ref
+
| Cannot_coerce_self ty ->
fprintf ppf
"@[The type of self cannot be coerced to@ \
diff --git a/typing/typeclass.mli b/typing/typeclass.mli
index 4b6f734f8a..b83d56fc02 100644
--- a/typing/typeclass.mli
+++ b/typing/typeclass.mli
@@ -112,7 +112,11 @@ type error =
| Class_match_failure of Ctype.class_match_failure list
| Unbound_val of string
| Unbound_type_var of (formatter -> unit) * Ctype.closed_class_failure
- | Non_generalizable_class of Ident.t * Types.class_declaration
+ | Non_generalizable_class of
+ { id : Ident.t
+ ; clty : Types.class_declaration
+ ; nongen_vars : type_expr list
+ }
| Cannot_coerce_self of type_expr
| Non_collapsable_conjunction of
Ident.t * Types.class_declaration * Errortrace.unification_error
diff --git a/typing/typecore.ml b/typing/typecore.ml
index 220382a1d7..16085f54ea 100644
--- a/typing/typecore.ml
+++ b/typing/typecore.ml
@@ -40,12 +40,6 @@ type type_expected = {
explanation: type_forcing_context option;
}
-type to_unpack = {
- tu_name: string Location.loc;
- tu_loc: Location.t;
- tu_uid: Uid.t
-}
-
module Datatype_kind = struct
type t = Record | Variant
@@ -107,6 +101,7 @@ type error =
| Apply_non_function of {
funct : Typedtree.expression;
func_ty : type_expr;
+ res_ty : type_expr;
previous_arg_loc : Location.t;
extra_arg_loc : Location.t;
}
@@ -231,6 +226,15 @@ type recarg =
| Required
| Rejected
+(* Whether or not patterns of the form (module M) are accepted. (If they are,
+ the idents will be created at the provided scope.) When module patterns are
+ allowed, the caller should take care to check that the introduced module
+ bindings' types don't escape their scope; see the callsites in [type_let]
+ and [type_cases] for examples.
+*)
+type module_patterns_restriction =
+ | Modules_allowed of { scope : int }
+ | Modules_rejected
let mk_expected ?explanation ty = { ty; explanation; }
@@ -454,11 +458,16 @@ type pattern_variable =
}
type module_variable =
- string loc * Location.t
+ {
+ mv_id: Ident.t;
+ mv_name: string Location.loc;
+ mv_loc: Location.t;
+ mv_uid: Uid.t
+ }
let pattern_variables = ref ([] : pattern_variable list)
let pattern_force = ref ([] : (unit -> unit) list)
-let allow_modules = ref false
+let allow_modules = ref Modules_rejected
let module_variables = ref ([] : module_variable list)
let reset_pattern allow =
pattern_variables := [];
@@ -482,19 +491,33 @@ let enter_variable ?(is_module=false) ?(is_as_variable=false) loc name ty
if List.exists (fun {pv_id; _} -> Ident.name pv_id = name.txt)
!pattern_variables
then raise(Error(loc, Env.empty, Multiply_bound_variable name.txt));
- let id = Ident.create_local name.txt in
+ let id =
+ if is_module then begin
+ (* Unpack patterns result in both a module declaration and a value
+ variable of the same name being entered into the environment. (The
+ module is via [module_variables], and the variable is via
+ [pattern_variables].) *)
+ match !allow_modules with
+ | Modules_rejected ->
+ raise (Error (loc, Env.empty, Modules_not_allowed));
+ | Modules_allowed { scope } ->
+ let id = Ident.create_scoped name.txt ~scope in
+ module_variables :=
+ { mv_id = id;
+ mv_name = name;
+ mv_loc = loc;
+ mv_uid = Uid.mk ~current_unit:(Env.get_unit_name ());
+ } :: !module_variables;
+ id
+ end else
+ Ident.create_local name.txt
+ in
pattern_variables :=
{pv_id = id;
pv_type = ty;
pv_loc = loc;
pv_as_var = is_as_variable;
pv_attributes = attrs} :: !pattern_variables;
- if is_module then begin
- (* Note: unpack patterns enter a variable of the same name *)
- if not !allow_modules then
- raise (Error (loc, Env.empty, Modules_not_allowed));
- module_variables := (name, loc) :: !module_variables
- end;
id
let sort_pattern_variables vs =
@@ -1348,7 +1371,7 @@ type 'case_pattern half_typed_case =
untyped_case: Parsetree.case;
branch_env: Env.t;
pat_vars: pattern_variable list;
- unpacks: module_variable list;
+ module_vars: module_variable list;
contains_gadt: bool; }
let rec has_literal_pattern p = match p.ppat_desc with
@@ -1502,6 +1525,9 @@ and type_pat_aux
pat_env = !env }
| Some s ->
let v = { name with txt = s } in
+ (* We're able to pass ~is_module:true here without an error because
+ [Ppat_unpack] is a case identified by [may_contain_modules]. See
+ the comment on [may_contain_modules]. *)
let id = enter_variable loc v t ~is_module:true sp.ppat_attributes in
rvp {
pat_desc = Tpat_var (id, v);
@@ -1840,18 +1866,50 @@ let add_pattern_variables ?check ?check_as env pv =
)
pv env
-let type_pattern category ~lev env spat expected_ty =
- reset_pattern true;
+let add_module_variables env module_variables =
+ List.fold_left (fun env { mv_id; mv_loc; mv_name; mv_uid } ->
+ Typetexp.TyVarEnv.with_local_scope begin fun () ->
+ (* This code is parallel to the typing of Pexp_letmodule. However we
+ omit the call to [Mtype.lower_nongen] as it's not necessary here.
+ For Pexp_letmodule, the call to [type_module] is done in a raised
+ level and so needs to be modified to have the correct, outer level.
+ Here, on the other hand, we're calling [type_module] outside the
+ raised level, so there's no extra step to take.
+ *)
+ let modl, md_shape =
+ !type_module env
+ Ast_helper.(
+ Mod.unpack ~loc:mv_loc
+ (Exp.ident ~loc:mv_name.loc
+ (mkloc (Longident.Lident mv_name.txt)
+ mv_name.loc)))
+ in
+ let pres =
+ match modl.mod_type with
+ | Mty_alias _ -> Mp_absent
+ | _ -> Mp_present
+ in
+ let md =
+ { md_type = modl.mod_type; md_attributes = [];
+ md_loc = mv_name.loc;
+ md_uid = mv_uid; }
+ in
+ Env.add_module_declaration ~shape:md_shape ~check:true mv_id pres md env
+ end
+ ) env module_variables
+
+let type_pattern category ~lev env spat expected_ty allow_modules =
+ reset_pattern allow_modules;
let new_env = ref env in
let pat = type_pat category ~lev new_env spat expected_ty in
let pvs = get_ref pattern_variables in
- let unpacks = get_ref module_variables in
- (pat, !new_env, get_ref pattern_force, pvs, unpacks)
+ let mvs = get_ref module_variables in
+ (pat, !new_env, get_ref pattern_force, pvs, mvs)
let type_pattern_list
- category no_existentials env spatl expected_tys allow
+ category no_existentials env spatl expected_tys allow_modules
=
- reset_pattern allow;
+ reset_pattern allow_modules;
let new_env = ref env in
let type_pat (attrs, pat) ty =
Builtin_attributes.warning_scope ~ppwarning:false attrs
@@ -1861,17 +1919,11 @@ let type_pattern_list
in
let patl = List.map2 type_pat spatl expected_tys in
let pvs = get_ref pattern_variables in
- let unpacks =
- List.map (fun (name, loc) ->
- {tu_name = name; tu_loc = loc;
- tu_uid = Uid.mk ~current_unit:(Env.get_unit_name ())}
- ) (get_ref module_variables)
- in
- let new_env = add_pattern_variables !new_env pvs in
- (patl, new_env, get_ref pattern_force, pvs, unpacks)
+ let mvs = get_ref module_variables in
+ (patl, !new_env, get_ref pattern_force, pvs, mvs)
let type_class_arg_pattern cl_num val_env met_env l spat =
- reset_pattern false;
+ reset_pattern Modules_rejected;
let nv = newvar () in
let pat =
type_pat Value ~no_existentials:In_class_args (ref val_env) spat nv in
@@ -1918,7 +1970,7 @@ let type_class_arg_pattern cl_num val_env met_env l spat =
let type_self_pattern env spat =
let open Ast_helper in
let spat = Pat.mk(Ppat_alias (spat, mknoloc "selfpat-*")) in
- reset_pattern false;
+ reset_pattern Modules_rejected;
let nv = newvar() in
let pat =
type_pat Value ~no_existentials:In_self_pattern (ref env) spat nv in
@@ -2222,7 +2274,8 @@ let check_counter_example_pat ~counter_example_args
(* this function is passed to Partial.parmatch
to type check gadt nonexhaustiveness *)
-let partial_pred ~lev ~splitting_mode ?(explode=0) env expected_ty p =
+let partial_pred ~lev ~allow_modules ~splitting_mode ?(explode=0)
+ env expected_ty p =
let env = ref env in
let state = save_state env in
let counter_example_args =
@@ -2231,7 +2284,7 @@ let partial_pred ~lev ~splitting_mode ?(explode=0) env expected_ty p =
explosion_fuel = explode;
} in
try
- reset_pattern true;
+ reset_pattern allow_modules;
let typed_p =
check_counter_example_pat ~lev ~counter_example_args env p expected_ty in
set_state state env;
@@ -2241,17 +2294,22 @@ let partial_pred ~lev ~splitting_mode ?(explode=0) env expected_ty p =
set_state state env;
None
-let check_partial ?(lev=get_current_level ()) env expected_ty loc cases =
+let check_partial
+ ?(lev=get_current_level ()) allow_modules env expected_ty loc cases
+ =
let explode = match cases with [_] -> 5 | _ -> 0 in
let splitting_mode = Refine_or {inside_nonsplit_or = false} in
Parmatch.check_partial
- (partial_pred ~lev ~splitting_mode ~explode env expected_ty) loc cases
+ (partial_pred ~lev ~allow_modules ~splitting_mode ~explode env expected_ty)
+ loc cases
-let check_unused ?(lev=get_current_level ()) env expected_ty cases =
+let check_unused
+ ?(lev=get_current_level ()) allow_modules env expected_ty cases
+ =
Parmatch.check_unused
(fun refute pat ->
match
- partial_pred ~lev ~splitting_mode:Backtrack_or ~explode:5
+ partial_pred ~lev ~allow_modules ~splitting_mode:Backtrack_or ~explode:5
env expected_ty pat
with
Some pat' when refute ->
@@ -2655,6 +2713,19 @@ let check_partial_application ~statement exp =
| _ ->
doit ()
+let pattern_needs_partial_application_check p =
+ let rec check : type a. a general_pattern -> bool = fun p ->
+ not (List.exists (function (Tpat_constraint _, _, _) -> true | _ -> false)
+ p.pat_extra) &&
+ match p.pat_desc with
+ | Tpat_any -> true
+ | Tpat_exception _ -> true
+ | Tpat_or (p1, p2, _) -> check p1 && check p2
+ | Tpat_value p -> check (p :> value general_pattern)
+ | _ -> false
+ in
+ check p
+
(* Check that a type is generalizable at some level *)
let generalizable level ty =
let rec check ty =
@@ -2738,6 +2809,22 @@ let may_contain_gadts p =
| _ -> false)
p
+(* There are various things that we need to do in presence of module patterns
+ that aren't required if there are none. Most notably, we need to ensure the
+ modules are entered at the appropriate scope. The caller should use
+ [may_contain_modules] as an indication to set up the proper scope handling
+ code (via [allow_modules]) to permit module patterns.
+ The class of patterns identified here should stay in sync with the patterns
+ whose typing involves [enter_variable ~is_module:true], as these calls
+ will error if the scope handling isn't set up.
+*)
+let may_contain_modules p =
+ exists_ppat
+ (function
+ | {ppat_desc = Ppat_unpack _} -> true
+ | _ -> false)
+ p
+
let check_absent_variant env =
iter_general_pattern { f = fun (type k) (pat : k general_pattern) ->
match pat.pat_desc with
@@ -2858,6 +2945,45 @@ let may_lower_contravariant_then_generalize env exp =
if maybe_expansive exp then lower_contravariant env exp.exp_type;
generalize exp.exp_type
+(* value binding elaboration *)
+
+let vb_exp_constraint {pvb_expr=expr; pvb_pat=pat; pvb_constraint=ct; _ } =
+ let open Ast_helper in
+ match ct with
+ | None -> expr
+ | Some {locally_abstract_univars=[]; typ } ->
+ begin match typ.ptyp_desc with
+ | Ptyp_poly _ -> expr
+ | _ ->
+ let loc = { expr.pexp_loc with Location.loc_ghost = true } in
+ Exp.constraint_ ~loc expr typ
+ end
+ | Some {locally_abstract_univars;typ} ->
+ let loc_start = pat.ppat_loc.Location.loc_start in
+ let loc = { expr.pexp_loc with loc_start; loc_ghost=true } in
+ let expr = Exp.constraint_ ~loc expr typ in
+ List.fold_right (Exp.newtype ~loc) locally_abstract_univars expr
+
+let vb_pat_constraint ({pvb_pat=pat; pvb_expr = exp; _ } as vb) =
+ vb.pvb_attributes,
+ let open Ast_helper in
+ match vb.pvb_constraint, pat.ppat_desc, exp.pexp_desc with
+ | Some {locally_abstract_univars=[]; typ }, _, _ ->
+ Pat.constraint_ ~loc:{pat.ppat_loc with Location.loc_ghost=true} pat typ
+ | Some {locally_abstract_univars; typ }, _, _ ->
+ let varified = Typ.varify_constructors locally_abstract_univars typ in
+ let t = Typ.poly ~loc:typ.ptyp_loc locally_abstract_univars varified in
+ let loc_end = typ.ptyp_loc.Location.loc_end in
+ let loc = { pat.ppat_loc with loc_end; loc_ghost=true } in
+ Pat.constraint_ ~loc pat t
+ | None, (Ppat_any | Ppat_constraint _), _ -> pat
+ | None, _, Pexp_coerce (_, _, sty)
+ | None, _, Pexp_constraint (_, sty) when !Clflags.principal ->
+ (* propagate type annotation to pattern,
+ to allow it to be generalized in -principal mode *)
+ Pat.constraint_ ~loc:{pat.ppat_loc with Location.loc_ghost=true} pat sty
+ | _ -> pat
+
let rec type_exp ?recarg env sexp =
(* We now delegate everything to type_expect *)
type_expect ?recarg env sexp (mk_expected (newvar ()))
@@ -2959,9 +3085,10 @@ and type_expect_
exp_attributes = sexp.pexp_attributes;
exp_env = env }
| Pexp_let(Nonrecursive,
- [{pvb_pat=spat; pvb_expr=sval; pvb_attributes=[]}], sbody)
+ [{pvb_pat=spat; pvb_attributes=[]; _ } as vb], sbody)
when may_contain_gadts spat ->
- (* TODO: allow non-empty attributes? *)
+ (* TODO: allow non-empty attributes? *)
+ let sval = vb_exp_constraint vb in
type_expect ?in_function env
{sexp with
pexp_desc = Pexp_match (sval, [Ast_helper.Exp.case spat sbody])}
@@ -2971,12 +3098,64 @@ and type_expect_
if rec_flag = Recursive then In_rec
else if List.compare_length_with spat_sexp_list 1 > 0 then In_group
else With_attributes in
- let (pat_exp_list, new_env, unpacks) =
- type_let existential_context env rec_flag spat_sexp_list true in
- let body = type_unpacks new_env unpacks sbody ty_expected_explained in
- let () =
- if rec_flag = Recursive then
- check_recursive_bindings env pat_exp_list
+ let may_contain_modules =
+ List.exists (fun pvb -> may_contain_modules pvb.pvb_pat) spat_sexp_list
+ in
+ let outer_level = get_current_level () in
+ let (pat_exp_list, body, _new_env) =
+ (* If the patterns contain module unpacks, there is a possibility that
+ the types of the let body or bound expressions mention types
+ introduced by those unpacks. The below code checks for scope escape
+ via both of these pathways (body, bound expressions).
+ *)
+ with_local_level_if may_contain_modules begin fun () ->
+ let allow_modules =
+ if may_contain_modules
+ then
+ let scope = create_scope () in
+ Modules_allowed { scope }
+ else Modules_rejected
+ in
+ let (pat_exp_list, new_env) =
+ type_let existential_context env rec_flag spat_sexp_list
+ allow_modules
+ in
+ let body = type_expect new_env sbody ty_expected_explained in
+ let () =
+ if rec_flag = Recursive then
+ check_recursive_bindings env pat_exp_list
+ in
+ (* The "bound expressions" component of the scope escape check.
+
+ This kind of scope escape is relevant only for recursive
+ module definitions.
+ *)
+ if rec_flag = Recursive && may_contain_modules then begin
+ List.iter
+ (fun vb ->
+ (* [type_let] already generalized bound expressions' types
+ in-place. We first take an instance before checking scope
+ escape at the outer level to avoid losing generality of
+ types added to [new_env].
+ *)
+ let bound_exp = vb.vb_expr in
+ generalize_structure_exp bound_exp;
+ let bound_exp_type = Ctype.instance bound_exp.exp_type in
+ let loc = proper_exp_loc bound_exp in
+ let outer_var = newvar2 outer_level in
+ (* Checking unification within an environment extended with the
+ module bindings allows us to correctly accept more programs.
+ This environment allows unification to identify more cases
+ where a type introduced by the module is equal to a type
+ introduced at an outer scope. *)
+ unify_exp_types loc new_env bound_exp_type outer_var)
+ pat_exp_list
+ end;
+ (pat_exp_list, body, new_env)
+ end
+ ~post:(fun (_pat_exp_list, body, new_env) ->
+ (* The "body" component of the scope escape check. *)
+ unify_exp new_env body (newvar ()))
in
re {
exp_desc = Texp_let(rec_flag, pat_exp_list, body);
@@ -2988,12 +3167,13 @@ and type_expect_
assert(is_optional l); (* default allowed only with optional argument *)
let open Ast_helper in
let default_loc = default.pexp_loc in
+ let default_ghost = {default.pexp_loc with loc_ghost = true} in
let scases = [
Exp.case
- (Pat.construct ~loc:default_loc
+ (Pat.construct ~loc:default_ghost
(mknoloc (Longident.(Ldot (Lident "*predef*", "Some"))))
- (Some ([], Pat.var ~loc:default_loc (mknoloc "*sth*"))))
- (Exp.ident ~loc:default_loc (mknoloc (Longident.Lident "*sth*")));
+ (Some ([], Pat.var ~loc:default_ghost (mknoloc "*sth*"))))
+ (Exp.ident ~loc:default_ghost (mknoloc (Longident.Lident "*sth*")));
Exp.case
(Pat.construct ~loc:default_loc
@@ -3083,6 +3263,10 @@ and type_expect_
let cases, partial =
type_cases Computation env
arg.exp_type ty_expected_explained true loc caselist in
+ if
+ List.for_all (fun c -> pattern_needs_partial_application_check c.c_lhs)
+ cases
+ then check_partial_application ~statement:false arg;
re {
exp_desc = Texp_match(arg, cases, partial);
exp_loc = loc; exp_extra = [];
@@ -4556,6 +4740,7 @@ and type_application env funct sargs =
raise(Error(funct.exp_loc, env, Apply_non_function {
funct;
func_ty = expand_head env funct.exp_type;
+ res_ty = expand_head env ty_res;
previous_arg_loc;
extra_arg_loc = sarg.pexp_loc; }))
in
@@ -4821,64 +5006,6 @@ and type_statement ?explanation env sexp =
exp
end
-and type_unpacks ?(in_function : (Location.t * type_expr) option)
- env (unpacks : to_unpack list) sbody expected_ty =
- let ty = newvar() (* remember original level *)
- and exp_loc = { sbody.pexp_loc with loc_ghost = true }
- and exp_attributes = [Ast_helper.Attr.mk (mknoloc "#modulepat") (PStr [])]
- in
- let rec fold_unpacks env = function
- | [] ->
- (* ideally, we should catch Expr_type_clash errors
- in type_expect triggered by escaping identifiers from the local
- module and refine them into Scoping_let_module errors
- *)
- type_expect ?in_function env sbody expected_ty
- | unpack :: rem ->
- with_local_level begin fun () ->
- let name, modl, pres, id, extended_env =
- Typetexp.TyVarEnv.with_local_scope begin fun () ->
- let name = unpack.tu_name in
- let modl, md_shape =
- !type_module env
- Ast_helper.(
- Mod.unpack ~loc:unpack.tu_loc
- (Exp.ident ~loc:name.loc
- (mkloc (Longident.Lident name.txt) name.loc)))
- in
- Mtype.lower_nongen (get_level ty) modl.mod_type;
- let pres =
- match modl.mod_type with
- | Mty_alias _ -> Mp_absent
- | _ -> Mp_present
- in
- let scope = create_scope () in
- let md =
- { md_type = modl.mod_type; md_attributes = [];
- md_loc = name.loc;
- md_uid = unpack.tu_uid; }
- in
- let (id, extended_env) =
- Env.enter_module_declaration ~scope ~shape:md_shape
- name.txt pres md env
- in
- name, modl, pres, id, extended_env
- end
- in
- let body = fold_unpacks extended_env rem in
- Ctype.unify_var extended_env ty body.exp_type;
- re {
- exp_desc = Texp_letmodule(Some id, { name with txt = Some name.txt },
- pres, modl, body);
- exp_loc;
- exp_attributes;
- exp_extra = [];
- exp_type = ty;
- exp_env = env }
- end
- in
- fold_unpacks env unpacks
-
(* Typing of match cases *)
and type_cases
: type k . k pattern_category ->
@@ -4892,6 +5019,8 @@ and type_cases
let contains_polyvars = List.exists contains_polymorphic_variant patterns in
let erase_either = contains_polyvars && contains_variant_either ty_arg in
let may_contain_gadts = List.exists may_contain_gadts patterns in
+ let may_contain_modules = List.exists may_contain_modules patterns in
+ let create_inner_level = may_contain_gadts || may_contain_modules in
let ty_arg =
if (may_contain_gadts || erase_either) && not !Clflags.principal
then correct_levels ty_arg else ty_arg
@@ -4908,8 +5037,18 @@ and type_cases
| _ -> true
in
let outer_level = get_current_level () in
- with_local_level_iter_if may_contain_gadts begin fun () ->
+ with_local_level_iter_if create_inner_level begin fun () ->
let lev = get_current_level () in
+ let allow_modules =
+ if may_contain_modules
+ then
+ (* The corresponding check for scope escape is done together with
+ the check for GADT-induced existentials by
+ [with_local_level_iter_if create_inner_level].
+ *)
+ Modules_allowed { scope = lev }
+ else Modules_rejected
+ in
let take_partial_instance =
if erase_either
then Some false else None
@@ -4930,8 +5069,8 @@ and type_cases
with_local_level ~post:generalize_structure
(fun () -> instance ?partial:take_partial_instance ty_arg)
in
- let (pat, ext_env, force, pvs, unpacks) =
- type_pattern category ~lev env pc_lhs ty_arg
+ let (pat, ext_env, force, pvs, mvs) =
+ type_pattern category ~lev env pc_lhs ty_arg allow_modules
in
pattern_force := force @ !pattern_force;
{ typed_pat = pat;
@@ -4939,7 +5078,7 @@ and type_cases
untyped_case = case;
branch_env = ext_env;
pat_vars = pvs;
- unpacks;
+ module_vars = mvs;
contains_gadt = contains_gadt (as_comp_pattern category pat); }
end
~post: begin fun htc ->
@@ -4998,7 +5137,8 @@ and type_cases
let ty_res' = instance ty_res in
let cases = with_local_level_if_principal ~post:ignore begin fun () ->
List.map
- (fun { typed_pat = pat; branch_env = ext_env; pat_vars = pvs; unpacks;
+ (fun { typed_pat = pat; branch_env = ext_env;
+ pat_vars = pvs; module_vars = mvs;
untyped_case = {pc_lhs = _; pc_guard; pc_rhs};
contains_gadt; _ } ->
let ext_env =
@@ -5012,12 +5152,7 @@ and type_cases
~check:(fun s -> Warnings.Unused_var_strict s)
~check_as:(fun s -> Warnings.Unused_var s)
in
- let unpacks =
- List.map (fun (name, loc) ->
- {tu_name = name; tu_loc = loc;
- tu_uid = Uid.mk ~current_unit:(Env.get_unit_name ())}
- ) unpacks
- in
+ let ext_env = add_module_variables ext_env mvs in
let ty_expected =
if contains_gadt && not !Clflags.principal then
(* Take a generic copy of [ty_res] again to allow propagation of
@@ -5029,12 +5164,12 @@ and type_cases
| None -> None
| Some scond ->
Some
- (type_unpacks ext_env unpacks scond
+ (type_expect ext_env scond
(mk_expected ~explanation:When_guard Predef.type_bool))
in
let exp =
- type_unpacks ?in_function ext_env
- unpacks pc_rhs (mk_expected ?explanation ty_expected)
+ type_expect ?in_function ext_env
+ pc_rhs (mk_expected ?explanation ty_expected)
in
{
c_lhs = pat;
@@ -5059,7 +5194,7 @@ and type_cases
raise (Error (loc, env, No_value_clauses));
let partial =
if partial_flag then
- check_partial ~lev env ty_arg_check loc val_cases
+ check_partial ~lev allow_modules env ty_arg_check loc val_cases
else
Partial
in
@@ -5068,8 +5203,8 @@ and type_cases
check_absent_variant branch_env (as_comp_pattern category typed_pat)
) half_typed_cases;
with_level_if delayed ~level:lev begin fun () ->
- check_unused ~lev env ty_arg_check val_cases ;
- check_unused ~lev env Predef.type_exn exn_cases ;
+ check_unused ~lev allow_modules env ty_arg_check val_cases ;
+ check_unused ~lev allow_modules env Predef.type_exn exn_cases ;
end;
Parmatch.check_ambiguous_bindings val_cases ;
Parmatch.check_ambiguous_bindings exn_cases
@@ -5087,34 +5222,20 @@ and type_cases
(* Typing of let bindings *)
and type_let ?check ?check_strict
- existential_context env rec_flag spat_sexp_list allow =
- let spatl =
- List.map
- (fun {pvb_pat=spat; pvb_expr=sexp; pvb_attributes=attrs} ->
- attrs,
- match spat.ppat_desc, sexp.pexp_desc with
- (Ppat_any | Ppat_constraint _), _ -> spat
- | _, Pexp_coerce (_, _, sty)
- | _, Pexp_constraint (_, sty) when !Clflags.principal ->
- (* propagate type annotation to pattern,
- to allow it to be generalized in -principal mode *)
- Ast_helper.Pat.constraint_
- ~loc:{spat.ppat_loc with Location.loc_ghost=true}
- spat
- sty
- | _ -> spat)
- spat_sexp_list in
+ existential_context env rec_flag spat_sexp_list allow_modules =
+ let spatl = List.map vb_pat_constraint spat_sexp_list in
let attrs_list = List.map fst spatl in
let is_recursive = (rec_flag = Recursive) in
- let (pat_list, exp_list, new_env, unpacks, _pvs) =
+ let (pat_list, exp_list, new_env, mvs, _pvs) =
with_local_level begin fun () ->
if existential_context = At_toplevel then Typetexp.TyVarEnv.reset ();
- let (pat_list, new_env, force, pvs, unpacks) =
+ let (pat_list, new_env, force, pvs, mvs) =
with_local_level_if_principal begin fun () ->
let nvs = List.map (fun _ -> newvar ()) spatl in
- let (pat_list, _new_env, _force, _pvs, _unpacks as res) =
- type_pattern_list Value existential_context env spatl nvs allow in
+ let (pat_list, _new_env, _force, _pvs, _mvs as res) =
+ type_pattern_list
+ Value existential_context env spatl nvs allow_modules in
(* If recursive, first unify with an approximation of the
expression *)
if is_recursive then
@@ -5144,6 +5265,17 @@ and type_let ?check ?check_strict
List.iter (fun pat -> generalize_structure pat.pat_type) pat_list
end
in
+ (* Note [add_module_variables after checking expressions]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Don't call [add_module_variables] here, because its use of
+ [type_module] will fail until after we have type-checked the expression
+ of the let. Example: [let m : (module S) = ... in let (module M) = m in
+ ...] We learn the signature [S] from the type of [m] in the RHS of the
+ second let, and we need that knowledge for [type_module] to succeed. If
+ we type-checked expressions before patterns, then we could call
+ [add_module_variables] here.
+ *)
+ let new_env = add_pattern_variables new_env pvs in
let pat_list =
List.map
(fun pat -> {pat with pat_type = instance pat.pat_type})
@@ -5153,10 +5285,18 @@ and type_let ?check ?check_strict
List.iter (fun f -> f()) force;
let exp_list =
- let exp_env = if is_recursive then new_env else env in
+ (* See Note [add_module_variables after checking expressions]
+ We can't defer type-checking module variables with recursive
+ definitions, so things like [let rec (module M) = m in ...] always
+ fail, even if the type of [m] is known.
+ *)
+ let exp_env =
+ if is_recursive then add_module_variables new_env mvs else env
+ in
type_let_def_wrap_warnings ?check ?check_strict ~is_recursive
~exp_env ~new_env ~spat_sexp_list ~attrs_list ~pat_list ~pvs
- (fun exp_env {pvb_expr=sexp; pvb_attributes; _} pat ->
+ (fun exp_env ({pvb_attributes; _} as vb) pat ->
+ let sexp = vb_exp_constraint vb in
match get_desc pat.pat_type with
| Tpoly (ty, tl) ->
let vars, ty' =
@@ -5166,21 +5306,13 @@ and type_let ?check ?check_strict
in
let exp =
Builtin_attributes.warning_scope pvb_attributes (fun () ->
- if rec_flag = Recursive then
- type_unpacks exp_env unpacks sexp (mk_expected ty')
- else
- type_expect exp_env sexp (mk_expected ty')
- )
+ type_expect exp_env sexp (mk_expected ty'))
in
exp, Some vars
| _ ->
let exp =
Builtin_attributes.warning_scope pvb_attributes (fun () ->
- if rec_flag = Recursive then
- type_unpacks exp_env unpacks sexp
- (mk_expected pat.pat_type)
- else
- type_expect exp_env sexp (mk_expected pat.pat_type))
+ type_expect exp_env sexp (mk_expected pat.pat_type))
in
exp, None)
in
@@ -5188,13 +5320,13 @@ and type_let ?check ?check_strict
(fun pat (attrs, exp) ->
Builtin_attributes.warning_scope ~ppwarning:false attrs
(fun () ->
- ignore(check_partial env pat.pat_type pat.pat_loc
- [case pat exp])
+ ignore(check_partial allow_modules env pat.pat_type pat.pat_loc
+ [case pat exp] : Typedtree.partial)
)
)
pat_list
(List.map2 (fun (attrs, _) (e, _) -> attrs, e) spatl exp_list);
- (pat_list, exp_list, new_env, unpacks,
+ (pat_list, exp_list, new_env, mvs,
List.map (fun pv -> { pv with pv_type = instance pv.pv_type}) pvs)
end
~post: begin fun (pat_list, exp_list, _, _, pvs) ->
@@ -5241,13 +5373,13 @@ and type_let ?check ?check_strict
| Tpat_alias ({pat_desc=Tpat_any}, _, _) -> ()
| _ -> raise(Error(pat.pat_loc, env, Illegal_letrec_pat)))
l;
- List.iter (function
- | {vb_pat = {pat_desc = Tpat_any; pat_extra; _}; vb_expr; _} ->
- if not (List.exists (function (Tpat_constraint _, _, _) -> true
- | _ -> false) pat_extra) then
- check_partial_application ~statement:false vb_expr
- | _ -> ()) l;
- (l, new_env, unpacks)
+ List.iter (fun vb ->
+ if pattern_needs_partial_application_check vb.vb_pat then
+ check_partial_application ~statement:false vb.vb_expr
+ ) l;
+ (* See Note [add_module_variables after checking expressions] *)
+ let new_env = add_module_variables new_env mvs in
+ (l, new_env)
and type_let_def_wrap_warnings
?(check = fun s -> Warnings.Unused_var s)
@@ -5504,18 +5636,18 @@ and type_send env loc explanation e met =
(* Typing of toplevel bindings *)
let type_binding env rec_flag spat_sexp_list =
- let (pat_exp_list, new_env, _unpacks) =
+ let (pat_exp_list, new_env) =
type_let
~check:(fun s -> Warnings.Unused_value_declaration s)
~check_strict:(fun s -> Warnings.Unused_value_declaration s)
At_toplevel
- env rec_flag spat_sexp_list false
+ env rec_flag spat_sexp_list Modules_rejected
in
(pat_exp_list, new_env)
let type_let existential_ctx env rec_flag spat_sexp_list =
- let (pat_exp_list, new_env, _unpacks) =
- type_let existential_ctx env rec_flag spat_sexp_list false in
+ let (pat_exp_list, new_env) =
+ type_let existential_ctx env rec_flag spat_sexp_list Modules_rejected in
(pat_exp_list, new_env)
(* Typing of toplevel expressions *)
@@ -5655,7 +5787,7 @@ let report_this_function ppf funct =
else Format.fprintf ppf "This function"
let report_too_many_arg_error ~funct ~func_ty ~previous_arg_loc
- ~extra_arg_loc loc =
+ ~extra_arg_loc ~returns_unit loc =
let open Location in
let cnum_offset off (pos : Lexing.position) =
{ pos with pos_cnum = pos.pos_cnum + off }
@@ -5673,8 +5805,10 @@ let report_too_many_arg_error ~funct ~func_ty ~previous_arg_loc
loc_end = cnum_offset ~+1 arg_end;
loc_ghost = false }
in
- let sub = [
- msg ~loc:tail_loc "@{<hint>Hint@}: Did you forget a ';'?";
+ let hint_semicolon = if returns_unit then [
+ msg ~loc:tail_loc "@{<hint>Hint@}: Did you forget a ';'?";
+ ] else [] in
+ let sub = hint_semicolon @ [
msg ~loc:extra_arg_loc "This extra argument is not expected.";
] in
errorf ~loc:app_loc ~sub
@@ -5732,11 +5866,17 @@ let report_error ~loc env = function
fprintf ppf "This expression has type")
(function ppf ->
fprintf ppf "but an expression was expected of type");
- | Apply_non_function { funct; func_ty; previous_arg_loc; extra_arg_loc } ->
+ | Apply_non_function {
+ funct; func_ty; res_ty; previous_arg_loc; extra_arg_loc
+ } ->
begin match get_desc func_ty with
Tarrow _ ->
+ let returns_unit = match get_desc res_ty with
+ | Tconstr (p, _, _) -> Path.same p Predef.path_unit
+ | _ -> false
+ in
report_too_many_arg_error ~funct ~func_ty ~previous_arg_loc
- ~extra_arg_loc loc
+ ~extra_arg_loc ~returns_unit loc
| _ ->
Location.errorf ~loc "@[<v>@[<2>This expression has type@ %a@]@ %s@]"
Printtyp.type_expr func_ty
diff --git a/typing/typecore.mli b/typing/typecore.mli
index 916aecdec3..6c73b08b4f 100644
--- a/typing/typecore.mli
+++ b/typing/typecore.mli
@@ -98,6 +98,10 @@ type existential_restriction =
| In_class_def (** or in [class c = let ... in ...] *)
| In_self_pattern (** or in self pattern *)
+type module_patterns_restriction =
+ | Modules_allowed of { scope : int }
+ | Modules_rejected
+
val type_binding:
Env.t -> rec_flag ->
Parsetree.value_binding list ->
@@ -117,7 +121,7 @@ val type_self_pattern:
Env.t -> Parsetree.pattern ->
Typedtree.pattern * pattern_variable list
val check_partial:
- ?lev:int -> Env.t -> type_expr ->
+ ?lev:int -> module_patterns_restriction -> Env.t -> type_expr ->
Location.t -> Typedtree.value Typedtree.case list -> Typedtree.partial
val type_expect:
?in_function:(Location.t * type_expr) ->
@@ -158,6 +162,7 @@ type error =
| Apply_non_function of {
funct : Typedtree.expression;
func_ty : type_expr;
+ res_ty : type_expr;
previous_arg_loc : Location.t;
extra_arg_loc : Location.t;
}
diff --git a/typing/typedtree.mli b/typing/typedtree.mli
index 9ecf395602..985f7d8b25 100644
--- a/typing/typedtree.mli
+++ b/typing/typedtree.mli
@@ -69,6 +69,8 @@ and pat_extra =
| Tpat_unpack
(** (module P) { pat_desc = Tpat_var "P"
; pat_extra = (Tpat_unpack, _, _) :: ... }
+ (module _) { pat_desc = Tpat_any
+ ; pat_extra = (Tpat_unpack, _, _) :: ... }
*)
and 'k pattern_desc =
diff --git a/typing/typemod.ml b/typing/typemod.ml
index 1ba69f818d..b8badf2a99 100644
--- a/typing/typemod.ml
+++ b/typing/typemod.ml
@@ -57,8 +57,9 @@ type error =
| With_changes_module_alias of Longident.t * Ident.t * Path.t
| With_cannot_remove_constrained_type
| Repeated_name of Sig_component_kind.t * string
- | Non_generalizable of type_expr
- | Non_generalizable_module of module_type
+ | Non_generalizable of { vars : type_expr list; expression : type_expr }
+ | Non_generalizable_module of
+ { vars : type_expr list; item : value_description; mty : module_type }
| Implementation_is_required of string
| Interface_not_compiled of string
| Not_allowed_in_functor_body
@@ -1829,11 +1830,11 @@ let path_of_module mexp =
do not contain non-generalized type variable *)
let rec nongen_modtype env = function
- Mty_ident _ -> false
- | Mty_alias _ -> false
+ Mty_ident _ -> None
+ | Mty_alias _ -> None
| Mty_signature sg ->
let env = Env.add_signature sg env in
- List.exists (nongen_signature_item env) sg
+ List.find_map (nongen_signature_item env) sg
| Mty_functor(arg_opt, body) ->
let env =
match arg_opt with
@@ -1845,18 +1846,35 @@ let rec nongen_modtype env = function
nongen_modtype env body
and nongen_signature_item env = function
- Sig_value(_id, desc, _) -> Ctype.nongen_schema env desc.val_type
+ | Sig_value(_id, desc, _) ->
+ Ctype.nongen_vars_in_schema env desc.val_type
+ |> Option.map (fun vars -> (vars, desc))
| Sig_module(_id, _, md, _, _) -> nongen_modtype env md.md_type
- | _ -> false
+ | _ -> None
+
+let check_nongen_modtype env loc mty =
+ nongen_modtype env mty
+ |> Option.iter (fun (vars, item) ->
+ let vars = Btype.TypeSet.elements vars in
+ let error =
+ Non_generalizable_module { vars; item; mty }
+ in
+ raise(Error(loc, env, error))
+ )
let check_nongen_signature_item env sig_item =
match sig_item with
Sig_value(_id, vd, _) ->
- if Ctype.nongen_schema env vd.val_type then
- raise (Error (vd.val_loc, env, Non_generalizable vd.val_type))
+ Ctype.nongen_vars_in_schema env vd.val_type
+ |> Option.iter (fun vars ->
+ let vars = Btype.TypeSet.elements vars in
+ let error =
+ Non_generalizable { vars; expression = vd.val_type }
+ in
+ raise (Error (vd.val_loc, env, error))
+ )
| Sig_module (_id, _, md, _, _) ->
- if nongen_modtype env md.md_type then
- raise(Error(md.md_loc, env, Non_generalizable_module md.md_type))
+ check_nongen_modtype env md.md_loc md.md_type
| _ -> ()
let check_nongen_signature env sg =
@@ -2877,8 +2895,7 @@ let type_module_type_of env smod =
in
let mty = Mtype.scrape_for_type_of ~remove_aliases env tmty.mod_type in
(* PR#5036: must not contain non-generalized type variables *)
- if nongen_modtype env mty then
- raise(Error(smod.pmod_loc, env, Non_generalizable_module mty));
+ check_nongen_modtype env smod.pmod_loc mty;
tmty, mty
(* For Typecore *)
@@ -3281,14 +3298,36 @@ let report_error ~loc _env = function
"@[Multiple definition of the %s name %s.@ \
Names must be unique in a given structure or signature.@]"
(Sig_component_kind.to_string kind) name
- | Non_generalizable typ ->
+ | Non_generalizable { vars; expression } ->
+ let[@manual.ref "ss:valuerestriction"] manual_ref = [ 6; 1; 2 ] in
+ prepare_for_printing vars;
+ add_type_to_preparation expression;
Location.errorf ~loc
"@[The type of this expression,@ %a,@ \
- contains type variables that cannot be generalized@]" type_scheme typ
- | Non_generalizable_module mty ->
- Location.errorf ~loc
+ contains the non-generalizable type variable(s): %a.@ %a@]"
+ prepared_type_scheme expression
+ (pp_print_list ~pp_sep:(fun f () -> fprintf f ",@ ")
+ prepared_type_scheme) vars
+ Misc.print_see_manual manual_ref
+ | Non_generalizable_module { vars; mty; item } ->
+ let[@manual.ref "ss:valuerestriction"] manual_ref = [ 6; 1; 2 ] in
+ prepare_for_printing vars;
+ add_type_to_preparation item.val_type;
+ let sub =
+ [ Location.msg ~loc:item.val_loc
+ "The type of this value,@ %a,@ \
+ contains the non-generalizable type variable(s) %a."
+ prepared_type_scheme
+ item.val_type
+ (pp_print_list ~pp_sep:(fun f () -> fprintf f ",@ ")
+ prepared_type_scheme) vars
+ ]
+ in
+ Location.errorf ~loc ~sub
"@[The type of this module,@ %a,@ \
- contains type variables that cannot be generalized@]" modtype mty
+ contains non-generalizable type variable(s).@ %a@]"
+ modtype mty
+ Misc.print_see_manual manual_ref
| Implementation_is_required intf_name ->
Location.errorf ~loc
"@[The interface %a@ declares values, not just types.@ \
diff --git a/typing/typemod.mli b/typing/typemod.mli
index f0073a8c4c..859c2e9b3d 100644
--- a/typing/typemod.mli
+++ b/typing/typemod.mli
@@ -116,8 +116,9 @@ type error =
| With_changes_module_alias of Longident.t * Ident.t * Path.t
| With_cannot_remove_constrained_type
| Repeated_name of Sig_component_kind.t * string
- | Non_generalizable of type_expr
- | Non_generalizable_module of module_type
+ | Non_generalizable of { vars : type_expr list; expression : type_expr }
+ | Non_generalizable_module of
+ { vars : type_expr list; item : value_description; mty : module_type }
| Implementation_is_required of string
| Interface_not_compiled of string
| Not_allowed_in_functor_body
diff --git a/typing/typetexp.ml b/typing/typetexp.ml
index 3b7b06e52f..ab20777e15 100644
--- a/typing/typetexp.ml
+++ b/typing/typetexp.ml
@@ -33,7 +33,6 @@ type error =
| Type_arity_mismatch of Longident.t * int * int
| Bound_type_variable of string
| Recursive_type
- | Unbound_row_variable of Longident.t
| Type_mismatch of Errortrace.unification_error
| Alias_type_mismatch of Errortrace.unification_error
| Present_has_conjunction of string
@@ -152,7 +151,6 @@ end = struct
let reset () =
reset_global_level ();
- Ctype.reset_reified_var_counter ();
type_variables := TyVarMap.empty
let is_in_scope name =
@@ -838,10 +836,6 @@ let report_error env ppf = function
fprintf ppf "Already bound type parameter %a" Pprintast.tyvar name
| Recursive_type ->
fprintf ppf "This type is recursive"
- | Unbound_row_variable lid ->
- (* we don't use "spellcheck" here: this error is not raised
- anywhere so it's unclear how it should be handled *)
- fprintf ppf "Unbound row variable in #%a" longident lid
| Type_mismatch trace ->
Printtyp.report_unification_error ppf Env.empty trace
(function ppf ->
diff --git a/typing/typetexp.mli b/typing/typetexp.mli
index ca058a5cf0..fb2eda068f 100644
--- a/typing/typetexp.mli
+++ b/typing/typetexp.mli
@@ -73,7 +73,6 @@ type error =
| Type_arity_mismatch of Longident.t * int * int
| Bound_type_variable of string
| Recursive_type
- | Unbound_row_variable of Longident.t
| Type_mismatch of Errortrace.unification_error
| Alias_type_mismatch of Errortrace.unification_error
| Present_has_conjunction of string
diff --git a/utils/build_path_prefix_map.ml b/utils/build_path_prefix_map.ml
index 65d951f1c3..17cfac82e2 100644
--- a/utils/build_path_prefix_map.ml
+++ b/utils/build_path_prefix_map.ml
@@ -95,25 +95,24 @@ let decode_map str =
| exception (Shortcut err) -> Error err
| map -> Ok map
-let rewrite_opt prefix_map path =
- let is_prefix = function
- | None -> false
- | Some { target = _; source } ->
- String.length source <= String.length path
- && String.equal source (String.sub path 0 (String.length source))
- in
- match
- List.find is_prefix
- (* read key/value pairs from right to left, as the spec demands *)
- (List.rev prefix_map)
- with
- | exception Not_found -> None
+let make_target path : pair option -> path option = function
| None -> None
- | Some { source; target } ->
+ | Some { target; source } ->
+ let is_prefix =
+ String.length source <= String.length path
+ && String.equal source (String.sub path 0 (String.length source)) in
+ if is_prefix then
Some (target ^ (String.sub path (String.length source)
(String.length path - String.length source)))
+ else None
+
+let rewrite_first prefix_map path =
+ List.find_map (make_target path) (List.rev prefix_map)
+
+let rewrite_all prefix_map path =
+ List.filter_map (make_target path) (List.rev prefix_map)
let rewrite prefix_map path =
- match rewrite_opt prefix_map path with
+ match rewrite_first prefix_map path with
| None -> path
| Some path -> path
diff --git a/utils/build_path_prefix_map.mli b/utils/build_path_prefix_map.mli
index dbcc8dc16f..d8ec9caf4d 100644
--- a/utils/build_path_prefix_map.mli
+++ b/utils/build_path_prefix_map.mli
@@ -18,6 +18,9 @@
{b Warning:} this module is unstable and part of
{{!Compiler_libs}compiler-libs}.
+ See
+ {{: https://reproducible-builds.org/specs/build-path-prefix-map/ }
+ the BUILD_PATH_PREFIX_MAP spec}
*)
@@ -38,10 +41,21 @@ type map = pair option list
val encode_map : map -> string
val decode_map : string -> (map, error_message) result
-val rewrite_opt : map -> path -> path option
-(** [rewrite_opt map path] tries to find a source in [map]
+val rewrite_first : map -> path -> path option
+(** [rewrite_first map path] tries to find a source in [map]
that is a prefix of the input [path]. If it succeeds,
it replaces this prefix with the corresponding target.
If it fails, it just returns [None]. *)
+val rewrite_all : map -> path -> path list
+(** [rewrite_all map path] finds all sources in [map]
+ that are a prefix of the input [path]. For each matching
+ source, in priority order, it replaces this prefix with
+ the corresponding target and adds the result to
+ the returned list.
+ If there are no matches, it just returns [[]]. *)
+
val rewrite : map -> path -> path
+(** [rewrite path] uses [rewrite_first] to try to find a
+ mapping for path. If found, it returns that, otherwise
+ it just returns [path]. *)
diff --git a/utils/config.common.ml b/utils/config.common.ml
index 9707cd0fc3..9fa25b1dfa 100644
--- a/utils/config.common.ml
+++ b/utils/config.common.ml
@@ -28,26 +28,26 @@ let standard_library =
with Not_found ->
standard_library_default
-let exec_magic_number = "Caml1999X032"
+let exec_magic_number = "Caml1999X033"
(* exec_magic_number is duplicated in runtime/caml/exec.h *)
-and cmi_magic_number = "Caml1999I032"
-and cmo_magic_number = "Caml1999O032"
-and cma_magic_number = "Caml1999A032"
+and cmi_magic_number = "Caml1999I033"
+and cmo_magic_number = "Caml1999O033"
+and cma_magic_number = "Caml1999A033"
and cmx_magic_number =
if flambda then
- "Caml1999y032"
+ "Caml1999y033"
else
- "Caml1999Y032"
+ "Caml1999Y033"
and cmxa_magic_number =
if flambda then
- "Caml1999z032"
+ "Caml1999z033"
else
- "Caml1999Z032"
-and ast_impl_magic_number = "Caml1999M032"
-and ast_intf_magic_number = "Caml1999N032"
-and cmxs_magic_number = "Caml1999D032"
-and cmt_magic_number = "Caml1999T032"
-and linear_magic_number = "Caml1999L032"
+ "Caml1999Z033"
+and ast_impl_magic_number = "Caml1999M033"
+and ast_intf_magic_number = "Caml1999N033"
+and cmxs_magic_number = "Caml1999D033"
+and cmt_magic_number = "Caml1999T033"
+and linear_magic_number = "Caml1999L033"
let safe_string = true
let default_safe_string = true
diff --git a/utils/misc.ml b/utils/misc.ml
index 557bc63d60..ad178c9217 100644
--- a/utils/misc.ml
+++ b/utils/misc.ml
@@ -905,6 +905,12 @@ let print_if ppf flag printer arg =
if !flag then Format.fprintf ppf "%a@." printer arg;
arg
+let print_see_manual ppf manual_section =
+ let open Format in
+ fprintf ppf "(see manual section %a)"
+ (pp_print_list ~pp_sep:(fun f () -> pp_print_char f '.') pp_print_int)
+ manual_section
+
type filepath = string
type modname = string
diff --git a/utils/misc.mli b/utils/misc.mli
index e8c716f8e4..6151f269ae 100644
--- a/utils/misc.mli
+++ b/utils/misc.mli
@@ -547,6 +547,9 @@ val pp_two_columns :
v}
*)
+val print_see_manual : Format.formatter -> int list -> unit
+(** See manual section *)
+
(** {1 Displaying configuration variables} *)
val show_config_and_exit : unit -> unit
diff --git a/utils/warnings.ml b/utils/warnings.ml
index 23d4c35b7d..65721fe1b0 100644
--- a/utils/warnings.ml
+++ b/utils/warnings.ml
@@ -872,12 +872,6 @@ let () = ignore @@ parse_options true defaults_warn_error
let () =
List.iter (set_alert ~error:false ~enable:false) default_disabled_alerts
-let ref_manual_explanation () =
- (* manual references are checked a posteriori by the manual
- cross-reference consistency check in manual/tests*)
- let[@manual.ref "s:comp-warnings"] chapter, section = 13, 5 in
- Printf.sprintf "(See manual section %d.%d)" chapter section
-
let message = function
| Comment_start ->
"this `(*' is the start of a comment.\n\
@@ -1040,10 +1034,12 @@ let message = function
Printf.sprintf "expected %s"
(if b then "tailcall" else "non-tailcall")
| Fragile_literal_pattern ->
- Printf.sprintf
+ let[@manual.ref "ss:warn52"] ref_manual = [ 13; 5; 3 ] in
+ Format.asprintf
"Code should not depend on the actual values of\n\
this constructor's arguments. They are only for information\n\
- and may change in future versions. %t" ref_manual_explanation
+ and may change in future versions. %a"
+ Misc.print_see_manual ref_manual
| Unreachable_case ->
"this match case is unreachable.\n\
Consider replacing it with a refutation case '<pat> -> .'"
@@ -1056,6 +1052,7 @@ let message = function
| Inlining_impossible reason ->
Printf.sprintf "Cannot inline: %s" reason
| Ambiguous_var_in_pattern_guard vars ->
+ let[@manual.ref "ss:warn57"] ref_manual = [ 13; 5; 4 ] in
let vars = List.sort String.compare vars in
let vars_explanation =
let in_different_places =
@@ -1068,12 +1065,12 @@ let message = function
let vars = String.concat ", " vars in
"variables " ^ vars ^ " appear " ^ in_different_places
in
- Printf.sprintf
+ Format.asprintf
"Ambiguous or-pattern variables under guard;\n\
%s.\n\
Only the first match will be used to evaluate the guard expression.\n\
- %t"
- vars_explanation ref_manual_explanation
+ %a"
+ vars_explanation Misc.print_see_manual ref_manual
| No_cmx_file name ->
Printf.sprintf
"no cmx file was found in path for module %s, \