[INFO] crate adbackup 0.5.2 is already in cache [INFO] extracting crate adbackup 0.5.2 into work/ex/clippy-test-run/sources/stable/reg/adbackup/0.5.2 [INFO] extracting crate adbackup 0.5.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/adbackup/0.5.2 [INFO] validating manifest of adbackup-0.5.2 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 adbackup-0.5.2 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 adbackup-0.5.2 [INFO] finished frobbing adbackup-0.5.2 [INFO] frobbed toml for adbackup-0.5.2 written to work/ex/clippy-test-run/sources/stable/reg/adbackup/0.5.2/Cargo.toml [INFO] started frobbing adbackup-0.5.2 [INFO] finished frobbing adbackup-0.5.2 [INFO] frobbed toml for adbackup-0.5.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/adbackup/0.5.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting adbackup-0.5.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/adbackup/0.5.2:/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] b43215ab9c2db18b182f3ea0e034208f04203060c24fd6f087c15a968ec1a02d [INFO] running `"docker" "start" "-a" "b43215ab9c2db18b182f3ea0e034208f04203060c24fd6f087c15a968ec1a02d"` [INFO] [stderr] Compiling libsqlite3-sys v0.9.3 [INFO] [stderr] Checking rusqlite v0.13.0 [INFO] [stderr] Checking adbackup v0.5.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/backup.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | device_id: device_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `device_id` [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/backup.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | device_id: device_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `device_id` [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: unneeded return statement [INFO] [stderr] --> src/devices.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | return Ok(Device::parse_devices(output)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Device::parse_devices(output))` [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/backup.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | return Ok(Backup::parse_list_apps(output)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Backup::parse_list_apps(output))` [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/adb_command.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | / return Err(err_msg(format!( [INFO] [stderr] 58 | | "Error executing {}.\n {}", [INFO] [stderr] 59 | | self.command, error_message [INFO] [stderr] 60 | | ))); [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 57 | Err(err_msg(format!( [INFO] [stderr] 58 | "Error executing {}.\n {}", [INFO] [stderr] 59 | self.command, error_message [INFO] [stderr] 60 | ))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/adb_command.rs:43:12 [INFO] [stderr] | [INFO] [stderr] 43 | if self.args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/database/management.rs:16:29 [INFO] [stderr] | [INFO] [stderr] 16 | let database_name = match name.ends_with(".db") { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 17 | | true => String::from(name), [INFO] [stderr] 18 | | false => format!("{}.db", name) [INFO] [stderr] 19 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if name.ends_with(".db") { String::from(name) } else { format!("{}.db", name) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/database/migration.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | fn to_one_from_none(conn: &Connection) -> Result<(), Error> { [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: length comparison to zero [INFO] [stderr] --> src/lib.rs:39:8 [INFO] [stderr] | [INFO] [stderr] 39 | if devices.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!devices.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:84:8 [INFO] [stderr] | [INFO] [stderr] 84 | if apps.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!apps.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:116:12 [INFO] [stderr] | [INFO] [stderr] 116 | if let Some(_) = apk { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 117 | | backup_options = backup_options.with_applications(); [INFO] [stderr] 118 | | } [INFO] [stderr] | |_____- help: try this: `if apk.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:119:12 [INFO] [stderr] | [INFO] [stderr] 119 | if let Some(_) = shared { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 120 | | backup_options = backup_options.with_shared_storage(); [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____- help: try this: `if shared.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:122:12 [INFO] [stderr] | [INFO] [stderr] 122 | if let Some(_) = system { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 123 | | backup_options = backup_options.with_system_apps(); [INFO] [stderr] 124 | | } [INFO] [stderr] | |_____- help: try this: `if system.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:173:8 [INFO] [stderr] | [INFO] [stderr] 173 | Ok(String::from(push_finished)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `push_finished` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/devices.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | return Ok(Device::parse_devices(output)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Device::parse_devices(output))` [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/backup.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | return Ok(Backup::parse_list_apps(output)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Backup::parse_list_apps(output))` [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/adb_command.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | / return Err(err_msg(format!( [INFO] [stderr] 58 | | "Error executing {}.\n {}", [INFO] [stderr] 59 | | self.command, error_message [INFO] [stderr] 60 | | ))); [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 57 | Err(err_msg(format!( [INFO] [stderr] 58 | "Error executing {}.\n {}", [INFO] [stderr] 59 | self.command, error_message [INFO] [stderr] 60 | ))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/database/management.rs:103:48 [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 01, 02]).is_ok()); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 1, 02]).is_ok()); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 0o1, 02]).is_ok()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/database/management.rs:103:52 [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 01, 02]).is_ok()); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 01, 2]).is_ok()); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 01, 0o2]).is_ok()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/database/management.rs:109:45 [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 04, 05]).is_ok()); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![3, 04, 05]).is_ok()); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![0o3, 04, 05]).is_ok()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/database/management.rs:109:49 [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 04, 05]).is_ok()); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 4, 05]).is_ok()); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 0o4, 05]).is_ok()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/database/management.rs:109:53 [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 04, 05]).is_ok()); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 04, 5]).is_ok()); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 04, 0o5]).is_ok()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/restore.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 27 | if Device::list_devices().unwrap().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!Device::list_devices().unwrap().is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/adb_command.rs:43:12 [INFO] [stderr] | [INFO] [stderr] 43 | if self.args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/file_transfer.rs:40:12 [INFO] [stderr] | [INFO] [stderr] 40 | if Device::list_devices().unwrap().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!Device::list_devices().unwrap().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/file_transfer.rs:51:12 [INFO] [stderr] | [INFO] [stderr] 51 | if Device::list_devices().unwrap().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!Device::list_devices().unwrap().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/database/management.rs:16:29 [INFO] [stderr] | [INFO] [stderr] 16 | let database_name = match name.ends_with(".db") { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 17 | | true => String::from(name), [INFO] [stderr] 18 | | false => format!("{}.db", name) [INFO] [stderr] 19 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if name.ends_with(".db") { String::from(name) } else { format!("{}.db", name) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/management.rs:103:38 [INFO] [stderr] | [INFO] [stderr] 103 | assert!(first_data.write(&vec![00, 01, 02]).is_ok()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[00, 01, 02]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/management.rs:109:39 [INFO] [stderr] | [INFO] [stderr] 109 | assert!(second_data.write(&vec![03, 04, 05]).is_ok()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[03, 04, 05]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/database/migration.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | fn to_one_from_none(conn: &Connection) -> Result<(), Error> { [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: length comparison to zero [INFO] [stderr] --> src/lib.rs:39:8 [INFO] [stderr] | [INFO] [stderr] 39 | if devices.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!devices.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:84:8 [INFO] [stderr] | [INFO] [stderr] 84 | if apps.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!apps.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:116:12 [INFO] [stderr] | [INFO] [stderr] 116 | if let Some(_) = apk { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 117 | | backup_options = backup_options.with_applications(); [INFO] [stderr] 118 | | } [INFO] [stderr] | |_____- help: try this: `if apk.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:119:12 [INFO] [stderr] | [INFO] [stderr] 119 | if let Some(_) = shared { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 120 | | backup_options = backup_options.with_shared_storage(); [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____- help: try this: `if shared.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:122:12 [INFO] [stderr] | [INFO] [stderr] 122 | if let Some(_) = system { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 123 | | backup_options = backup_options.with_system_apps(); [INFO] [stderr] 124 | | } [INFO] [stderr] | |_____- help: try this: `if system.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:173:8 [INFO] [stderr] | [INFO] [stderr] 173 | Ok(String::from(push_finished)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `push_finished` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 36.20s [INFO] running `"docker" "inspect" "b43215ab9c2db18b182f3ea0e034208f04203060c24fd6f087c15a968ec1a02d"` [INFO] running `"docker" "rm" "-f" "b43215ab9c2db18b182f3ea0e034208f04203060c24fd6f087c15a968ec1a02d"` [INFO] [stdout] b43215ab9c2db18b182f3ea0e034208f04203060c24fd6f087c15a968ec1a02d