2025-08-11 12:13.23: New job: test ocaml-ppx/ppxlib https://github.com/ocaml-ppx/ppxlib.git#refs/pull/589/head (e516f47c64a6b9890c304f454a70725b8af38173) (linux-x86_64:ubuntu-25.04-4.14_opam-2.4) Base: ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca Opam project build To reproduce locally: git clone --recursive "https://github.com/ocaml-ppx/ppxlib.git" && cd "ppxlib" && git fetch origin "refs/pull/589/head" && git reset --hard e516f47c cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca # ubuntu-25.04-4.14_opam-2.4 USER 1000:1000 ENV CLICOLOR_FORCE="1" ENV OPAMCOLOR="always" WORKDIR /src RUN sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam RUN opam init --reinit -ni RUN uname -rs && opam exec -- ocaml -version && opam --version WORKDIR /src RUN sudo chown opam /src RUN cd ~/opam-repository && (git cat-file -e b8021439f8c57ba6435bc2263f6596671f4f4466 || git fetch origin master) && git reset -q --hard b8021439f8c57ba6435bc2263f6596671f4f4466 && git log --no-decorate -n1 --oneline && opam update -u COPY --chown=1000:1000 ppxlib.opam ppxlib-tools.opam ppxlib-bench.opam ./ RUN opam pin add -yn ppxlib.dev './' && \ opam pin add -yn ppxlib-tools.dev './' && \ opam pin add -yn ppxlib-bench.dev './' RUN echo '(lang dune 3.0)' > './dune-project' ENV DEPS="base.v0.16.4 base-bigarray.base base-threads.base base-unix.base cinaps.v0.15.1 cmdliner.1.3.0 csexp.1.5.2 dune.3.19.1 dune-configurator.3.19.1 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 re.1.13.2 seq.base sexplib0.v0.16.0 stdlib-shims.0.3.0 yojson.3.0.0" ENV CI="true" ENV OCAMLCI="true" RUN opam update --depexts && opam install --cli=2.4 --depext-only -y ppxlib.dev ppxlib-tools.dev ppxlib-bench.dev $DEPS RUN opam install $DEPS COPY --chown=1000:1000 . /src RUN opam exec -- dune build @install @check @runtest && rm -rf _build END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2025-08-11 12:13.23: Using cache hint "ocaml-ppx/ppxlib-ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca-ubuntu-25.04-4.14_opam-2.4-b68e9df276868c41024ba0e8680a3274" 2025-08-11 12:13.23: Using OBuilder spec: ((from ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca) (comment ubuntu-25.04-4.14_opam-2.4) (user (uid 1000) (gid 1000)) (env CLICOLOR_FORCE 1) (env OPAMCOLOR always) (workdir /src) (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam")) (run (shell "opam init --reinit -ni")) (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) (workdir /src) (run (shell "sudo chown opam /src")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e b8021439f8c57ba6435bc2263f6596671f4f4466 || git fetch origin master) && git reset -q --hard b8021439f8c57ba6435bc2263f6596671f4f4466 && git log --no-decorate -n1 --oneline && opam update -u")) (copy (src ppxlib.opam ppxlib-tools.opam ppxlib-bench.opam) (dst ./)) (run (network host) (shell "opam pin add -yn ppxlib.dev './' && \ \nopam pin add -yn ppxlib-tools.dev './' && \ \nopam pin add -yn ppxlib-bench.dev './'")) (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) (env DEPS "base.v0.16.4 base-bigarray.base base-threads.base base-unix.base cinaps.v0.15.1 cmdliner.1.3.0 csexp.1.5.2 dune.3.19.1 dune-configurator.3.19.1 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 re.1.13.2 seq.base sexplib0.v0.16.0 stdlib-shims.0.3.0 yojson.3.0.0") (env CI true) (env OCAMLCI true) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.4 --depext-only -y ppxlib.dev ppxlib-tools.dev ppxlib-bench.dev $DEPS")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) (copy (src .) (dst /src)) (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) ) 2025-08-11 12:13.23: Waiting for resource in pool OCluster 2025-08-11 12:13.23: Waiting for worker… 2025-08-11 12:13.23: Got resource from pool OCluster Building on asteria.caelum.ci.dev HEAD is now at b0aa3047 Expose Lexer.comments in the Parse module HEAD is now at e516f47c TMP (from ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca) Unable to find image 'ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca' locally docker.io/ocaml/opam@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca: Pulling from ocaml/opam 60fb2420030a: Pulling fs layer 30a5b9bffc59: Pulling fs layer e76e7b0fd035: Pulling fs layer 87fd98c989d0: Pulling fs layer fc31fa993861: Pulling fs layer c75b71d41442: Pulling fs layer 9f08a6d6f6f5: Pulling fs layer 3dfc106a9c15: Pulling fs layer 1c3a6d2a01a7: Pulling fs layer 2d648021ecec: Pulling fs layer ffcf097292c2: Pulling fs layer e1bcef442ada: Pulling fs layer 61993b76460e: Pulling fs layer 929a57e31854: Pulling fs layer 826e2c54b1a9: Pulling fs layer eec17caf12a0: Pulling fs layer 9259e842febf: Pulling fs layer ae77b4e577af: Pulling fs layer 61c1d61eb8ba: Pulling fs layer 87fd98c989d0: Waiting d7a0435c7be4: Pulling fs layer 4f4fb700ef54: Pulling fs layer 67b39cdc1121: Pulling fs layer 217bd9b7b99f: Pulling fs layer c75b71d41442: Waiting 1c96670814d1: Pulling fs layer 2d648021ecec: Waiting ccd441a4e677: Pulling fs layer 9e7324b47fd8: Pulling fs layer ffcf097292c2: Waiting 0ec34067023b: Pulling fs layer 1c3a6d2a01a7: Waiting 33125ff80400: Pulling fs layer 9f08a6d6f6f5: Waiting b383373ace10: Pulling fs layer 447883287ba9: Pulling fs layer 3dfc106a9c15: Waiting cb78f5b619b6: Pulling fs layer d52ede671661: Pulling fs layer e1bcef442ada: Waiting fa458c0e5391: Pulling fs layer 67b39cdc1121: Waiting 6f79814c75aa: Pulling fs layer 852246b3a53d: Pulling fs layer 8a24940dc348: Pulling fs layer 27ffa6c8c05e: Pulling fs layer 83b8efa25d5a: Pulling fs layer 0ec34067023b: Waiting b7a79da3b9f8: Pulling fs layer 132e77d73f7f: Pulling fs layer 33125ff80400: Waiting cc12f00dd0be: Pulling fs layer 3312776b6873: Pulling fs layer 6853ba2d9c47: Pulling fs layer d52ede671661: Waiting 929a57e31854: Waiting 83b8efa25d5a: Waiting 217bd9b7b99f: Waiting b7a79da3b9f8: Waiting fa458c0e5391: Waiting ae77b4e577af: Waiting 1c96670814d1: Waiting 9259e842febf: Waiting 61993b76460e: Waiting 6f79814c75aa: Waiting d7a0435c7be4: Waiting 852246b3a53d: Waiting 3312776b6873: Waiting 6853ba2d9c47: Waiting 9e7324b47fd8: Waiting 27ffa6c8c05e: Waiting cc12f00dd0be: Waiting cb78f5b619b6: Waiting 447883287ba9: Waiting eec17caf12a0: Waiting 8a24940dc348: Waiting b383373ace10: Waiting 30a5b9bffc59: Download complete e76e7b0fd035: Verifying Checksum e76e7b0fd035: Download complete fc31fa993861: Download complete 60fb2420030a: Verifying Checksum 60fb2420030a: Download complete 87fd98c989d0: Verifying Checksum 87fd98c989d0: Download complete 3dfc106a9c15: Verifying Checksum 3dfc106a9c15: Download complete 1c3a6d2a01a7: Verifying Checksum 1c3a6d2a01a7: Download complete 2d648021ecec: Verifying Checksum 2d648021ecec: Download complete 60fb2420030a: Pull complete 30a5b9bffc59: Pull complete e76e7b0fd035: Pull complete ffcf097292c2: Verifying Checksum ffcf097292c2: Download complete e1bcef442ada: Verifying Checksum e1bcef442ada: Download complete 9f08a6d6f6f5: Verifying Checksum 9f08a6d6f6f5: Download complete 61993b76460e: Verifying Checksum 61993b76460e: Download complete 929a57e31854: Verifying Checksum 929a57e31854: Download complete 87fd98c989d0: Pull complete fc31fa993861: Pull complete 826e2c54b1a9: Verifying Checksum 826e2c54b1a9: Download complete 9259e842febf: Download complete c75b71d41442: Verifying Checksum c75b71d41442: Download complete eec17caf12a0: Download complete d7a0435c7be4: Verifying Checksum d7a0435c7be4: Download complete ae77b4e577af: Download complete 4f4fb700ef54: Verifying Checksum 4f4fb700ef54: Download complete 67b39cdc1121: Download complete 217bd9b7b99f: Download complete 1c96670814d1: Verifying Checksum 1c96670814d1: Download complete ccd441a4e677: Verifying Checksum ccd441a4e677: Download complete 61c1d61eb8ba: Download complete 0ec34067023b: Verifying Checksum 0ec34067023b: Download complete 33125ff80400: Verifying Checksum 33125ff80400: Download complete b383373ace10: Download complete 447883287ba9: Verifying Checksum 447883287ba9: Download complete cb78f5b619b6: Verifying Checksum cb78f5b619b6: Download complete d52ede671661: Verifying Checksum d52ede671661: Download complete 9e7324b47fd8: Download complete fa458c0e5391: Download complete 852246b3a53d: Verifying Checksum 852246b3a53d: Download complete 27ffa6c8c05e: Verifying Checksum 27ffa6c8c05e: Download complete 83b8efa25d5a: Download complete b7a79da3b9f8: Download complete c75b71d41442: Pull complete 9f08a6d6f6f5: Pull complete 6f79814c75aa: Verifying Checksum 6f79814c75aa: Download complete 3dfc106a9c15: Pull complete cc12f00dd0be: Download complete 1c3a6d2a01a7: Pull complete 132e77d73f7f: Verifying Checksum 132e77d73f7f: Download complete 2d648021ecec: Pull complete 3312776b6873: Verifying Checksum 3312776b6873: Download complete 6853ba2d9c47: Download complete ffcf097292c2: Pull complete e1bcef442ada: Pull complete 61993b76460e: Pull complete 929a57e31854: Pull complete 826e2c54b1a9: Pull complete eec17caf12a0: Pull complete 9259e842febf: Pull complete ae77b4e577af: Pull complete 61c1d61eb8ba: Pull complete d7a0435c7be4: Pull complete 4f4fb700ef54: Pull complete 67b39cdc1121: Pull complete 217bd9b7b99f: Pull complete 1c96670814d1: Pull complete ccd441a4e677: Pull complete 9e7324b47fd8: Pull complete 0ec34067023b: Pull complete 33125ff80400: Pull complete b383373ace10: Pull complete 447883287ba9: Pull complete cb78f5b619b6: Pull complete d52ede671661: Pull complete fa458c0e5391: Pull complete 8a24940dc348: Verifying Checksum 8a24940dc348: Download complete 6f79814c75aa: Pull complete 852246b3a53d: Pull complete 8a24940dc348: Pull complete 27ffa6c8c05e: Pull complete 83b8efa25d5a: Pull complete b7a79da3b9f8: Pull complete 132e77d73f7f: Pull complete cc12f00dd0be: Pull complete 3312776b6873: Pull complete 6853ba2d9c47: Pull complete Digest: sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca Status: Downloaded newer image for ocaml/opam@sha256:779fe3e8adee8595b832aced56824d9d13d0be832ef776548413a808dd2134ca 2025-08-11 12:13.25 ---> using "db10c73956f19687df50e70fc2a6ec82e83bd4ced477aa335db11ce5a5ded33d" from cache /: (comment ubuntu-25.04-4.14_opam-2.4) /: (user (uid 1000) (gid 1000)) /: (env CLICOLOR_FORCE 1) /: (env OPAMCOLOR always) /: (workdir /src) /src: (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam")) 2025-08-11 12:13.25 ---> using "607f475d86682b8922ca64d778be67777803bdb02a1111a19f7e2368a92640c5" from cache /src: (run (shell "opam init --reinit -ni")) Configuring from /home/opam/.opamrc and then from built-in defaults. Checking for available remotes: rsync and local, git. - you won't be able to use mercurial repositories unless you install the hg command on your system. - you won't be able to use darcs repositories unless you install the darcs command on your system. This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted. You may want to back it up before going further. Continue? [Y/n] y [NOTE] The 'jobs' option was reset, its value was 71 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using: opam option jobs=71 --global Format upgrade done. <><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><> [default] Initialised 2025-08-11 12:13.25 ---> using "d5812e409cdf2de6b137a3c943320ca0e0bdc091bd85e44c8cfa24823bf5dd50" from cache /src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) Linux 5.15.0-142-generic The OCaml toplevel, version 4.14.2 2.4.1 2025-08-11 12:13.25 ---> using "e8e07bcdba13a5ac17e8bc4b0a9806f88dc997a3ee2245ba216eb2957362da39" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2025-08-11 12:13.25 ---> using "3be4daf05c9dcba399fe091401d8741072a8e09673202c2358d57040a95d7cef" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e b8021439f8c57ba6435bc2263f6596671f4f4466 || git fetch origin master) && git reset -q --hard b8021439f8c57ba6435bc2263f6596671f4f4466 && git log --no-decorate -n1 --oneline && opam update -u")) b8021439f8 Merge pull request #28261 from kit-ty-kate/deploy-fix-25819 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.3.0"), which will ask permission to downgrade or uninstall the conflicting packages. Nothing to do. # To update the current shell environment, run: eval $(opam env) 2025-08-11 12:13.40 ---> saved as "c96680ae449e0627174fccb85251ecb10d4a5161b1a4352c51dcf4e4c4782e2c" /src: (copy (src ppxlib.opam ppxlib-tools.opam ppxlib-bench.opam) (dst ./)) 2025-08-11 12:13.40 ---> saved as "57d8c2ea98f4d5f5ee65061c3e88939559b68e2d2da7085134a2a06024683061" /src: (run (network host) (shell "opam pin add -yn ppxlib.dev './' && \ \nopam pin add -yn ppxlib-tools.dev './' && \ \nopam pin add -yn ppxlib-bench.dev './'")) [ppxlib.dev] synchronised (file:///src) ppxlib is now pinned to file:///src (version dev) [ppxlib-tools.dev] synchronised (file:///src) ppxlib-tools is now pinned to file:///src (version dev) [NOTE] Package ppxlib-bench does not exist in opam repositories registered in the current switch. [ppxlib-bench.dev] synchronised (file:///src) ppxlib-bench is now pinned to file:///src (version dev) 2025-08-11 12:13.44 ---> saved as "e986d88f4a755f4a1233372bf7cdb3452740f062eb476c3a1486b8f383f172a7" /src: (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) 2025-08-11 12:13.45 ---> saved as "d262c13b26d2f305dfc24598df5612ea8b9b1874f928a2123d9d7af160d9fbfd" /src: (env DEPS "base.v0.16.4 base-bigarray.base base-threads.base base-unix.base cinaps.v0.15.1 cmdliner.1.3.0 csexp.1.5.2 dune.3.19.1 dune-configurator.3.19.1 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 re.1.13.2 seq.base sexplib0.v0.16.0 stdlib-shims.0.3.0 yojson.3.0.0") /src: (env CI true) /src: (env OCAMLCI true) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.4 --depext-only -y ppxlib.dev ppxlib-tools.dev ppxlib-bench.dev $DEPS")) + /usr/bin/sudo "apt-get" "update" - Hit:1 http://archive.ubuntu.com/ubuntu plucky InRelease - Get:2 http://archive.ubuntu.com/ubuntu plucky-updates InRelease [126 kB] - Get:3 http://archive.ubuntu.com/ubuntu plucky-backports InRelease [126 kB] - Get:4 http://archive.ubuntu.com/ubuntu plucky-updates/restricted amd64 Packages [181 kB] - Get:5 http://archive.ubuntu.com/ubuntu plucky-updates/main amd64 Packages [334 kB] - Get:6 http://archive.ubuntu.com/ubuntu plucky-updates/universe amd64 Packages [233 kB] - Get:7 http://security.ubuntu.com/ubuntu plucky-security InRelease [126 kB] - Get:8 http://security.ubuntu.com/ubuntu plucky-security/universe amd64 Packages [129 kB] - Get:9 http://security.ubuntu.com/ubuntu plucky-security/main amd64 Packages [217 kB] - Get:10 http://security.ubuntu.com/ubuntu plucky-security/restricted amd64 Packages [163 kB] - Fetched 1636 kB in 1s (1555 kB/s) - Reading package lists... <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> [ppxlib.dev] synchronised (file:///src) [ppxlib-bench.dev] synchronised (file:///src) [ppxlib-tools.dev] synchronised (file:///src) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 2). [NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2). [NOTE] Package ocaml is already installed (current version is 4.14.2). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). 2025-08-11 12:13.54 ---> saved as "70a27a867750c4431363d81e710cf1a851561347ec9cb8f1a082808fca8e4d2a" /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 2). [NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2). [NOTE] Package ocaml is already installed (current version is 4.14.2). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following actions will be performed: === install 14 packages - install base v0.16.4 - install cinaps v0.15.1 - install cmdliner 1.3.0 - install csexp 1.5.2 - install dune 3.19.1 - install dune-configurator 3.19.1 - install ocaml-compiler-libs v0.12.4 - install ocamlfind 1.9.8 - install ppx_derivers 1.2.1 - install re 1.13.2 - install seq base - install sexplib0 v0.16.0 - install stdlib-shims 0.3.0 - install yojson 3.0.0 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved base.v0.16.4 (cached) -> retrieved cinaps.v0.15.1 (cached) -> retrieved cmdliner.1.3.0 (cached) -> retrieved csexp.1.5.2 (cached) -> retrieved ocaml-compiler-libs.v0.12.4 (cached) -> retrieved ppx_derivers.1.2.1 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved seq.base (cached) -> installed seq.base -> retrieved re.1.13.2 (cached) -> retrieved sexplib0.v0.16.0 (cached) -> retrieved stdlib-shims.0.3.0 (cached) -> retrieved yojson.3.0.0 (cached) -> retrieved dune.3.19.1, dune-configurator.3.19.1 (cached) -> installed cmdliner.1.3.0 -> installed ocamlfind.1.9.8 -> installed dune.3.19.1 -> installed ppx_derivers.1.2.1 -> installed csexp.1.5.2 -> installed ocaml-compiler-libs.v0.12.4 -> installed re.1.13.2 -> installed sexplib0.v0.16.0 -> installed stdlib-shims.0.3.0 -> installed yojson.3.0.0 -> installed cinaps.v0.15.1 -> installed dune-configurator.3.19.1 -> installed base.v0.16.4 Done. # To update the current shell environment, run: eval $(opam env) 2025-08-11 12:14.30 ---> saved as "a5a6dc5e05a6d6047f5da3f61f8889085b3a994fdfaa0ddff591ac293d738464" /src: (copy (src .) (dst /src)) 2025-08-11 12:14.30 ---> saved as "b0724e534cd23fed8f42613acb8cf5f93459f7373c7a0fb16b8ba09206deed2c" /src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) (cd _build/default && .bin/expect-test test/ast_builder_value_binding/test.ml) Cannot find type Topdirs.printer_type_new. Cannot find type Topdirs.printer_type_new. Cannot find type Topdirs.printer_type_new. File "test/ast_builder_value_binding/test.ml", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/ast_builder_value_binding/test.ml _build/default/test/ast_builder_value_binding/test.ml.corrected diff --git a/_build/default/test/ast_builder_value_binding/test.ml b/_build/default/test/ast_builder_value_binding/test.ml.corrected index 4cc4564..b6a1c2a 100644 --- a/_build/default/test/ast_builder_value_binding/test.ml +++ b/_build/default/test/ast_builder_value_binding/test.ml.corrected @@ -26,32 +26,155 @@ let vb = [%%expect{| val vb : structure_item = - Pstr_value - ( Nonrecursive - , [ { pvb_pat = Ppat_var "f" - ; pvb_expr = - Pexp_function - ( [ { pparam_loc = __loc - ; pparam_desc = Pparam_val ( Nolabel, None, Ppat_var "x") - } - ] - , None - , Pfunction_body - (Pexp_apply - ( Pexp_ident (Lident "+") - , [ ( Nolabel, Pexp_ident (Lident "x")) - ; ( Nolabel - , Pexp_constant (Pconst_integer ( "1", None)) - ) - ] - )) - ) - ; pvb_constraint = None - ; pvb_attributes = __attrs - ; pvb_loc = __loc - } - ] - ) + {Ppxlib__.Import.pstr_desc = + Ppxlib__.Import.Pstr_value (Ppxlib__.Import.Nonrecursive, + [{Ppxlib__.Import.pvb_pat = + {Ppxlib__.Import.ppat_desc = + Ppxlib__.Import.Ppat_var + {Ppxlib__.Import.txt = "f"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []}; + pvb_expr = + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_function + ([{Ppxlib__.Import.pparam_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pparam_desc = + Ppxlib__.Import.Pparam_val (Ppxlib__.Import.Nolabel, None, + {Ppxlib__.Import.ppat_desc = + Ppxlib__.Import.Ppat_var + {Ppxlib__.Import.txt = "x"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []})}], + None, + Ppxlib__.Import.Pfunction_body + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_apply + ({Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_ident + {Ppxlib__.Import.txt = Ppxlib__.Import.Lident "+"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}, + [(Ppxlib__.Import.Nolabel, + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_ident + {Ppxlib__.Import.txt = Ppxlib__.Import.Lident "x"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}); + (Ppxlib__.Import.Nolabel, + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_constant + (Ppxlib__.Import.Pconst_integer ("1", None)); + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []})]); + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}); + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}; + pvb_constraint = None; pvb_attributes = []; + pvb_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}}]); + pstr_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}} |}] (* As expected here, the [pvb_constraint] field is none, the pattern and @@ -69,21 +192,85 @@ let vb = [%%expect{| val vb : structure_item = - Pstr_value - ( Nonrecursive - , [ { pvb_pat = Ppat_var "x" - ; pvb_expr = Pexp_constant (Pconst_integer ( "12", None)) - ; pvb_constraint = - Some - (Pvc_constraint - { locally_abstract_univars = [] - ; typ = Ptyp_constr ( Lident "int", []) - }) - ; pvb_attributes = __attrs - ; pvb_loc = __loc - } - ] - ) + {Ppxlib__.Import.pstr_desc = + Ppxlib__.Import.Pstr_value (Ppxlib__.Import.Nonrecursive, + [{Ppxlib__.Import.pvb_pat = + {Ppxlib__.Import.ppat_desc = + Ppxlib__.Import.Ppat_var + {Ppxlib__.Import.txt = "x"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []}; + pvb_expr = + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_constant + (Ppxlib__.Import.Pconst_integer ("12", None)); + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}; + pvb_constraint = + Some + (Ppxlib__.Import.Pvc_constraint + {Ppxlib__.Import.locally_abstract_univars = []; + typ = + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_constr + ({Ppxlib__.Import.txt = Ppxlib__.Import.Lident "int"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}, + []); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}}); + pvb_attributes = []; + pvb_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}}]); + pstr_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}} |}] (* --------- poly Ppat_constraint to pvb_constraint --------- *) @@ -105,37 +292,177 @@ let vb = [%%expect{| val vb : structure_item = - Pstr_value - ( Nonrecursive - , [ { pvb_pat = Ppat_var "f" - ; pvb_expr = - Pexp_function - ( [ { pparam_loc = __loc - ; pparam_desc = Pparam_val ( Nolabel, None, Ppat_var "x") - } - ] - , None - , Pfunction_body (Pexp_ident (Lident "unit")) - ) - ; pvb_constraint = - Some - (Pvc_constraint - { locally_abstract_univars = [] - ; typ = - Ptyp_poly - ( [ "a"] - , Ptyp_arrow - ( Nolabel - , Ptyp_var "a" - , Ptyp_constr ( Lident "unit", []) - ) - ) - }) - ; pvb_attributes = __attrs - ; pvb_loc = __loc - } - ] - ) + {Ppxlib__.Import.pstr_desc = + Ppxlib__.Import.Pstr_value (Ppxlib__.Import.Nonrecursive, + [{Ppxlib__.Import.pvb_pat = + {Ppxlib__.Import.ppat_desc = + Ppxlib__.Import.Ppat_var + {Ppxlib__.Import.txt = "f"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []}; + pvb_expr = + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_function + ([{Ppxlib__.Import.pparam_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pparam_desc = + Ppxlib__.Import.Pparam_val (Ppxlib__.Import.Nolabel, None, + {Ppxlib__.Import.ppat_desc = + Ppxlib__.Import.Ppat_var + {Ppxlib__.Import.txt = "x"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []})}], + None, + Ppxlib__.Import.Pfunction_body + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_ident + {Ppxlib__.Import.txt = Ppxlib__.Import.Lident "unit"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}); + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}; + pvb_constraint = + Some + (Ppxlib__.Import.Pvc_constraint + {Ppxlib__.Import.locally_abstract_univars = []; + typ = + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_poly + ([{Ppxlib__.Import.txt = "a"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}], + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_arrow (Ppxlib__.Import.Nolabel, + {Ppxlib__.Import.ptyp_desc = Ppxlib__.Import.Ptyp_var "a"; + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}, + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_constr + ({Ppxlib__.Import.txt = Ppxlib__.Import.Lident "unit"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; + pos_lnum = 0; pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; + pos_lnum = 0; pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}, + []); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}}); + pvb_attributes = []; + pvb_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}}]); + pstr_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}} |}] (* --------- desugared locally abstract univars to pvb_constraint --------- *) @@ -157,34 +484,167 @@ let vb = [%%expect{| val vb : structure_item = - Pstr_value - ( Nonrecursive - , [ { pvb_pat = Ppat_var "f" - ; pvb_expr = - Pexp_function - ( [ { pparam_loc = __loc - ; pparam_desc = Pparam_val ( Nolabel, None, Ppat_any) - } - ] - , None - , Pfunction_body (Pexp_ident (Lident "unit")) - ) - ; pvb_constraint = - Some - (Pvc_constraint - { locally_abstract_univars = [ "a"] - ; typ = - Ptyp_arrow - ( Nolabel - , Ptyp_constr ( Lident "a", []) - , Ptyp_constr ( Lident "unit", []) - ) - }) - ; pvb_attributes = __attrs - ; pvb_loc = __loc - } - ] - ) + {Ppxlib__.Import.pstr_desc = + Ppxlib__.Import.Pstr_value (Ppxlib__.Import.Nonrecursive, + [{Ppxlib__.Import.pvb_pat = + {Ppxlib__.Import.ppat_desc = + Ppxlib__.Import.Ppat_var + {Ppxlib__.Import.txt = "f"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []}; + pvb_expr = + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_function + ([{Ppxlib__.Import.pparam_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pparam_desc = + Ppxlib__.Import.Pparam_val (Ppxlib__.Import.Nolabel, None, + {Ppxlib__.Import.ppat_desc = Ppxlib__.Import.Ppat_any; + ppat_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ppat_loc_stack = []; ppat_attributes = []})}], + None, + Ppxlib__.Import.Pfunction_body + {Ppxlib__.Import.pexp_desc = + Ppxlib__.Import.Pexp_ident + {Ppxlib__.Import.txt = Ppxlib__.Import.Lident "unit"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}; + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}); + pexp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}; + pexp_loc_stack = []; pexp_attributes = []}; + pvb_constraint = + Some + (Ppxlib__.Import.Pvc_constraint + {Ppxlib__.Import.locally_abstract_univars = + [{Ppxlib__.Import.txt = "a"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}]; + typ = + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_arrow (Ppxlib__.Import.Nolabel, + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_constr + ({Ppxlib__.Import.txt = Ppxlib__.Import.Lident "a"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}, + []); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}, + {Ppxlib__.Import.ptyp_desc = + Ppxlib__.Import.Ptyp_constr + ({Ppxlib__.Import.txt = Ppxlib__.Import.Lident "unit"; + loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}}, + []); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}); + ptyp_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; + pos_bol = 0; pos_cnum = -1}; + loc_ghost = true}; + ptyp_loc_stack = []; ptyp_attributes = []}}); + pvb_attributes = []; + pvb_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}}]); + pstr_loc = + {Ppxlib__.Import.loc_start = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_end = + {Ppxlib__.Import.pos_fname = "_none_"; pos_lnum = 0; pos_bol = 0; + pos_cnum = -1}; + loc_ghost = true}} |}] (* As expected here, the matching constraint from the pattern and expression or @@ -194,3 +654,5 @@ val vb : structure_item = (* --------- coercion to pvb_constraint --------- *) (*TODO*) +[%%expect{| +|}] "/usr/bin/env" "bash" "-c" "opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1 2025-08-11 12:14.47: Job failed: Failed: Build failed