[INFO] fetching crate topdown-rs 0.3.3...
[INFO] testing topdown-rs-0.3.3 against 1.69.0 for beta-1.70-1
[INFO] extracting crate topdown-rs 0.3.3 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate topdown-rs 0.3.3 on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate topdown-rs 0.3.3
[INFO] finished tweaking crates.io crate topdown-rs 0.3.3
[INFO] tweaked toml for crates.io crate topdown-rs 0.3.3 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65d6cd09dc98ad227cc81292c08af6060b5990c64a3078b25d5edcc5e69f138d
[INFO] running `Command { std: "docker" "start" "-a" "65d6cd09dc98ad227cc81292c08af6060b5990c64a3078b25d5edcc5e69f138d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65d6cd09dc98ad227cc81292c08af6060b5990c64a3078b25d5edcc5e69f138d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65d6cd09dc98ad227cc81292c08af6060b5990c64a3078b25d5edcc5e69f138d", kill_on_drop: false }`
[INFO] [stdout] 65d6cd09dc98ad227cc81292c08af6060b5990c64a3078b25d5edcc5e69f138d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e407fe3ff2e6293b5b2e60f0752eaf4b7c1a354089d5c86837a95f5aba1ebbe4
[INFO] running `Command { std: "docker" "start" "-a" "e407fe3ff2e6293b5b2e60f0752eaf4b7c1a354089d5c86837a95f5aba1ebbe4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling regex-syntax v0.3.9
[INFO] [stderr]    Compiling utf8-ranges v0.1.3
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling memchr v0.1.11
[INFO] [stderr]    Compiling thread-id v2.0.0
[INFO] [stderr]    Compiling thread_local v0.2.7
[INFO] [stderr]    Compiling aho-corasick v0.5.3
[INFO] [stderr]    Compiling regex v0.1.80
[INFO] [stderr]    Compiling topdown-rs v0.3.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) 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] 4 |     term: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/choice.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parsers: &'a [&'a(Parser<T>+'a)]
[INFO] [stdout]   |                       ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parsers: &'a [&'a(dyn Parser<T>+'a)]
[INFO] [stdout]   |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/until.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many1.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/try.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T> + 'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T> + 'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cond: &'a (Parser<S> + 'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cond: &'a (dyn Parser<S> + 'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (Parser<T> + 'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (dyn Parser<T> + 'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/opt.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 |     delim: &'a (Parser<String>+'a),
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     delim: &'a (dyn Parser<String>+'a),
[INFO] [stdout]   |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (Parser<S>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (dyn Parser<S>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     stop: &'a (Parser<T>+'a)
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     stop: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     hooks: Vec<&'a (ParserHook+'a)>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     hooks: Vec<&'a (dyn ParserHook+'a)>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:43
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn add_hook(&mut self, hook: &'a (dyn ParserHook+'a)) {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:195:37
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn accept<T>(&mut self, p: &Parser<T>) -> ParserResult<T> {
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn accept<T>(&mut self, p: &dyn Parser<T>) -> ParserResult<T> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (dyn Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:64
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (dyn Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:64
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/choice.rs:7:35
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (dyn Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stdout]   |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/until.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (dyn Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (dyn Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many1.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (dyn Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/try.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(dyn Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (dyn Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:9:62
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (dyn Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/opt.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stdout]   |                                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (dyn Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (dyn Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (dyn Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (dyn Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:9:62
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (dyn Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 39 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 8.01s
[INFO] running `Command { std: "docker" "inspect" "e407fe3ff2e6293b5b2e60f0752eaf4b7c1a354089d5c86837a95f5aba1ebbe4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e407fe3ff2e6293b5b2e60f0752eaf4b7c1a354089d5c86837a95f5aba1ebbe4", kill_on_drop: false }`
[INFO] [stdout] e407fe3ff2e6293b5b2e60f0752eaf4b7c1a354089d5c86837a95f5aba1ebbe4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 67dd73f9b7c6d6e659cc7e8e7e38206ee594b2bfa723f12490f1fb9b4cd40ad9
[INFO] running `Command { std: "docker" "start" "-a" "67dd73f9b7c6d6e659cc7e8e7e38206ee594b2bfa723f12490f1fb9b4cd40ad9", kill_on_drop: false }`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) 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] 4 |     term: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/choice.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parsers: &'a [&'a(Parser<T>+'a)]
[INFO] [stdout]   |                       ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parsers: &'a [&'a(dyn Parser<T>+'a)]
[INFO] [stdout]   |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/until.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many1.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/try.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T> + 'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T> + 'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cond: &'a (Parser<S> + 'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cond: &'a (dyn Parser<S> + 'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (Parser<T> + 'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (dyn Parser<T> + 'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/opt.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 |     delim: &'a (Parser<String>+'a),
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     delim: &'a (dyn Parser<String>+'a),
[INFO] [stdout]   |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling topdown-rs v0.3.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (Parser<S>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (dyn Parser<S>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     stop: &'a (Parser<T>+'a)
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     stop: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     hooks: Vec<&'a (ParserHook+'a)>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     hooks: Vec<&'a (dyn ParserHook+'a)>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:43
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn add_hook(&mut self, hook: &'a (dyn ParserHook+'a)) {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:195:37
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn accept<T>(&mut self, p: &Parser<T>) -> ParserResult<T> {
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn accept<T>(&mut self, p: &dyn Parser<T>) -> ParserResult<T> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (dyn Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:64
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (dyn Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:64
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/choice.rs:7:35
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (dyn Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stdout]   |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/until.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (dyn Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (dyn Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many1.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (dyn Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/try.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(dyn Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (dyn Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:9:62
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (dyn Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/opt.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stdout]   |                                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (dyn Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (dyn Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (dyn Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (dyn Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:9:62
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (dyn Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 39 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:342:32
[INFO] [stdout]     |
[INFO] [stdout] 342 |             "*" => (Box::new(|&: a:AST, b:AST| BinOp(MUL, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:343:32
[INFO] [stdout]     |
[INFO] [stdout] 343 |             "/" => (Box::new(|&: a:AST, b:AST| BinOp(DIV, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:344:32
[INFO] [stdout]     |
[INFO] [stdout] 344 |             "%" => (Box::new(|&: a:AST, b:AST| BinOp(MOD, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:353:32
[INFO] [stdout]     |
[INFO] [stdout] 353 |             "+" => (Box::new(|&: a:AST, b:AST| BinOp(ADD, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:354:32
[INFO] [stdout]     |
[INFO] [stdout] 354 |             "-" => (Box::new(|&: a:AST, b:AST| BinOp(SUB, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:355:33
[INFO] [stdout]     |
[INFO] [stdout] 355 |             "==" => (Box::new(|&: a:AST, b:AST| BinOp(EQ, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                 ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:356:33
[INFO] [stdout]     |
[INFO] [stdout] 356 |             "!=" => (Box::new(|&: a:AST, b:AST| BinOp(NE, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                 ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:357:32
[INFO] [stdout]     |
[INFO] [stdout] 357 |             ">" => (Box::new(|&: a:AST, b:AST| BinOp(GT, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:358:33
[INFO] [stdout]     |
[INFO] [stdout] 358 |             ">=" => (Box::new(|&: a:AST, b:AST| BinOp(GE, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                 ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:359:32
[INFO] [stdout]     |
[INFO] [stdout] 359 |             "<" => (Box::new(|&: a:AST, b:AST| BinOp(LT, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:360:33
[INFO] [stdout]     |
[INFO] [stdout] 360 |             "<=" => (Box::new(|&: a:AST, b:AST| BinOp(LE, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                 ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:369:33
[INFO] [stdout]     |
[INFO] [stdout] 369 |             "||" => (Box::new(|&: a:AST, b:AST| BinOp(LOR, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                 ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected parameter name, found `:`
[INFO] [stdout]    --> examples/interpreter/parser.rs:370:33
[INFO] [stdout]     |
[INFO] [stdout] 370 |             "&&" => (Box::new(|&: a:AST, b:AST| BinOp(LAND, Box::new(a.clone()), Box::new(b.clone())))) as Box<Fn(AST, AST) -> AST>,
[INFO] [stdout]     |                                 ^ expected parameter name
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::old_io`
[INFO] [stdout]  --> examples/interpreter/main.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::old_io::File;
[INFO] [stdout]   |          ^^^^^^ could not find `old_io` in `std`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Show` in this scope
[INFO] [stdout]   --> examples/interpreter/parser.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Show, Clone)]
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Show` in this scope
[INFO] [stdout]   --> examples/interpreter/parser.rs:36:23
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Copy, Show)]
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Show` in module `fmt`
[INFO] [stdout]   --> examples/interpreter/parser.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl fmt::Show for BinOps {
[INFO] [stdout]    |           ^^^^ not found in `fmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `range` in this scope
[INFO] [stdout]    --> examples/interpreter/interpreter.rs:453:26
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 for i in range(0, r) {
[INFO] [stdout]     |                          ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use std::slice::range;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `args` in module `os`
[INFO] [stdout]   --> examples/interpreter/main.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let a = os::args();
[INFO] [stdout]    |                 ^^^^ not found in `os`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 7  | use std::env::args;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `args`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let a = os::args();
[INFO] [stdout] 17 +     let a = args();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Path`
[INFO] [stdout]   --> examples/interpreter/main.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let path = Path::new(a[1].clone());
[INFO] [stdout]    |                ^^^^ use of undeclared type `Path`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 7  | use std::path::Path;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> examples/interpreter/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_patterns)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> examples/interpreter/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(slicing_syntax)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the attribute
[INFO] [stdout]   |
[INFO] [stdout]   = help: the feature `slicing_syntax` has been stable since `1.0.0` and no longer requires an attribute to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> examples/interpreter/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(box_syntax)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `unstable`
[INFO] [stdout]  --> examples/interpreter/main.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![allow(unstable)]
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slicing_syntax` has been stable since 1.0.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> examples/interpreter/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(slicing_syntax)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 23 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0425, E0432, E0433, E0554.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `topdown-rs` due to 24 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) 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] 4 |     term: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     term: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     operator: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a),
[INFO] [stdout]   |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/choice.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parsers: &'a [&'a(Parser<T>+'a)]
[INFO] [stdout]   |                       ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parsers: &'a [&'a(dyn Parser<T>+'a)]
[INFO] [stdout]   |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/until.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many1.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/try.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T> + 'a)
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T> + 'a)
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cond: &'a (Parser<S> + 'a),
[INFO] [stdout]   |                ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     cond: &'a (dyn Parser<S> + 'a),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (Parser<T> + 'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (dyn Parser<T> + 'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/opt.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parser: &'a (dyn Parser<T>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 |     delim: &'a (Parser<String>+'a),
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     delim: &'a (dyn Parser<String>+'a),
[INFO] [stdout]   |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (Parser<S>+'a),
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     parser: &'a (dyn Parser<S>+'a),
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     stop: &'a (Parser<T>+'a)
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     stop: &'a (dyn Parser<T>+'a)
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     hooks: Vec<&'a (ParserHook+'a)>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     hooks: Vec<&'a (dyn ParserHook+'a)>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:43
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn add_hook(&mut self, hook: &'a (dyn ParserHook+'a)) {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:195:37
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn accept<T>(&mut self, p: &Parser<T>) -> ParserResult<T> {
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn accept<T>(&mut self, p: &dyn Parser<T>) -> ParserResult<T> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (dyn Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainl.rs:9:64
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stdout]   |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/chainl.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |     impl<'a> Parser<Box<Fn(isize, isize) -> isize + 'a>> for Op<'a> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     impl<'a> Parser<Box<dyn Fn(isize, isize) -> isize + 'a>> for Op<'a> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/chainl.rs:57:64
[INFO] [stdout]    |
[INFO] [stdout] 57 |         fn _parse(&self, cs: &mut CharSeq) -> ParserResult<Box<Fn(isize, isize) -> isize + 'a>> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         fn _parse(&self, cs: &mut CharSeq) -> ParserResult<Box<dyn Fn(isize, isize) -> isize + 'a>> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (dyn Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (dyn Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/chainr.rs:9:64
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<dyn Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stdout]   |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/chainr.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |     impl<'a> Parser<Box<Fn(isize, isize) -> isize + 'a>> for Op<'a> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     impl<'a> Parser<Box<dyn Fn(isize, isize) -> isize + 'a>> for Op<'a> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/chainr.rs:50:64
[INFO] [stdout]    |
[INFO] [stdout] 50 |         fn _parse(&self, cs: &mut CharSeq) -> ParserResult<Box<Fn(isize, isize) -> isize + 'a>> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |         fn _parse(&self, cs: &mut CharSeq) -> ParserResult<Box<dyn Fn(isize, isize) -> isize + 'a>> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/choice.rs:7:35
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (dyn Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stdout]   |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/until.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (dyn Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (dyn Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many1.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (dyn Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/try.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(dyn Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (dyn Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cond.rs:9:62
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (dyn Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/opt.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stdout]   |                                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (dyn Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (dyn Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/split.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (dyn Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stdout]   |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (dyn Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/many_until.rs:9:62
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (dyn Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0392]: parameter `'a` is never used
[INFO] [stdout]   --> src/chainl.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     struct Op<'a>;
[INFO] [stdout]    |               ^^ unused parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0392]: parameter `'a` is never used
[INFO] [stdout]   --> src/chainr.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     struct Op<'a>;
[INFO] [stdout]    |               ^^ unused parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 43 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0392`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `topdown-rs` due to 3 previous errors; 43 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "67dd73f9b7c6d6e659cc7e8e7e38206ee594b2bfa723f12490f1fb9b4cd40ad9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67dd73f9b7c6d6e659cc7e8e7e38206ee594b2bfa723f12490f1fb9b4cd40ad9", kill_on_drop: false }`
[INFO] [stdout] 67dd73f9b7c6d6e659cc7e8e7e38206ee594b2bfa723f12490f1fb9b4cd40ad9
