[INFO] cloning repository https://github.com/sakateka/plt [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sakateka/plt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsakateka%2Fplt", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsakateka%2Fplt'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 34943a253a93f63d06174390000821837cfc0734 [INFO] testing sakateka/plt against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsakateka%2Fplt" "/workspace/builds/worker-2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/sakateka/plt on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/sakateka/plt [INFO] finished tweaking git repo https://github.com/sakateka/plt [INFO] tweaked toml for git repo https://github.com/sakateka/plt written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/sakateka/plt already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded itertools v0.7.7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 86b8a3587b82154dee1b51ac7c556accbec784f9d06248a4241e03a688435e13 [INFO] running `Command { std: "docker" "start" "-a" "86b8a3587b82154dee1b51ac7c556accbec784f9d06248a4241e03a688435e13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "86b8a3587b82154dee1b51ac7c556accbec784f9d06248a4241e03a688435e13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "86b8a3587b82154dee1b51ac7c556accbec784f9d06248a4241e03a688435e13", kill_on_drop: false }` [INFO] [stdout] 86b8a3587b82154dee1b51ac7c556accbec784f9d06248a4241e03a688435e13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 479b00fa8cedc243ea7c596d4f817f9c8a317905618ff4a009f45a9b3a5bfd6f [INFO] running `Command { std: "docker" "start" "-a" "479b00fa8cedc243ea7c596d4f817f9c8a317905618ff4a009f45a9b3a5bfd6f", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.2 [INFO] [stderr] Compiling linked-hash-map v0.5.1 [INFO] [stderr] Compiling libc v0.2.36 [INFO] [stderr] Compiling unicode-width v0.1.4 [INFO] [stderr] Compiling serde v1.0.35 [INFO] [stderr] Compiling vec_map v0.8.0 [INFO] [stderr] Compiling either v1.4.0 [INFO] [stderr] Compiling strsim v0.6.0 [INFO] [stderr] Compiling ansi_term v0.10.2 [INFO] [stderr] Compiling bitflags v1.0.1 [INFO] [stderr] Compiling proc-macro2 v0.2.3 [INFO] [stderr] Compiling itertools v0.7.7 [INFO] [stderr] Compiling atty v0.2.6 [INFO] [stderr] Compiling textwrap v0.9.0 [INFO] [stderr] Compiling quote v0.4.2 [INFO] [stderr] Compiling yaml-rust v0.4.0 [INFO] [stderr] Compiling syn v0.12.14 [INFO] [stderr] Compiling clap v2.29.1 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling serde_derive_internals v0.22.1 [INFO] [stderr] Compiling serde_derive v1.0.35 [INFO] [stderr] Compiling serde_yaml v0.7.3 [INFO] [stderr] Compiling plt v5.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:34:50 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 34 - pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stdout] 34 + pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:44:49 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stdout] 44 + pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dfa.rs:313:36 [INFO] [stdout] | [INFO] [stdout] 313 | pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 313 - pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stdout] 313 + pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pda.rs:336:70 [INFO] [stdout] | [INFO] [stdout] 336 | Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.description())), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pdt.rs:344:70 [INFO] [stdout] | [INFO] [stdout] 344 | Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.description())), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:38:59 [INFO] [stdout] | [INFO] [stdout] 38 | Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 - Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] 38 + Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:40:47 [INFO] [stdout] | [INFO] [stdout] 40 | None => Box::new(io::stdout()) as Box, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 - None => Box::new(io::stdout()) as Box, [INFO] [stdout] 40 + None => Box::new(io::stdout()) as Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:48:59 [INFO] [stdout] | [INFO] [stdout] 48 | Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] 48 + Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:50:46 [INFO] [stdout] | [INFO] [stdout] 50 | None => Box::new(io::stdin()) as Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - None => Box::new(io::stdin()) as Box, [INFO] [stdout] 50 + None => Box::new(io::stdin()) as Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sdt` [INFO] [stdout] --> src/cfg.rs:246:41 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn parse_production(line: &str, sdt: bool) -> io::Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sdt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/cfg.rs:695:13 [INFO] [stdout] | [INFO] [stdout] 695 | let cfg = cfg.eliminate_left_recursion(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rules` [INFO] [stdout] --> src/sdt.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | let rules: SDTRules = match serde_yaml::from_reader(r) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cfg.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | let mut text = line?; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cfg.rs:269:17 [INFO] [stdout] | [INFO] [stdout] 269 | let mut prod = Production::new(left.clone(), symbols); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cfg.rs:450:17 [INFO] [stdout] | [INFO] [stdout] 450 | let mut set = unit_sets.get_mut(nonterm).unwrap(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | let mut dpda_design = DPDADesign::load(dpda_spec).unwrap(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:255:13 [INFO] [stdout] | [INFO] [stdout] 255 | let mut dpdt_design = DPDTDesign::load(dpdt_spec).unwrap(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_sdt` [INFO] [stdout] --> src/cfg.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn load_sdt(input_path: &str) -> io::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_sdt_from_reader` [INFO] [stdout] --> src/cfg.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn load_sdt_from_reader(r: R) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `greibach` [INFO] [stdout] --> src/cfg.rs:693:12 [INFO] [stdout] | [INFO] [stdout] 693 | pub fn greibach(&self) -> CFG { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eliminate_left_recursion` [INFO] [stdout] --> src/cfg.rs:699:12 [INFO] [stdout] | [INFO] [stdout] 699 | pub fn eliminate_left_recursion(&self) -> CFG { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `left` [INFO] [stdout] --> src/sdt.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | left: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `right` [INFO] [stdout] --> src/sdt.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | right: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `translated` [INFO] [stdout] --> src/sdt.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | translated: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rules` [INFO] [stdout] --> src/sdt.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRules` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rules` [INFO] [stdout] --> src/sdt.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | rules: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDT` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load` [INFO] [stdout] --> src/sdt.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn load(input_path: &str) -> io::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_from_reader` [INFO] [stdout] --> src/sdt.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn load_from_reader(r: R) -> io::Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/dfa.rs:173:34 [INFO] [stdout] | [INFO] [stdout] 173 | Err(e) => panic!(e), [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 173 | Err(e) => panic!("{}", e), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 173 | Err(e) => std::panic::panic_any(e), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 29 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.29s [INFO] running `Command { std: "docker" "inspect" "479b00fa8cedc243ea7c596d4f817f9c8a317905618ff4a009f45a9b3a5bfd6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "479b00fa8cedc243ea7c596d4f817f9c8a317905618ff4a009f45a9b3a5bfd6f", kill_on_drop: false }` [INFO] [stdout] 479b00fa8cedc243ea7c596d4f817f9c8a317905618ff4a009f45a9b3a5bfd6f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f32fde7b49dfd56ef4c7931c716a99b7d5cc4cd28d47f0e4865399bb1939834b [INFO] running `Command { std: "docker" "start" "-a" "f32fde7b49dfd56ef4c7931c716a99b7d5cc4cd28d47f0e4865399bb1939834b", kill_on_drop: false }` [INFO] [stderr] Compiling plt v5.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:34:50 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 34 - pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stdout] 34 + pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:44:49 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stdout] 44 + pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dfa.rs:313:36 [INFO] [stdout] | [INFO] [stdout] 313 | pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 313 - pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stdout] 313 + pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pda.rs:336:70 [INFO] [stdout] | [INFO] [stdout] 336 | Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.description())), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pdt.rs:344:70 [INFO] [stdout] | [INFO] [stdout] 344 | Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.description())), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:38:59 [INFO] [stdout] | [INFO] [stdout] 38 | Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 - Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] 38 + Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:40:47 [INFO] [stdout] | [INFO] [stdout] 40 | None => Box::new(io::stdout()) as Box, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 - None => Box::new(io::stdout()) as Box, [INFO] [stdout] 40 + None => Box::new(io::stdout()) as Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:48:59 [INFO] [stdout] | [INFO] [stdout] 48 | Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] 48 + Box::new(File::create(&path).unwrap()) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:50:46 [INFO] [stdout] | [INFO] [stdout] 50 | None => Box::new(io::stdin()) as Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - None => Box::new(io::stdin()) as Box, [INFO] [stdout] 50 + None => Box::new(io::stdin()) as Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sdt` [INFO] [stdout] --> src/cfg.rs:246:41 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn parse_production(line: &str, sdt: bool) -> io::Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sdt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/cfg.rs:695:13 [INFO] [stdout] | [INFO] [stdout] 695 | let cfg = cfg.eliminate_left_recursion(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rules` [INFO] [stdout] --> src/sdt.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | let rules: SDTRules = match serde_yaml::from_reader(r) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cfg.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | let mut text = line?; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cfg.rs:269:17 [INFO] [stdout] | [INFO] [stdout] 269 | let mut prod = Production::new(left.clone(), symbols); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cfg.rs:450:17 [INFO] [stdout] | [INFO] [stdout] 450 | let mut set = unit_sets.get_mut(nonterm).unwrap(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | let mut dpda_design = DPDADesign::load(dpda_spec).unwrap(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:255:13 [INFO] [stdout] | [INFO] [stdout] 255 | let mut dpdt_design = DPDTDesign::load(dpdt_spec).unwrap(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_sdt` [INFO] [stdout] --> src/cfg.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn load_sdt(input_path: &str) -> io::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_sdt_from_reader` [INFO] [stdout] --> src/cfg.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn load_sdt_from_reader(r: R) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `greibach` [INFO] [stdout] --> src/cfg.rs:693:12 [INFO] [stdout] | [INFO] [stdout] 693 | pub fn greibach(&self) -> CFG { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eliminate_left_recursion` [INFO] [stdout] --> src/cfg.rs:699:12 [INFO] [stdout] | [INFO] [stdout] 699 | pub fn eliminate_left_recursion(&self) -> CFG { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `left` [INFO] [stdout] --> src/sdt.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | left: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `right` [INFO] [stdout] --> src/sdt.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | right: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `translated` [INFO] [stdout] --> src/sdt.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | translated: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rules` [INFO] [stdout] --> src/sdt.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDTRules` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Debug, Deserialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rules` [INFO] [stdout] --> src/sdt.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | rules: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `SDT` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/sdt.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load` [INFO] [stdout] --> src/sdt.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn load(input_path: &str) -> io::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_from_reader` [INFO] [stdout] --> src/sdt.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn load_from_reader(r: R) -> io::Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/dfa.rs:173:34 [INFO] [stdout] | [INFO] [stdout] 173 | Err(e) => panic!(e), [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 173 | Err(e) => panic!("{}", e), [INFO] [stdout] | +++++ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 173 | Err(e) => std::panic::panic_any(e), [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 29 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.90s [INFO] running `Command { std: "docker" "inspect" "f32fde7b49dfd56ef4c7931c716a99b7d5cc4cd28d47f0e4865399bb1939834b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f32fde7b49dfd56ef4c7931c716a99b7d5cc4cd28d47f0e4865399bb1939834b", kill_on_drop: false }` [INFO] [stdout] f32fde7b49dfd56ef4c7931c716a99b7d5cc4cd28d47f0e4865399bb1939834b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 183d7bc01af5fb38d33dff38585cee2c00bd04789b7a9c7207bede999b329d9f [INFO] running `Command { std: "docker" "start" "-a" "183d7bc01af5fb38d33dff38585cee2c00bd04789b7a9c7207bede999b329d9f", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:34:50 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 34 - pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stderr] 34 + pub fn get_output_stream(x: Option<&str>) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:44:49 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 44 - pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stderr] 44 + pub fn get_input_stream(x: Option<&str>) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/dfa.rs:313:36 [INFO] [stderr] | [INFO] [stderr] 313 | pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 313 - pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stderr] 313 + pub fn check(&self, input: Box, show_path: bool) -> io::Result<()> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/pda.rs:336:70 [INFO] [stderr] | [INFO] [stderr] 336 | Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.description())), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/pdt.rs:344:70 [INFO] [stderr] | [INFO] [stderr] 344 | Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.description())), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:38:59 [INFO] [stderr] | [INFO] [stderr] 38 | Box::new(File::create(&path).unwrap()) as Box [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 38 - Box::new(File::create(&path).unwrap()) as Box [INFO] [stderr] 38 + Box::new(File::create(&path).unwrap()) as Box [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:40:47 [INFO] [stderr] | [INFO] [stderr] 40 | None => Box::new(io::stdout()) as Box, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 40 - None => Box::new(io::stdout()) as Box, [INFO] [stderr] 40 + None => Box::new(io::stdout()) as Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:48:59 [INFO] [stderr] | [INFO] [stderr] 48 | Box::new(File::create(&path).unwrap()) as Box [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 48 - Box::new(File::create(&path).unwrap()) as Box [INFO] [stderr] 48 + Box::new(File::create(&path).unwrap()) as Box [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:50:46 [INFO] [stderr] | [INFO] [stderr] 50 | None => Box::new(io::stdin()) as Box, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 50 - None => Box::new(io::stdin()) as Box, [INFO] [stderr] 50 + None => Box::new(io::stdin()) as Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sdt` [INFO] [stderr] --> src/cfg.rs:246:41 [INFO] [stderr] | [INFO] [stderr] 246 | pub fn parse_production(line: &str, sdt: bool) -> io::Result> { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_sdt` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cfg` [INFO] [stderr] --> src/cfg.rs:695:13 [INFO] [stderr] | [INFO] [stderr] 695 | let cfg = cfg.eliminate_left_recursion(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rules` [INFO] [stderr] --> src/sdt.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | let rules: SDTRules = match serde_yaml::from_reader(r) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cfg.rs:227:17 [INFO] [stderr] | [INFO] [stderr] 227 | let mut text = line?; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cfg.rs:269:17 [INFO] [stderr] | [INFO] [stderr] 269 | let mut prod = Production::new(left.clone(), symbols); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cfg.rs:450:17 [INFO] [stderr] | [INFO] [stderr] 450 | let mut set = unit_sets.get_mut(nonterm).unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | let mut dpda_design = DPDADesign::load(dpda_spec).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:255:13 [INFO] [stderr] | [INFO] [stderr] 255 | let mut dpdt_design = DPDTDesign::load(dpdt_spec).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `load_sdt` [INFO] [stderr] --> src/cfg.rs:210:12 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn load_sdt(input_path: &str) -> io::Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `load_sdt_from_reader` [INFO] [stderr] --> src/cfg.rs:219:12 [INFO] [stderr] | [INFO] [stderr] 219 | pub fn load_sdt_from_reader(r: R) -> io::Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `greibach` [INFO] [stderr] --> src/cfg.rs:693:12 [INFO] [stderr] | [INFO] [stderr] 693 | pub fn greibach(&self) -> CFG { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `eliminate_left_recursion` [INFO] [stderr] --> src/cfg.rs:699:12 [INFO] [stderr] | [INFO] [stderr] 699 | pub fn eliminate_left_recursion(&self) -> CFG { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `left` [INFO] [stderr] --> src/sdt.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | left: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] --> src/sdt.rs:7:10 [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Debug, Deserialize)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: field is never read: `right` [INFO] [stderr] --> src/sdt.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | right: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] --> src/sdt.rs:7:10 [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Debug, Deserialize)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: field is never read: `translated` [INFO] [stderr] --> src/sdt.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | translated: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `SDTRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] --> src/sdt.rs:7:10 [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Debug, Deserialize)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: field is never read: `rules` [INFO] [stderr] --> src/sdt.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | rules: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `SDTRules` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] --> src/sdt.rs:14:10 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Debug, Deserialize)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: field is never read: `rules` [INFO] [stderr] --> src/sdt.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | rules: HashMap>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `SDT` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] --> src/sdt.rs:19:10 [INFO] [stderr] | [INFO] [stderr] 19 | #[derive(Debug)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `load` [INFO] [stderr] --> src/sdt.rs:25:12 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn load(input_path: &str) -> io::Result { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `load_from_reader` [INFO] [stderr] --> src/sdt.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn load_from_reader(r: R) -> io::Result [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/dfa.rs:173:34 [INFO] [stderr] | [INFO] [stderr] 173 | Err(e) => panic!(e), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to Display the message [INFO] [stderr] | [INFO] [stderr] 173 | Err(e) => panic!("{}", e), [INFO] [stderr] | +++++ [INFO] [stderr] help: or use std::panic::panic_any instead [INFO] [stderr] | [INFO] [stderr] 173 | Err(e) => std::panic::panic_any(e), [INFO] [stderr] | ~~~~~~~~~~~~~~~~~~~~~ [INFO] [stderr] [INFO] [stderr] warning: `plt` (bin "plt" test) generated 29 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/plt-a0f9065a5cd7f6ba) [INFO] [stdout] [INFO] [stdout] running 24 tests [INFO] [stdout] test cfg::tests::load_mailformed_cfg ... ok [INFO] [stdout] test cfg::tests::load_cfg ... ok [INFO] [stdout] test pda::tests::applies_to ... ok [INFO] [stdout] test pda::tests::dpda ... ok [INFO] [stdout] test pda::tests::follow_free_moves ... ok [INFO] [stdout] test pda::tests::rule_follow ... ok [INFO] [stdout] test pda::tests::rulebook ... ok [INFO] [stdout] test pda::tests::next_stack ... ok [INFO] [stdout] test pda::tests::design ... ok [INFO] [stdout] test pdt::tests::applies_to ... ok [INFO] [stdout] test cfg::tests::chomsky ... ok [INFO] [stdout] test cfg::tests::remove_useless ... ok [INFO] [stdout] test cfg::tests::remove_unreachable ... ok [INFO] [stdout] test cfg::tests::remove_epsilon ... ok [INFO] [stdout] test pdt::tests::follow_free_moves ... ok [INFO] [stdout] test pdt::tests::next_stack ... ok [INFO] [stdout] test pdt::tests::rule_follow ... ok [INFO] [stdout] test cfg::tests::simplify ... ok [INFO] [stdout] test pdt::tests::dpdt ... ok [INFO] [stdout] test pdt::tests::rulebook ... ok [INFO] [stdout] test cfg::tests::remove_units ... ok [INFO] [stdout] test pda::tests::load_design ... ok [INFO] [stdout] test pdt::tests::load_design ... ok [INFO] [stdout] test pdt::tests::design ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "183d7bc01af5fb38d33dff38585cee2c00bd04789b7a9c7207bede999b329d9f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "183d7bc01af5fb38d33dff38585cee2c00bd04789b7a9c7207bede999b329d9f", kill_on_drop: false }` [INFO] [stdout] 183d7bc01af5fb38d33dff38585cee2c00bd04789b7a9c7207bede999b329d9f