[INFO] crate topdown-rs 0.3.3 is already in cache [INFO] extracting crate topdown-rs 0.3.3 into work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/reg/topdown-rs/0.3.3 [INFO] extracting crate topdown-rs 0.3.3 into work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/reg/topdown-rs/0.3.3 [INFO] validating manifest of topdown-rs-0.3.3 on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of topdown-rs-0.3.3 on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing topdown-rs-0.3.3 [INFO] finished frobbing topdown-rs-0.3.3 [INFO] frobbed toml for topdown-rs-0.3.3 written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/reg/topdown-rs/0.3.3/Cargo.toml [INFO] started frobbing topdown-rs-0.3.3 [INFO] finished frobbing topdown-rs-0.3.3 [INFO] frobbed toml for topdown-rs-0.3.3 written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/reg/topdown-rs/0.3.3/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking topdown-rs-0.3.3 against try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-5/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/reg/topdown-rs/0.3.3:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] c8b5d86b98fd258fe2abb5e98385e819575f764900b69ba3f3a9f0c34b61cf94 [INFO] running `"docker" "start" "-a" "c8b5d86b98fd258fe2abb5e98385e819575f764900b69ba3f3a9f0c34b61cf94"` [INFO] [stderr] Checking topdown-rs v0.3.3 (/opt/crater/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/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] 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] 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` 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` or using a marker such as `std::marker::PhantomData` [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0392`. [INFO] [stderr] error: Could not compile `topdown-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "c8b5d86b98fd258fe2abb5e98385e819575f764900b69ba3f3a9f0c34b61cf94"` [INFO] running `"docker" "rm" "-f" "c8b5d86b98fd258fe2abb5e98385e819575f764900b69ba3f3a9f0c34b61cf94"` [INFO] [stdout] c8b5d86b98fd258fe2abb5e98385e819575f764900b69ba3f3a9f0c34b61cf94