[INFO] updating cached repository sorz/moproxy [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/sorz/moproxy [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/sorz/moproxy" "work/ex/clippy-test-run/sources/stable/gh/sorz/moproxy"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/sorz/moproxy'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/sorz/moproxy" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sorz/moproxy"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sorz/moproxy'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5f7f64b5d3dcb5fdf6edafc7c8d6ae5ec57dcbcb [INFO] sha for GitHub repo sorz/moproxy: 5f7f64b5d3dcb5fdf6edafc7c8d6ae5ec57dcbcb [INFO] validating manifest of sorz/moproxy 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 sorz/moproxy 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 sorz/moproxy [INFO] finished frobbing sorz/moproxy [INFO] frobbed toml for sorz/moproxy written to work/ex/clippy-test-run/sources/stable/gh/sorz/moproxy/Cargo.toml [INFO] started frobbing sorz/moproxy [INFO] finished frobbing sorz/moproxy [INFO] frobbed toml for sorz/moproxy written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sorz/moproxy/Cargo.toml [INFO] crate sorz/moproxy has a lockfile. skipping [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 sorz/moproxy against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/sorz/moproxy:/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] ecb37c3b95688705ee23fa05d66b10e5e2967ceb4f3004b1fc113f9e1a87c027 [INFO] running `"docker" "start" "-a" "ecb37c3b95688705ee23fa05d66b10e5e2967ceb4f3004b1fc113f9e1a87c027"` [INFO] [stderr] Compiling serde v1.0.82 [INFO] [stderr] Compiling nix v0.12.0 [INFO] [stderr] Checking rust-ini v0.13.0 [INFO] [stderr] Checking crossbeam-utils v0.6.3 [INFO] [stderr] Checking smallvec v0.6.7 [INFO] [stderr] Checking iovec v0.1.2 [INFO] [stderr] Checking rand v0.5.5 [INFO] [stderr] Checking net2 v0.2.33 [INFO] [stderr] Checking num_cpus v1.9.0 [INFO] [stderr] Checking time v0.1.41 [INFO] [stderr] Checking signal-hook v0.1.6 [INFO] [stderr] Checking bytes v0.4.11 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Checking mio v0.6.16 [INFO] [stderr] Compiling syn v0.15.23 [INFO] [stderr] Checking crossbeam-epoch v0.6.1 [INFO] [stderr] Checking tokio-timer v0.2.8 [INFO] [stderr] Checking rand v0.6.1 [INFO] [stderr] Checking env_logger v0.6.0 [INFO] [stderr] Checking tokio-io v0.1.10 [INFO] [stderr] Checking http v0.1.14 [INFO] [stderr] Checking crossbeam-deque v0.6.2 [INFO] [stderr] Checking parking_lot_core v0.3.1 [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking parking_lot v0.6.4 [INFO] [stderr] Checking tokio-threadpool v0.1.9 [INFO] [stderr] Checking tokio-reactor v0.1.7 [INFO] [stderr] Compiling serde_derive v1.0.82 [INFO] [stderr] Checking tokio-fs v0.1.4 [INFO] [stderr] Checking tokio-udp v0.1.3 [INFO] [stderr] Checking tokio-tcp v0.1.2 [INFO] [stderr] Checking tokio-uds v0.2.4 [INFO] [stderr] Checking tokio-signal v0.2.7 [INFO] [stderr] Checking tokio v0.1.13 [INFO] [stderr] Checking h2 v0.1.14 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Checking serde_json v1.0.33 [INFO] [stderr] Checking hyper v0.12.18 [INFO] [stderr] Checking moproxy v0.2.4 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client/read.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | rd: rd, [INFO] [stderr] | ^^^^^^ help: replace it with: `rd` [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/client/read.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [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/client/read.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | t: t, [INFO] [stderr] | ^^^^ help: replace it with: `t` [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/client/read.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | rd: rd, [INFO] [stderr] | ^^^^^^ help: replace it with: `rd` [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/client/read.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [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/client/read.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | t: t, [INFO] [stderr] | ^^^^ help: replace it with: `t` [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: unneeded return statement [INFO] [stderr] --> src/client/tls.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / return data [INFO] [stderr] 29 | | .get(len_pos.end..len_pos.end + len) [INFO] [stderr] 30 | | .ok_or("not enough data"); [INFO] [stderr] | |__________________________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 28 | data [INFO] [stderr] 29 | .get(len_pos.end..len_pos.end + len) [INFO] [stderr] 30 | .ok_or("not enough data") [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client/tls.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return Ok(&data[len_pos.end + len..]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&data[len_pos.end + len..])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proxy/copy.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proxy/copy.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proxy/http.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return request; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `request` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proxy.rs:23:30 [INFO] [stderr] | [INFO] [stderr] 23 | const GRAPHITE_PATH_PREFIX: &'static str = "moproxy.proxy_servers"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client/tls.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / return data [INFO] [stderr] 29 | | .get(len_pos.end..len_pos.end + len) [INFO] [stderr] 30 | | .ok_or("not enough data"); [INFO] [stderr] | |__________________________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 28 | data [INFO] [stderr] 29 | .get(len_pos.end..len_pos.end + len) [INFO] [stderr] 30 | .ok_or("not enough data") [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client/tls.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return Ok(&data[len_pos.end + len..]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(&data[len_pos.end + len..])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proxy/copy.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proxy/copy.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proxy/http.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return request; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `request` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proxy.rs:23:30 [INFO] [stderr] | [INFO] [stderr] 23 | const GRAPHITE_PATH_PREFIX: &'static str = "moproxy.proxy_servers"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/client/tls.rs:116:26 [INFO] [stderr] | [INFO] [stderr] 116 | .all(|c| c.is_digit(36) || c == '.' || c == '-' || c == '-') [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 116 | .all(|c| c == '-' || c == '.' || c.is_digit(36)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 116 | .all(|c| !(!c.is_digit(36) && c != '.' && c != '-')) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:60:66 [INFO] [stderr] | [INFO] [stderr] 60 | let dest4 = future::result(get_original_dest(&left)).map(|dest| SocketAddr::V4(dest)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SocketAddr::V4` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:61:67 [INFO] [stderr] | [INFO] [stderr] 61 | let dest6 = future::result(get_original_dest6(&left)).map(|dest| SocketAddr::V6(dest)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SocketAddr::V6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:146:45 [INFO] [stderr] | [INFO] [stderr] 146 | let pending_data = pending_data.map(|v| RcBox::new(v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RcBox::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/monitor/graphite.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | let addr = server_addr.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `server_addr` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/monitor/graphite.rs:104:40 [INFO] [stderr] | [INFO] [stderr] 104 | (t.as_secs() as f64) + (t.subsec_micros() as f64) / 1_000_000.0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(t.subsec_micros())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/monitor/traffic.rs:35:38 [INFO] [stderr] | [INFO] [stderr] 35 | let t = t.as_secs() as f64 + t.subsec_nanos() as f64 / 1e9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(t.subsec_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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:67:55 [INFO] [stderr] | [INFO] [stderr] 67 | server.score().unwrap_or(std::i32::MAX) - (rng.gen::() % 30) as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(rng.gen::() % 30)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/monitor.rs:127:22 [INFO] [stderr] | [INFO] [stderr] 127 | fn info_stats(infos: &ServerList) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:182:51 [INFO] [stderr] | [INFO] [stderr] 182 | server.delay().map(|t| r("delay", t.millis() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(t.millis())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:186:39 [INFO] [stderr] | [INFO] [stderr] 186 | Some(r("conns.total", server.conn_total() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(server.conn_total())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:187:39 [INFO] [stderr] | [INFO] [stderr] 187 | Some(r("conns.alive", server.conn_alive() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(server.conn_alive())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:188:39 [INFO] [stderr] | [INFO] [stderr] 188 | Some(r("conns.error", server.conn_error() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(server.conn_error())` [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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:223:28 [INFO] [stderr] | [INFO] [stderr] 223 | let tid = |req: &[u8]| (req[2] as u16) << 8 | (req[3] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(req[2])` [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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:223:51 [INFO] [stderr] | [INFO] [stderr] 223 | let tid = |req: &[u8]| (req[2] as u16) << 8 | (req[3] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(req[3])` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/proxy/copy.rs:140:29 [INFO] [stderr] | [INFO] [stderr] 140 | let result = (|buf: &Box<[u8]>| { [INFO] [stderr] | ^^^^^^^^^^ help: try: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/proxy/copy.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | self.traffic = self.traffic + amt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.traffic += amt` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | buffer.write(&[5, 1, 0]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | buffer.write(&[5, 1, 0]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | buffer.write(&[0x01]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | buffer.write(&ip.octets()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | buffer.write(&[0x04]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:38:17 [INFO] [stderr] | [INFO] [stderr] 38 | buffer.write(&ip.octets()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | buffer.write(&[0x03]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | buffer.write(host.as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you probably are missing some parameter in your format string [INFO] [stderr] --> src/proxy.rs:174:29 [INFO] [stderr] | [INFO] [stderr] 174 | / "Tag \"{}\" contains white spaces, line \ [INFO] [stderr] 175 | | breaks, or non-ASCII characters." [INFO] [stderr] | |______________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::panic_params)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#panic_params [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `new` [INFO] [stderr] --> src/proxy.rs:250:32 [INFO] [stderr] | [INFO] [stderr] 250 | (old * 9 + new * 1) / 10 [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/lib.rs:14:40 [INFO] [stderr] | [INFO] [stderr] 14 | self.as_secs() as u32 * 1000 + self.subsec_nanos() / 1_000_000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/client/tls.rs:116:26 [INFO] [stderr] | [INFO] [stderr] 116 | .all(|c| c.is_digit(36) || c == '.' || c == '-' || c == '-') [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 116 | .all(|c| c == '-' || c == '.' || c.is_digit(36)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 116 | .all(|c| !(!c.is_digit(36) && c != '.' && c != '-')) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:60:66 [INFO] [stderr] | [INFO] [stderr] 60 | let dest4 = future::result(get_original_dest(&left)).map(|dest| SocketAddr::V4(dest)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SocketAddr::V4` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:61:67 [INFO] [stderr] | [INFO] [stderr] 61 | let dest6 = future::result(get_original_dest6(&left)).map(|dest| SocketAddr::V6(dest)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SocketAddr::V6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: Could not compile `moproxy`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:146:45 [INFO] [stderr] | [INFO] [stderr] 146 | let pending_data = pending_data.map(|v| RcBox::new(v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RcBox::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/monitor/graphite.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | let addr = server_addr.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `server_addr` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/monitor/graphite.rs:104:40 [INFO] [stderr] | [INFO] [stderr] 104 | (t.as_secs() as f64) + (t.subsec_micros() as f64) / 1_000_000.0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(t.subsec_micros())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/monitor/traffic.rs:35:38 [INFO] [stderr] | [INFO] [stderr] 35 | let t = t.as_secs() as f64 + t.subsec_nanos() as f64 / 1e9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(t.subsec_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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:67:55 [INFO] [stderr] | [INFO] [stderr] 67 | server.score().unwrap_or(std::i32::MAX) - (rng.gen::() % 30) as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(rng.gen::() % 30)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/monitor.rs:127:22 [INFO] [stderr] | [INFO] [stderr] 127 | fn info_stats(infos: &ServerList) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:182:51 [INFO] [stderr] | [INFO] [stderr] 182 | server.delay().map(|t| r("delay", t.millis() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(t.millis())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:186:39 [INFO] [stderr] | [INFO] [stderr] 186 | Some(r("conns.total", server.conn_total() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(server.conn_total())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:187:39 [INFO] [stderr] | [INFO] [stderr] 187 | Some(r("conns.alive", server.conn_alive() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(server.conn_alive())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:188:39 [INFO] [stderr] | [INFO] [stderr] 188 | Some(r("conns.error", server.conn_error() as u64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(server.conn_error())` [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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:223:28 [INFO] [stderr] | [INFO] [stderr] 223 | let tid = |req: &[u8]| (req[2] as u16) << 8 | (req[3] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(req[2])` [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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/monitor.rs:223:51 [INFO] [stderr] | [INFO] [stderr] 223 | let tid = |req: &[u8]| (req[2] as u16) << 8 | (req[3] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(req[3])` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/proxy/copy.rs:140:29 [INFO] [stderr] | [INFO] [stderr] 140 | let result = (|buf: &Box<[u8]>| { [INFO] [stderr] | ^^^^^^^^^^ help: try: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/proxy/copy.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | self.traffic = self.traffic + amt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.traffic += amt` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | buffer.write(&[5, 1, 0]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | buffer.write(&[5, 1, 0]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | buffer.write(&[0x01]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | buffer.write(&ip.octets()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | buffer.write(&[0x04]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:38:17 [INFO] [stderr] | [INFO] [stderr] 38 | buffer.write(&ip.octets()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | buffer.write(&[0x03]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/proxy/socks5.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | buffer.write(host.as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you probably are missing some parameter in your format string [INFO] [stderr] --> src/proxy.rs:174:29 [INFO] [stderr] | [INFO] [stderr] 174 | / "Tag \"{}\" contains white spaces, line \ [INFO] [stderr] 175 | | breaks, or non-ASCII characters." [INFO] [stderr] | |______________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::panic_params)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#panic_params [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `new` [INFO] [stderr] --> src/proxy.rs:250:32 [INFO] [stderr] | [INFO] [stderr] 250 | (old * 9 + new * 1) / 10 [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/lib.rs:14:40 [INFO] [stderr] | [INFO] [stderr] 14 | self.as_secs() as u32 * 1000 + self.subsec_nanos() / 1_000_000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `moproxy`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "ecb37c3b95688705ee23fa05d66b10e5e2967ceb4f3004b1fc113f9e1a87c027"` [INFO] running `"docker" "rm" "-f" "ecb37c3b95688705ee23fa05d66b10e5e2967ceb4f3004b1fc113f9e1a87c027"` [INFO] [stdout] ecb37c3b95688705ee23fa05d66b10e5e2967ceb4f3004b1fc113f9e1a87c027