[INFO] fetching crate haru 0.29.5...
[INFO] checking haru-0.29.5 against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] extracting crate haru 0.29.5 into /workspace/builds/worker-2-tc1/source
[INFO] validating manifest of crates.io crate haru 0.29.5 on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain
[INFO] started tweaking crates.io crate haru 0.29.5
[INFO] finished tweaking crates.io crate haru 0.29.5
[INFO] tweaked toml for crates.io crate haru 0.29.5 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 96 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding ansi_term v0.11.0 (latest: v0.12.1)
[INFO] [stderr]       Adding arrayvec v0.5.2 (latest: v0.7.4)
[INFO] [stderr]       Adding base64 v0.13.1 (latest: v0.22.1)
[INFO] [stderr]       Adding bindgen v0.49.4 (latest: v0.69.4)
[INFO] [stderr]       Adding bitflags v1.3.2 (latest: v2.5.0)
[INFO] [stderr]       Adding blake2b_simd v0.5.11 (latest: v1.0.2)
[INFO] [stderr]       Adding cexpr v0.3.6 (latest: v0.6.0)
[INFO] [stderr]       Adding cfg-if v0.1.10 (latest: v1.0.0)
[INFO] [stderr]       Adding clang-sys v0.28.1 (latest: v1.7.0)
[INFO] [stderr]       Adding clap v2.34.0 (latest: v4.5.4)
[INFO] [stderr]       Adding constant_time_eq v0.1.5 (latest: v0.3.0)
[INFO] [stderr]       Adding dirs v1.0.5 (latest: v5.0.1)
[INFO] [stderr]       Adding env_logger v0.6.2 (latest: v0.11.3)
[INFO] [stderr]       Adding getrandom v0.1.16 (latest: v0.2.14)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding hashbrown v0.4.0 (latest: v0.14.5)
[INFO] [stderr]       Adding hermit-abi v0.1.19 (latest: v0.3.9)
[INFO] [stderr]       Adding humantime v1.3.0 (latest: v2.1.0)
[INFO] [stderr]       Adding jemalloc-sys v0.3.2 (latest: v0.5.4+5.3.0-patched)
[INFO] [stderr]       Adding jemallocator v0.3.2 (latest: v0.5.4)
[INFO] [stderr]       Adding libffi-sys v0.7.0 (latest: v2.3.0)
[INFO] [stderr]       Adding libloading v0.5.2 (latest: v0.8.3)
[INFO] [stderr]       Adding nix v0.13.1 (latest: v0.28.0)
[INFO] [stderr]       Adding nom v4.2.3 (latest: v7.1.3)
[INFO] [stderr]       Adding num-derive v0.2.5 (latest: v0.4.2)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding peeking_take_while v0.1.2 (latest: v1.0.0)
[INFO] [stderr]       Adding peg v0.5.7 (latest: v0.8.3)
[INFO] [stderr]       Adding proc-macro2 v0.4.30 (latest: v1.0.81)
[INFO] [stderr]       Adding quick-error v1.2.3 (latest: v2.0.1)
[INFO] [stderr]       Adding quote v0.3.15 (latest: v1.0.36)
[INFO] [stderr]       Adding quote v0.6.13 (latest: v1.0.36)
[INFO] [stderr]       Adding redox_syscall v0.1.57 (latest: v0.5.1)
[INFO] [stderr]       Adding redox_users v0.3.5 (latest: v0.4.5)
[INFO] [stderr]       Adding rust-argon2 v0.8.3 (latest: v2.1.0)
[INFO] [stderr]       Adding rustyline v4.1.0 (latest: v14.0.0)
[INFO] [stderr]       Adding shlex v0.1.1 (latest: v1.3.0)
[INFO] [stderr]       Adding strsim v0.8.0 (latest: v0.11.1)
[INFO] [stderr]       Adding syn v0.15.44 (latest: v2.0.60)
[INFO] [stderr]       Adding textwrap v0.11.0 (latest: v0.16.1)
[INFO] [stderr]       Adding unicode-xid v0.1.0 (latest: v0.2.4)
[INFO] [stderr]       Adding utf8parse v0.1.1 (latest: v0.2.1)
[INFO] [stderr]       Adding version_check v0.1.5 (latest: v0.9.4)
[INFO] [stderr]       Adding wasi v0.9.0+wasi-snapshot-preview1 (latest: v0.13.0+wasi-0.2.0)
[INFO] [stderr]       Adding which v2.0.1 (latest: v6.0.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded jemallocator v0.3.2
[INFO] [stderr]   Downloaded clang-sys v0.28.1
[INFO] [stderr]   Downloaded bindgen v0.49.4
[INFO] [stderr]   Downloaded jemalloc-sys v0.3.2
[INFO] [stderr]   Downloaded make-cmd v0.1.0
[INFO] [stderr]   Downloaded hashbrown v0.4.0
[INFO] [stderr]   Downloaded haru-decorator v0.21.0
[INFO] [stderr]   Downloaded peg v0.5.7
[INFO] [stderr]   Downloaded rustyline v4.1.0
[INFO] [stderr]   Downloaded libffi-sys v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 529cff14ffab4cc6985cfa3faebfb9fcd5d1ef635c8e8817ead1c550cb76b7e7
[INFO] running `Command { std: "docker" "start" "-a" "529cff14ffab4cc6985cfa3faebfb9fcd5d1ef635c8e8817ead1c550cb76b7e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "529cff14ffab4cc6985cfa3faebfb9fcd5d1ef635c8e8817ead1c550cb76b7e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "529cff14ffab4cc6985cfa3faebfb9fcd5d1ef635c8e8817ead1c550cb76b7e7", kill_on_drop: false }`
[INFO] [stdout] 529cff14ffab4cc6985cfa3faebfb9fcd5d1ef635c8e8817ead1c550cb76b7e7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7c83dd762b8e27b087ff2ce0c9e8b836a458555f787ff5e702bdc1def899ad6b
[INFO] running `Command { std: "docker" "start" "-a" "7c83dd762b8e27b087ff2ce0c9e8b836a458555f787ff5e702bdc1def899ad6b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling nix v0.13.1
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking dirs v1.0.5
[INFO] [stderr]     Checking utf8parse v0.1.1
[INFO] [stderr]     Checking hashbrown v0.4.0
[INFO] [stderr]    Compiling peg v0.5.7
[INFO] [stderr]    Compiling jobserver v0.1.31
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling cc v1.0.96
[INFO] [stderr]    Compiling haru v0.29.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rustyline v4.1.0
[INFO] [stderr]    Compiling haru-decorator v0.21.0
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]  --> src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(core_intrinsics)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: using it is strongly discouraged
[INFO] [stdout]   = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ast.rs:165:18
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 0...0xff => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ast.rs:169:22
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 0x100...0xffff => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ast.rs:173:24
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 0x10000...0xffffffff => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:639
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' | 'a' ... 'f' | 'A' ... 'F' => Matched ( __next , ( ) ) , _ => __state . mark_fa...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:653
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...ut , __pos ) ; match __ch { '0' ... '9' | 'a' ... 'f' | 'A' ... 'F' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:667
[INFO] [stdout]    |
[INFO] [stdout] 81 | ... match __ch { '0' ... '9' | 'a' ... 'f' | 'A' ... 'F' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-fA-F]...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]  --> src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(core_intrinsics)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: using it is strongly discouraged
[INFO] [stdout]   = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:1811
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ast.rs:165:18
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 0...0xff => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:83:548
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ast.rs:169:22
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 0x100...0xffff => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:83:1313
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ast.rs:173:24
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 0x10000...0xffffffff => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:93:343
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...nge_at ( __input , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_fail...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:93:357
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...ut , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:95:343
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...nge_at ( __input , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' | '0' ... '9' | '?' | '!' => Matched ( __next , ( ) ) ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:639
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' | 'a' ... 'f' | 'A' ... 'F' => Matched ( __next , ( ) ) , _ => __state . mark_fa...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:95:357
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...ut , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' | '0' ... '9' | '?' | '!' => Matched ( __next , ( ) ) , _ => __state...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:95:383
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...{ 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' | '0' ... '9' | '?' | '!' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:653
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...ut , __pos ) ; match __ch { '0' ... '9' | 'a' ... 'f' | 'A' ... 'F' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vmbindings::interned_string_map::InternedStringMap`
[INFO] [stdout]  --> src/hanayo/eval.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::vmbindings::interned_string_map::InternedStringMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:667
[INFO] [stdout]    |
[INFO] [stdout] 81 | ... match __ch { '0' ... '9' | 'a' ... 'f' | 'A' ... 'F' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9a-fA-F]...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:81:1811
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:83:548
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:83:1313
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:93:343
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...nge_at ( __input , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_fail...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:93:357
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...ut , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_packed_borrows` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
[INFO] [stdout]    --> src/vmbindings/foreignc.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |     #[allow(safe_packed_borrows)]
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:95:343
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...nge_at ( __input , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' | '0' ... '9' | '?' | '!' => Matched ( __next , ( ) ) ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:95:357
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...ut , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' | '0' ... '9' | '?' | '!' => Matched ( __next , ( ) ) , _ => __state...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:95:383
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...{ 'a' ... 'z' | 'A' ... 'Z' | '$' | '_' | '0' ... '9' | '?' | '!' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , ...
[INFO] [stdout]    |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vmbindings::interned_string_map::InternedStringMap`
[INFO] [stdout]  --> src/hanayo/eval.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::vmbindings::interned_string_map::InternedStringMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_packed_borrows` has been removed: converted into hard error, see issue #82523 <https://github.com/rust-lang/rust/issues/82523> for more information
[INFO] [stdout]    --> src/vmbindings/foreignc.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |     #[allow(safe_packed_borrows)]
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `ptr_offset_from` has been stable since 1.47.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(ptr_offset_from)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `vec_remove_item`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(vec_remove_item)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:211:40
[INFO] [stdout]     |
[INFO] [stdout] 211 |         pub exprs: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |         pub exprs: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:244:35
[INFO] [stdout]     |
[INFO] [stdout] 244 |         pub stmt: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 244 |         pub stmt: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:316:40
[INFO] [stdout]     |
[INFO] [stdout] 316 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 316 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:371:34
[INFO] [stdout]     |
[INFO] [stdout] 371 |         pub val: std::boxed::Box<AST>,
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 371 |         pub val: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:400:35
[INFO] [stdout]     |
[INFO] [stdout] 400 |         pub cond: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 400 |         pub cond: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:401:35
[INFO] [stdout]     |
[INFO] [stdout] 401 |         pub then: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 401 |         pub then: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:402:34
[INFO] [stdout]     |
[INFO] [stdout] 402 |         pub alt: std::boxed::Box<AST>,
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 402 |         pub alt: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:498:35
[INFO] [stdout]     |
[INFO] [stdout] 498 |         pub left: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 498 |         pub left: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:499:36
[INFO] [stdout]     |
[INFO] [stdout] 499 |         pub right: std::boxed::Box<AST>,
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 499 |         pub right: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:743:35
[INFO] [stdout]     |
[INFO] [stdout] 743 |         pub left: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 743 |         pub left: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:744:36
[INFO] [stdout]     |
[INFO] [stdout] 744 |         pub right: std::boxed::Box<AST>,
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 744 |         pub right: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:832:37
[INFO] [stdout]     |
[INFO] [stdout] 832 |         pub callee: std::boxed::Box<AST>,
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 832 |         pub callee: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:833:39
[INFO] [stdout]     |
[INFO] [stdout] 833 |         pub args: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 833 |         pub args: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:885:37
[INFO] [stdout]     |
[INFO] [stdout] 885 |         MemExprIden(std::boxed::Box<AST>),
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 885 |         MemExprIden(std::boxed::Box<dyn AST>),
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:886:35
[INFO] [stdout]     |
[INFO] [stdout] 886 |         MemExprNs(std::boxed::Box<AST>),
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 886 |         MemExprNs(std::boxed::Box<dyn AST>),
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:887:33
[INFO] [stdout]     |
[INFO] [stdout] 887 |         MemExpr(std::boxed::Box<AST>),
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 887 |         MemExpr(std::boxed::Box<dyn AST>),
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:888:38
[INFO] [stdout]     |
[INFO] [stdout] 888 |         CallExpr(Vec<std::boxed::Box<AST>>),
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 888 |         CallExpr(Vec<std::boxed::Box<dyn AST>>),
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:896:35
[INFO] [stdout]     |
[INFO] [stdout] 896 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 896 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:897:35
[INFO] [stdout]     |
[INFO] [stdout] 897 |         pub then: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 897 |         pub then: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:898:41
[INFO] [stdout]     |
[INFO] [stdout] 898 |         pub alt: Option<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 898 |         pub alt: Option<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:951:35
[INFO] [stdout]     |
[INFO] [stdout] 951 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 951 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:952:35
[INFO] [stdout]     |
[INFO] [stdout] 952 |         pub then: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 952 |         pub then: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:997:35
[INFO] [stdout]     |
[INFO] [stdout] 997 |         pub from: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 997 |         pub from: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:998:33
[INFO] [stdout]     |
[INFO] [stdout] 998 |         pub to: std::boxed::Box<AST>,
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 998 |         pub to: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:999:35
[INFO] [stdout]     |
[INFO] [stdout] 999 |         pub step: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 999 |         pub step: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1000:35
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         pub stmt: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         pub stmt: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1078:35
[INFO] [stdout]      |
[INFO] [stdout] 1078 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1078 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1079:35
[INFO] [stdout]      |
[INFO] [stdout] 1079 |         pub stmt: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1079 |         pub stmt: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1206:42
[INFO] [stdout]      |
[INFO] [stdout] 1206 |         pub expr: Option<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1206 |         pub expr: Option<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1278:40
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1335:36
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         pub etype: std::boxed::Box<AST>,
[INFO] [stdout]      |                                    ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         pub etype: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1336:40
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         pub id: Option<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         pub id: Option<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1337:40
[INFO] [stdout]      |
[INFO] [stdout] 1337 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1337 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1355:35
[INFO] [stdout]      |
[INFO] [stdout] 1355 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1355 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1375:35
[INFO] [stdout]      |
[INFO] [stdout] 1375 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1375 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1421:40
[INFO] [stdout]      |
[INFO] [stdout] 1421 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1421 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/vmbindings/record.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub native_field: Option<Box<Any>>,
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub native_field: Option<Box<dyn Any>>,
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `ptr_offset_from` has been stable since 1.47.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(ptr_offset_from)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `vec_remove_item`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(vec_remove_item)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:211:40
[INFO] [stdout]     |
[INFO] [stdout] 211 |         pub exprs: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |         pub exprs: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:244:35
[INFO] [stdout]     |
[INFO] [stdout] 244 |         pub stmt: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 244 |         pub stmt: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:316:40
[INFO] [stdout]     |
[INFO] [stdout] 316 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 316 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:371:34
[INFO] [stdout]     |
[INFO] [stdout] 371 |         pub val: std::boxed::Box<AST>,
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 371 |         pub val: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:400:35
[INFO] [stdout]     |
[INFO] [stdout] 400 |         pub cond: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 400 |         pub cond: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:401:35
[INFO] [stdout]     |
[INFO] [stdout] 401 |         pub then: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 401 |         pub then: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:402:34
[INFO] [stdout]     |
[INFO] [stdout] 402 |         pub alt: std::boxed::Box<AST>,
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 402 |         pub alt: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:498:35
[INFO] [stdout]     |
[INFO] [stdout] 498 |         pub left: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 498 |         pub left: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:499:36
[INFO] [stdout]     |
[INFO] [stdout] 499 |         pub right: std::boxed::Box<AST>,
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 499 |         pub right: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:743:35
[INFO] [stdout]     |
[INFO] [stdout] 743 |         pub left: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 743 |         pub left: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:744:36
[INFO] [stdout]     |
[INFO] [stdout] 744 |         pub right: std::boxed::Box<AST>,
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 744 |         pub right: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:832:37
[INFO] [stdout]     |
[INFO] [stdout] 832 |         pub callee: std::boxed::Box<AST>,
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 832 |         pub callee: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:833:39
[INFO] [stdout]     |
[INFO] [stdout] 833 |         pub args: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 833 |         pub args: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:885:37
[INFO] [stdout]     |
[INFO] [stdout] 885 |         MemExprIden(std::boxed::Box<AST>),
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 885 |         MemExprIden(std::boxed::Box<dyn AST>),
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:886:35
[INFO] [stdout]     |
[INFO] [stdout] 886 |         MemExprNs(std::boxed::Box<AST>),
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 886 |         MemExprNs(std::boxed::Box<dyn AST>),
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:887:33
[INFO] [stdout]     |
[INFO] [stdout] 887 |         MemExpr(std::boxed::Box<AST>),
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 887 |         MemExpr(std::boxed::Box<dyn AST>),
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:888:38
[INFO] [stdout]     |
[INFO] [stdout] 888 |         CallExpr(Vec<std::boxed::Box<AST>>),
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 888 |         CallExpr(Vec<std::boxed::Box<dyn AST>>),
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:896:35
[INFO] [stdout]     |
[INFO] [stdout] 896 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 896 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:897:35
[INFO] [stdout]     |
[INFO] [stdout] 897 |         pub then: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 897 |         pub then: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:898:41
[INFO] [stdout]     |
[INFO] [stdout] 898 |         pub alt: Option<std::boxed::Box<AST>>,
[INFO] [stdout]     |                                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 898 |         pub alt: Option<std::boxed::Box<dyn AST>>,
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:951:35
[INFO] [stdout]     |
[INFO] [stdout] 951 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 951 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:952:35
[INFO] [stdout]     |
[INFO] [stdout] 952 |         pub then: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 952 |         pub then: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:997:35
[INFO] [stdout]     |
[INFO] [stdout] 997 |         pub from: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 997 |         pub from: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:998:33
[INFO] [stdout]     |
[INFO] [stdout] 998 |         pub to: std::boxed::Box<AST>,
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 998 |         pub to: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:999:35
[INFO] [stdout]     |
[INFO] [stdout] 999 |         pub step: std::boxed::Box<AST>,
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 999 |         pub step: std::boxed::Box<dyn AST>,
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1000:35
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         pub stmt: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         pub stmt: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1078:35
[INFO] [stdout]      |
[INFO] [stdout] 1078 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1078 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1079:35
[INFO] [stdout]      |
[INFO] [stdout] 1079 |         pub stmt: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1079 |         pub stmt: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1206:42
[INFO] [stdout]      |
[INFO] [stdout] 1206 |         pub expr: Option<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1206 |         pub expr: Option<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1278:40
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1335:36
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         pub etype: std::boxed::Box<AST>,
[INFO] [stdout]      |                                    ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         pub etype: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1336:40
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         pub id: Option<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         pub id: Option<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1337:40
[INFO] [stdout]      |
[INFO] [stdout] 1337 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1337 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1355:35
[INFO] [stdout]      |
[INFO] [stdout] 1355 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1355 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1375:35
[INFO] [stdout]      |
[INFO] [stdout] 1375 |         pub expr: std::boxed::Box<AST>,
[INFO] [stdout]      |                                   ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1375 |         pub expr: std::boxed::Box<dyn AST>,
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/ast.rs:1421:40
[INFO] [stdout]      |
[INFO] [stdout] 1421 |         pub stmts: Vec<std::boxed::Box<AST>>,
[INFO] [stdout]      |                                        ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1421 |         pub stmts: Vec<std::boxed::Box<dyn AST>>,
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/vmbindings/record.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub native_field: Option<Box<Any>>,
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub native_field: Option<Box<dyn Any>>,
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:77:149
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_re...
[INFO] [stdout]    |                                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 |  fn __parse_start < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<dyn ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = match __parse_program_prologue ( __input , __state , __pos ) { Matched ( __newpos , _ ) => { Matched ( __newpos , ( ) ) } , Failed => { Matched ( __pos , ( ) ) } , } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_statement_program ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]    |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:119:145
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 119 |  fn __parse_value < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_float_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(FloatLiteral, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_int_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(IntLiteral, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_string_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(StrLiteral, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(Identifier, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_array_expr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_record_expr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_function_expr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . suppress_fail += 1 ; let res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  e  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } } } } } } } } } } } } } } } } 
[INFO] [stdout]     |                                                                                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:121:150
[INFO] [stdout]     |
[INFO] [stdout] 121 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 121 |  fn __parse_array_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = slice_eq ( __input , __state , __pos , "[" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { slice_eq ( __input , __state , __pos , "]" ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ArrayExpr, ps, pe, exprs: vec![])  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "[" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , fexpr ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "," ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , {  e  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , lexpr ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "]" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:127:150
[INFO] [stdout]     |
[INFO] [stdout] 127 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 127 |  fn __parse_unary_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = { let str_start = __pos ; match { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "not" ) ; match __seq_res { Matched ( __pos , _ ) => { { __state . suppress_fail += 1 ; let __assert_res = match __parse_id_chars ( __input , __state , __pos ) { Matched ( pos , _ ) => Matched ( pos , ( ) ) , Failed => Failed , } ; __state . suppress_fail -= 1 ; match __assert_res { Failed => Matched ( __pos , ( ) ) , Matched ( .. ) => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "-" ) } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , op ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_value ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , val ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:137:151
[INFO] [stdout]     |
[INFO] [stdout] 137 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 137 |  fn __parse_record_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "record" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_record_body_stmt ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:143:153
[INFO] [stdout]     |
[INFO] [stdout] 143 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 143 |  fn __parse_function_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "function" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = match { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , i ) => { Matched ( __pos , { i } ) } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_function_arguments ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement_no_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:160:144
[INFO] [stdout]     |
[INFO] [stdout] 160 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 160 |  fn __parse_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = __parse_assignmentexpr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "expression" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:162:154
[INFO] [stdout]     |
[INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 162 |  fn __parse_assignmentexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_condexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Assign)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Adds)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Subs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Muls)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Divs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "%=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mods)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_condexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:162:395
[INFO] [stdout]     |
[INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_c...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 162 |  fn __parse_assignmentexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_condexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Assign)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Adds)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Subs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Muls)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Divs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "%=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mods)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_condexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                                                                                                                                                                                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:164:148
[INFO] [stdout]     |
[INFO] [stdout] 164 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |  fn __parse_condexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_binexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , cond ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "?" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_binexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , then ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ":" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_binexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , alt ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(CondExpr, ps, pe,
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:169:147
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 |  fn __parse_binexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_callexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "&" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseAnd)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "|" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseOr )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "xor" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseXor )  } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "and" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::And)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "or" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Or )  } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "==" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Eq )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "!=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Neq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Gt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Lt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Geq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Leq)  } ; __repeat_pos = __pos ; continue ; } } } if 3i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "of" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 4i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Of )  } ; __repeat_pos = __pos ; continue ; } } } if 4i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Add)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Sub)  } ; __repeat_pos = __pos ; continue ; } } } if 5i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mul)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Div)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "mod" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mod)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_callexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:169:388
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_c...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 |  fn __parse_binexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_callexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "&" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseAnd)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "|" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseOr )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "xor" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseXor )  } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "and" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::And)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "or" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Or )  } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "==" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Eq )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "!=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Neq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Gt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Lt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Geq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Leq)  } ; __repeat_pos = __pos ; continue ; } } } if 3i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "of" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 4i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Of )  } ; __repeat_pos = __pos ; continue ; } } } if 4i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Add)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Sub)  } ; __repeat_pos = __pos ; continue ; } } } if 5i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mul)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Div)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "mod" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mod)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_callexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                                                                                                                                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:171:148
[INFO] [stdout]     |
[INFO] [stdout] 171 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |  fn __parse_callexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_memexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _left ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_callexpr_args ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_callexpr_arm ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , _right ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:210:157
[INFO] [stdout]     |
[INFO] [stdout] 210 | ...'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |  fn __parse_callexpr_args < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<dyn ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , farg ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "," ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , {  e  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , larg ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:228:147
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 228 |  fn __parse_memexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_unary_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _left ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_memexpr_arm ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , _right ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:241:152
[INFO] [stdout]     |
[INFO] [stdout] 241 | ... < 'input > , __pos : usize ) -> RuleResult < (std::boxed::Box<ast::AST>, bool /* is_expr */, bool /* is_namespace */) > { # ! [ allow...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 241 |  fn __parse_memexpr_arm < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < (std::boxed::Box<dyn ast::AST>, bool /* is_expr */, bool /* is_namespace */) > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "." ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_word ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:250:164
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 250 |  fn __parse_statement_program_no_eos < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = __parse_block_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_if_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_while_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_for_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_for_in_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_function_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_record_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_try_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_raise_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_use_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_expr_stmt ( __input , __state , __pos ) } } } } } } } } } } } } } } } } } } } } } 
[INFO] [stdout]     |                                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:252:157
[INFO] [stdout]     |
[INFO] [stdout] 252 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 252 |  fn __parse_statement_program < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement_program_no_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "statement" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:254:156
[INFO] [stdout]     |
[INFO] [stdout] 254 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |  fn __parse_statement_no_eos < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = __parse_statement_program_no_eos ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_return_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_continue_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_break_stmt ( __input , __state , __pos ) } } } } } } } 
[INFO] [stdout]     |                                                                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:256:149
[INFO] [stdout]     |
[INFO] [stdout] 256 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 256 |  fn __parse_statement < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement_no_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "statement" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:258:150
[INFO] [stdout]     |
[INFO] [stdout] 258 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 258 |  fn __parse_block_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "begin" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_statement ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(BlockStatement, ps, pe, stmts: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "begin" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(BlockStatement, ps, pe, stmts: Vec::new())  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "block statement" ) ; Failed } } } } } } 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:260:149
[INFO] [stdout]     |
[INFO] [stdout] 260 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 260 |  fn __parse_then_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = slice_eq ( __input , __state , __pos , "then" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { __state . suppress_fail += 1 ; let res = __parse_block_stmt ( __input , __state , __pos ) ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "block or then <stmt>" ) ; Failed } } } } } } 
[INFO] [stdout]     |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:262:147
[INFO] [stdout]     |
[INFO] [stdout] 262 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 262 |  fn __parse_if_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "if" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = match { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "else" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , a ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(IfStatement, ps, pe, expr: e, then: s, alt: a)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:264:150
[INFO] [stdout]     |
[INFO] [stdout] 264 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 264 |  fn __parse_while_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "while" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(WhileStatement, ps, pe, expr: e, then: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:266:148
[INFO] [stdout]     |
[INFO] [stdout] 266 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 |  fn __parse_for_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "for" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "=" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , from ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "to" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  true  } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "downto" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  false  } ) } Failed => Failed , } } } } ; match __seq_res { Matched ( __pos , dir ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , to ) => { { let __seq_res = match { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "step" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , { e } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , step ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:279:151
[INFO] [stdout]     |
[INFO] [stdout] 279 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 279 |  fn __parse_for_in_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "for" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "in" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , expr ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:286:153
[INFO] [stdout]     |
[INFO] [stdout] 286 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 286 |  fn __parse_continue_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "continue" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ContinueStatement, ps, pe,)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:288:150
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 288 |  fn __parse_break_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "break" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(BreakStatement, ps, pe,)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:290:148
[INFO] [stdout]     |
[INFO] [stdout] 290 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 290 |  fn __parse_try_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "try" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_statement ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , stmts ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_case_stmt ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , cases ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(TryStatement, ps, pe,
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:299:150
[INFO] [stdout]     |
[INFO] [stdout] 299 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 299 |  fn __parse_raise_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "raise" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , expr ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(RaiseStatement, ps, pe,
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:302:148
[INFO] [stdout]     |
[INFO] [stdout] 302 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 302 |  fn __parse_use_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "use" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_string_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , path ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(UseStatement, ps, pe,
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:317:153
[INFO] [stdout]     |
[INFO] [stdout] 317 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 317 |  fn __parse_function_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "function" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_word ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_function_arguments ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:326:151
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 326 |  fn __parse_return_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "return" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = match { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , { e } ) } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ReturnStatement, ps, pe, expr: e)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:328:156
[INFO] [stdout]     |
[INFO] [stdout] 328 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 328 |  fn __parse_record_body_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let __choice_res = __parse_function_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_record_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_expr_stmt ( __input , __state , __pos ) } } } } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "statement" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:330:151
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 330 |  fn __parse_record_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "record" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_record_body_stmt ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:77:149
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_re...
[INFO] [stdout]    |                                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 |  fn __parse_start < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<dyn ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = match __parse_program_prologue ( __input , __state , __pos ) { Matched ( __newpos , _ ) => { Matched ( __newpos , ( ) ) } , Failed => { Matched ( __pos , ( ) ) } , } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_statement_program ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]    |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:338:149
[INFO] [stdout]     |
[INFO] [stdout] 338 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 338 |  fn __parse_expr_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ExprStatement, ps, pe, expr: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:340:90
[INFO] [stdout]     |
[INFO] [stdout] 340 |  pub fn start < 'input > ( __input : & 'input str ) -> ParseResult < Vec<std::boxed::Box<ast::AST>> > { # ! [ allow ( non_snake_case , un...
[INFO] [stdout]     |                                                                                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 340 |  pub fn start < 'input > ( __input : & 'input str ) -> ParseResult < Vec<std::boxed::Box<dyn ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_start ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) }
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:119:145
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 119 |  fn __parse_value < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_float_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(FloatLiteral, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_int_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(IntLiteral, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_string_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(StrLiteral, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(Identifier, ps, pe, val: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_array_expr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_record_expr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_function_expr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . suppress_fail += 1 ; let res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  e  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } } } } } } } } } } } } } } } } 
[INFO] [stdout]     |                                                                                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:121:150
[INFO] [stdout]     |
[INFO] [stdout] 121 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 121 |  fn __parse_array_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = slice_eq ( __input , __state , __pos , "[" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { slice_eq ( __input , __state , __pos , "]" ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ArrayExpr, ps, pe, exprs: vec![])  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "[" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , fexpr ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "," ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , {  e  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , lexpr ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "]" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:127:150
[INFO] [stdout]     |
[INFO] [stdout] 127 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 127 |  fn __parse_unary_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = { let str_start = __pos ; match { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "not" ) ; match __seq_res { Matched ( __pos , _ ) => { { __state . suppress_fail += 1 ; let __assert_res = match __parse_id_chars ( __input , __state , __pos ) { Matched ( pos , _ ) => Matched ( pos , ( ) ) , Failed => Failed , } ; __state . suppress_fail -= 1 ; match __assert_res { Failed => Matched ( __pos , ( ) ) , Matched ( .. ) => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "-" ) } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , op ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_value ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , val ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:137:151
[INFO] [stdout]     |
[INFO] [stdout] 137 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 137 |  fn __parse_record_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "record" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_record_body_stmt ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:143:153
[INFO] [stdout]     |
[INFO] [stdout] 143 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 143 |  fn __parse_function_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "function" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = match { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , i ) => { Matched ( __pos , { i } ) } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_function_arguments ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement_no_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:160:144
[INFO] [stdout]     |
[INFO] [stdout] 160 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 160 |  fn __parse_expr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = __parse_assignmentexpr ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "expression" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:162:154
[INFO] [stdout]     |
[INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 162 |  fn __parse_assignmentexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_condexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Assign)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Adds)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Subs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Muls)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Divs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "%=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mods)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_condexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:162:395
[INFO] [stdout]     |
[INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_c...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 162 |  fn __parse_assignmentexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_condexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Assign)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Adds)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Subs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Muls)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Divs)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "%=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mods)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_condexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                                                                                                                                                                                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:164:148
[INFO] [stdout]     |
[INFO] [stdout] 164 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |  fn __parse_condexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_binexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , cond ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "?" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_binexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , then ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ":" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_binexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , alt ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(CondExpr, ps, pe,
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:169:147
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 |  fn __parse_binexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_callexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "&" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseAnd)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "|" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseOr )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "xor" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseXor )  } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "and" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::And)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "or" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Or )  } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "==" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Eq )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "!=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Neq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Gt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Lt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Geq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Leq)  } ; __repeat_pos = __pos ; continue ; } } } if 3i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "of" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 4i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Of )  } ; __repeat_pos = __pos ; continue ; } } } if 4i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Add)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Sub)  } ; __repeat_pos = __pos ; continue ; } } } if 5i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mul)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Div)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "mod" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mod)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_callexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:169:388
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_c...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 |  fn __parse_binexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { fn __infix_parse < 'input > ( __min_prec : i32 , __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { if let Matched ( __pos , mut __infix_result ) = __parse_callexpr ( __input , __state , __pos ) { let mut __repeat_pos = __pos ; loop { let __pos = __repeat_pos ; if 0i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "&" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseAnd)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "|" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseOr )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "xor" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 1i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::BitwiseXor )  } ; __repeat_pos = __pos ; continue ; } } } if 1i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "and" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::And)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "or" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 2i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Or )  } ; __repeat_pos = __pos ; continue ; } } } if 2i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "==" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Eq )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "!=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Neq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Gt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Lt )  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ">=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Geq)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "<=" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 3i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Leq)  } ; __repeat_pos = __pos ; continue ; } } } if 3i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "of" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 4i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Of )  } ; __repeat_pos = __pos ; continue ; } } } if 4i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "+" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Add)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "-" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 5i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Sub)  } ; __repeat_pos = __pos ; continue ; } } } if 5i32 >= __min_prec { if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "*" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mul)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "/" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse__ ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Div)  } ; __repeat_pos = __pos ; continue ; } } if let Matched ( __pos , _ ) = { __state . suppress_fail += 1 ; let res = { let __seq_res = __parse_s ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "mod" ) ; match __seq_res { Matched ( __pos , _ ) => { __parse_s ( __input , __state , __pos ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } { if let Matched ( __pos , y ) = __infix_parse ( 6i32 , __input , __state , __pos ) { let x = __infix_result ; __infix_result = { boxed!(BinExpr, x.span().0, y.span().1, left: x, right:y, op: ast::BinOp::Mod)  } ; __repeat_pos = __pos ; continue ; } } } break ; } Matched ( __repeat_pos , __infix_result ) } else { Failed } } __infix_parse ( 0 , __input , __state , __pos ) } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_callexpr ( __input , __state , __pos ) } } } 
[INFO] [stdout]     |                                                                                                                                                                                                                                                                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:171:148
[INFO] [stdout]     |
[INFO] [stdout] 171 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |  fn __parse_callexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_memexpr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _left ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_callexpr_args ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_callexpr_arm ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , _right ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:210:157
[INFO] [stdout]     |
[INFO] [stdout] 210 | ...'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |  fn __parse_callexpr_args < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < Vec<std::boxed::Box<dyn ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "(" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , farg ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "," ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , {  e  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , larg ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , ")" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:228:147
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 228 |  fn __parse_memexpr < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_unary_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _left ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_memexpr_arm ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , __repeat_value ) } else { Failed } } ; match __seq_res { Matched ( __pos , _right ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:241:152
[INFO] [stdout]     |
[INFO] [stdout] 241 | ... < 'input > , __pos : usize ) -> RuleResult < (std::boxed::Box<ast::AST>, bool /* is_expr */, bool /* is_namespace */) > { # ! [ allow...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 241 |  fn __parse_memexpr_arm < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < (std::boxed::Box<dyn ast::AST>, bool /* is_expr */, bool /* is_namespace */) > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "." ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_word ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:250:164
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 250 |  fn __parse_statement_program_no_eos < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = __parse_block_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_if_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_while_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_for_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_for_in_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_function_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_record_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_try_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_raise_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_use_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_expr_stmt ( __input , __state , __pos ) } } } } } } } } } } } } } } } } } } } } } 
[INFO] [stdout]     |                                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:252:157
[INFO] [stdout]     |
[INFO] [stdout] 252 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 252 |  fn __parse_statement_program < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement_program_no_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "statement" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:254:156
[INFO] [stdout]     |
[INFO] [stdout] 254 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |  fn __parse_statement_no_eos < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = __parse_statement_program_no_eos ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_return_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_continue_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_break_stmt ( __input , __state , __pos ) } } } } } } } 
[INFO] [stdout]     |                                                                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:256:149
[INFO] [stdout]     |
[INFO] [stdout] 256 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 256 |  fn __parse_statement < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement_no_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "statement" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:258:150
[INFO] [stdout]     |
[INFO] [stdout] 258 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 258 |  fn __parse_block_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "begin" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_statement ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(BlockStatement, ps, pe, stmts: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "begin" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(BlockStatement, ps, pe, stmts: Vec::new())  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "block statement" ) ; Failed } } } } } } 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:260:149
[INFO] [stdout]     |
[INFO] [stdout] 260 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 260 |  fn __parse_then_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { __state . suppress_fail += 1 ; let res = { let __seq_res = slice_eq ( __input , __state , __pos , "then" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { __state . suppress_fail += 1 ; let res = __parse_block_stmt ( __input , __state , __pos ) ; __state . suppress_fail -= 1 ; res } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "block or then <stmt>" ) ; Failed } } } } } } 
[INFO] [stdout]     |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:262:147
[INFO] [stdout]     |
[INFO] [stdout] 262 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 262 |  fn __parse_if_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "if" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = match { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "else" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , a ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(IfStatement, ps, pe, expr: e, then: s, alt: a)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:264:150
[INFO] [stdout]     |
[INFO] [stdout] 264 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 264 |  fn __parse_while_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "while" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(WhileStatement, ps, pe, expr: e, then: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:266:148
[INFO] [stdout]     |
[INFO] [stdout] 266 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 |  fn __parse_for_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "for" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "=" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , from ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let __choice_res = { let __seq_res = slice_eq ( __input , __state , __pos , "to" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  true  } ) } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __seq_res = slice_eq ( __input , __state , __pos , "downto" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  false  } ) } Failed => Failed , } } } } ; match __seq_res { Matched ( __pos , dir ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , to ) => { { let __seq_res = match { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "step" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , { e } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , step ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:279:151
[INFO] [stdout]     |
[INFO] [stdout] 279 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 279 |  fn __parse_for_in_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "for" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "in" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , expr ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_then_stmt ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:286:153
[INFO] [stdout]     |
[INFO] [stdout] 286 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 286 |  fn __parse_continue_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "continue" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ContinueStatement, ps, pe,)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:288:150
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 288 |  fn __parse_break_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "break" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(BreakStatement, ps, pe,)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:290:148
[INFO] [stdout]     |
[INFO] [stdout] 290 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 290 |  fn __parse_try_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "try" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_statement ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , stmts ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_case_stmt ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , cases ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(TryStatement, ps, pe,
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:299:150
[INFO] [stdout]     |
[INFO] [stdout] 299 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 299 |  fn __parse_raise_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "raise" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , expr ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(RaiseStatement, ps, pe,
[INFO] [stdout]     |                                                                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:302:148
[INFO] [stdout]     |
[INFO] [stdout] 302 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 302 |  fn __parse_use_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "use" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_string_literal ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , path ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(UseStatement, ps, pe,
[INFO] [stdout]     |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:317:153
[INFO] [stdout]     |
[INFO] [stdout] 317 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 317 |  fn __parse_function_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "function" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_word ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_function_arguments ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , args ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_statement ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:326:151
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 326 |  fn __parse_return_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "return" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = match { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { Matched ( __pos , { e } ) } Failed => Failed , } } } Failed => Failed , } } { Matched ( __newpos , __value ) => { Matched ( __newpos , Some ( __value ) ) } , Failed => { Matched ( __pos , None ) } , } ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ReturnStatement, ps, pe, expr: e)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:328:156
[INFO] [stdout]     |
[INFO] [stdout] 328 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 328 |  fn __parse_record_body_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __choice_res = { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let __choice_res = __parse_function_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = __parse_record_stmt ( __input , __state , __pos ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => __parse_expr_stmt ( __input , __state , __pos ) } } } } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , {  s  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { __state . mark_failure ( __pos , "statement" ) ; Failed } } } } 
[INFO] [stdout]     |                                                                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:330:151
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 330 |  fn __parse_record_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = { __state . suppress_fail += 1 ; let res = slice_eq ( __input , __state , __pos , "record" ) ; __state . suppress_fail -= 1 ; res } ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_identifier ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = __parse_record_body_stmt ( __input , __state , __pos ) ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } Matched ( __repeat_pos , __repeat_value ) } ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "end" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:338:149
[INFO] [stdout]     |
[INFO] [stdout] 338 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res...
[INFO] [stdout]     |                                                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 338 |  fn __parse_expr_stmt < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box<dyn ast::AST> > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , s ) => { { let __seq_res = __parse_eos ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , {  boxed!(ExprStatement, ps, pe, expr: s)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } 
[INFO] [stdout]     |                                                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:340:90
[INFO] [stdout]     |
[INFO] [stdout] 340 |  pub fn start < 'input > ( __input : & 'input str ) -> ParseResult < Vec<std::boxed::Box<ast::AST>> > { # ! [ allow ( non_snake_case , un...
[INFO] [stdout]     |                                                                                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 340 |  pub fn start < 'input > ( __input : & 'input str ) -> ParseResult < Vec<std::boxed::Box<dyn ast::AST>> > { # ! [ allow ( non_snake_case , unused ) ] let mut __state = ParseState :: new ( ) ; match __parse_start ( __input , & mut __state , 0 ) { Matched ( __pos , __value ) => { if __pos == __input . len ( ) { return Ok ( __value ) } } _ => { } } let ( __line , __col ) = pos_to_line ( __input , __state . max_err_pos ) ; Err ( ParseError { line : __line , column : __col , offset : __state . max_err_pos , expected : __state . expected , } ) }
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut left : Box<ast::AST> = boxed!(CallExpr, ps, pe,
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut left : Box<dyn ast::AST> = boxed!(CallExpr, ps, pe,
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:218:68
[INFO] [stdout]     |
[INFO] [stdout] 218 | ...   boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed =...
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 218 |             boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_word ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:220:68
[INFO] [stdout]     |
[INFO] [stdout] 220 | ...   boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed =...
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 220 |             boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "[" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "]" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut left : Box<ast::AST> = boxed!(CallExpr, ps, pe,
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut left : Box<dyn ast::AST> = boxed!(CallExpr, ps, pe,
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:242:65
[INFO] [stdout]     |
[INFO] [stdout] 242 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>,
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 242 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>,
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:244:65
[INFO] [stdout]     |
[INFO] [stdout] 244 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>,
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 244 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>,
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:218:68
[INFO] [stdout]     |
[INFO] [stdout] 218 | ...   boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed =...
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 218 |             boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "::" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , ps ) => { { let __seq_res = __parse_word ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , id ) => { { let __seq_res = Matched ( __pos , __pos ) ; match __seq_res { Matched ( __pos , pe ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:220:68
[INFO] [stdout]     |
[INFO] [stdout] 220 | ...   boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed =...
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 220 |             boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>)  } ) } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } } Failed => Failed , } } ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => { let __choice_res = { let __seq_res = __parse__ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "[" ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = __parse_expr ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , e ) => { { let __seq_res = __parse___ ( __input , __state , __pos ) ; match __seq_res { Matched ( __pos , _ ) => { { let __seq_res = slice_eq ( __input , __state , __pos , "]" ) ; match __seq_res { Matched ( __pos , _ ) => { Matched ( __pos , { 
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:242:65
[INFO] [stdout]     |
[INFO] [stdout] 242 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>,
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 242 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>,
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/haru-2271f1996b77cd41/out/parser.rs:244:65
[INFO] [stdout]     |
[INFO] [stdout] 244 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<ast::AST>,
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 244 |         (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box<dyn ast::AST>,
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0793]: reference to packed field is unaligned
[INFO] [stdout]    --> src/vmbindings/foreignc.rs:387:41
[INFO] [stdout]     |
[INFO] [stdout] 387 |             eprint!("[interpreter {}]", val.data);
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
[INFO] [stdout]     = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout]     = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
[INFO] [stdout]     = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `eprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0793]: reference to packed field is unaligned
[INFO] [stdout]    --> src/vmbindings/foreignc.rs:387:41
[INFO] [stdout]     |
[INFO] [stdout] 387 |             eprint!("[interpreter {}]", val.data);
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
[INFO] [stdout]     = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout]     = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
[INFO] [stdout]     = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `eprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 97 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0635, E0793.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0635`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 97 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0635, E0793.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0635`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `haru` (lib) due to 3 previous errors; 97 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `haru` (lib test) due to 3 previous errors; 97 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7c83dd762b8e27b087ff2ce0c9e8b836a458555f787ff5e702bdc1def899ad6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c83dd762b8e27b087ff2ce0c9e8b836a458555f787ff5e702bdc1def899ad6b", kill_on_drop: false }`
[INFO] [stdout] 7c83dd762b8e27b087ff2ce0c9e8b836a458555f787ff5e702bdc1def899ad6b
