[INFO] cloning repository https://github.com/vi/mal-rust-vi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vi/mal-rust-vi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvi%2Fmal-rust-vi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvi%2Fmal-rust-vi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9614838720bc130d49d7a15777e6a1f73b13ca25
[INFO] checking vi/mal-rust-vi against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvi%2Fmal-rust-vi" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/vi/mal-rust-vi on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/vi/mal-rust-vi
[INFO] finished tweaking git repo https://github.com/vi/mal-rust-vi
[INFO] tweaked toml for git repo https://github.com/vi/mal-rust-vi written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/vi/mal-rust-vi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_generator v2.0.0
[INFO] [stderr]   Downloaded pest-deconstruct-derive v0.2.0
[INFO] [stderr]   Downloaded failure_derive v0.1.2
[INFO] [stderr]   Downloaded pest_derive v2.0.1
[INFO] [stderr]   Downloaded quote v0.6.8
[INFO] [stderr]   Downloaded pest v2.0.1
[INFO] [stderr]   Downloaded rustc-demangle v0.1.9
[INFO] [stderr]   Downloaded synstructure v0.9.0
[INFO] [stderr]   Downloaded proc-macro2 v0.4.20
[INFO] [stderr]   Downloaded failure v0.1.2
[INFO] [stderr]   Downloaded pest-deconstruct v0.2.0
[INFO] [stderr]   Downloaded backtrace v0.3.9
[INFO] [stderr]   Downloaded backtrace-sys v0.1.24
[INFO] [stderr]   Downloaded pest_meta v2.0.3
[INFO] [stderr]   Downloaded single v1.0.0
[INFO] [stderr]   Downloaded slab_typesafe v0.1.2
[INFO] [stderr]   Downloaded im-rc v12.2.0
[INFO] [stderr]   Downloaded syn v0.15.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e8db9d301e914068a8d8d2e9e27408879908c26cf65bbde838e096756200e765
[INFO] running `Command { std: "docker" "start" "-a" "e8db9d301e914068a8d8d2e9e27408879908c26cf65bbde838e096756200e765", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e8db9d301e914068a8d8d2e9e27408879908c26cf65bbde838e096756200e765", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e8db9d301e914068a8d8d2e9e27408879908c26cf65bbde838e096756200e765", kill_on_drop: false }`
[INFO] [stdout] e8db9d301e914068a8d8d2e9e27408879908c26cf65bbde838e096756200e765
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a98cf832c5fc190772cf2e2dfb057867e3bee70dc3cfd3d5df4b9966642da3ed
[INFO] running `Command { std: "docker" "start" "-a" "a98cf832c5fc190772cf2e2dfb057867e3bee70dc3cfd3d5df4b9966642da3ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.20
[INFO] [stderr]    Compiling cc v1.0.25
[INFO] [stderr]    Compiling failure_derive v0.1.2
[INFO] [stderr]    Compiling libc v0.2.43
[INFO] [stderr]    Compiling rustc-demangle v0.1.9
[INFO] [stderr]    Compiling cfg-if v0.1.5
[INFO] [stderr]    Compiling ucd-trie v0.1.1
[INFO] [stderr]    Compiling either v1.5.0
[INFO] [stderr]    Compiling pest v2.0.1
[INFO] [stderr]    Compiling maplit v1.0.1
[INFO] [stderr]    Compiling itertools v0.7.8
[INFO] [stderr]     Checking slab v0.4.1
[INFO] [stderr]    Compiling typenum v1.10.0
[INFO] [stderr]    Compiling im-rc v12.2.0
[INFO] [stderr]     Checking slab_typesafe v0.1.2
[INFO] [stderr]     Checking unescape v0.1.0
[INFO] [stderr]    Compiling quote v0.6.8
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]    Compiling syn v0.15.11
[INFO] [stderr]    Compiling pest_meta v2.0.3
[INFO] [stderr]    Compiling backtrace-sys v0.1.24
[INFO] [stderr]     Checking malvi_step0 v0.1.0 (/opt/rustwide/workdir/step0)
[INFO] [stderr]    Compiling backtrace v0.3.9
[INFO] [stderr]    Compiling synstructure v0.9.0
[INFO] [stderr]    Compiling pest_generator v2.0.0
[INFO] [stderr]    Compiling pest_derive v2.0.1
[INFO] [stderr]    Compiling failure v0.1.2
[INFO] [stderr]    Compiling single v1.0.0
[INFO] [stderr]    Compiling pest-deconstruct-derive v0.2.0
[INFO] [stderr]     Checking pest-deconstruct v0.2.0
[INFO] [stderr]     Checking malvi_step4 v0.1.0 (/opt/rustwide/workdir/step4)
[INFO] [stderr]     Checking malvi_step8 v0.1.0 (/opt/rustwide/workdir/step8)
[INFO] [stderr]     Checking malvi_step3d v0.1.0 (/opt/rustwide/workdir/step3d)
[INFO] [stderr]     Checking malvi_step2b v0.1.0 (/opt/rustwide/workdir/step2b)
[INFO] [stderr]     Checking malvi_step5 v0.1.0 (/opt/rustwide/workdir/step5)
[INFO] [stderr]     Checking malvi_final v0.1.0 (/opt/rustwide/workdir/final)
[INFO] [stderr]     Checking malvi_step6 v0.1.0 (/opt/rustwide/workdir/step6)
[INFO] [stderr]     Checking malvi_step1 v0.1.0 (/opt/rustwide/workdir/step1)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step2b/src/lib.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | type Func = Box<Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 | type Func = Box<dyn Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3d/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3d/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3d/src/lib.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step8/src/stdfn_part3.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step8/src/stdfn_part3.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step4/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step4/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step4/src/lib.rs:113:16
[INFO] [stdout]     |
[INFO] [stdout] 113 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step5/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step5/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step5/src/lib.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step6/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step6/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step6/src/lib.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> final/src/stdfn_part3.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> final/src/stdfn_part3.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step8/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step8/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step8/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step8/src/lib.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> final/src/lib.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 170 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step2 v0.1.0 (/opt/rustwide/workdir/step2)
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step7 v0.1.0 (/opt/rustwide/workdir/step7)
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_stepA v0.1.0 (/opt/rustwide/workdir/stepA)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step2/src/lib.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 | type Func = Box<Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | type Func = Box<dyn Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step7/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step7/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step7/src/lib.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), env, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, env, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step5/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step5/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step3 v0.1.0 (/opt/rustwide/workdir/step3)
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step9 v0.1.0 (/opt/rustwide/workdir/step9)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> stepA/src/stdfn_part3.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> stepA/src/stdfn_part3.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> stepA/src/lib.rs:163:16
[INFO] [stdout]     |
[INFO] [stdout] 163 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 163 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), m, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, m, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step6/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step6/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step2c v0.1.0 (/opt/rustwide/workdir/step2c)
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), m, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, m, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step8/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step8/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3/src/lib.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step3c v0.1.0 (/opt/rustwide/workdir/step3c)
[INFO] [stdout] warning: 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step9/src/stdfn_part3.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step9/src/stdfn_part3.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking malvi_step3b v0.1.0 (/opt/rustwide/workdir/step3b)
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step9/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step9/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step9/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step9/src/lib.rs:123:16
[INFO] [stdout]     |
[INFO] [stdout] 123 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step2c/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step2c/src/lib.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | type Func = Box<Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | type Func = Box<dyn Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3c/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3c/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3c/src/lib.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3b/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3b/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3b/src/lib.rs:78:16
[INFO] [stdout]    |
[INFO] [stdout] 78 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), m, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, m, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step7/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step7/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step4/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step4/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step2c/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step2c/src/lib.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | type Func = Box<Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | type Func = Box<dyn Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step4/src/lib.rs:113:16
[INFO] [stdout]     |
[INFO] [stdout] 113 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step6/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step6/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step6/src/lib.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step9/src/stdfn_part3.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step9/src/stdfn_part3.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step2/src/lib.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 | type Func = Box<Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | type Func = Box<dyn Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> final/src/stdfn_part3.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> final/src/stdfn_part3.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step9/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step9/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step9/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step9/src/lib.rs:123:16
[INFO] [stdout]     |
[INFO] [stdout] 123 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3/src/lib.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> final/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> final/src/lib.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 170 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step5/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step5/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step5/src/lib.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3d/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3d/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3d/src/lib.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), m, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, m, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step6/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step6/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step6/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> stepA/src/stdfn_part3.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> stepA/src/stdfn_part3.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step2b/src/lib.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | type Func = Box<Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 | type Func = Box<dyn Fn(&[Ast]) -> Result<Ast>>;
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> stepA/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> stepA/src/lib.rs:163:16
[INFO] [stdout]     |
[INFO] [stdout] 163 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 163 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step7/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step7/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step7/src/lib.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step8/src/stdfn_part3.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         /// Convert user-defined function into a macro
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> step8/src/stdfn_part3.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |         /// Convert user-defined macro into a function
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `bind_by_move_pattern_guards` has been stable since 1.39.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step8/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(bind_by_move_pattern_guards)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step8/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_escape` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step8/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(str_escape)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), env, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, env, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> step8/src/lib.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, Vector<Rc<Ast>>) -> Result<Ast>>;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step5/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step5/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step5/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3b/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3b/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3b/src/lib.rs:78:16
[INFO] [stdout]    |
[INFO] [stdout] 78 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `chunks_exact` has been stable since 1.31.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3c/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(chunks_exact)]
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `convert_id` has been stable since 1.33.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> step3c/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(convert_id)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> step3c/src/lib.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | type Func = Rc<dyn Fn(&mut Malvi, &BindingsHandle, &[Rc<Ast>]) -> Result<Ast>>;
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), m, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, m, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step7/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step7/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step7/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             write!(f, " ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |         write!(f, "{}", BoundAstRef(&*i, m, dm));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 write!(f, "(");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 write!(f, "[");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 write!(f, "{{");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         write!(f, ", ");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/parse.rs:270:21
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                     write!(
[INFO] [stdout] 271 | |                         f,
[INFO] [stdout] 272 | |                         "{} {}",
[INFO] [stdout] 273 | |                         BoundAstRef(&Ast::Simple(k.clone()), m, dm),
[INFO] [stdout] 274 | |                         BoundAstRef(v, m, dm),
[INFO] [stdout] 275 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step8/src/stdfn_part2.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     write!(s, " ");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> step8/src/stdfn_part2.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::PrStr));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> step8/src/stdfn_part2.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 write!(s, "{}", super::BoundAstRef(&*x, m, crate::DisplayMode::Str));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 5.32s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.14.9
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "a98cf832c5fc190772cf2e2dfb057867e3bee70dc3cfd3d5df4b9966642da3ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a98cf832c5fc190772cf2e2dfb057867e3bee70dc3cfd3d5df4b9966642da3ed", kill_on_drop: false }`
[INFO] [stdout] a98cf832c5fc190772cf2e2dfb057867e3bee70dc3cfd3d5df4b9966642da3ed
