[INFO] fetching crate cron_rs 0.1.6... [INFO] testing cron_rs-0.1.6 against 1.90.0 for beta-1.91-3 [INFO] extracting crate cron_rs 0.1.6 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate cron_rs 0.1.6 [INFO] finished tweaking crates.io crate cron_rs 0.1.6 [INFO] tweaked toml for crates.io crate cron_rs 0.1.6 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cron_rs 0.1.6 on toolchain 1.90.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 50 packages to latest compatible versions [INFO] [stderr] Adding hyper v0.10.16 (available: v1.7.0) [INFO] [stderr] Adding regex v0.2.11 (available: v1.11.3) [INFO] [stderr] Adding serde v0.9.15 (available: v1.0.228) [INFO] [stderr] Adding serde_derive v0.9.15 (available: v1.0.228) [INFO] [stderr] Adding serde_json v0.9.10 (available: v1.0.145) [INFO] [stderr] Adding time v0.1.45 (available: v0.3.44) [INFO] [stderr] Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde v0.9.15 [INFO] [stderr] Downloaded traitobject v0.1.1 [INFO] [stderr] Downloaded typeable v0.1.2 [INFO] [stderr] Downloaded serde_json v0.9.10 [INFO] [stderr] Downloaded unicase v1.4.2 [INFO] [stderr] Downloaded mime v0.2.6 [INFO] [stderr] Downloaded serde_codegen_internals v0.14.2 [INFO] [stderr] Downloaded language-tags v0.2.2 [INFO] [stderr] Downloaded log v0.3.9 [INFO] [stderr] Downloaded serde_derive v0.9.15 [INFO] [stderr] Downloaded base64 v0.9.3 [INFO] [stderr] Downloaded itoa v0.3.4 [INFO] [stderr] Downloaded hyper v0.10.16 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 75d5ae156375fc2006e9416145affa18cae37bb4f202a7d5c3559cb350ba6a86 [INFO] running `Command { std: "docker" "start" "-a" "75d5ae156375fc2006e9416145affa18cae37bb4f202a7d5c3559cb350ba6a86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "75d5ae156375fc2006e9416145affa18cae37bb4f202a7d5c3559cb350ba6a86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "75d5ae156375fc2006e9416145affa18cae37bb4f202a7d5c3559cb350ba6a86", kill_on_drop: false }` [INFO] [stdout] 75d5ae156375fc2006e9416145affa18cae37bb4f202a7d5c3559cb350ba6a86 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 505bdb7a2b216126343eac02ba0ded9a7827d36892bd91526a9f0f870c472330 [INFO] running `Command { std: "docker" "start" "-a" "505bdb7a2b216126343eac02ba0ded9a7827d36892bd91526a9f0f870c472330", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Compiling matches v0.1.10 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Compiling safemem v0.3.3 [INFO] [stderr] Compiling regex v0.2.11 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling unicase v1.4.2 [INFO] [stderr] Compiling log v0.3.9 [INFO] [stderr] Compiling ucd-util v0.1.10 [INFO] [stderr] Compiling percent-encoding v1.0.1 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling regex-syntax v0.5.6 [INFO] [stderr] Compiling base64 v0.9.3 [INFO] [stderr] Compiling unicode-normalization v0.1.24 [INFO] [stderr] Compiling mime v0.2.6 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling time v0.1.45 [INFO] [stderr] Compiling itoa v0.3.4 [INFO] [stderr] Compiling aho-corasick v0.6.10 [INFO] [stderr] Compiling traitobject v0.1.1 [INFO] [stderr] Compiling typeable v0.1.2 [INFO] [stderr] Compiling idna v0.1.5 [INFO] [stderr] Compiling serde v0.9.15 [INFO] [stderr] Compiling utf8-ranges v1.0.5 [INFO] [stderr] Compiling language-tags v0.2.2 [INFO] [stderr] Compiling dtoa v0.4.8 [INFO] [stderr] Compiling serde_codegen_internals v0.14.2 [INFO] [stderr] Compiling url v1.7.2 [INFO] [stderr] Compiling serde_derive v0.9.15 [INFO] [stderr] Compiling hyper v0.10.16 [INFO] [stderr] Compiling serde_json v0.9.10 [INFO] [stderr] Compiling cron_rs v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/scheduler.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/scheduler.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | try!(sch.parse_time_fields().map_err(|e| ErrCronFormat(e.to_string()))); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:78:47 [INFO] [stdout] | [INFO] [stdout] 78 | self.timePoints.insert("seconds", try!(parse_intervals_field(self.seconds, 0, 59))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:83:43 [INFO] [stdout] | [INFO] [stdout] 83 | self.timePoints.insert("minutes", try!(parse_intervals_field(self.minutes, 0, 59))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:84:41 [INFO] [stdout] | [INFO] [stdout] 84 | self.timePoints.insert("hours", try!(parse_intervals_field(self.hours, 0, 23))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | self.timePoints.insert("days", try!(parse_intervals_field(self.days, 1, 31))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:86:42 [INFO] [stdout] | [INFO] [stdout] 86 | self.timePoints.insert("months", try!(parse_intervals_field(self.months, 1, 12))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:87:44 [INFO] [stdout] | [INFO] [stdout] 87 | self.timePoints.insert("weekdays", try!(parse_intervals_field(self.weekdays, 0, 6))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:131:24 [INFO] [stdout] | [INFO] [stdout] 131 | _min = try!(y[0].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | _min = try!(y[0].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:136:20 [INFO] [stdout] | [INFO] [stdout] 136 | _max = try!(y[1].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | step = try!(x[1].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/task.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/task.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use error::Error; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/job.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `self` [INFO] [stdout] --> src/job.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::{self, Sender, Receiver}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/job.rs:45:27 [INFO] [stdout] | [INFO] [stdout] 45 | let mut process = try!(self.command [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Weak` [INFO] [stdout] --> src/task_master.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::rc::Weak; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/output_keeper.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | fn push(&self, Message) -> Result<(), Self::Err>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Message` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/scheduler.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::Iterator` [INFO] [stdout] --> src/job.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::iter::Iterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/job.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/job.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | if let Ok(mut x) = chunk { [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: unused variable: `msg` [INFO] [stdout] --> src/output_keeper.rs:57:20 [INFO] [stdout] | [INFO] [stdout] 57 | fn push(&self, msg: Message) -> Result<(), Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `re` is never read [INFO] [stdout] --> src/scheduler.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Scheduler<'a> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | re: Regex, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Scheduler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `job` is never read [INFO] [stdout] --> src/task.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Task<'a, 'b: 'a> { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | job: Option>, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `pid` is never read [INFO] [stdout] --> src/job.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Job<'a, 'b: 'a> { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 21 | pid: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaskMaster` is never constructed [INFO] [stdout] --> src/task_master.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct TaskMaster<'a, 'b: 'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `OutputHandler` is never used [INFO] [stdout] --> src/output_keeper.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait OutputHandler { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `server` is never read [INFO] [stdout] --> src/output_keeper.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct OutputKeeper<'a> { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 14 | server: &'a Server, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `timeFiledsLength` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | timeFiledsLength: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `time_fileds_length` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `timePoints` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | timePoints: HashMap<&'a str, HashSet>, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `time_points` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/scheduler.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(intervals: &'a str) -> SchedulerResult { [INFO] [stdout] | ^^ --------------- the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(intervals: &'a str) -> SchedulerResult<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `reRes` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let reRes = Regex::new(r"^\s*((\*(/\d+)?)|[0-9-,/]+)(\s+((\*(/\d+)?)|[0-9-,/]+)){4,5}\s*$"); [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `re_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `timeFileds` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let timeFileds: Vec<&str> = intervals.split_whitespace().collect(); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `time_fileds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `timeFiledsLength` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | let timeFiledsLength = timeFileds.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `time_fileds_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `startIndex` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | let mut startIndex: usize = 0; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `start_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/scheduler.rs:53:40 [INFO] [stdout] | [INFO] [stdout] 53 | sec = timeFileds[0].clone(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `isSecond` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let isSecond = self.timePoints.get("seconds").unwrap().contains(&second); [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `is_second` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `isLeft` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let isLeft = self.timePoints.get("minutes").unwrap().contains(&minute) && [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `is_left` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `xLen` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:127:14 [INFO] [stdout] | [INFO] [stdout] 127 | let (xLen, yLen) = (x.len(), y.len()); [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `x_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `yLen` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:127:20 [INFO] [stdout] | [INFO] [stdout] 127 | let (xLen, yLen) = (x.len(), y.len()); [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `y_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/task.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | job.start(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 38 | let _ = job.start(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `cronId` should have a snake case name [INFO] [stdout] --> src/cron.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub cronId: u32, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `cron_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `treeId` should have a snake case name [INFO] [stdout] --> src/cron.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub treeId: u64, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `tree_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `treePath` should have a snake case name [INFO] [stdout] --> src/cron.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub treePath: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `tree_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `testRun` should have a snake case name [INFO] [stdout] --> src/cron.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub testRun: bool, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `test_run` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `timeoutSeconds` should have a snake case name [INFO] [stdout] --> src/cron.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub timeoutSeconds: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `timeout_seconds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `alarmEmail` should have a snake case name [INFO] [stdout] --> src/cron.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub alarmEmail: bool, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `alarm_email` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `alarmSms` should have a snake case name [INFO] [stdout] --> src/cron.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub alarmSms: bool, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `alarm_sms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `alarmUsers` should have a snake case name [INFO] [stdout] --> src/cron.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub alarmUsers: String, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `alarm_users` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/cron.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Serialize, Deserialize, Debug)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `CronEntry` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_CronEntry` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/cron.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Serialize, Deserialize, Debug)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `CronEntry` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_CronEntry` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/cron.rs:40:25 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn to_scheduler(&self) -> SchedulerResult { [INFO] [stdout] | ^^^^^ --------------- the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 40 | pub fn to_scheduler(&self) -> SchedulerResult<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `isStarted` should have a snake case name [INFO] [stdout] --> src/job.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | isStarted: bool, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `is_started` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `jobId` should have a snake case name [INFO] [stdout] --> src/job.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let jobId = self.id; [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `job_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `outputIter` should have a snake case name [INFO] [stdout] --> src/job.rs:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | let outputIter = OutputChunkIterator::new(breader); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `output_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/job.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | / output.send(Message { [INFO] [stdout] 72 | | jobId: jobId, [INFO] [stdout] 73 | | kind: "unknown".to_string(), [INFO] [stdout] 74 | | startUnixTimeNs: 0, [INFO] [stdout] 75 | | endUnixTimeNs: 0, [INFO] [stdout] 76 | | body: x.clone(), [INFO] [stdout] 77 | | }); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = output.send(Message { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `jobId` should have a snake case name [INFO] [stdout] --> src/output_chunk.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub jobId: u64, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `job_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startUnixTimeNs` should have a snake case name [INFO] [stdout] --> src/output_chunk.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub startUnixTimeNs: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `start_unix_time_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `endUnixTimeNs` should have a snake case name [INFO] [stdout] --> src/output_chunk.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub endUnixTimeNs: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `end_unix_time_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/output_keeper.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new(srv: &'a Server) -> OutputKeeper { [INFO] [stdout] | ^^ ------------ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new(srv: &'a Server) -> OutputKeeper<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.77s [INFO] running `Command { std: "docker" "inspect" "505bdb7a2b216126343eac02ba0ded9a7827d36892bd91526a9f0f870c472330", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "505bdb7a2b216126343eac02ba0ded9a7827d36892bd91526a9f0f870c472330", kill_on_drop: false }` [INFO] [stdout] 505bdb7a2b216126343eac02ba0ded9a7827d36892bd91526a9f0f870c472330 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d9ded8c65bdb84cb094fccba4b23884775b8b9a261f64a51252ac098144c477a [INFO] running `Command { std: "docker" "start" "-a" "d9ded8c65bdb84cb094fccba4b23884775b8b9a261f64a51252ac098144c477a", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/scheduler.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/scheduler.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | try!(sch.parse_time_fields().map_err(|e| ErrCronFormat(e.to_string()))); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:78:47 [INFO] [stdout] | [INFO] [stdout] 78 | self.timePoints.insert("seconds", try!(parse_intervals_field(self.seconds, 0, 59))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:83:43 [INFO] [stdout] | [INFO] [stdout] 83 | self.timePoints.insert("minutes", try!(parse_intervals_field(self.minutes, 0, 59))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:84:41 [INFO] [stdout] | [INFO] [stdout] 84 | self.timePoints.insert("hours", try!(parse_intervals_field(self.hours, 0, 23))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | self.timePoints.insert("days", try!(parse_intervals_field(self.days, 1, 31))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:86:42 [INFO] [stdout] | [INFO] [stdout] 86 | self.timePoints.insert("months", try!(parse_intervals_field(self.months, 1, 12))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:87:44 [INFO] [stdout] | [INFO] [stdout] 87 | self.timePoints.insert("weekdays", try!(parse_intervals_field(self.weekdays, 0, 6))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:131:24 [INFO] [stdout] | [INFO] [stdout] 131 | _min = try!(y[0].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | _min = try!(y[0].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:136:20 [INFO] [stdout] | [INFO] [stdout] 136 | _max = try!(y[1].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | step = try!(x[1].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/task.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/task.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use error::Error; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/job.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `self` [INFO] [stdout] --> src/job.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::{self, Sender, Receiver}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/job.rs:45:27 [INFO] [stdout] | [INFO] [stdout] 45 | let mut process = try!(self.command [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Weak` [INFO] [stdout] --> src/task_master.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::rc::Weak; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/output_keeper.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | fn push(&self, Message) -> Result<(), Self::Err>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Message` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/scheduler.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::Iterator` [INFO] [stdout] --> src/job.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::iter::Iterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/job.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/job.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | if let Ok(mut x) = chunk { [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: unused variable: `msg` [INFO] [stdout] --> src/output_keeper.rs:57:20 [INFO] [stdout] | [INFO] [stdout] 57 | fn push(&self, msg: Message) -> Result<(), Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `re` is never read [INFO] [stdout] --> src/scheduler.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Scheduler<'a> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | re: Regex, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Scheduler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `job` is never read [INFO] [stdout] --> src/task.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Task<'a, 'b: 'a> { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | job: Option>, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `pid` is never read [INFO] [stdout] --> src/job.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Job<'a, 'b: 'a> { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 21 | pid: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaskMaster` is never constructed [INFO] [stdout] --> src/task_master.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct TaskMaster<'a, 'b: 'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `OutputHandler` is never used [INFO] [stdout] --> src/output_keeper.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait OutputHandler { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `server` is never read [INFO] [stdout] --> src/output_keeper.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct OutputKeeper<'a> { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 14 | server: &'a Server, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `timeFiledsLength` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | timeFiledsLength: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `time_fileds_length` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `timePoints` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | timePoints: HashMap<&'a str, HashSet>, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `time_points` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/scheduler.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(intervals: &'a str) -> SchedulerResult { [INFO] [stdout] | ^^ --------------- the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(intervals: &'a str) -> SchedulerResult<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `reRes` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let reRes = Regex::new(r"^\s*((\*(/\d+)?)|[0-9-,/]+)(\s+((\*(/\d+)?)|[0-9-,/]+)){4,5}\s*$"); [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `re_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `timeFileds` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let timeFileds: Vec<&str> = intervals.split_whitespace().collect(); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `time_fileds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `timeFiledsLength` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | let timeFiledsLength = timeFileds.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `time_fileds_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `startIndex` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | let mut startIndex: usize = 0; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `start_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/scheduler.rs:53:40 [INFO] [stdout] | [INFO] [stdout] 53 | sec = timeFileds[0].clone(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `isSecond` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let isSecond = self.timePoints.get("seconds").unwrap().contains(&second); [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `is_second` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `isLeft` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let isLeft = self.timePoints.get("minutes").unwrap().contains(&minute) && [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `is_left` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `xLen` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:127:14 [INFO] [stdout] | [INFO] [stdout] 127 | let (xLen, yLen) = (x.len(), y.len()); [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `x_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `yLen` should have a snake case name [INFO] [stdout] --> src/scheduler.rs:127:20 [INFO] [stdout] | [INFO] [stdout] 127 | let (xLen, yLen) = (x.len(), y.len()); [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `y_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/task.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | job.start(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 38 | let _ = job.start(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `cronId` should have a snake case name [INFO] [stdout] --> src/cron.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub cronId: u32, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `cron_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `treeId` should have a snake case name [INFO] [stdout] --> src/cron.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub treeId: u64, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `tree_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `treePath` should have a snake case name [INFO] [stdout] --> src/cron.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub treePath: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `tree_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `testRun` should have a snake case name [INFO] [stdout] --> src/cron.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub testRun: bool, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `test_run` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `timeoutSeconds` should have a snake case name [INFO] [stdout] --> src/cron.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub timeoutSeconds: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `timeout_seconds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `alarmEmail` should have a snake case name [INFO] [stdout] --> src/cron.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub alarmEmail: bool, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `alarm_email` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `alarmSms` should have a snake case name [INFO] [stdout] --> src/cron.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub alarmSms: bool, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `alarm_sms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `alarmUsers` should have a snake case name [INFO] [stdout] --> src/cron.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub alarmUsers: String, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `alarm_users` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/cron.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Serialize, Deserialize, Debug)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `CronEntry` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_CronEntry` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/cron.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Serialize, Deserialize, Debug)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `CronEntry` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_CronEntry` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/cron.rs:40:25 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn to_scheduler(&self) -> SchedulerResult { [INFO] [stdout] | ^^^^^ --------------- the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 40 | pub fn to_scheduler(&self) -> SchedulerResult<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `isStarted` should have a snake case name [INFO] [stdout] --> src/job.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | isStarted: bool, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `is_started` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `jobId` should have a snake case name [INFO] [stdout] --> src/job.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let jobId = self.id; [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `job_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `outputIter` should have a snake case name [INFO] [stdout] --> src/job.rs:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | let outputIter = OutputChunkIterator::new(breader); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `output_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/job.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | / output.send(Message { [INFO] [stdout] 72 | | jobId: jobId, [INFO] [stdout] 73 | | kind: "unknown".to_string(), [INFO] [stdout] 74 | | startUnixTimeNs: 0, [INFO] [stdout] 75 | | endUnixTimeNs: 0, [INFO] [stdout] 76 | | body: x.clone(), [INFO] [stdout] 77 | | }); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = output.send(Message { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `jobId` should have a snake case name [INFO] [stdout] --> src/output_chunk.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub jobId: u64, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `job_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startUnixTimeNs` should have a snake case name [INFO] [stdout] --> src/output_chunk.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub startUnixTimeNs: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `start_unix_time_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `endUnixTimeNs` should have a snake case name [INFO] [stdout] --> src/output_chunk.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub endUnixTimeNs: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `end_unix_time_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/output_keeper.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new(srv: &'a Server) -> OutputKeeper { [INFO] [stdout] | ^^ ------------ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new(srv: &'a Server) -> OutputKeeper<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling cron_rs v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/scheduler.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/scheduler.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | try!(sch.parse_time_fields().map_err(|e| ErrCronFormat(e.to_string()))); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:78:47 [INFO] [stdout] | [INFO] [stdout] 78 | self.timePoints.insert("seconds", try!(parse_intervals_field(self.seconds, 0, 59))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:83:43 [INFO] [stdout] | [INFO] [stdout] 83 | self.timePoints.insert("minutes", try!(parse_intervals_field(self.minutes, 0, 59))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:84:41 [INFO] [stdout] | [INFO] [stdout] 84 | self.timePoints.insert("hours", try!(parse_intervals_field(self.hours, 0, 23))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | self.timePoints.insert("days", try!(parse_intervals_field(self.days, 1, 31))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:86:42 [INFO] [stdout] | [INFO] [stdout] 86 | self.timePoints.insert("months", try!(parse_intervals_field(self.months, 1, 12))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:87:44 [INFO] [stdout] | [INFO] [stdout] 87 | self.timePoints.insert("weekdays", try!(parse_intervals_field(self.weekdays, 0, 6))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:131:24 [INFO] [stdout] | [INFO] [stdout] 131 | _min = try!(y[0].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | _min = try!(y[0].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:136:20 [INFO] [stdout] | [INFO] [stdout] 136 | _max = try!(y[1].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/scheduler.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | step = try!(x[1].parse::()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/task.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/task.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use error::Error; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/job.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `self` [INFO] [stdout] --> src/job.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::{self, Sender, Receiver}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/job.rs:45:27 [INFO] [stdout] | [INFO] [stdout] 45 | let mut process = try!(self.command [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Weak` [INFO] [stdout] --> src/task_master.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::rc::Weak; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/output_keeper.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | fn push(&self, Message) -> Result<(), Self::Err>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Message` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/job.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | let mut job = Job::new(cmd); [INFO] [stdout] | ^^^^^^^^----- argument #2 of type `&OutputKeeper<'_>` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/job.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn new(cmd: Command, keeper: &'b OutputKeeper) -> Job<'a, 'b> { [INFO] [stdout] | ^^^ ------------------------ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 133 | let mut job = Job::new(cmd, /* &OutputKeeper<'_> */); [INFO] [stdout] | +++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/scheduler.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::Iterator` [INFO] [stdout] --> src/job.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::iter::Iterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/job.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/job.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | if let Ok(mut x) = chunk { [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: unused variable: `msg` [INFO] [stdout] --> src/output_keeper.rs:57:20 [INFO] [stdout] | [INFO] [stdout] 57 | fn push(&self, msg: Message) -> Result<(), Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cron_rs` (lib test) due to 1 previous error; 25 warnings emitted [INFO] running `Command { std: "docker" "inspect" "d9ded8c65bdb84cb094fccba4b23884775b8b9a261f64a51252ac098144c477a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9ded8c65bdb84cb094fccba4b23884775b8b9a261f64a51252ac098144c477a", kill_on_drop: false }` [INFO] [stdout] d9ded8c65bdb84cb094fccba4b23884775b8b9a261f64a51252ac098144c477a