[INFO] updating cached repository kokoax/mpd_client_with_rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kokoax/mpd_client_with_rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kokoax/mpd_client_with_rust" "work/ex/clippy-test-run/sources/stable/gh/kokoax/mpd_client_with_rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kokoax/mpd_client_with_rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kokoax/mpd_client_with_rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kokoax/mpd_client_with_rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kokoax/mpd_client_with_rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c97a96937f3d03c2d6ae350f50aebb009b2b3d70 [INFO] sha for GitHub repo kokoax/mpd_client_with_rust: c97a96937f3d03c2d6ae350f50aebb009b2b3d70 [INFO] validating manifest of kokoax/mpd_client_with_rust 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 kokoax/mpd_client_with_rust 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 kokoax/mpd_client_with_rust [INFO] finished frobbing kokoax/mpd_client_with_rust [INFO] frobbed toml for kokoax/mpd_client_with_rust written to work/ex/clippy-test-run/sources/stable/gh/kokoax/mpd_client_with_rust/Cargo.toml [INFO] started frobbing kokoax/mpd_client_with_rust [INFO] finished frobbing kokoax/mpd_client_with_rust [INFO] frobbed toml for kokoax/mpd_client_with_rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kokoax/mpd_client_with_rust/Cargo.toml [INFO] crate kokoax/mpd_client_with_rust 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 kokoax/mpd_client_with_rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/kokoax/mpd_client_with_rust:/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] f4fcf2573835b7a38c46bc35e9b43496c400f3a076d32fbd1d817983a429854c [INFO] running `"docker" "start" "-a" "f4fcf2573835b7a38c46bc35e9b43496c400f3a076d32fbd1d817983a429854c"` [INFO] [stderr] Compiling cairo-rs v0.1.2 [INFO] [stderr] Compiling gdk-pixbuf v0.1.2 [INFO] [stderr] Compiling gio v0.1.2 [INFO] [stderr] Compiling gdk v0.5.2 [INFO] [stderr] Checking c_vec v1.2.0 [INFO] [stderr] Compiling gtk v0.1.2 [INFO] [stderr] Compiling glib-sys v0.3.3 [INFO] [stderr] Compiling gobject-sys v0.3.3 [INFO] [stderr] Compiling gio-sys v0.3.3 [INFO] [stderr] Compiling cairo-sys-rs v0.3.3 [INFO] [stderr] Compiling pango-sys v0.3.3 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.3.3 [INFO] [stderr] Compiling atk-sys v0.3.3 [INFO] [stderr] Compiling gdk-sys v0.3.3 [INFO] [stderr] Compiling gtk-sys v0.3.3 [INFO] [stderr] Checking glib v0.1.2 [INFO] [stderr] Checking pango v0.1.2 [INFO] [stderr] Checking mpd_client v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpd.rs:37:34 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/mpd.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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/mpd.rs:37:34 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/mpd.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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/main_window.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return splited.pop().unwrap().to_string() as String; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `splited.pop().unwrap().to_string() as String` [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: unneeded return statement [INFO] [stderr] --> src/main_window.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | return column; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `column` [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/main_window.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return header; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `header` [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/main_window.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return playlist_store; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `playlist_store` [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/main_window.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | return primary_box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primary_box` [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/mpd.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | return ls_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir` [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/mpd.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | return ls_playlist; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_playlist` [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/mpd.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | return buf; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `buf` [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: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/main_window.rs:229:20 [INFO] [stderr] | [INFO] [stderr] 229 | let home = std::env::home_dir().unwrap().into_os_string().into_string().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main_window.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return splited.pop().unwrap().to_string() as String; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `splited.pop().unwrap().to_string() as String` [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: unneeded return statement [INFO] [stderr] --> src/main_window.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | return column; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `column` [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/main_window.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return header; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `header` [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/main_window.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return playlist_store; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `playlist_store` [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/main_window.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | return primary_box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primary_box` [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/mpd.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | return ls_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir` [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/mpd.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | return ls_playlist; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_playlist` [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/mpd.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | return buf; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `buf` [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: unused variable: `seek_bar_adj` [INFO] [stderr] --> src/main_window.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | let seek_bar_adj = gtk::Adjustment::new(100.0, 0.0, 100.0, 1.0, 10.0, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_seek_bar_adj` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `flowbox_child` [INFO] [stderr] --> src/main_window.rs:253:48 [INFO] [stderr] | [INFO] [stderr] 253 | flow.connect_child_activated(|flowbox, flowbox_child| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_flowbox_child` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `iter` is never read [INFO] [stderr] --> src/main_window.rs:355:33 [INFO] [stderr] | [INFO] [stderr] 355 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | let mut all_container = gtk::Box::new(gtk::Orientation::Vertical, 10); [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: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/main_window.rs:229:20 [INFO] [stderr] | [INFO] [stderr] 229 | let home = std::env::home_dir().unwrap().into_os_string().into_string().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | let mut mpd = mpd_timeout.clone(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let mut mpd_forcus = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut mpd_keypress = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: The function/method `init` doesn't need a mutable reference [INFO] [stderr] --> src/main_window.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | self.init(&mut main_window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:58:31 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/main_window.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:59:49 [INFO] [stderr] | [INFO] [stderr] 59 | let mut splited: Vec<&str> = data.split("/").collect(); [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: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:114:24 [INFO] [stderr] | [INFO] [stderr] 114 | .split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:112:39 [INFO] [stderr] | [INFO] [stderr] 112 | let time_buf: Vec<&str> = time_buf.get("time") [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 113 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&time_buf["time"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:135:61 [INFO] [stderr] | [INFO] [stderr] 135 | None => MainWindow::to_only_filename(info.get("file").unwrap()).to_value() as gtk::Value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:266:39 [INFO] [stderr] | [INFO] [stderr] 266 | fn get_inside_of_dir(&self, path: &String, outside_iter: >k::TreeIter, store: >k::TreeStore) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:272:36 [INFO] [stderr] | [INFO] [stderr] 272 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:279:61 [INFO] [stderr] | [INFO] [stderr] 279 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:318:36 [INFO] [stderr] | [INFO] [stderr] 318 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:325:61 [INFO] [stderr] | [INFO] [stderr] 325 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/main_window.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | / match event_key.get_keyval() as u32 { [INFO] [stderr] 351 | | 97 => { // 97 means 'a' [INFO] [stderr] 352 | | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 353 | | let model = widget.get_model().unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 375 | | _ => (), [INFO] [stderr] 376 | | } [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] 350 | if let 97 = event_key.get_keyval() as u32 { // 97 means 'a' [INFO] [stderr] 351 | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 352 | let model = widget.get_model().unwrap(); [INFO] [stderr] 353 | for path in paths { [INFO] [stderr] 354 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] 355 | let mut pathname = String::new(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:43:43 [INFO] [stderr] | [INFO] [stderr] 43 | let mut ls: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: trivial regex [INFO] [stderr] --> src/mpd.rs:49:41 [INFO] [stderr] | [INFO] [stderr] 49 | let is_last = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:70:31 [INFO] [stderr] | [INFO] [stderr] 70 | let buf = self.do_cmd(format!("status\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"status\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | let buf: String = self.do_cmd(format!("currentsong\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"currentsong\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | let splited: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:113:40 [INFO] [stderr] | [INFO] [stderr] 113 | let buf: String = self.do_cmd(format!("listall\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"listall\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | let buf: String = self.do_cmd(format!("playlist\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"playlist\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/mpd.rs:170:43 [INFO] [stderr] | [INFO] [stderr] 170 | let is_ending = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seek_bar_adj` [INFO] [stderr] --> src/main_window.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | let seek_bar_adj = gtk::Adjustment::new(100.0, 0.0, 100.0, 1.0, 10.0, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_seek_bar_adj` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `flowbox_child` [INFO] [stderr] --> src/main_window.rs:253:48 [INFO] [stderr] | [INFO] [stderr] 253 | flow.connect_child_activated(|flowbox, flowbox_child| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_flowbox_child` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `iter` is never read [INFO] [stderr] --> src/main_window.rs:355:33 [INFO] [stderr] | [INFO] [stderr] 355 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | let mut all_container = gtk::Box::new(gtk::Orientation::Vertical, 10); [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_window.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | let mut mpd = mpd_timeout.clone(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let mut mpd_forcus = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut mpd_keypress = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpd.rs:37:34 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/mpd.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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: The function/method `init` doesn't need a mutable reference [INFO] [stderr] --> src/main_window.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | self.init(&mut main_window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:58:31 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/main_window.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:59:49 [INFO] [stderr] | [INFO] [stderr] 59 | let mut splited: Vec<&str> = data.split("/").collect(); [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: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:114:24 [INFO] [stderr] | [INFO] [stderr] 114 | .split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:112:39 [INFO] [stderr] | [INFO] [stderr] 112 | let time_buf: Vec<&str> = time_buf.get("time") [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 113 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&time_buf["time"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:135:61 [INFO] [stderr] | [INFO] [stderr] 135 | None => MainWindow::to_only_filename(info.get("file").unwrap()).to_value() as gtk::Value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:266:39 [INFO] [stderr] | [INFO] [stderr] 266 | fn get_inside_of_dir(&self, path: &String, outside_iter: >k::TreeIter, store: >k::TreeStore) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpd.rs:37:34 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/mpd.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | MPDQuery{mpd: mutex_mpd, addr: addr, port: port} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:272:36 [INFO] [stderr] | [INFO] [stderr] 272 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:279:61 [INFO] [stderr] | [INFO] [stderr] 279 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:318:36 [INFO] [stderr] | [INFO] [stderr] 318 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:325:61 [INFO] [stderr] | [INFO] [stderr] 325 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/main_window.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | / match event_key.get_keyval() as u32 { [INFO] [stderr] 351 | | 97 => { // 97 means 'a' [INFO] [stderr] 352 | | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 353 | | let model = widget.get_model().unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 375 | | _ => (), [INFO] [stderr] 376 | | } [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] 350 | if let 97 = event_key.get_keyval() as u32 { // 97 means 'a' [INFO] [stderr] 351 | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 352 | let model = widget.get_model().unwrap(); [INFO] [stderr] 353 | for path in paths { [INFO] [stderr] 354 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] 355 | let mut pathname = String::new(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:43:43 [INFO] [stderr] | [INFO] [stderr] 43 | let mut ls: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: trivial regex [INFO] [stderr] --> src/mpd.rs:49:41 [INFO] [stderr] | [INFO] [stderr] 49 | let is_last = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:70:31 [INFO] [stderr] | [INFO] [stderr] 70 | let buf = self.do_cmd(format!("status\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"status\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | let buf: String = self.do_cmd(format!("currentsong\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"currentsong\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | let splited: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:113:40 [INFO] [stderr] | [INFO] [stderr] 113 | let buf: String = self.do_cmd(format!("listall\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"listall\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | let buf: String = self.do_cmd(format!("playlist\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"playlist\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/mpd.rs:170:43 [INFO] [stderr] | [INFO] [stderr] 170 | let is_ending = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main_window.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return splited.pop().unwrap().to_string() as String; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `splited.pop().unwrap().to_string() as String` [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: unneeded return statement [INFO] [stderr] --> src/main_window.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | return column; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `column` [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/main_window.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return header; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `header` [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/main_window.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return playlist_store; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `playlist_store` [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/main_window.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | return primary_box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primary_box` [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/mpd.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | return ls_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir` [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/mpd.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | return ls_playlist; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_playlist` [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/mpd.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | return buf; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `buf` [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: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/main_window.rs:229:20 [INFO] [stderr] | [INFO] [stderr] 229 | let home = std::env::home_dir().unwrap().into_os_string().into_string().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main_window.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return splited.pop().unwrap().to_string() as String; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `splited.pop().unwrap().to_string() as String` [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: unneeded return statement [INFO] [stderr] --> src/main_window.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | return column; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `column` [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/main_window.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return header; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `header` [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/main_window.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return playlist_store; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `playlist_store` [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/main_window.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | return scroll; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `scroll` [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/main_window.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | return primary_box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primary_box` [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/mpd.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return self.mpdbuf_to_vec(buf).pop().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf).pop().unwrap()` [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/mpd.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/mpd.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | return ls_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir` [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/mpd.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | return ls_playlist; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_playlist` [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/mpd.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | return ls_dir_and_song; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ls_dir_and_song` [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/mpd.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | return self.mpdbuf_to_vec(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mpdbuf_to_vec(buf)` [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/mpd.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | return buf; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `buf` [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: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/main_window.rs:229:20 [INFO] [stderr] | [INFO] [stderr] 229 | let home = std::env::home_dir().unwrap().into_os_string().into_string().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seek_bar_adj` [INFO] [stderr] --> src/main_window.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | let seek_bar_adj = gtk::Adjustment::new(100.0, 0.0, 100.0, 1.0, 10.0, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_seek_bar_adj` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `flowbox_child` [INFO] [stderr] --> src/main_window.rs:253:48 [INFO] [stderr] | [INFO] [stderr] 253 | flow.connect_child_activated(|flowbox, flowbox_child| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_flowbox_child` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `iter` is never read [INFO] [stderr] --> src/main_window.rs:355:33 [INFO] [stderr] | [INFO] [stderr] 355 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | let mut all_container = gtk::Box::new(gtk::Orientation::Vertical, 10); [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_window.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | let mut mpd = mpd_timeout.clone(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let mut mpd_forcus = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut mpd_keypress = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seek_bar_adj` [INFO] [stderr] --> src/main_window.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | let seek_bar_adj = gtk::Adjustment::new(100.0, 0.0, 100.0, 1.0, 10.0, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_seek_bar_adj` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `flowbox_child` [INFO] [stderr] --> src/main_window.rs:253:48 [INFO] [stderr] | [INFO] [stderr] 253 | flow.connect_child_activated(|flowbox, flowbox_child| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_flowbox_child` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `iter` is never read [INFO] [stderr] --> src/main_window.rs:355:33 [INFO] [stderr] | [INFO] [stderr] 355 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] warning: method is never used: `currentsong` [INFO] [stderr] --> src/mpd.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn currentsong(&self) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method is never used: `listall` [INFO] [stderr] --> src/mpd.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn listall(&self) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `playlist` [INFO] [stderr] --> src/mpd.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn playlist(&self) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/mpd.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn find(&self, filter: &str, uri: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_dir` [INFO] [stderr] --> src/mpd.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn ls_dir(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_song` [INFO] [stderr] --> src/mpd.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | pub fn ls_song(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_playlist` [INFO] [stderr] --> src/mpd.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn ls_playlist(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_dir_and_song` [INFO] [stderr] --> src/mpd.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn ls_dir_and_song(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: The function/method `init` doesn't need a mutable reference [INFO] [stderr] --> src/main_window.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | self.init(&mut main_window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:58:31 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/main_window.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | let mut all_container = gtk::Box::new(gtk::Orientation::Vertical, 10); [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: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:59:49 [INFO] [stderr] | [INFO] [stderr] 59 | let mut splited: Vec<&str> = data.split("/").collect(); [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: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:114:24 [INFO] [stderr] | [INFO] [stderr] 114 | .split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:112:39 [INFO] [stderr] | [INFO] [stderr] 112 | let time_buf: Vec<&str> = time_buf.get("time") [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 113 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&time_buf["time"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | let mut mpd = mpd_timeout.clone(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:135:61 [INFO] [stderr] | [INFO] [stderr] 135 | None => MainWindow::to_only_filename(info.get("file").unwrap()).to_value() as gtk::Value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let mut mpd_forcus = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | let mut mpd_keypress = locked_mpd.clone(); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:266:39 [INFO] [stderr] | [INFO] [stderr] 266 | fn get_inside_of_dir(&self, path: &String, outside_iter: >k::TreeIter, store: >k::TreeStore) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:272:36 [INFO] [stderr] | [INFO] [stderr] 272 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:279:61 [INFO] [stderr] | [INFO] [stderr] 279 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:318:36 [INFO] [stderr] | [INFO] [stderr] 318 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:325:61 [INFO] [stderr] | [INFO] [stderr] 325 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/main_window.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | / match event_key.get_keyval() as u32 { [INFO] [stderr] 351 | | 97 => { // 97 means 'a' [INFO] [stderr] 352 | | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 353 | | let model = widget.get_model().unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 375 | | _ => (), [INFO] [stderr] 376 | | } [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] 350 | if let 97 = event_key.get_keyval() as u32 { // 97 means 'a' [INFO] [stderr] 351 | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 352 | let model = widget.get_model().unwrap(); [INFO] [stderr] 353 | for path in paths { [INFO] [stderr] 354 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] 355 | let mut pathname = String::new(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main_window.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | let mut mpd = self.mpd.lock().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:43:43 [INFO] [stderr] | [INFO] [stderr] 43 | let mut ls: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: trivial regex [INFO] [stderr] --> src/mpd.rs:49:41 [INFO] [stderr] | [INFO] [stderr] 49 | let is_last = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:70:31 [INFO] [stderr] | [INFO] [stderr] 70 | let buf = self.do_cmd(format!("status\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"status\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | let buf: String = self.do_cmd(format!("currentsong\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"currentsong\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | let splited: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:113:40 [INFO] [stderr] | [INFO] [stderr] 113 | let buf: String = self.do_cmd(format!("listall\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"listall\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | let buf: String = self.do_cmd(format!("playlist\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"playlist\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/mpd.rs:170:43 [INFO] [stderr] | [INFO] [stderr] 170 | let is_ending = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: method is never used: `currentsong` [INFO] [stderr] --> src/mpd.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn currentsong(&self) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `listall` [INFO] [stderr] --> src/mpd.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn listall(&self) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `playlist` [INFO] [stderr] --> src/mpd.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn playlist(&self) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/mpd.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn find(&self, filter: &str, uri: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_dir` [INFO] [stderr] --> src/mpd.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn ls_dir(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_song` [INFO] [stderr] --> src/mpd.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | pub fn ls_song(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_playlist` [INFO] [stderr] --> src/mpd.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn ls_playlist(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ls_dir_and_song` [INFO] [stderr] --> src/mpd.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn ls_dir_and_song(&self, path: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: The function/method `init` doesn't need a mutable reference [INFO] [stderr] --> src/main_window.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | self.init(&mut main_window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:58:31 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/main_window.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | fn to_only_filename(data: &String) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:59:49 [INFO] [stderr] | [INFO] [stderr] 59 | let mut splited: Vec<&str> = data.split("/").collect(); [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: single-character string constant used as pattern [INFO] [stderr] --> src/main_window.rs:114:24 [INFO] [stderr] | [INFO] [stderr] 114 | .split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:112:39 [INFO] [stderr] | [INFO] [stderr] 112 | let time_buf: Vec<&str> = time_buf.get("time") [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 113 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&time_buf["time"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:135:61 [INFO] [stderr] | [INFO] [stderr] 135 | None => MainWindow::to_only_filename(info.get("file").unwrap()).to_value() as gtk::Value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main_window.rs:266:39 [INFO] [stderr] | [INFO] [stderr] 266 | fn get_inside_of_dir(&self, path: &String, outside_iter: >k::TreeIter, store: >k::TreeStore) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:272:36 [INFO] [stderr] | [INFO] [stderr] 272 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:279:61 [INFO] [stderr] | [INFO] [stderr] 279 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:318:36 [INFO] [stderr] | [INFO] [stderr] 318 | let full_dirname = ls.get("directory").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["directory"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main_window.rs:325:61 [INFO] [stderr] | [INFO] [stderr] 325 | let filename = MainWindow::to_only_filename(ls.get("file").unwrap()).to_value() as gtk::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ls["file"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/main_window.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | / match event_key.get_keyval() as u32 { [INFO] [stderr] 351 | | 97 => { // 97 means 'a' [INFO] [stderr] 352 | | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 353 | | let model = widget.get_model().unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 375 | | _ => (), [INFO] [stderr] 376 | | } [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] 350 | if let 97 = event_key.get_keyval() as u32 { // 97 means 'a' [INFO] [stderr] 351 | let (paths, _) = widget.get_selection().get_selected_rows(); [INFO] [stderr] 352 | let model = widget.get_model().unwrap(); [INFO] [stderr] 353 | for path in paths { [INFO] [stderr] 354 | let mut iter = model.iter_children(None).unwrap(); [INFO] [stderr] 355 | let mut pathname = String::new(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:43:43 [INFO] [stderr] | [INFO] [stderr] 43 | let mut ls: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: trivial regex [INFO] [stderr] --> src/mpd.rs:49:41 [INFO] [stderr] | [INFO] [stderr] 49 | let is_last = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:70:31 [INFO] [stderr] | [INFO] [stderr] 70 | let buf = self.do_cmd(format!("status\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"status\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | let buf: String = self.do_cmd(format!("currentsong\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"currentsong\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/mpd.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | let splited: Vec<&str> = buf.split("\n").collect(); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [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: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:113:40 [INFO] [stderr] | [INFO] [stderr] 113 | let buf: String = self.do_cmd(format!("listall\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"listall\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mpd.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | let buf: String = self.do_cmd(format!("playlist\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"playlist\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/mpd.rs:170:43 [INFO] [stderr] | [INFO] [stderr] 170 | let is_ending = regex::Regex::new(r"OK").unwrap(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 46.77s [INFO] running `"docker" "inspect" "f4fcf2573835b7a38c46bc35e9b43496c400f3a076d32fbd1d817983a429854c"` [INFO] running `"docker" "rm" "-f" "f4fcf2573835b7a38c46bc35e9b43496c400f3a076d32fbd1d817983a429854c"` [INFO] [stdout] f4fcf2573835b7a38c46bc35e9b43496c400f3a076d32fbd1d817983a429854c