[INFO] fetching crate haru 0.29.5... [INFO] checking haru-0.29.5 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] extracting crate haru 0.29.5 into /workspace/builds/worker-5-tc1/source [INFO] validating manifest of crates.io crate haru 0.29.5 on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-5-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-5-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 95 packages to latest compatible versions [INFO] [stderr] Adding ansi_term v0.11.0 (available: v0.12.1) [INFO] [stderr] Adding arrayvec v0.5.2 (available: v0.7.6) [INFO] [stderr] Adding base64 v0.13.1 (available: v0.22.1) [INFO] [stderr] Adding bindgen v0.49.4 (available: v0.70.1) [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.6.0) [INFO] [stderr] Adding blake2b_simd v0.5.11 (available: v1.0.2) [INFO] [stderr] Adding cexpr v0.3.6 (available: v0.6.0) [INFO] [stderr] Adding cfg-if v0.1.10 (available: v1.0.0) [INFO] [stderr] Adding clang-sys v0.28.1 (available: v1.8.1) [INFO] [stderr] Adding clap v2.34.0 (available: v4.5.18) [INFO] [stderr] Adding constant_time_eq v0.1.5 (available: v0.3.1) [INFO] [stderr] Adding dirs v1.0.5 (available: v5.0.1) [INFO] [stderr] Adding env_logger v0.6.2 (available: v0.11.5) [INFO] [stderr] Adding getrandom v0.1.16 (available: v0.2.15) [INFO] [stderr] Adding hashbrown v0.4.0 (available: v0.14.5) [INFO] [stderr] Adding hermit-abi v0.1.19 (available: v0.4.0) [INFO] [stderr] Adding humantime v1.3.0 (available: v2.1.0) [INFO] [stderr] Adding jemalloc-sys v0.3.2 (available: v0.5.4+5.3.0-patched) [INFO] [stderr] Adding jemallocator v0.3.2 (available: v0.5.4) [INFO] [stderr] Adding libffi-sys v0.7.0 (available: v2.3.0) [INFO] [stderr] Adding libloading v0.5.2 (available: v0.8.5) [INFO] [stderr] Adding nix v0.13.1 (available: v0.29.0) [INFO] [stderr] Adding nom v4.2.3 (available: v7.1.3) [INFO] [stderr] Adding num-derive v0.2.5 (available: v0.4.2) [INFO] [stderr] Adding peeking_take_while v0.1.2 (available: v1.0.0) [INFO] [stderr] Adding peg v0.5.7 (available: v0.8.4) [INFO] [stderr] Adding proc-macro2 v0.4.30 (available: v1.0.86) [INFO] [stderr] Adding quick-error v1.2.3 (available: v2.0.1) [INFO] [stderr] Adding quote v0.3.15 (available: v1.0.37) [INFO] [stderr] Adding quote v0.6.13 (available: v1.0.37) [INFO] [stderr] Adding redox_syscall v0.1.57 (available: v0.5.6) [INFO] [stderr] Adding redox_users v0.3.5 (available: v0.4.6) [INFO] [stderr] Adding rust-argon2 v0.8.3 (available: v2.1.0) [INFO] [stderr] Adding rustyline v4.1.0 (available: v14.0.0) [INFO] [stderr] Adding shlex v0.1.1 (available: v1.3.0) [INFO] [stderr] Adding strsim v0.8.0 (available: v0.11.1) [INFO] [stderr] Adding syn v0.15.44 (available: v2.0.77) [INFO] [stderr] Adding textwrap v0.11.0 (available: v0.16.1) [INFO] [stderr] Adding unicode-width v0.1.14 (available: v0.2.0) [INFO] [stderr] Adding unicode-xid v0.1.0 (available: v0.2.6) [INFO] [stderr] Adding utf8parse v0.1.1 (available: v0.2.2) [INFO] [stderr] Adding version_check v0.1.5 (available: v0.9.5) [INFO] [stderr] Adding wasi v0.9.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding which v2.0.1 (available: v6.0.3) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded dirs v1.0.5 [INFO] [stderr] Downloaded peg v0.5.7 [INFO] [stderr] Downloaded rust-argon2 v0.8.3 [INFO] [stderr] Downloaded blake2b_simd v0.5.11 [INFO] [stderr] Downloaded haru-decorator v0.21.0 [INFO] [stderr] Downloaded which v2.0.1 [INFO] [stderr] Downloaded cexpr v0.3.6 [INFO] [stderr] Downloaded make-cmd v0.1.0 [INFO] [stderr] Downloaded utf8parse v0.1.1 [INFO] [stderr] Downloaded jemallocator v0.3.2 [INFO] [stderr] Downloaded hashbrown v0.4.0 [INFO] [stderr] Downloaded clang-sys v0.28.1 [INFO] [stderr] Downloaded rustyline v4.1.0 [INFO] [stderr] Downloaded nix v0.13.1 [INFO] [stderr] Downloaded bindgen v0.49.4 [INFO] [stderr] Downloaded libffi-sys v0.7.0 [INFO] [stderr] Downloaded jemalloc-sys v0.3.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3a86af65d769f8923e9bfd05a051c8c50b4de8f6b0c3023cf7d02349cc48ec2e [INFO] running `Command { std: "docker" "start" "-a" "3a86af65d769f8923e9bfd05a051c8c50b4de8f6b0c3023cf7d02349cc48ec2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3a86af65d769f8923e9bfd05a051c8c50b4de8f6b0c3023cf7d02349cc48ec2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3a86af65d769f8923e9bfd05a051c8c50b4de8f6b0c3023cf7d02349cc48ec2e", kill_on_drop: false }` [INFO] [stdout] 3a86af65d769f8923e9bfd05a051c8c50b4de8f6b0c3023cf7d02349cc48ec2e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 96c78031e0a6b917e2c28a092800dfc23ff31eb7606e5be89e30c7f1d566e34f [INFO] running `Command { std: "docker" "start" "-a" "96c78031e0a6b917e2c28a092800dfc23ff31eb7606e5be89e30c7f1d566e34f", kill_on_drop: false }` [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling nix v0.13.1 [INFO] [stderr] Compiling peg v0.5.7 [INFO] [stderr] Checking dirs v1.0.5 [INFO] [stderr] Checking utf8parse v0.1.1 [INFO] [stderr] Checking hashbrown v0.4.0 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling cc v1.1.21 [INFO] [stderr] Compiling haru v0.29.5 (/opt/rustwide/workdir) [INFO] [stderr] Checking rustyline v4.1.0 [INFO] [stderr] Compiling num-derive v0.2.5 [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: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:109:16 [INFO] [stdout] | [INFO] [stdout] 109 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:130:16 [INFO] [stdout] | [INFO] [stdout] 130 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:151:16 [INFO] [stdout] | [INFO] [stdout] 151 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:191:16 [INFO] [stdout] | [INFO] [stdout] 191 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:213:16 [INFO] [stdout] | [INFO] [stdout] 213 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:246:16 [INFO] [stdout] | [INFO] [stdout] 246 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:318:16 [INFO] [stdout] | [INFO] [stdout] 318 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:373:16 [INFO] [stdout] | [INFO] [stdout] 373 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:452:16 [INFO] [stdout] | [INFO] [stdout] 452 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:502:16 [INFO] [stdout] | [INFO] [stdout] 502 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:812:16 [INFO] [stdout] | [INFO] [stdout] 812 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:867:16 [INFO] [stdout] | [INFO] [stdout] 867 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:900:16 [INFO] [stdout] | [INFO] [stdout] 900 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:954:16 [INFO] [stdout] | [INFO] [stdout] 954 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1003:16 [INFO] [stdout] | [INFO] [stdout] 1003 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1081:16 [INFO] [stdout] | [INFO] [stdout] 1081 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1129:16 [INFO] [stdout] | [INFO] [stdout] 1129 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1150:16 [INFO] [stdout] | [INFO] [stdout] 1150 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1186:16 [INFO] [stdout] | [INFO] [stdout] 1186 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1208:16 [INFO] [stdout] | [INFO] [stdout] 1208 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1257:16 [INFO] [stdout] | [INFO] [stdout] 1257 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1281:16 [INFO] [stdout] | [INFO] [stdout] 1281 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1339:16 [INFO] [stdout] | [INFO] [stdout] 1339 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1357:16 [INFO] [stdout] | [INFO] [stdout] 1357 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1377:16 [INFO] [stdout] | [INFO] [stdout] 1377 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1400:16 [INFO] [stdout] | [INFO] [stdout] 1400 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1423:16 [INFO] [stdout] | [INFO] [stdout] 1423 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:159:20 [INFO] [stdout] | [INFO] [stdout] 159 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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 [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 [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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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 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: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/value.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/value.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/value.rs:104:16 [INFO] [stdout] | [INFO] [stdout] 104 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vm.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vm.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vm.rs:319:16 [INFO] [stdout] | [INFO] [stdout] 319 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vmerror.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vmerror.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:109:16 [INFO] [stdout] | [INFO] [stdout] 109 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:130:16 [INFO] [stdout] | [INFO] [stdout] 130 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:151:16 [INFO] [stdout] | [INFO] [stdout] 151 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:191:16 [INFO] [stdout] | [INFO] [stdout] 191 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:213:16 [INFO] [stdout] | [INFO] [stdout] 213 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:246:16 [INFO] [stdout] | [INFO] [stdout] 246 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:318:16 [INFO] [stdout] | [INFO] [stdout] 318 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:373:16 [INFO] [stdout] | [INFO] [stdout] 373 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:452:16 [INFO] [stdout] | [INFO] [stdout] 452 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:502:16 [INFO] [stdout] | [INFO] [stdout] 502 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:812:16 [INFO] [stdout] | [INFO] [stdout] 812 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:867:16 [INFO] [stdout] | [INFO] [stdout] 867 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:900:16 [INFO] [stdout] | [INFO] [stdout] 900 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:954:16 [INFO] [stdout] | [INFO] [stdout] 954 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1003:16 [INFO] [stdout] | [INFO] [stdout] 1003 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1081:16 [INFO] [stdout] | [INFO] [stdout] 1081 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1129:16 [INFO] [stdout] | [INFO] [stdout] 1129 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1150:16 [INFO] [stdout] | [INFO] [stdout] 1150 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1186:16 [INFO] [stdout] | [INFO] [stdout] 1186 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1208:16 [INFO] [stdout] | [INFO] [stdout] 1208 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1257:16 [INFO] [stdout] | [INFO] [stdout] 1257 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1281:16 [INFO] [stdout] | [INFO] [stdout] 1281 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1339:16 [INFO] [stdout] | [INFO] [stdout] 1339 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1357:16 [INFO] [stdout] | [INFO] [stdout] 1357 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1377:16 [INFO] [stdout] | [INFO] [stdout] 1377 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1400:16 [INFO] [stdout] | [INFO] [stdout] 1400 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:1423:16 [INFO] [stdout] | [INFO] [stdout] 1423 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/ast.rs:159:20 [INFO] [stdout] | [INFO] [stdout] 159 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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 [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` 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: `...` 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 [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 [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>, [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 [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>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 244 | pub stmt: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 316 | pub stmts: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 371 | pub val: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 400 | pub cond: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 401 | pub then: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 402 | pub alt: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 498 | pub left: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 499 | pub right: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 743 | pub left: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 744 | pub right: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 832 | pub callee: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 833 | pub args: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 885 | MemExprIden(std::boxed::Box), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/haru-693a1906d7f8996f/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 [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), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 886 | MemExprNs(std::boxed::Box), [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), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 887 | MemExpr(std::boxed::Box), [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>), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 888 | CallExpr(Vec>), [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 896 | pub expr: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 897 | pub then: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 898 | pub alt: Option>, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 951 | pub expr: std::boxed::Box, [INFO] [stdout] | +++ [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: 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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 952 | pub then: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 997 | pub from: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 998 | pub to: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 999 | pub step: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lint `safe_packed_borrows` has been removed: converted into hard error, see issue #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: 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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1000 | pub stmt: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1078 | pub expr: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1079 | pub stmt: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/value.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/value.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1206 | pub expr: Option>, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1278 | pub stmts: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/value.rs:104:16 [INFO] [stdout] | [INFO] [stdout] 104 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1335 | pub etype: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1336 | pub id: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vm.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1337 | pub stmts: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vm.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1355 | pub expr: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vm.rs:319:16 [INFO] [stdout] | [INFO] [stdout] 319 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1375 | pub expr: std::boxed::Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vmerror.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1421 | pub stmts: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/vmbindings/vmerror.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub native_field: Option>, [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-693a1906d7f8996f/out/parser.rs:77:149 [INFO] [stdout] | [INFO] [stdout] 77 | ...'input > , __pos : usize ) -> RuleResult < Vec> > { # ! [ 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 [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> > { # ! [ 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-693a1906d7f8996f/out/parser.rs:119:145 [INFO] [stdout] | [INFO] [stdout] 119 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:121:150 [INFO] [stdout] | [INFO] [stdout] 121 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:127:150 [INFO] [stdout] | [INFO] [stdout] 127 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:137:151 [INFO] [stdout] | [INFO] [stdout] 137 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:143:153 [INFO] [stdout] | [INFO] [stdout] 143 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:160:144 [INFO] [stdout] | [INFO] [stdout] 160 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:162:154 [INFO] [stdout] | [INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:162:395 [INFO] [stdout] | [INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:164:148 [INFO] [stdout] | [INFO] [stdout] 164 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:169:147 [INFO] [stdout] | [INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:169:388 [INFO] [stdout] | [INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:171:148 [INFO] [stdout] | [INFO] [stdout] 171 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:210:157 [INFO] [stdout] | [INFO] [stdout] 210 | ...'input > , __pos : usize ) -> RuleResult < Vec> > { # ! [ 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 [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> > { # ! [ 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-693a1906d7f8996f/out/parser.rs:228:147 [INFO] [stdout] | [INFO] [stdout] 228 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:241:152 [INFO] [stdout] | [INFO] [stdout] 241 | ... < 'input > , __pos : usize ) -> RuleResult < (std::boxed::Box, 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 [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, 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-693a1906d7f8996f/out/parser.rs:250:164 [INFO] [stdout] | [INFO] [stdout] 250 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:252:157 [INFO] [stdout] | [INFO] [stdout] 252 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:254:156 [INFO] [stdout] | [INFO] [stdout] 254 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:256:149 [INFO] [stdout] | [INFO] [stdout] 256 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:258:150 [INFO] [stdout] | [INFO] [stdout] 258 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:260:149 [INFO] [stdout] | [INFO] [stdout] 260 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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 " ) ; 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-693a1906d7f8996f/out/parser.rs:262:147 [INFO] [stdout] | [INFO] [stdout] 262 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:264:150 [INFO] [stdout] | [INFO] [stdout] 264 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:266:148 [INFO] [stdout] | [INFO] [stdout] 266 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:279:151 [INFO] [stdout] | [INFO] [stdout] 279 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:286:153 [INFO] [stdout] | [INFO] [stdout] 286 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:288:150 [INFO] [stdout] | [INFO] [stdout] 288 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:290:148 [INFO] [stdout] | [INFO] [stdout] 290 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:299:150 [INFO] [stdout] | [INFO] [stdout] 299 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:302:148 [INFO] [stdout] | [INFO] [stdout] 302 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:317:153 [INFO] [stdout] | [INFO] [stdout] 317 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:326:151 [INFO] [stdout] | [INFO] [stdout] 326 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:328:156 [INFO] [stdout] | [INFO] [stdout] 328 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:330:151 [INFO] [stdout] | [INFO] [stdout] 330 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:338:149 [INFO] [stdout] | [INFO] [stdout] 338 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:340:90 [INFO] [stdout] | [INFO] [stdout] 340 | pub fn start < 'input > ( __input : & 'input str ) -> ParseResult < Vec> > { # ! [ 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 [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> > { # ! [ 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: 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>, [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 [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>, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 244 | pub stmt: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 316 | pub stmts: Vec>, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 371 | pub val: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 400 | pub cond: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 401 | pub then: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 402 | pub alt: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 498 | pub left: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 499 | pub right: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 743 | pub left: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 744 | pub right: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 832 | pub callee: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 833 | pub args: Vec>, [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), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 885 | MemExprIden(std::boxed::Box), [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), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 886 | MemExprNs(std::boxed::Box), [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), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 887 | MemExpr(std::boxed::Box), [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>), [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 888 | CallExpr(Vec>), [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 896 | pub expr: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 897 | pub then: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 898 | pub alt: Option>, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 951 | pub expr: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 952 | pub then: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 997 | pub from: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 998 | pub to: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 999 | pub step: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1000 | pub stmt: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1078 | pub expr: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1079 | pub stmt: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1206 | pub expr: Option>, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1278 | pub stmts: Vec>, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1335 | pub etype: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1336 | pub id: Option>, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1337 | pub stmts: Vec>, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1355 | pub expr: std::boxed::Box, [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, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1375 | pub expr: std::boxed::Box, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 1421 | pub stmts: Vec>, [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>, [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub native_field: Option>, [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-693a1906d7f8996f/out/parser.rs:77:149 [INFO] [stdout] | [INFO] [stdout] 77 | ...'input > , __pos : usize ) -> RuleResult < Vec> > { # ! [ 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 [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> > { # ! [ 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-693a1906d7f8996f/out/parser.rs:119:145 [INFO] [stdout] | [INFO] [stdout] 119 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:121:150 [INFO] [stdout] | [INFO] [stdout] 121 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:127:150 [INFO] [stdout] | [INFO] [stdout] 127 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:137:151 [INFO] [stdout] | [INFO] [stdout] 137 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:143:153 [INFO] [stdout] | [INFO] [stdout] 143 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:160:144 [INFO] [stdout] | [INFO] [stdout] 160 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:162:154 [INFO] [stdout] | [INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:162:395 [INFO] [stdout] | [INFO] [stdout] 162 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:164:148 [INFO] [stdout] | [INFO] [stdout] 164 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:169:147 [INFO] [stdout] | [INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:169:388 [INFO] [stdout] | [INFO] [stdout] 169 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { 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 [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 > { # ! [ 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 > { 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-693a1906d7f8996f/out/parser.rs:171:148 [INFO] [stdout] | [INFO] [stdout] 171 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:210:157 [INFO] [stdout] | [INFO] [stdout] 210 | ...'input > , __pos : usize ) -> RuleResult < Vec> > { # ! [ 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 [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> > { # ! [ 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-693a1906d7f8996f/out/parser.rs:228:147 [INFO] [stdout] | [INFO] [stdout] 228 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:241:152 [INFO] [stdout] | [INFO] [stdout] 241 | ... < 'input > , __pos : usize ) -> RuleResult < (std::boxed::Box, 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 [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, 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-693a1906d7f8996f/out/parser.rs:250:164 [INFO] [stdout] | [INFO] [stdout] 250 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:252:157 [INFO] [stdout] | [INFO] [stdout] 252 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:254:156 [INFO] [stdout] | [INFO] [stdout] 254 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:256:149 [INFO] [stdout] | [INFO] [stdout] 256 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:258:150 [INFO] [stdout] | [INFO] [stdout] 258 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:260:149 [INFO] [stdout] | [INFO] [stdout] 260 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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 " ) ; 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-693a1906d7f8996f/out/parser.rs:262:147 [INFO] [stdout] | [INFO] [stdout] 262 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:264:150 [INFO] [stdout] | [INFO] [stdout] 264 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:266:148 [INFO] [stdout] | [INFO] [stdout] 266 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:279:151 [INFO] [stdout] | [INFO] [stdout] 279 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:286:153 [INFO] [stdout] | [INFO] [stdout] 286 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:288:150 [INFO] [stdout] | [INFO] [stdout] 288 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:290:148 [INFO] [stdout] | [INFO] [stdout] 290 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:299:150 [INFO] [stdout] | [INFO] [stdout] 299 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:302:148 [INFO] [stdout] | [INFO] [stdout] 302 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:317:153 [INFO] [stdout] | [INFO] [stdout] 317 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:326:151 [INFO] [stdout] | [INFO] [stdout] 326 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:328:156 [INFO] [stdout] | [INFO] [stdout] 328 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:330:151 [INFO] [stdout] | [INFO] [stdout] 330 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:338:149 [INFO] [stdout] | [INFO] [stdout] 338 | ...e < 'input > , __pos : usize ) -> RuleResult < std::boxed::Box > { # ! [ 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 [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 > { # ! [ 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-693a1906d7f8996f/out/parser.rs:340:90 [INFO] [stdout] | [INFO] [stdout] 340 | pub fn start < 'input > ( __input : & 'input str ) -> ParseResult < Vec> > { # ! [ 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 [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> > { # ! [ 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-693a1906d7f8996f/out/parser.rs:172:28 [INFO] [stdout] | [INFO] [stdout] 172 | let mut left : Box = 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 172 | let mut left : Box = 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-693a1906d7f8996f/out/parser.rs:218:68 [INFO] [stdout] | [INFO] [stdout] 218 | ... boxed!(Identifier, ps, pe, val: id) as std::boxed::Box) } ) } 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 [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) } ) } 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-693a1906d7f8996f/out/parser.rs:220:68 [INFO] [stdout] | [INFO] [stdout] 220 | ... boxed!(Identifier, ps, pe, val: id) as std::boxed::Box) } ) } 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 [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) } ) } 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-693a1906d7f8996f/out/parser.rs:242:65 [INFO] [stdout] | [INFO] [stdout] 242 | (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box, [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 [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, [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-693a1906d7f8996f/out/parser.rs:244:65 [INFO] [stdout] | [INFO] [stdout] 244 | (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box, [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 [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, [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-693a1906d7f8996f/out/parser.rs:172:28 [INFO] [stdout] | [INFO] [stdout] 172 | let mut left : Box = 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 172 | let mut left : Box = 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-693a1906d7f8996f/out/parser.rs:218:68 [INFO] [stdout] | [INFO] [stdout] 218 | ... boxed!(Identifier, ps, pe, val: id) as std::boxed::Box) } ) } 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 [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) } ) } 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-693a1906d7f8996f/out/parser.rs:220:68 [INFO] [stdout] | [INFO] [stdout] 220 | ... boxed!(Identifier, ps, pe, val: id) as std::boxed::Box) } ) } 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 [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) } ) } 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-693a1906d7f8996f/out/parser.rs:242:65 [INFO] [stdout] | [INFO] [stdout] 242 | (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box, [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 [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, [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-693a1906d7f8996f/out/parser.rs:244:65 [INFO] [stdout] | [INFO] [stdout] 244 | (boxed!(Identifier, ps, pe, val: id) as std::boxed::Box, [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 [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, [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: aborting due to 2 previous errors; 133 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; 133 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [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; 133 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 test) due to 3 previous errors; 133 warnings emitted [INFO] running `Command { std: "docker" "inspect" "96c78031e0a6b917e2c28a092800dfc23ff31eb7606e5be89e30c7f1d566e34f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96c78031e0a6b917e2c28a092800dfc23ff31eb7606e5be89e30c7f1d566e34f", kill_on_drop: false }` [INFO] [stdout] 96c78031e0a6b917e2c28a092800dfc23ff31eb7606e5be89e30c7f1d566e34f