[INFO] fetching crate topdown-rs 0.3.3... [INFO] checking topdown-rs-0.3.3 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] extracting crate topdown-rs 0.3.3 into /workspace/builds/worker-3-tc1/source [INFO] validating manifest of crates.io crate topdown-rs 0.3.3 on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] 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-3-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 11 packages to latest compatible versions [INFO] [stderr] Adding aho-corasick v0.5.3 (available: v1.1.3) [INFO] [stderr] Adding memchr v0.1.11 (available: v2.7.4) [INFO] [stderr] Adding regex v0.1.80 (available: v1.10.6) [INFO] [stderr] Adding regex-syntax v0.3.9 (available: v0.8.4) [INFO] [stderr] Adding thread-id v2.0.0 (available: v4.2.2) [INFO] [stderr] Adding thread_local v0.2.7 (available: v1.1.8) [INFO] [stderr] Adding utf8-ranges v0.1.3 (available: v1.0.5) [INFO] [stderr] Adding winapi v0.2.8 (available: v0.3.9) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bc092ec01ba5dd5bb55761f73dffab482041c8878d5c9a42f2ac55a96a38a229 [INFO] running `Command { std: "docker" "start" "-a" "bc092ec01ba5dd5bb55761f73dffab482041c8878d5c9a42f2ac55a96a38a229", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bc092ec01ba5dd5bb55761f73dffab482041c8878d5c9a42f2ac55a96a38a229", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc092ec01ba5dd5bb55761f73dffab482041c8878d5c9a42f2ac55a96a38a229", kill_on_drop: false }` [INFO] [stdout] bc092ec01ba5dd5bb55761f73dffab482041c8878d5c9a42f2ac55a96a38a229 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 27d634d47e69d042e1a3503d8d0fe77dd31ae4fff8d6dd0b8aeaf41ff7b4c30e [INFO] running `Command { std: "docker" "start" "-a" "27d634d47e69d042e1a3503d8d0fe77dd31ae4fff8d6dd0b8aeaf41ff7b4c30e", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Compiling winapi-build v0.1.1 [INFO] [stderr] Checking winapi v0.2.8 [INFO] [stderr] Checking regex-syntax v0.3.9 [INFO] [stderr] Checking utf8-ranges v0.1.3 [INFO] [stderr] Checking memchr v0.1.11 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Compiling kernel32-sys v0.2.2 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking topdown-rs v0.3.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/keyword.rs:9:35 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn keyword<'a>(k: &'a str) -> Keyword { [INFO] [stdout] | -- ^^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | lifetime `'a` declared here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [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+'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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | term: &'a (dyn Parser+'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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (dyn Parser 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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (Parser 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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | term: &'a (dyn Parser+'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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (dyn Parser 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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (Parser 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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parsers: &'a [&'a(dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | cond: &'a (dyn Parser + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | parser: &'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | delim: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 6 | stop: &'a (dyn Parser+'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 [INFO] [stdout] help: if this is an object-safe trait, 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/chainl.rs:9:30 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (dyn Parser+'a), o: &'a (Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (dyn Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (dyn Parser+'a), o: &'a (Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (dyn Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser 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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (dyn Parser+'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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (dyn Parser + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(dyn Parser+'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 + 'a), p: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (dyn Parser + 'a), p: &'a (Parser + '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 + 'a), p: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (dyn Parser+'a), d: T) -> Opt<'a, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/keyword.rs:9:35 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn keyword<'a>(k: &'a str) -> Keyword { [INFO] [stdout] | -- ^^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | lifetime `'a` declared here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [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 + 'a), d: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (dyn Parser + 'a), d: &'a (Parser + '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 + 'a), d: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (dyn Parser + '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 + 'a), s: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (dyn Parser + 'a), s: &'a (Parser + '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 + 'a), s: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (dyn Parser + '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/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 [INFO] [stdout] help: if this is an object-safe trait, 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(&mut self, p: &Parser) -> ParserResult { [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 195 | pub fn accept(&mut self, p: &dyn Parser) -> ParserResult { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [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+'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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | term: &'a (dyn Parser+'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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (dyn Parser 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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (Parser 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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | term: &'a (dyn Parser+'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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (dyn Parser 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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | operator: &'a (Parser 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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parsers: &'a [&'a(dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | cond: &'a (dyn Parser + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | parser: &'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | delim: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 5 | parser: &'a (dyn Parser+'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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 6 | stop: &'a (dyn Parser+'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 [INFO] [stdout] help: if this is an object-safe trait, 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/chainl.rs:9:30 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (dyn Parser+'a), o: &'a (Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (dyn Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (dyn Parser+'a), o: &'a (Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (dyn Parser 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+'a), o: &'a (Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser 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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn choice<'a, T>(p: &'a [&'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn until<'a, T>(t:&'a (dyn Parser+'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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn many<'a, T>(p: &'a (dyn Parser + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn many1<'a, T>(p: &'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | pub fn try<'a, T>(p: &'a(dyn Parser+'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 + 'a), p: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (dyn Parser + 'a), p: &'a (Parser + '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 + 'a), p: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (dyn Parser + '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+'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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | pub fn opt<'a, T:Clone>(p:&'a (dyn Parser+'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 + 'a), d: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (dyn Parser + 'a), d: &'a (Parser + '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 + 'a), d: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (dyn Parser + '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 + 'a), s: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (dyn Parser + 'a), s: &'a (Parser + '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 + 'a), s: &'a (Parser + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (dyn Parser + '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/chainl.rs:57:64 [INFO] [stdout] | [INFO] [stdout] 57 | fn _parse(&self, cs: &mut CharSeq) -> ParserResult 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 57 | fn _parse(&self, cs: &mut CharSeq) -> ParserResult isize + '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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 | fn _parse(&self, cs: &mut CharSeq) -> ParserResult isize + '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 [INFO] [stdout] help: if this is an object-safe trait, 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(&mut self, p: &Parser) -> ParserResult { [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 195 | pub fn accept(&mut self, p: &dyn Parser) -> ParserResult { [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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 | impl<'a> Parser 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:49:25 [INFO] [stdout] | [INFO] [stdout] 49 | impl<'a> Parser 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 49 | impl<'a> Parser isize + 'a>> for Op<'a> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: lifetime parameter `'a` is never used [INFO] [stdout] --> src/chainl.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | struct Op<'a>; [INFO] [stdout] | ^^ unused lifetime 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]: lifetime parameter `'a` is never used [INFO] [stdout] --> src/chainr.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | struct Op<'a>; [INFO] [stdout] | ^^ unused lifetime 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] warning: 40 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/re.rs:54:33 [INFO] [stdout] | [INFO] [stdout] 54 | assert_eq!(c[0].as_slice(), "int"); [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/re.rs:55:33 [INFO] [stdout] | [INFO] [stdout] 55 | assert_eq!(c[1].as_slice(), "x"); [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/re.rs:56:33 [INFO] [stdout] | [INFO] [stdout] 56 | assert_eq!(c[2].as_slice(), "10"); [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/chainl.rs:61:75 [INFO] [stdout] | [INFO] [stdout] 61 | return (Box::new(|a:isize, b:isize| a+b)) as Box 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 61 | return (Box::new(|a:isize, b:isize| a+b)) as Box isize + 'a>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/chainl.rs:63:75 [INFO] [stdout] | [INFO] [stdout] 63 | return (Box::new(|a:isize, b:isize| a-b)) as Box 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 63 | return (Box::new(|a:isize, b:isize| a-b)) as Box isize + 'a>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/chainl.rs:73:60 [INFO] [stdout] | [INFO] [stdout] 73 | return cs.accept(&re("[1-9][0-9]*")).map(|x| x.as_slice().parse().unwrap()); [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/chainr.rs:54:80 [INFO] [stdout] | [INFO] [stdout] 54 | ... return (Box::new(|a:isize, b:isize| a+b)) as Box 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 54 | return (Box::new(|a:isize, b:isize| a+b)) as Box isize + 'a>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/chainr.rs:56:80 [INFO] [stdout] | [INFO] [stdout] 56 | ... return (Box::new(|a:isize, b:isize| a-b)) as Box 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 | return (Box::new(|a:isize, b:isize| a-b)) as Box isize + 'a>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/chainr.rs:66:60 [INFO] [stdout] | [INFO] [stdout] 66 | return cs.accept(&re("[1-9][0-9]*")).map(|x| x.as_slice().parse().unwrap()); [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0557]: feature has been removed [INFO] [stdout] --> examples/interpreter/main.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(box_syntax)] [INFO] [stdout] | ^^^^^^^^^^ feature has been removed [INFO] [stdout] | [INFO] [stdout] = note: replaced with `#[rustc_box]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/choice.rs:51:19 [INFO] [stdout] | [INFO] [stdout] 51 | let l: &[&Parser] = &[&("abc"), &("def")]; [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 | let l: &[&dyn Parser] = &[&("abc"), &("def")]; [INFO] [stdout] | +++ [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 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 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 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 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 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 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 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 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 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 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 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 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 AST>, [INFO] [stdout] | ^ expected parameter name [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/choice.rs:54:34 [INFO] [stdout] | [INFO] [stdout] 54 | Succ(c) => assert!(c.as_slice() == "abc"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/choice.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | let l: &[&Parser] = &[&("ghi"), &("def")]; [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 63 | let l: &[&dyn Parser] = &[&("ghi"), &("def")]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/choice.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 77 | let l: &[&Parser] = &[&a, &b]; [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 77 | let l: &[&dyn Parser] = &[&a, &b]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> examples/interpreter/interpreter.rs:449:20 [INFO] [stdout] | [INFO] [stdout] 449 | Ok(box String_(s.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 449 | Ok(Box::new(String_(s.clone()))) [INFO] [stdout] | ~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> examples/interpreter/interpreter.rs:456:20 [INFO] [stdout] | [INFO] [stdout] 456 | Ok(box String_(s.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 456 | Ok(Box::new(String_(s.clone()))) [INFO] [stdout] | ~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for reference `&String` in the current scope [INFO] [stdout] --> src/many1.rs:63:34 [INFO] [stdout] | [INFO] [stdout] 63 | x.push_str(i.as_slice()); [INFO] [stdout] | ^^^^^^^^ method not found in `&String` [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[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/skip.rs:46:37 [INFO] [stdout] | [INFO] [stdout] 46 | Succ(r) => assert_eq!(r.as_slice(), "a"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/skip.rs:51:37 [INFO] [stdout] | [INFO] [stdout] 51 | Succ(r) => assert_eq!(r.as_slice(), "b"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [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[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/skip.rs:56:37 [INFO] [stdout] | [INFO] [stdout] 56 | Succ(r) => assert_eq!(r.as_slice(), "c"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [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[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/skip.rs:61:37 [INFO] [stdout] | [INFO] [stdout] 61 | Succ(r) => assert_eq!(r.as_slice(), "d"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [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[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/cond.rs:39:37 [INFO] [stdout] | [INFO] [stdout] 39 | Succ(r) => assert_eq!(r.as_slice(), "b"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/cond.rs:51:37 [INFO] [stdout] | [INFO] [stdout] 51 | Succ(r) => assert_eq!(r.as_slice(), "default"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> examples/interpreter/parser.rs:339:50 [INFO] [stdout] | [INFO] [stdout] 339 | fn op0<'a>(cs: &mut CharSeq) -> ParserResult AST + '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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 339 | fn op0<'a>(cs: &mut CharSeq) -> ParserResult AST + 'a>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> examples/interpreter/parser.rs:350:50 [INFO] [stdout] | [INFO] [stdout] 350 | fn op1<'a>(cs: &mut CharSeq) -> ParserResult AST + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 350 | fn op1<'a>(cs: &mut CharSeq) -> ParserResult AST + 'a>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> examples/interpreter/parser.rs:366:50 [INFO] [stdout] | [INFO] [stdout] 366 | fn op2<'a>(cs: &mut CharSeq) -> ParserResult AST + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 366 | fn op2<'a>(cs: &mut CharSeq) -> ParserResult AST + 'a>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/opt.rs:42:34 [INFO] [stdout] | [INFO] [stdout] 42 | Succ(c) => assert!(c.as_slice() == "abc"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 23 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0405, E0425, E0432, E0433, E0557. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0405`. [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/opt.rs:54:34 [INFO] [stdout] | [INFO] [stdout] 54 | Succ(c) => assert!(c.as_slice() == "opt"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `topdown-rs` (example "interpreter") due to 24 previous errors; 5 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: no method named `as_slice` found for struct `String` in the current scope [INFO] [stdout] --> src/wrapper.rs:61:37 [INFO] [stdout] | [INFO] [stdout] 61 | Succ(x) => assert_eq!(x.as_slice(), "xxx"), [INFO] [stdout] | ^^^^^^^^ method not found in `String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 18 previous errors; 51 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0392, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0392`. [INFO] [stdout] [INFO] [stderr] error: could not compile `topdown-rs` (lib test) due to 19 previous errors; 51 warnings emitted [INFO] running `Command { std: "docker" "inspect" "27d634d47e69d042e1a3503d8d0fe77dd31ae4fff8d6dd0b8aeaf41ff7b4c30e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "27d634d47e69d042e1a3503d8d0fe77dd31ae4fff8d6dd0b8aeaf41ff7b4c30e", kill_on_drop: false }` [INFO] [stdout] 27d634d47e69d042e1a3503d8d0fe77dd31ae4fff8d6dd0b8aeaf41ff7b4c30e