[INFO] crate time 0.1.40 is already in cache [INFO] extracting crate time 0.1.40 into work/ex/clippy-test-run/sources/stable/reg/time/0.1.40 [INFO] extracting crate time 0.1.40 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/time/0.1.40 [INFO] validating manifest of time-0.1.40 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of time-0.1.40 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing time-0.1.40 [INFO] finished frobbing time-0.1.40 [INFO] frobbed toml for time-0.1.40 written to work/ex/clippy-test-run/sources/stable/reg/time/0.1.40/Cargo.toml [INFO] started frobbing time-0.1.40 [INFO] finished frobbing time-0.1.40 [INFO] frobbed toml for time-0.1.40 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/time/0.1.40/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting time-0.1.40 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/time/0.1.40:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 8b4dcf7cb7d6073dcdf561cc682a0b18fd1f6afbfa42b9874ec2eb328c748419 [INFO] running `"docker" "start" "-a" "8b4dcf7cb7d6073dcdf561cc682a0b18fd1f6afbfa42b9874ec2eb328c748419"` [INFO] [stderr] Compiling winapi v0.3.6 [INFO] [stderr] Checking time v0.1.40 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:116:20 [INFO] [stderr] | [INFO] [stderr] 116 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:116:32 [INFO] [stderr] | [INFO] [stderr] 116 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:124:20 [INFO] [stderr] | [INFO] [stderr] 124 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:124:32 [INFO] [stderr] | [INFO] [stderr] 124 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:131:20 [INFO] [stderr] | [INFO] [stderr] 131 | Duration { secs: secs, nanos: nanos as i32 } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:219:28 [INFO] [stderr] | [INFO] [stderr] 219 | let d = Duration { secs: secs, nanos: nanos }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:219:40 [INFO] [stderr] | [INFO] [stderr] 219 | let d = Duration { secs: secs, nanos: nanos }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:233:28 [INFO] [stderr] | [INFO] [stderr] 233 | let d = Duration { secs: secs, nanos: nanos }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:233:40 [INFO] [stderr] | [INFO] [stderr] 233 | let d = Duration { secs: secs, nanos: nanos }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:313:20 [INFO] [stderr] | [INFO] [stderr] 313 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:313:32 [INFO] [stderr] | [INFO] [stderr] 313 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:327:20 [INFO] [stderr] | [INFO] [stderr] 327 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:327:32 [INFO] [stderr] | [INFO] [stderr] 327 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:339:20 [INFO] [stderr] | [INFO] [stderr] 339 | Duration { secs: secs, nanos: nanos as i32 } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:359:20 [INFO] [stderr] | [INFO] [stderr] 359 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `secs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/duration.rs:359:32 [INFO] [stderr] | [INFO] [stderr] 359 | Duration { secs: secs, nanos: nanos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nanos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sys.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | let s = tm.tm_sec as i64; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:87:20 [INFO] [stderr] | [INFO] [stderr] 87 | Timespec { sec: sec, nsec: nsec } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | Timespec { sec: sec, nsec: nsec } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `nsec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/duration.rs:21:30 [INFO] [stderr] | [INFO] [stderr] 21 | const NANOS_PER_MILLI: i32 = 1000_000; [INFO] [stderr] | ^^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/duration.rs:25:29 [INFO] [stderr] | [INFO] [stderr] 25 | const MICROS_PER_SEC: i64 = 1000_000; [INFO] [stderr] | ^^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/duration.rs:35:28 [INFO] [stderr] | [INFO] [stderr] 35 | const SECS_PER_WEEK: i64 = 604800; [INFO] [stderr] | ^^^^^^ help: consider: `604_800` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sys.rs:503:34 [INFO] [stderr] | [INFO] [stderr] 503 | (ts.tv_sec as u64) * 1000000000 + (ts.tv_nsec as u64) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | return (precise_time_ns() as f64) / 1000000000.; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(precise_time_ns() as f64) / 1000000000.` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:170:41 [INFO] [stderr] | [INFO] [stderr] 170 | return (precise_time_ns() as f64) / 1000000000.; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `1_000_000_000.` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:130:53 [INFO] [stderr] | [INFO] [stderr] 130 | let (secs, nanos) = div_mod_floor_64(nanos, NANOS_PER_SEC as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(NANOS_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:192:21 [INFO] [stderr] | [INFO] [stderr] 192 | secs_part + nanos_part as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i64::from(nanos_part)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:200:31 [INFO] [stderr] | [INFO] [stderr] 200 | secs_part.checked_add(nanos_part as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i64::from(nanos_part)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:206:65 [INFO] [stderr] | [INFO] [stderr] 206 | let secs_part = try_opt!(self.num_seconds().checked_mul(NANOS_PER_SEC as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(NANOS_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:208:31 [INFO] [stderr] | [INFO] [stderr] 208 | secs_part.checked_add(nanos_part as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i64::from(nanos_part)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:336:27 [INFO] [stderr] | [INFO] [stderr] 336 | let total_nanos = self.nanos as i64 * rhs as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.nanos)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:336:47 [INFO] [stderr] | [INFO] [stderr] 336 | let total_nanos = self.nanos as i64 * rhs as i64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:337:65 [INFO] [stderr] | [INFO] [stderr] 337 | let (extra_secs, nanos) = div_mod_floor_64(total_nanos, NANOS_PER_SEC as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(NANOS_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:338:32 [INFO] [stderr] | [INFO] [stderr] 338 | let secs = self.secs * rhs as i64 + extra_secs; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:347:36 [INFO] [stderr] | [INFO] [stderr] 347 | let mut secs = self.secs / rhs as i64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:348:40 [INFO] [stderr] | [INFO] [stderr] 348 | let carry = self.secs - secs * rhs as i64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:349:35 [INFO] [stderr] | [INFO] [stderr] 349 | let extra_nanos = carry * NANOS_PER_SEC as i64 / rhs as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(NANOS_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/duration.rs:349:58 [INFO] [stderr] | [INFO] [stderr] 349 | let extra_nanos = carry * NANOS_PER_SEC as i64 / rhs as i64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/parse.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | / fn parse_type(s: &mut &str, ch: char, tm: &mut Tm) -> Result<(), ParseError> { [INFO] [stderr] 34 | | match ch { [INFO] [stderr] 35 | | 'A' => match match_strs(s, &[("Sunday", 0), [INFO] [stderr] 36 | | ("Monday", 1), [INFO] [stderr] ... | [INFO] [stderr] 296 | | } [INFO] [stderr] 297 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:329:39 [INFO] [stderr] | [INFO] [stderr] 329 | let s2 = ss.trim_left_matches(" "); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/sys.rs:548:71 [INFO] [stderr] | [INFO] [stderr] 548 | Duration::nanoseconds(self.t.tv_nsec as i64 + ::NSEC_PER_SEC as i64 - [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(::NSEC_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/sys.rs:565:41 [INFO] [stderr] | [INFO] [stderr] 565 | let nanoseconds = other - Duration::seconds(seconds); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/sys.rs:575:38 [INFO] [stderr] | [INFO] [stderr] 575 | if self.t.tv_nsec >= ::NSEC_PER_SEC as nsec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(::NSEC_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/sys.rs:576:39 [INFO] [stderr] | [INFO] [stderr] 576 | self.t.tv_nsec -= ::NSEC_PER_SEC as nsec; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(::NSEC_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/sys.rs:580:39 [INFO] [stderr] | [INFO] [stderr] 580 | self.t.tv_nsec += ::NSEC_PER_SEC as nsec; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(::NSEC_PER_SEC)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:98:29 [INFO] [stderr] | [INFO] [stderr] 98 | let d_nsec = (other - Duration::seconds(d_sec)) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:141:32 [INFO] [stderr] | [INFO] [stderr] 141 | Duration::seconds(sec) + Duration::nanoseconds(nsec as i64) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:141:56 [INFO] [stderr] | [INFO] [stderr] 141 | Duration::seconds(sec) + Duration::nanoseconds(nsec as i64) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(nsec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:212:15 [INFO] [stderr] | [INFO] [stderr] 212 | pub fn to(&self, later: PreciseTime) -> Duration { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:525:5 [INFO] [stderr] | [INFO] [stderr] 525 | / pub fn rfc3339<'a>(&'a self) -> TmFmt { [INFO] [stderr] 526 | | TmFmt { [INFO] [stderr] 527 | | tm: self, [INFO] [stderr] 528 | | format: Fmt::Rfc3339, [INFO] [stderr] 529 | | } [INFO] [stderr] 530 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:602:1 [INFO] [stderr] | [INFO] [stderr] 602 | / fn validate_format<'a>(fmt: TmFmt<'a>) -> Result, ParseError> { [INFO] [stderr] 603 | | [INFO] [stderr] 604 | | match (fmt.tm.tm_wday, fmt.tm.tm_mon) { [INFO] [stderr] 605 | | (0...6, 0...11) => (), [INFO] [stderr] ... | [INFO] [stderr] 640 | | Ok(fmt) [INFO] [stderr] 641 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:610:5 [INFO] [stderr] | [INFO] [stderr] 610 | / match fmt.format { [INFO] [stderr] 611 | | Fmt::Str(ref s) => { [INFO] [stderr] 612 | | let mut chars = s.chars(); [INFO] [stderr] 613 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 638 | | _ => () [INFO] [stderr] 639 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 610 | if let Fmt::Str(ref s) = fmt.format { [INFO] [stderr] 611 | let mut chars = s.chars(); [INFO] [stderr] 612 | loop { [INFO] [stderr] 613 | match chars.next() { [INFO] [stderr] 614 | Some('%') => { [INFO] [stderr] 615 | match chars.next() { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `time`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "8b4dcf7cb7d6073dcdf561cc682a0b18fd1f6afbfa42b9874ec2eb328c748419"` [INFO] running `"docker" "rm" "-f" "8b4dcf7cb7d6073dcdf561cc682a0b18fd1f6afbfa42b9874ec2eb328c748419"` [INFO] [stdout] 8b4dcf7cb7d6073dcdf561cc682a0b18fd1f6afbfa42b9874ec2eb328c748419