[INFO] updating cached repository planet0104/rust_wechat_jump_helper [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/planet0104/rust_wechat_jump_helper [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/planet0104/rust_wechat_jump_helper" "work/ex/clippy-test-run/sources/stable/gh/planet0104/rust_wechat_jump_helper"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/planet0104/rust_wechat_jump_helper'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/planet0104/rust_wechat_jump_helper" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/planet0104/rust_wechat_jump_helper"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/planet0104/rust_wechat_jump_helper'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0cb45e5bda780efda631010619725cd5a30499a8 [INFO] sha for GitHub repo planet0104/rust_wechat_jump_helper: 0cb45e5bda780efda631010619725cd5a30499a8 [INFO] validating manifest of planet0104/rust_wechat_jump_helper 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 planet0104/rust_wechat_jump_helper 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 planet0104/rust_wechat_jump_helper [INFO] finished frobbing planet0104/rust_wechat_jump_helper [INFO] frobbed toml for planet0104/rust_wechat_jump_helper written to work/ex/clippy-test-run/sources/stable/gh/planet0104/rust_wechat_jump_helper/Cargo.toml [INFO] started frobbing planet0104/rust_wechat_jump_helper [INFO] finished frobbing planet0104/rust_wechat_jump_helper [INFO] frobbed toml for planet0104/rust_wechat_jump_helper written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/planet0104/rust_wechat_jump_helper/Cargo.toml [INFO] crate planet0104/rust_wechat_jump_helper 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 planet0104/rust_wechat_jump_helper against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/planet0104/rust_wechat_jump_helper:/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] 05dd91ba6853bab5210c9dabb185be6f595f74fcbef16689562d98f142b6a2af [INFO] running `"docker" "start" "-a" "05dd91ba6853bab5210c9dabb185be6f595f74fcbef16689562d98f142b6a2af"` [INFO] [stderr] Compiling glib-sys v0.5.0 [INFO] [stderr] Compiling gobject-sys v0.5.0 [INFO] [stderr] Compiling gio-sys v0.5.0 [INFO] [stderr] Compiling cairo-sys-rs v0.5.0 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.5.0 [INFO] [stderr] Compiling pango-sys v0.5.0 [INFO] [stderr] Compiling atk-sys v0.5.0 [INFO] [stderr] Compiling gdk-sys v0.5.0 [INFO] [stderr] Compiling gtk-sys v0.5.0 [INFO] [stderr] Compiling cairo-rs v0.3.0 [INFO] [stderr] Compiling gio v0.3.0 [INFO] [stderr] Compiling gdk-pixbuf v0.3.0 [INFO] [stderr] Compiling gdk v0.7.0 [INFO] [stderr] Compiling gtk v0.3.0 [INFO] [stderr] Checking glib v0.4.0 [INFO] [stderr] Checking pango v0.3.0 [INFO] [stderr] Checking jumpjump v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | image: image [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `image` [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/main.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | image: image [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `image` [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: unused import: `MenuModelExt` [INFO] [stderr] --> src/main.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | use gio::{ MenuExt, MenuModelExt }; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `InterpType` [INFO] [stderr] --> src/main.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | use gdk_pixbuf::{Pixbuf, InterpType}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/main.rs:43:22 [INFO] [stderr] | [INFO] [stderr] 43 | use std::io::{ Write,Read }; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:172:99 [INFO] [stderr] | [INFO] [stderr] 172 | println!("{}>>耗时{:?}毫秒.", tag, start.elapsed().as_secs()*1000+(start.elapsed().subsec_nanos()/1000000u32) as u64); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000u32` [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: unused import: `MenuModelExt` [INFO] [stderr] --> src/main.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | use gio::{ MenuExt, MenuModelExt }; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `InterpType` [INFO] [stderr] --> src/main.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | use gdk_pixbuf::{Pixbuf, InterpType}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/main.rs:43:22 [INFO] [stderr] | [INFO] [stderr] 43 | use std::io::{ Write,Read }; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:172:99 [INFO] [stderr] | [INFO] [stderr] 172 | println!("{}>>耗时{:?}毫秒.", tag, start.elapsed().as_secs()*1000+(start.elapsed().subsec_nanos()/1000000u32) as u64); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000u32` [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: unused variable: `obj` [INFO] [stderr] --> src/main.rs:102:54 [INFO] [stderr] | [INFO] [stderr] 102 | event_box.connect_button_release_event(move |obj, event_button| { [INFO] [stderr] | ^^^ help: consider using `_obj` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `g` [INFO] [stderr] --> src/main.rs:144:47 [INFO] [stderr] | [INFO] [stderr] 144 | capture_action.connect_activate(move |g, _| { [INFO] [stderr] | ^ help: consider using `_g` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `window_clone` [INFO] [stderr] --> src/main.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | let window_clone = window.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_window_clone` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let mut holder = holder.borrow_mut(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let mut holder = holder.borrow_mut(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_elapsed` [INFO] [stderr] --> src/main.rs:171:1 [INFO] [stderr] | [INFO] [stderr] 171 | fn print_elapsed(tag:i32, start:&mut Instant){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/main.rs:155:21 [INFO] [stderr] | [INFO] [stderr] 155 | application.run(&vec![]); [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | file.write_all(capture.as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:172:67 [INFO] [stderr] | [INFO] [stderr] 172 | println!("{}>>耗时{:?}毫秒.", tag, start.elapsed().as_secs()*1000+(start.elapsed().subsec_nanos()/1000000u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(start.elapsed().subsec_nanos()/1000000u32)` [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/main.rs:172:67 [INFO] [stderr] | [INFO] [stderr] 172 | println!("{}>>耗时{:?}毫秒.", tag, start.elapsed().as_secs()*1000+(start.elapsed().subsec_nanos()/1000000u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `start.elapsed().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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/main.rs:177:1 [INFO] [stderr] | [INFO] [stderr] 177 | / pub fn execute<'a>(cmd:&'a str) ->Vec{ [INFO] [stderr] 178 | | //执行命令 [INFO] [stderr] 179 | | let output = if cfg!(target_os = "windows") { [INFO] [stderr] 180 | | Command::new("cmd") [INFO] [stderr] ... | [INFO] [stderr] 191 | | output.stdout [INFO] [stderr] 192 | | } [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/main.rs:194:1 [INFO] [stderr] | [INFO] [stderr] 194 | / pub fn execute_result<'a>(cmd:&'a str) ->String{ [INFO] [stderr] 195 | | let result = execute(cmd); [INFO] [stderr] 196 | | String::from_utf8(result).unwrap_or_else(|err|{ [INFO] [stderr] 197 | | println!("{:?}", err); [INFO] [stderr] 198 | | String::from("") [INFO] [stderr] 199 | | }) [INFO] [stderr] 200 | | } [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: unused variable: `obj` [INFO] [stderr] --> src/main.rs:102:54 [INFO] [stderr] | [INFO] [stderr] 102 | event_box.connect_button_release_event(move |obj, event_button| { [INFO] [stderr] | ^^^ help: consider using `_obj` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `g` [INFO] [stderr] --> src/main.rs:144:47 [INFO] [stderr] | [INFO] [stderr] 144 | capture_action.connect_activate(move |g, _| { [INFO] [stderr] | ^ help: consider using `_g` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `window_clone` [INFO] [stderr] --> src/main.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | let window_clone = window.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_window_clone` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let mut holder = holder.borrow_mut(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let mut holder = holder.borrow_mut(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_elapsed` [INFO] [stderr] --> src/main.rs:171:1 [INFO] [stderr] | [INFO] [stderr] 171 | fn print_elapsed(tag:i32, start:&mut Instant){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/main.rs:155:21 [INFO] [stderr] | [INFO] [stderr] 155 | application.run(&vec![]); [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | file.write_all(capture.as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:172:67 [INFO] [stderr] | [INFO] [stderr] 172 | println!("{}>>耗时{:?}毫秒.", tag, start.elapsed().as_secs()*1000+(start.elapsed().subsec_nanos()/1000000u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(start.elapsed().subsec_nanos()/1000000u32)` [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/main.rs:172:67 [INFO] [stderr] | [INFO] [stderr] 172 | println!("{}>>耗时{:?}毫秒.", tag, start.elapsed().as_secs()*1000+(start.elapsed().subsec_nanos()/1000000u32) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `start.elapsed().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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/main.rs:177:1 [INFO] [stderr] | [INFO] [stderr] 177 | / pub fn execute<'a>(cmd:&'a str) ->Vec{ [INFO] [stderr] 178 | | //执行命令 [INFO] [stderr] 179 | | let output = if cfg!(target_os = "windows") { [INFO] [stderr] 180 | | Command::new("cmd") [INFO] [stderr] ... | [INFO] [stderr] 191 | | output.stdout [INFO] [stderr] 192 | | } [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/main.rs:194:1 [INFO] [stderr] | [INFO] [stderr] 194 | / pub fn execute_result<'a>(cmd:&'a str) ->String{ [INFO] [stderr] 195 | | let result = execute(cmd); [INFO] [stderr] 196 | | String::from_utf8(result).unwrap_or_else(|err|{ [INFO] [stderr] 197 | | println!("{:?}", err); [INFO] [stderr] 198 | | String::from("") [INFO] [stderr] 199 | | }) [INFO] [stderr] 200 | | } [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] Finished dev [unoptimized + debuginfo] target(s) in 1m 07s [INFO] running `"docker" "inspect" "05dd91ba6853bab5210c9dabb185be6f595f74fcbef16689562d98f142b6a2af"` [INFO] running `"docker" "rm" "-f" "05dd91ba6853bab5210c9dabb185be6f595f74fcbef16689562d98f142b6a2af"` [INFO] [stdout] 05dd91ba6853bab5210c9dabb185be6f595f74fcbef16689562d98f142b6a2af