[INFO] crate topdown-rs 0.3.3 is already in cache [INFO] testing topdown-rs-0.3.3 against beta-2020-06-03 for beta-1.45-1 [INFO] extracting crate topdown-rs 0.3.3 into /workspace/builds/worker-3/source [INFO] validating manifest of crates.io crate topdown-rs 0.3.3 on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [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/source/Cargo.toml [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] d03f3f3ae89ead57a638603b63116142ed20c40007415cda2f5f7f16ea348578 [INFO] running `"docker" "start" "-a" "d03f3f3ae89ead57a638603b63116142ed20c40007415cda2f5f7f16ea348578"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling topdown-rs v0.3.3 (/opt/rustwide/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | term: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:53 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:64 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | term: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:53 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>> + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:64 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:4:23 [INFO] [stderr] | [INFO] [stderr] 4 | parsers: &'a [&'a(Parser+'a)] [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:7:35 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser + 'a)]) -> Choice<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/until.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/until.rs:7:28 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn until<'a, T>(t:&'a (Parser+'a)) -> Until<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many.rs:7:28 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn many<'a, T>(p: &'a (Parser + 'a)) -> Many<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many1.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many1.rs:7:29 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn many1<'a, T>(p: &'a (Parser + 'a)) -> Many1<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/try.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser + 'a) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/try.rs:7:26 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn try<'a, T>(p: &'a(Parser+'a)) -> Try<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | cond: &'a (Parser + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | parser: &'a (Parser + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (Parser + 'a), e: T) -> Cond<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:9:62 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (Parser + 'a), e: T) -> Cond<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/opt.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/opt.rs:8:32 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser+'a), d: T) -> Opt<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | delim: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:9:29 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (Parser + 'a), a: bool) -> Split<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (Parser + 'a), a: bool) -> Split<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | stop: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (Parser + 'a)) -> ManyUntil<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:9:62 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (Parser + 'a)) -> ManyUntil<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | hooks: Vec<&'a (ParserHook+'a)>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:178:43 [INFO] [stderr] | [INFO] [stderr] 178 | pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:195:37 [INFO] [stderr] | [INFO] [stderr] 195 | pub fn accept(&mut self, p: &Parser) -> ParserResult { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: 39 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.00s [INFO] running `"docker" "inspect" "d03f3f3ae89ead57a638603b63116142ed20c40007415cda2f5f7f16ea348578"` [INFO] running `"docker" "rm" "-f" "d03f3f3ae89ead57a638603b63116142ed20c40007415cda2f5f7f16ea348578"` [INFO] [stdout] d03f3f3ae89ead57a638603b63116142ed20c40007415cda2f5f7f16ea348578 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 49b89815847b2e7cb83b27d8f1befe76a306ce397d613adecf786a83db8d3cc3 [INFO] running `"docker" "start" "-a" "49b89815847b2e7cb83b27d8f1befe76a306ce397d613adecf786a83db8d3cc3"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling topdown-rs v0.3.3 (/opt/rustwide/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | term: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:53 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:64 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | term: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:53 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>> + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:64 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:4:23 [INFO] [stderr] | [INFO] [stderr] 4 | parsers: &'a [&'a(Parser+'a)] [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:7:35 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser + 'a)]) -> Choice<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/until.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/until.rs:7:28 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn until<'a, T>(t:&'a (Parser+'a)) -> Until<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many.rs:7:28 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn many<'a, T>(p: &'a (Parser + 'a)) -> Many<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many1.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many1.rs:7:29 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn many1<'a, T>(p: &'a (Parser + 'a)) -> Many1<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/try.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser + 'a) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/try.rs:7:26 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn try<'a, T>(p: &'a(Parser+'a)) -> Try<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | cond: &'a (Parser + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | parser: &'a (Parser + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (Parser + 'a), e: T) -> Cond<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:9:62 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (Parser + 'a), e: T) -> Cond<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/opt.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/opt.rs:8:32 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser+'a), d: T) -> Opt<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | delim: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:9:29 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (Parser + 'a), a: bool) -> Split<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (Parser + 'a), a: bool) -> Split<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | stop: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (Parser + 'a)) -> ManyUntil<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:9:62 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (Parser + 'a)) -> ManyUntil<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | hooks: Vec<&'a (ParserHook+'a)>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:178:43 [INFO] [stderr] | [INFO] [stderr] 178 | pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:195:37 [INFO] [stderr] | [INFO] [stderr] 195 | pub fn accept(&mut self, p: &Parser) -> ParserResult { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: 39 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unknown lint: `unstable` [INFO] [stderr] --> examples/interpreter/main.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | #![allow(unstable)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unknown_lints)]` on by default [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:342:32 [INFO] [stderr] | [INFO] [stderr] 342 | "*" => (Box::new(|&: a:AST, b:AST| BinOp(MUL, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:343:32 [INFO] [stderr] | [INFO] [stderr] 343 | "/" => (Box::new(|&: a:AST, b:AST| BinOp(DIV, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:344:32 [INFO] [stderr] | [INFO] [stderr] 344 | "%" => (Box::new(|&: a:AST, b:AST| BinOp(MOD, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:353:32 [INFO] [stderr] | [INFO] [stderr] 353 | "+" => (Box::new(|&: a:AST, b:AST| BinOp(ADD, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:354:32 [INFO] [stderr] | [INFO] [stderr] 354 | "-" => (Box::new(|&: a:AST, b:AST| BinOp(SUB, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:355:33 [INFO] [stderr] | [INFO] [stderr] 355 | "==" => (Box::new(|&: a:AST, b:AST| BinOp(EQ, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:356:33 [INFO] [stderr] | [INFO] [stderr] 356 | "!=" => (Box::new(|&: a:AST, b:AST| BinOp(NE, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:357:32 [INFO] [stderr] | [INFO] [stderr] 357 | ">" => (Box::new(|&: a:AST, b:AST| BinOp(GT, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:358:33 [INFO] [stderr] | [INFO] [stderr] 358 | ">=" => (Box::new(|&: a:AST, b:AST| BinOp(GE, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:359:32 [INFO] [stderr] | [INFO] [stderr] 359 | "<" => (Box::new(|&: a:AST, b:AST| BinOp(LT, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:360:33 [INFO] [stderr] | [INFO] [stderr] 360 | "<=" => (Box::new(|&: a:AST, b:AST| BinOp(LE, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:369:33 [INFO] [stderr] | [INFO] [stderr] 369 | "||" => (Box::new(|&: a:AST, b:AST| BinOp(LOR, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error: expected parameter name, found `:` [INFO] [stderr] --> examples/interpreter/parser.rs:370:33 [INFO] [stderr] | [INFO] [stderr] 370 | "&&" => (Box::new(|&: a:AST, b:AST| BinOp(LAND, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^ expected parameter name [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::old_io` [INFO] [stderr] --> examples/interpreter/main.rs:8:10 [INFO] [stderr] | [INFO] [stderr] 8 | use std::old_io::File; [INFO] [stderr] | ^^^^^^ could not find `old_io` in `std` [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> examples/interpreter/parser.rs:10:10 [INFO] [stderr] | [INFO] [stderr] 10 | #[derive(Show, Clone)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> examples/interpreter/parser.rs:36:23 [INFO] [stderr] | [INFO] [stderr] 36 | #[derive(Clone, Copy, Show)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `Path` [INFO] [stderr] --> examples/interpreter/main.rs:18:16 [INFO] [stderr] | [INFO] [stderr] 18 | let path = Path::new(a[1].clone()); [INFO] [stderr] | ^^^^ use of undeclared type or module `Path` [INFO] [stderr] [INFO] [stderr] error[E0405]: cannot find trait `Show` in module `fmt` [INFO] [stderr] --> examples/interpreter/parser.rs:60:11 [INFO] [stderr] | [INFO] [stderr] 60 | impl fmt::Show for BinOps { [INFO] [stderr] | ^^^^ not found in `fmt` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `range` in this scope [INFO] [stderr] --> examples/interpreter/interpreter.rs:453:26 [INFO] [stderr] | [INFO] [stderr] 453 | for i in range(0, r) { [INFO] [stderr] | ^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `args` in module `os` [INFO] [stderr] --> examples/interpreter/main.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | let a = os::args(); [INFO] [stderr] | ^^^^ not found in `os` [INFO] [stderr] | [INFO] [stderr] help: consider importing this function [INFO] [stderr] | [INFO] [stderr] 7 | use std::env::args; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error[E0554]: `#![feature]` may not be used on the beta release channel [INFO] [stderr] --> examples/interpreter/main.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(box_patterns)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0554]: `#![feature]` may not be used on the beta release channel [INFO] [stderr] --> examples/interpreter/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #![feature(slicing_syntax)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0554]: `#![feature]` may not be used on the beta release channel [INFO] [stderr] --> examples/interpreter/main.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(box_syntax)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:98:18 [INFO] [stderr] | [INFO] [stderr] 98 | &_if as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:99:19 [INFO] [stderr] | [INFO] [stderr] 99 | &_for as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:100:19 [INFO] [stderr] | [INFO] [stderr] 100 | &_def as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:101:18 [INFO] [stderr] | [INFO] [stderr] 101 | &_as as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | &_p as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:103:19 [INFO] [stderr] | [INFO] [stderr] 103 | &_ret as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:104:20 [INFO] [stderr] | [INFO] [stderr] 104 | &_cont as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:105:19 [INFO] [stderr] | [INFO] [stderr] 105 | &_brk as &Parser, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:106:17 [INFO] [stderr] | [INFO] [stderr] 106 | &_f as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:135:21 [INFO] [stderr] | [INFO] [stderr] 135 | let l = [&i as &Parser, &b as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:135:41 [INFO] [stderr] | [INFO] [stderr] 135 | let l = [&i as &Parser, &b as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | let cl = [&ia as &Parser, &fa as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:178:44 [INFO] [stderr] | [INFO] [stderr] 178 | let cl = [&ia as &Parser, &fa as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:323:21 [INFO] [stderr] | [INFO] [stderr] 323 | let l = [&t as &Parser, &f as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:323:41 [INFO] [stderr] | [INFO] [stderr] 323 | let l = [&t as &Parser, &f as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:339:50 [INFO] [stderr] | [INFO] [stderr] 339 | fn op0<'a>(cs: &mut CharSeq) -> ParserResult AST + 'a>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:342:110 [INFO] [stderr] | [INFO] [stderr] 342 | "*" => (Box::new(|&: a:AST, b:AST| BinOp(MUL, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:343:110 [INFO] [stderr] | [INFO] [stderr] 343 | "/" => (Box::new(|&: a:AST, b:AST| BinOp(DIV, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:344:110 [INFO] [stderr] | [INFO] [stderr] 344 | "%" => (Box::new(|&: a:AST, b:AST| BinOp(MOD, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:350:50 [INFO] [stderr] | [INFO] [stderr] 350 | fn op1<'a>(cs: &mut CharSeq) -> ParserResult AST + 'a>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:353:110 [INFO] [stderr] | [INFO] [stderr] 353 | "+" => (Box::new(|&: a:AST, b:AST| BinOp(ADD, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:354:110 [INFO] [stderr] | [INFO] [stderr] 354 | "-" => (Box::new(|&: a:AST, b:AST| BinOp(SUB, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:355:110 [INFO] [stderr] | [INFO] [stderr] 355 | "==" => (Box::new(|&: a:AST, b:AST| BinOp(EQ, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:356:110 [INFO] [stderr] | [INFO] [stderr] 356 | "!=" => (Box::new(|&: a:AST, b:AST| BinOp(NE, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:357:109 [INFO] [stderr] | [INFO] [stderr] 357 | ">" => (Box::new(|&: a:AST, b:AST| BinOp(GT, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:358:110 [INFO] [stderr] | [INFO] [stderr] 358 | ">=" => (Box::new(|&: a:AST, b:AST| BinOp(GE, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:359:109 [INFO] [stderr] | [INFO] [stderr] 359 | "<" => (Box::new(|&: a:AST, b:AST| BinOp(LT, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:360:110 [INFO] [stderr] | [INFO] [stderr] 360 | "<=" => (Box::new(|&: a:AST, b:AST| BinOp(LE, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:366:50 [INFO] [stderr] | [INFO] [stderr] 366 | fn op2<'a>(cs: &mut CharSeq) -> ParserResult AST + 'a>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:369:111 [INFO] [stderr] | [INFO] [stderr] 369 | "||" => (Box::new(|&: a:AST, b:AST| BinOp(LOR, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:370:112 [INFO] [stderr] | [INFO] [stderr] 370 | "&&" => (Box::new(|&: a:AST, b:AST| BinOp(LAND, Box::new(a.clone()), Box::new(b.clone())))) as Box AST>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(AST, AST) -> AST` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:386:22 [INFO] [stderr] | [INFO] [stderr] 386 | let ls = [&n as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:387:18 [INFO] [stderr] | [INFO] [stderr] 387 | , &i as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:388:18 [INFO] [stderr] | [INFO] [stderr] 388 | , &s as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:389:18 [INFO] [stderr] | [INFO] [stderr] 389 | , &b as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:390:18 [INFO] [stderr] | [INFO] [stderr] 390 | , &l as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:391:18 [INFO] [stderr] | [INFO] [stderr] 391 | , &o as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:392:19 [INFO] [stderr] | [INFO] [stderr] 392 | , &nl as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:393:19 [INFO] [stderr] | [INFO] [stderr] 393 | , &fc as &Parser [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:394:19 [INFO] [stderr] | [INFO] [stderr] 394 | , &vr as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:399:31 [INFO] [stderr] | [INFO] [stderr] 399 | let cl = [&ia as &Parser, &fa as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:399:52 [INFO] [stderr] | [INFO] [stderr] 399 | let cl = [&ia as &Parser, &fa as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:427:21 [INFO] [stderr] | [INFO] [stderr] 427 | let l = [&i as &Parser, &s as &Parser, &v as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:427:41 [INFO] [stderr] | [INFO] [stderr] 427 | let l = [&i as &Parser, &s as &Parser, &v as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:427:61 [INFO] [stderr] | [INFO] [stderr] 427 | let l = [&i as &Parser, &s as &Parser, &v as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:570:21 [INFO] [stderr] | [INFO] [stderr] 570 | let l = [&t as &Parser, &f as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> examples/interpreter/parser.rs:570:44 [INFO] [stderr] | [INFO] [stderr] 570 | let l = [&t as &Parser, &f as &Parser]; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] error: aborting due to 23 previous errors; 48 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0405, E0425, E0432, E0433, E0554. [INFO] [stderr] For more information about an error, try `rustc --explain E0405`. [INFO] [stderr] error: could not compile `topdown-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | term: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:53 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:9:64 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>>+'a), a: bool) -> Chainl<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:56:25 [INFO] [stderr] | [INFO] [stderr] 56 | impl<'a> Parser isize + 'a>> for Op<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:57:64 [INFO] [stderr] | [INFO] [stderr] 57 | fn _parse(&self, cs: &mut CharSeq) -> ParserResult isize + 'a>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:61:75 [INFO] [stderr] | [INFO] [stderr] 61 | return (Box::new(|a:isize, b:isize| a+b)) as Box isize + 'a>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainl.rs:63:75 [INFO] [stderr] | [INFO] [stderr] 63 | return (Box::new(|a:isize, b:isize| a-b)) as Box isize + 'a>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | term: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>>+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | operator: &'a (Parser T + 'a>>+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:53 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser T + 'a>> + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:9:64 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser+'a), o: &'a (Parser T + 'a>> + 'a), a: bool) -> Chainr<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:49:25 [INFO] [stderr] | [INFO] [stderr] 49 | impl<'a> Parser isize + 'a>> for Op<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:50:64 [INFO] [stderr] | [INFO] [stderr] 50 | fn _parse(&self, cs: &mut CharSeq) -> ParserResult isize + 'a>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:54:80 [INFO] [stderr] | [INFO] [stderr] 54 | ... return (Box::new(|a:isize, b:isize| a+b)) as Box isize + 'a>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/chainr.rs:56:80 [INFO] [stderr] | [INFO] [stderr] 56 | ... return (Box::new(|a:isize, b:isize| a-b)) as Box isize + 'a>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:4:23 [INFO] [stderr] | [INFO] [stderr] 4 | parsers: &'a [&'a(Parser+'a)] [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:7:35 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser + 'a)]) -> Choice<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:51:19 [INFO] [stderr] | [INFO] [stderr] 51 | let l: &[&Parser] = &[&("abc"), &("def")]; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:63:19 [INFO] [stderr] | [INFO] [stderr] 63 | let l: &[&Parser] = &[&("ghi"), &("def")]; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/choice.rs:77:19 [INFO] [stderr] | [INFO] [stderr] 77 | let l: &[&Parser] = &[&a, &b]; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/until.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/until.rs:7:28 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn until<'a, T>(t:&'a (Parser+'a)) -> Until<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many.rs:7:28 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn many<'a, T>(p: &'a (Parser + 'a)) -> Many<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many1.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many1.rs:7:29 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn many1<'a, T>(p: &'a (Parser + 'a)) -> Many1<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/try.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser + 'a) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/try.rs:7:26 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn try<'a, T>(p: &'a(Parser+'a)) -> Try<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | cond: &'a (Parser + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | parser: &'a (Parser + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (Parser + 'a), e: T) -> Cond<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cond.rs:9:62 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser + 'a), p: &'a (Parser + 'a), e: T) -> Cond<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/opt.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/opt.rs:8:32 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser+'a), d: T) -> Opt<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | delim: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:9:29 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (Parser + 'a), a: bool) -> Split<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/split.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser + 'a), d: &'a (Parser + 'a), a: bool) -> Split<'a, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | parser: &'a (Parser+'a), [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | stop: &'a (Parser+'a) [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (Parser + 'a)) -> ManyUntil<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/many_until.rs:9:62 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser + 'a), s: &'a (Parser + 'a)) -> ManyUntil<'a, S, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | hooks: Vec<&'a (ParserHook+'a)>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:178:43 [INFO] [stderr] | [INFO] [stderr] 178 | pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:195:37 [INFO] [stderr] | [INFO] [stderr] 195 | pub fn accept(&mut self, p: &Parser) -> ParserResult { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn Parser` [INFO] [stderr] [INFO] [stderr] error[E0392]: parameter `'a` is never used [INFO] [stderr] --> src/chainl.rs:54:15 [INFO] [stderr] | [INFO] [stderr] 54 | struct Op<'a>; [INFO] [stderr] | ^^ unused parameter [INFO] [stderr] | [INFO] [stderr] = help: consider removing `'a`, referring to it in a field, or using a marker such as `std::marker::PhantomData` [INFO] [stderr] [INFO] [stderr] error[E0392]: parameter `'a` is never used [INFO] [stderr] --> src/chainr.rs:47:15 [INFO] [stderr] | [INFO] [stderr] 47 | struct Op<'a>; [INFO] [stderr] | ^^ unused parameter [INFO] [stderr] | [INFO] [stderr] = help: consider removing `'a`, referring to it in a field, or using a marker such as `std::marker::PhantomData` [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors; 50 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0392`. [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "49b89815847b2e7cb83b27d8f1befe76a306ce397d613adecf786a83db8d3cc3"` [INFO] running `"docker" "rm" "-f" "49b89815847b2e7cb83b27d8f1befe76a306ce397d613adecf786a83db8d3cc3"` [INFO] [stdout] 49b89815847b2e7cb83b27d8f1befe76a306ce397d613adecf786a83db8d3cc3