[INFO] crate wires 0.7.1 is already in cache [INFO] extracting crate wires 0.7.1 into work/ex/clippy-test-run/sources/stable/reg/wires/0.7.1 [INFO] extracting crate wires 0.7.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wires/0.7.1 [INFO] validating manifest of wires-0.7.1 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 wires-0.7.1 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 wires-0.7.1 [INFO] finished frobbing wires-0.7.1 [INFO] frobbed toml for wires-0.7.1 written to work/ex/clippy-test-run/sources/stable/reg/wires/0.7.1/Cargo.toml [INFO] started frobbing wires-0.7.1 [INFO] finished frobbing wires-0.7.1 [INFO] frobbed toml for wires-0.7.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wires/0.7.1/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 wires-0.7.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/wires/0.7.1:/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] 04193a73cfe7ef55497f61466dce5e9fdceb1b71ee110bfc37c6f067a70115b9 [INFO] running `"docker" "start" "-a" "04193a73cfe7ef55497f61466dce5e9fdceb1b71ee110bfc37c6f067a70115b9"` [INFO] [stderr] Checking unicode-bidi v0.2.6 [INFO] [stderr] Compiling miniz-sys v0.1.11 [INFO] [stderr] Checking num_cpus v0.2.13 [INFO] [stderr] Checking tempdir v0.3.7 [INFO] [stderr] Checking uuid v0.2.3 [INFO] [stderr] Checking uuid v0.1.18 [INFO] [stderr] Checking cookie v0.2.5 [INFO] [stderr] Checking url v0.5.10 [INFO] [stderr] Checking mozprofile v0.2.1 [INFO] [stderr] Checking flate2 v0.2.20 [INFO] [stderr] Checking mozrunner v0.2.0 [INFO] [stderr] Checking zip v0.1.19 [INFO] [stderr] Checking hyper v0.8.1 [INFO] [stderr] Checking webdriver v0.8.1 [INFO] [stderr] Checking wires v0.7.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/marionette.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | context: context [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [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/marionette.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | 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/marionette.rs:243:13 [INFO] [stderr] | [INFO] [stderr] 243 | launcher: launcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `launcher` [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/marionette.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | e10s: e10s [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `e10s` [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/marionette.rs:760:13 [INFO] [stderr] | [INFO] [stderr] 760 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/marionette.rs:761:13 [INFO] [stderr] | [INFO] [stderr] 761 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/marionette.rs:762:13 [INFO] [stderr] | [INFO] [stderr] 762 | params: params [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `params` [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/marionette.rs:929:32 [INFO] [stderr] | [INFO] [stderr] 929 | Ok(MarionetteResponse {id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/marionette.rs:930:32 [INFO] [stderr] | [INFO] [stderr] 930 | error: error, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `error` [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/marionette.rs:931:32 [INFO] [stderr] | [INFO] [stderr] 931 | result: result}) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `result` [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/marionette.rs:952:13 [INFO] [stderr] | [INFO] [stderr] 952 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/marionette.rs:953:13 [INFO] [stderr] | [INFO] [stderr] 953 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/marionette.rs:954:13 [INFO] [stderr] | [INFO] [stderr] 954 | stacktrace: stacktrace [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `stacktrace` [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/marionette.rs:1006:13 [INFO] [stderr] | [INFO] [stderr] 1006 | 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/main.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | desired: desired, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `desired` [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/main.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 146 | required: required [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `required` [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/marionette.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | context: context [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [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/marionette.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | 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/marionette.rs:243:13 [INFO] [stderr] | [INFO] [stderr] 243 | launcher: launcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `launcher` [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/marionette.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | e10s: e10s [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `e10s` [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/marionette.rs:760:13 [INFO] [stderr] | [INFO] [stderr] 760 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/marionette.rs:761:13 [INFO] [stderr] | [INFO] [stderr] 761 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/marionette.rs:762:13 [INFO] [stderr] | [INFO] [stderr] 762 | params: params [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `params` [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/marionette.rs:929:32 [INFO] [stderr] | [INFO] [stderr] 929 | Ok(MarionetteResponse {id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/marionette.rs:930:32 [INFO] [stderr] | [INFO] [stderr] 930 | error: error, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `error` [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/marionette.rs:931:32 [INFO] [stderr] | [INFO] [stderr] 931 | result: result}) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `result` [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/marionette.rs:952:13 [INFO] [stderr] | [INFO] [stderr] 952 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/marionette.rs:953:13 [INFO] [stderr] | [INFO] [stderr] 953 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/marionette.rs:954:13 [INFO] [stderr] | [INFO] [stderr] 954 | stacktrace: stacktrace [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `stacktrace` [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/marionette.rs:1006:13 [INFO] [stderr] | [INFO] [stderr] 1006 | 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/main.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | desired: desired, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `desired` [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/main.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 146 | required: required [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `required` [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: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/marionette.rs:696:54 [INFO] [stderr] | [INFO] [stderr] 696 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 697 | | x.as_u64(), [INFO] [stderr] 698 | | ErrorStatus::UnknownError, [INFO] [stderr] 699 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 696 | Ok(Date::new(try_opt!( [INFO] [stderr] 697 | x.as_u64(), [INFO] [stderr] 698 | ErrorStatus::UnknownError, [INFO] [stderr] 699 | "Failed to interpret domain as String"))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/marionette.rs:696:54 [INFO] [stderr] | [INFO] [stderr] 696 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 697 | | x.as_u64(), [INFO] [stderr] 698 | | ErrorStatus::UnknownError, [INFO] [stderr] 699 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/marionette.rs:704:54 [INFO] [stderr] | [INFO] [stderr] 704 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 705 | | x.as_u64(), [INFO] [stderr] 706 | | ErrorStatus::UnknownError, [INFO] [stderr] 707 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 704 | Ok(Date::new(try_opt!( [INFO] [stderr] 705 | x.as_u64(), [INFO] [stderr] 706 | ErrorStatus::UnknownError, [INFO] [stderr] 707 | "Failed to interpret domain as String"))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/marionette.rs:704:54 [INFO] [stderr] | [INFO] [stderr] 704 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 705 | | x.as_u64(), [INFO] [stderr] 706 | | ErrorStatus::UnknownError, [INFO] [stderr] 707 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/marionette.rs:696:54 [INFO] [stderr] | [INFO] [stderr] 696 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 697 | | x.as_u64(), [INFO] [stderr] 698 | | ErrorStatus::UnknownError, [INFO] [stderr] 699 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 696 | Ok(Date::new(try_opt!( [INFO] [stderr] 697 | x.as_u64(), [INFO] [stderr] 698 | ErrorStatus::UnknownError, [INFO] [stderr] 699 | "Failed to interpret domain as String"))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/marionette.rs:696:54 [INFO] [stderr] | [INFO] [stderr] 696 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 697 | | x.as_u64(), [INFO] [stderr] 698 | | ErrorStatus::UnknownError, [INFO] [stderr] 699 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/marionette.rs:704:54 [INFO] [stderr] | [INFO] [stderr] 704 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 705 | | x.as_u64(), [INFO] [stderr] 706 | | ErrorStatus::UnknownError, [INFO] [stderr] 707 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 704 | Ok(Date::new(try_opt!( [INFO] [stderr] 705 | x.as_u64(), [INFO] [stderr] 706 | ErrorStatus::UnknownError, [INFO] [stderr] 707 | "Failed to interpret domain as String"))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/marionette.rs:704:54 [INFO] [stderr] | [INFO] [stderr] 704 | Ok(Date::new((try_opt!( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 705 | | x.as_u64(), [INFO] [stderr] 706 | | ErrorStatus::UnknownError, [INFO] [stderr] 707 | | "Failed to interpret domain as String")))) [INFO] [stderr] | |____________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/marionette.rs:1125:13 [INFO] [stderr] | [INFO] [stderr] 1125 | let mut stream = self.stream.as_mut().unwrap(); [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/marionette.rs:1127:17 [INFO] [stderr] | [INFO] [stderr] 1127 | let mut buf = &mut [0 as u8]; [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/marionette.rs:1149:13 [INFO] [stderr] | [INFO] [stderr] 1149 | let mut buf = &mut [0 as u8; 8192]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:139:23 [INFO] [stderr] | [INFO] [stderr] 139 | let command = match self { [INFO] [stderr] | _______________________^ [INFO] [stderr] 140 | | &GeckoExtensionRoute::GetContext => { [INFO] [stderr] 141 | | GeckoExtensionCommand::GetContext [INFO] [stderr] 142 | | } [INFO] [stderr] ... | [INFO] [stderr] 146 | | } [INFO] [stderr] 147 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 139 | let command = match *self { [INFO] [stderr] 140 | GeckoExtensionRoute::GetContext => { [INFO] [stderr] 141 | GeckoExtensionCommand::GetContext [INFO] [stderr] 142 | } [INFO] [stderr] 143 | GeckoExtensionRoute::SetContext => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | / match self { [INFO] [stderr] 161 | | &GeckoExtensionCommand::GetContext => None, [INFO] [stderr] 162 | | &GeckoExtensionCommand::SetContext(ref x) => Some(x.to_json()), [INFO] [stderr] 163 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 160 | match *self { [INFO] [stderr] 161 | GeckoExtensionCommand::GetContext => None, [INFO] [stderr] 162 | GeckoExtensionCommand::SetContext(ref x) => Some(x.to_json()), [INFO] [stderr] | [INFO] [stderr] --> src/marionette.rs:1125:13 [INFO] [stderr] | [INFO] [stderr] 1125 | let mut stream = self.stream.as_mut().unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [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/marionette.rs:1127:17 [INFO] [stderr] | [INFO] [stderr] 1127 | let mut buf = &mut [0 as u8]; [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/marionette.rs:1149:13 [INFO] [stderr] | [INFO] [stderr] 1149 | let mut buf = &mut [0 as u8; 8192]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | / match self { [INFO] [stderr] 176 | | &GeckoContext::Content => Json::String("content".to_owned()), [INFO] [stderr] 177 | | &GeckoContext::Chrome => Json::String("chrome".to_owned()), [INFO] [stderr] 178 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 175 | match *self { [INFO] [stderr] 176 | GeckoContext::Content => Json::String("content".to_owned()), [INFO] [stderr] 177 | GeckoContext::Chrome => Json::String("chrome".to_owned()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:189:42 [INFO] [stderr] | [INFO] [stderr] 189 | let data = try!(body.as_object().ok_or( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 190 | | WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 191 | | "Message body was not an object"))); [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 189 | let data = try!(body.as_object().ok_or_else(|| WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 190 | "Message body was not an object"))); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:192:54 [INFO] [stderr] | [INFO] [stderr] 192 | let context_value = try!(data.get("context").ok_or( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 193 | | WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 194 | | "Missing context key"))); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 192 | let context_value = try!(data.get("context").ok_or_else(|| WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 193 | "Missing context key"))); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:195:52 [INFO] [stderr] | [INFO] [stderr] 195 | let value = try!(context_value.as_string().ok_or( [INFO] [stderr] | ____________________________________________________^ [INFO] [stderr] 196 | | WebDriverError::new( [INFO] [stderr] 197 | | ErrorStatus::InvalidArgument, [INFO] [stderr] 198 | | "context was not a string"))); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 195 | let value = try!(context_value.as_string().ok_or_else(|| WebDriverError::new( [INFO] [stderr] 196 | ErrorStatus::InvalidArgument, [INFO] [stderr] 197 | "context was not a string"))); [INFO] [stderr] | [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/marionette.rs:271:9 [INFO] [stderr] | [INFO] [stderr] 271 | / match self.start_browser(profile) { [INFO] [stderr] 272 | | Err(e) => { [INFO] [stderr] 273 | | return Err(WebDriverError::new(ErrorStatus::UnknownError, [INFO] [stderr] 274 | | e.description().to_owned())); [INFO] [stderr] 275 | | }, [INFO] [stderr] 276 | | Ok(_) => {} [INFO] [stderr] 277 | | } [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] 271 | if let Err(e) = self.start_browser(profile) { [INFO] [stderr] 272 | return Err(WebDriverError::new(ErrorStatus::UnknownError, [INFO] [stderr] 273 | e.description().to_owned())); [INFO] [stderr] 274 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/marionette.rs:310:32 [INFO] [stderr] | [INFO] [stderr] 310 | Pref::new(self.port as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.port)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:332:60 [INFO] [stderr] | [INFO] [stderr] 332 | let profile_base64 = try!(profile_json.as_string().ok_or( [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 333 | | WebDriverError::new( [INFO] [stderr] 334 | | ErrorStatus::UnknownError, [INFO] [stderr] 335 | | "Profile was not a string"))); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 332 | let profile_base64 = try!(profile_json.as_string().ok_or_else(|| WebDriverError::new( [INFO] [stderr] 333 | ErrorStatus::UnknownError, [INFO] [stderr] 334 | "Profile was not a string"))); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:447:38 [INFO] [stderr] | [INFO] [stderr] 447 | let initital_id = session_id.unwrap_or("".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/marionette.rs:458:9 [INFO] [stderr] | [INFO] [stderr] 458 | / match msg.command { [INFO] [stderr] 459 | | NewSession(_) => { [INFO] [stderr] 460 | | let session_id = try_opt!( [INFO] [stderr] 461 | | try_opt!(resp.result.find("sessionId"), [INFO] [stderr] ... | [INFO] [stderr] 468 | | _ => {} [INFO] [stderr] 469 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 458 | if let NewSession(_) = msg.command { [INFO] [stderr] 459 | let session_id = try_opt!( [INFO] [stderr] 460 | try_opt!(resp.result.find("sessionId"), [INFO] [stderr] 461 | ErrorStatus::SessionNotCreated, [INFO] [stderr] 462 | "Unable to get session id").as_string(), [INFO] [stderr] 463 | ErrorStatus::SessionNotCreated, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/marionette.rs:497:9 [INFO] [stderr] | [INFO] [stderr] 497 | self.command_id = self.command_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.command_id += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:139:23 [INFO] [stderr] | [INFO] [stderr] 139 | let command = match self { [INFO] [stderr] | _______________________^ [INFO] [stderr] 140 | | &GeckoExtensionRoute::GetContext => { [INFO] [stderr] 141 | | GeckoExtensionCommand::GetContext [INFO] [stderr] 142 | | } [INFO] [stderr] ... | [INFO] [stderr] 146 | | } [INFO] [stderr] 147 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 139 | let command = match *self { [INFO] [stderr] 140 | GeckoExtensionRoute::GetContext => { [INFO] [stderr] 141 | GeckoExtensionCommand::GetContext [INFO] [stderr] 142 | } [INFO] [stderr] 143 | GeckoExtensionRoute::SetContext => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | / match self { [INFO] [stderr] 161 | | &GeckoExtensionCommand::GetContext => None, [INFO] [stderr] 162 | | &GeckoExtensionCommand::SetContext(ref x) => Some(x.to_json()), [INFO] [stderr] 163 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/marionette.rs:631:43 [INFO] [stderr] | [INFO] [stderr] 631 | if session_id.starts_with("{") && session_id.ends_with("}") { [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/marionette.rs:631:72 [INFO] [stderr] | [INFO] [stderr] 631 | if session_id.starts_with("{") && session_id.ends_with("}") { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:649:17 [INFO] [stderr] | [INFO] [stderr] 649 | / match extension { [INFO] [stderr] 650 | | &GeckoExtensionCommand::GetContext => { [INFO] [stderr] 651 | | let value = try_opt!(resp.result.find("value"), [INFO] [stderr] 652 | | ErrorStatus::UnknownError, [INFO] [stderr] ... | [INFO] [stderr] 656 | | &GeckoExtensionCommand::SetContext(_) => WebDriverResponse::Void [INFO] [stderr] 657 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 649 | match *extension { [INFO] [stderr] 650 | GeckoExtensionCommand::GetContext => { [INFO] [stderr] 651 | let value = try_opt!(resp.result.find("value"), [INFO] [stderr] 652 | ErrorStatus::UnknownError, [INFO] [stderr] 653 | "Failed to find value field"); [INFO] [stderr] 654 | WebDriverResponse::Generic(ValueResponse::new(value.clone())) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 160 | match *self { [INFO] [stderr] 161 | GeckoExtensionCommand::GetContext => None, [INFO] [stderr] 162 | GeckoExtensionCommand::SetContext(ref x) => Some(x.to_json()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | / match self { [INFO] [stderr] 176 | | &GeckoContext::Content => Json::String("content".to_owned()), [INFO] [stderr] 177 | | &GeckoContext::Chrome => Json::String("chrome".to_owned()), [INFO] [stderr] 178 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 175 | match *self { [INFO] [stderr] 176 | GeckoContext::Content => Json::String("content".to_owned()), [INFO] [stderr] 177 | GeckoContext::Chrome => Json::String("chrome".to_owned()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:189:42 [INFO] [stderr] | [INFO] [stderr] 189 | let data = try!(body.as_object().ok_or( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 190 | | WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 191 | | "Message body was not an object"))); [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 189 | let data = try!(body.as_object().ok_or_else(|| WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 190 | "Message body was not an object"))); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:192:54 [INFO] [stderr] | [INFO] [stderr] 192 | let context_value = try!(data.get("context").ok_or( [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 193 | | WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 194 | | "Missing context key"))); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 192 | let context_value = try!(data.get("context").ok_or_else(|| WebDriverError::new(ErrorStatus::InvalidArgument, [INFO] [stderr] 193 | "Missing context key"))); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:195:52 [INFO] [stderr] | [INFO] [stderr] 195 | let value = try!(context_value.as_string().ok_or( [INFO] [stderr] | ____________________________________________________^ [INFO] [stderr] 196 | | WebDriverError::new( [INFO] [stderr] 197 | | ErrorStatus::InvalidArgument, [INFO] [stderr] 198 | | "context was not a string"))); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 195 | let value = try!(context_value.as_string().ok_or_else(|| WebDriverError::new( [INFO] [stderr] 196 | ErrorStatus::InvalidArgument, [INFO] [stderr] 197 | "context was not a string"))); [INFO] [stderr] | [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/marionette.rs:271:9 [INFO] [stderr] | [INFO] [stderr] 271 | / match self.start_browser(profile) { [INFO] [stderr] 272 | | Err(e) => { [INFO] [stderr] 273 | | return Err(WebDriverError::new(ErrorStatus::UnknownError, [INFO] [stderr] 274 | | e.description().to_owned())); [INFO] [stderr] 275 | | }, [INFO] [stderr] 276 | | Ok(_) => {} [INFO] [stderr] 277 | | } [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] 271 | if let Err(e) = self.start_browser(profile) { [INFO] [stderr] 272 | return Err(WebDriverError::new(ErrorStatus::UnknownError, [INFO] [stderr] 273 | e.description().to_owned())); [INFO] [stderr] 274 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:862:17 [INFO] [stderr] | [INFO] [stderr] 862 | / match extension { [INFO] [stderr] 863 | | &GeckoExtensionCommand::GetContext => (Some("getContext"), None), [INFO] [stderr] 864 | | &GeckoExtensionCommand::SetContext(ref x) => { [INFO] [stderr] 865 | | (Some("setContext"), Some(x.to_marionette())) [INFO] [stderr] 866 | | } [INFO] [stderr] 867 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 862 | match *extension { [INFO] [stderr] 863 | GeckoExtensionCommand::GetContext => (Some("getContext"), None), [INFO] [stderr] 864 | GeckoExtensionCommand::SetContext(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:875:46 [INFO] [stderr] | [INFO] [stderr] 875 | let parameters = try!(opt_parameters.unwrap_or(Ok(BTreeMap::new()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Ok(BTreeMap::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/marionette.rs:310:32 [INFO] [stderr] | [INFO] [stderr] 310 | Pref::new(self.port as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.port)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:332:60 [INFO] [stderr] | [INFO] [stderr] 332 | let profile_base64 = try!(profile_json.as_string().ok_or( [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 333 | | WebDriverError::new( [INFO] [stderr] 334 | | ErrorStatus::UnknownError, [INFO] [stderr] 335 | | "Profile was not a string"))); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 332 | let profile_base64 = try!(profile_json.as_string().ok_or_else(|| WebDriverError::new( [INFO] [stderr] 333 | ErrorStatus::UnknownError, [INFO] [stderr] 334 | "Profile was not a string"))); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:447:38 [INFO] [stderr] | [INFO] [stderr] 447 | let initital_id = session_id.unwrap_or("".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/marionette.rs:458:9 [INFO] [stderr] | [INFO] [stderr] 458 | / match msg.command { [INFO] [stderr] 459 | | NewSession(_) => { [INFO] [stderr] 460 | | let session_id = try_opt!( [INFO] [stderr] 461 | | try_opt!(resp.result.find("sessionId"), [INFO] [stderr] ... | [INFO] [stderr] 468 | | _ => {} [INFO] [stderr] 469 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 458 | if let NewSession(_) = msg.command { [INFO] [stderr] 459 | let session_id = try_opt!( [INFO] [stderr] 460 | try_opt!(resp.result.find("sessionId"), [INFO] [stderr] 461 | ErrorStatus::SessionNotCreated, [INFO] [stderr] 462 | "Unable to get session id").as_string(), [INFO] [stderr] 463 | ErrorStatus::SessionNotCreated, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/marionette.rs:497:9 [INFO] [stderr] | [INFO] [stderr] 497 | self.command_id = self.command_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.command_id += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/marionette.rs:1140:21 [INFO] [stderr] | [INFO] [stderr] 1140 | bytes = bytes * 10; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `bytes *= 10` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/marionette.rs:631:43 [INFO] [stderr] | [INFO] [stderr] 631 | if session_id.starts_with("{") && session_id.ends_with("}") { [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/marionette.rs:631:72 [INFO] [stderr] | [INFO] [stderr] 631 | if session_id.starts_with("{") && session_id.ends_with("}") { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:649:17 [INFO] [stderr] | [INFO] [stderr] 649 | / match extension { [INFO] [stderr] 650 | | &GeckoExtensionCommand::GetContext => { [INFO] [stderr] 651 | | let value = try_opt!(resp.result.find("value"), [INFO] [stderr] 652 | | ErrorStatus::UnknownError, [INFO] [stderr] ... | [INFO] [stderr] 656 | | &GeckoExtensionCommand::SetContext(_) => WebDriverResponse::Void [INFO] [stderr] 657 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 649 | match *extension { [INFO] [stderr] 650 | GeckoExtensionCommand::GetContext => { [INFO] [stderr] 651 | let value = try_opt!(resp.result.find("value"), [INFO] [stderr] 652 | ErrorStatus::UnknownError, [INFO] [stderr] 653 | "Failed to find value field"); [INFO] [stderr] 654 | WebDriverResponse::Generic(ValueResponse::new(value.clone())) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/marionette.rs:862:17 [INFO] [stderr] | [INFO] [stderr] 862 | / match extension { [INFO] [stderr] 863 | | &GeckoExtensionCommand::GetContext => (Some("getContext"), None), [INFO] [stderr] 864 | | &GeckoExtensionCommand::SetContext(ref x) => { [INFO] [stderr] 865 | | (Some("setContext"), Some(x.to_marionette())) [INFO] [stderr] 866 | | } [INFO] [stderr] 867 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 862 | match *extension { [INFO] [stderr] 863 | GeckoExtensionCommand::GetContext => (Some("getContext"), None), [INFO] [stderr] 864 | GeckoExtensionCommand::SetContext(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/marionette.rs:875:46 [INFO] [stderr] | [INFO] [stderr] 875 | let parameters = try!(opt_parameters.unwrap_or(Ok(BTreeMap::new()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Ok(BTreeMap::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/marionette.rs:1140:21 [INFO] [stderr] | [INFO] [stderr] 1140 | bytes = bytes * 10; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `bytes *= 10` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.90s [INFO] running `"docker" "inspect" "04193a73cfe7ef55497f61466dce5e9fdceb1b71ee110bfc37c6f067a70115b9"` [INFO] running `"docker" "rm" "-f" "04193a73cfe7ef55497f61466dce5e9fdceb1b71ee110bfc37c6f067a70115b9"` [INFO] [stdout] 04193a73cfe7ef55497f61466dce5e9fdceb1b71ee110bfc37c6f067a70115b9