[INFO] updating cached repository problame/rust-srs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/problame/rust-srs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/problame/rust-srs" "work/ex/clippy-test-run/sources/stable/gh/problame/rust-srs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/problame/rust-srs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/problame/rust-srs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/problame/rust-srs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/problame/rust-srs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ebd1c093a7d949f120301a1794d26e37ed56916b [INFO] sha for GitHub repo problame/rust-srs: ebd1c093a7d949f120301a1794d26e37ed56916b [INFO] validating manifest of problame/rust-srs 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 problame/rust-srs 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 problame/rust-srs [INFO] finished frobbing problame/rust-srs [INFO] frobbed toml for problame/rust-srs written to work/ex/clippy-test-run/sources/stable/gh/problame/rust-srs/Cargo.toml [INFO] started frobbing problame/rust-srs [INFO] finished frobbing problame/rust-srs [INFO] frobbed toml for problame/rust-srs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/problame/rust-srs/Cargo.toml [INFO] crate problame/rust-srs 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 problame/rust-srs 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/problame/rust-srs:/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] 6c3dc710e122d8d6ed1dd6133e383a57bf5f11091181967bb11b8b6d344ed936 [INFO] running `"docker" "start" "-a" "6c3dc710e122d8d6ed1dd6133e383a57bf5f11091181967bb11b8b6d344ed936"` [INFO] [stderr] Checking rustsrsd v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/srs/parser.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/srs/parser.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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: using `println!("")` [INFO] [stderr] --> src/srs/parser_tests.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/srs/transformers.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | secret_pkey: secret_pkey, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `secret_pkey` [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/srs/transformers.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | hostname: hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hostname` [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/srs/transformers.rs:205:13 [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/srs/parser_tests.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] 205 | md: md, [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] | ^^^^^^ help: replace it with: `md` [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/srs/transformers.rs:206:13 [INFO] [stderr] | [INFO] [stderr] 206 | timestamper: timestamper, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timestamper` [INFO] [stderr] [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/srs/transformers.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | hostname: hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hostname` [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/srs/transformers.rs:302:13 [INFO] [stderr] | [INFO] [stderr] 302 | md: md, [INFO] [stderr] | ^^^^^^ help: replace it with: `md` [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/srs/transformers.rs:303:13 [INFO] [stderr] | [INFO] [stderr] 303 | timestamper: timestamper, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timestamper` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/srs/transformers.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | secret_pkey: secret_pkey, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `secret_pkey` [INFO] [stderr] | [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/srs/transformers.rs:332:21 [INFO] [stderr] | [INFO] [stderr] 332 | local: local, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `local` [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] warning: redundant field names in struct initialization [INFO] [stderr] --> src/srs/transformers.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | hostname: hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hostname` [INFO] [stderr] | [INFO] [stderr] --> src/srs/transformers.rs:349:21 [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] 349 | opaque_local: opaque_local, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `opaque_local` [INFO] [stderr] | [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/srs/transformers.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | md: md, [INFO] [stderr] | ^^^^^^ help: replace it with: `md` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/srs/transformers.rs:206:13 [INFO] [stderr] | [INFO] [stderr] 206 | timestamper: timestamper, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timestamper` [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/srs/transformers.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | hostname: hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hostname` [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/srs/transformers.rs:302:13 [INFO] [stderr] | [INFO] [stderr] 302 | md: md, [INFO] [stderr] | ^^^^^^ help: replace it with: `md` [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/srs/transformers.rs:303:13 [INFO] [stderr] | [INFO] [stderr] 303 | timestamper: timestamper, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timestamper` [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/srs/transformers.rs:332:21 [INFO] [stderr] | [INFO] [stderr] 332 | local: local, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `local` [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/srs/transformers.rs:349:21 [INFO] [stderr] | [INFO] [stderr] 349 | opaque_local: opaque_local, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `opaque_local` [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/srs/parser.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn is_0(&self) -> bool { return self.get_version() == 0; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_version() == 0` [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/srs/parser.rs:18:34 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn is_1(&self) -> bool { return self.get_version() == 1; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_version() == 1` [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/srs/parser.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | / return SRSParser{ [INFO] [stderr] 71 | | input: input, [INFO] [stderr] 72 | | }; [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] 70 | SRSParser{ [INFO] [stderr] 71 | input: input, [INFO] [stderr] 72 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | / return Ok(SRS0(SRS0Address{ [INFO] [stderr] 110 | | separator: separator.to_string(), [INFO] [stderr] 111 | | hash: hash.to_string(), [INFO] [stderr] 112 | | tt: tt.to_string(), [INFO] [stderr] ... | [INFO] [stderr] 115 | | domain: domain.to_string(), [INFO] [stderr] 116 | | })); [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] 109 | Ok(SRS0(SRS0Address{ [INFO] [stderr] 110 | separator: separator.to_string(), [INFO] [stderr] 111 | hash: hash.to_string(), [INFO] [stderr] 112 | tt: tt.to_string(), [INFO] [stderr] 113 | hostname: hostname.to_string(), [INFO] [stderr] 114 | local: local.to_string(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | / return Ok (SRS1(SRS1Address{ [INFO] [stderr] 150 | | separator: separator.to_string(), [INFO] [stderr] 151 | | hash: hash.to_string(), [INFO] [stderr] 152 | | hostname: hostname.to_string(), [INFO] [stderr] 153 | | opaque_local: opaque_local.to_string(), [INFO] [stderr] 154 | | domain: domain.to_string(), [INFO] [stderr] 155 | | })); [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] 149 | Ok (SRS1(SRS1Address{ [INFO] [stderr] 150 | separator: separator.to_string(), [INFO] [stderr] 151 | hash: hash.to_string(), [INFO] [stderr] 152 | hostname: hostname.to_string(), [INFO] [stderr] 153 | opaque_local: opaque_local.to_string(), [INFO] [stderr] 154 | domain: domain.to_string(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / return match version { [INFO] [stderr] 174 | | 0 => self.parse_srs0(separator), [INFO] [stderr] 175 | | 1 => self.parse_srs1(separator), [INFO] [stderr] 176 | | _ => panic!("variable should not contain a value != 0 or 1"), [INFO] [stderr] 177 | | }; [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] 173 | match version { [INFO] [stderr] 174 | 0 => self.parse_srs0(separator), [INFO] [stderr] 175 | 1 => self.parse_srs1(separator), [INFO] [stderr] 176 | _ => panic!("variable should not contain a value != 0 or 1"), [INFO] [stderr] 177 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | return p.parse(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `p.parse()` [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: module has the same name as its containing module [INFO] [stderr] --> src/srs/parser_tests.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | / mod parser_tests { [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | use srs::parser::SRSAddress; [INFO] [stderr] 5 | | [INFO] [stderr] ... | [INFO] [stderr] 104 | | [INFO] [stderr] 105 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused import: `base64_email_safe_decode` [INFO] [stderr] --> src/srs/transformers.rs:12:42 [INFO] [stderr] | [INFO] [stderr] 12 | use srs::util::{base64_email_safe_encode,base64_email_safe_decode}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | return days as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `days as u16` [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/srs/transformers.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | return Ok(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(res)` [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/srs/transformers.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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/srs/transformers.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | return String::from_utf8(bytes).expect("routine should only produce ASCII bytes"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from_utf8(bytes).expect("routine should only produce ASCII bytes")` [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/srs/transformers.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/srs/transformers.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | return Self::base32_email_safe_encode_10bit(now); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::base32_email_safe_encode_10bit(now)` [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/srs/transformers.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/srs/transformers.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | return Ok(hmac_base64_prefix); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(hmac_base64_prefix)` [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/srs/transformers.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | / return Ok(Receiver{ [INFO] [stderr] 203 | | secret_pkey: secret_pkey, [INFO] [stderr] 204 | | hostname: hostname, [INFO] [stderr] 205 | | md: md, [INFO] [stderr] 206 | | timestamper: timestamper, [INFO] [stderr] 207 | | }); [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] 202 | Ok(Receiver{ [INFO] [stderr] 203 | secret_pkey: secret_pkey, [INFO] [stderr] 204 | hostname: hostname, [INFO] [stderr] 205 | md: md, [INFO] [stderr] 206 | timestamper: timestamper, [INFO] [stderr] 207 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | / return match *address { [INFO] [stderr] 235 | | SRSAddress::SRS0(ref a) => { [INFO] [stderr] 236 | | let mut rewritten = String::with_capacity(a.local.len() + a.hostname.len() + 1); [INFO] [stderr] 237 | | rewritten.push_str(&a.local); [INFO] [stderr] ... | [INFO] [stderr] 249 | | } [INFO] [stderr] 250 | | }; [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] 234 | match *address { [INFO] [stderr] 235 | SRSAddress::SRS0(ref a) => { [INFO] [stderr] 236 | let mut rewritten = String::with_capacity(a.local.len() + a.hostname.len() + 1); [INFO] [stderr] 237 | rewritten.push_str(&a.local); [INFO] [stderr] 238 | rewritten.push_str("@"); [INFO] [stderr] 239 | rewritten.push_str(&a.hostname); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:298:9 [INFO] [stderr] | [INFO] [stderr] 298 | / return Ok(Forwarder{ [INFO] [stderr] 299 | | separator: separator.to_string(), [INFO] [stderr] 300 | | secret_pkey: secret_key, [INFO] [stderr] 301 | | hostname: hostname, [INFO] [stderr] 302 | | md: md, [INFO] [stderr] 303 | | timestamper: timestamper, [INFO] [stderr] 304 | | }); [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] 298 | Ok(Forwarder{ [INFO] [stderr] 299 | separator: separator.to_string(), [INFO] [stderr] 300 | secret_pkey: secret_key, [INFO] [stderr] 301 | hostname: hostname, [INFO] [stderr] 302 | md: md, [INFO] [stderr] 303 | timestamper: timestamper, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/srs/transformers.rs:362:9 [INFO] [stderr] | [INFO] [stderr] 362 | return Ok(rewritten); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(rewritten)` [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: module has the same name as its containing module [INFO] [stderr] --> src/srs/transformer_tests.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | / mod transformer_tests { [INFO] [stderr] 3 | | [INFO] [stderr] 4 | | extern crate openssl; [INFO] [stderr] 5 | | [INFO] [stderr] ... | [INFO] [stderr] 338 | | [INFO] [stderr] 339 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused import: `ForwarderError` [INFO] [stderr] --> src/srs/transformer_tests.rs:6:62 [INFO] [stderr] | [INFO] [stderr] 6 | use srs::transformers::{Receiver,ReceiverError,Forwarder,ForwarderError,Timestamper,SRSTimestamper}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformer_tests.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | / return Receiver::new( [INFO] [stderr] 21 | | key.to_owned().into_bytes(), [INFO] [stderr] 22 | | hostname.to_owned().into_bytes(), [INFO] [stderr] 23 | | MessageDigest::sha512(), [INFO] [stderr] ... | [INFO] [stderr] 27 | | }, [INFO] [stderr] 28 | | ).expect("test should assert receiver params are ok"); [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] 20 | Receiver::new( [INFO] [stderr] 21 | key.to_owned().into_bytes(), [INFO] [stderr] 22 | hostname.to_owned().into_bytes(), [INFO] [stderr] 23 | MessageDigest::sha512(), [INFO] [stderr] 24 | MockTimestamper{ [INFO] [stderr] 25 | verify: Box::new(|ts| Ok(())), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformer_tests.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / return Forwarder::new( [INFO] [stderr] 119 | | key.to_owned().into_bytes(), [INFO] [stderr] 120 | | hostname.to_owned().into_bytes(), [INFO] [stderr] 121 | | MessageDigest::sha512(), [INFO] [stderr] ... | [INFO] [stderr] 126 | | }, [INFO] [stderr] 127 | | ).expect("test should assert receiver params are ok"); [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] 118 | Forwarder::new( [INFO] [stderr] 119 | key.to_owned().into_bytes(), [INFO] [stderr] 120 | hostname.to_owned().into_bytes(), [INFO] [stderr] 121 | MessageDigest::sha512(), [INFO] [stderr] 122 | "=", [INFO] [stderr] 123 | MockTimestamper{ [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `Forwarder` [INFO] [stderr] --> src/srs/transformer_tests.rs:135:52 [INFO] [stderr] | [INFO] [stderr] 135 | use srs::transformers::{ForwardableAddress,Forwarder}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Forwarder` [INFO] [stderr] --> src/srs/transformer_tests.rs:163:52 [INFO] [stderr] | [INFO] [stderr] 163 | use srs::transformers::{ForwardableAddress,Forwarder}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SRS1` [INFO] [stderr] --> src/srs/transformer_tests.rs:164:44 [INFO] [stderr] | [INFO] [stderr] 164 | use srs::parser::SRSAddress::{SRS0,SRS1}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Forwarder` [INFO] [stderr] --> src/srs/transformer_tests.rs:197:52 [INFO] [stderr] | [INFO] [stderr] 197 | use srs::transformers::{ForwardableAddress,Forwarder}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SRS0` [INFO] [stderr] --> src/srs/transformer_tests.rs:198:39 [INFO] [stderr] | [INFO] [stderr] 198 | use srs::parser::SRSAddress::{SRS0,SRS1}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ForwardableAddress`, `Forwarder` [INFO] [stderr] --> src/srs/transformer_tests.rs:226:33 [INFO] [stderr] | [INFO] [stderr] 226 | use srs::transformers::{ForwardableAddress,Forwarder}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/util.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return Ok(s); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(s)` [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/srs/util.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | return Ok(b); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(b)` [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 import: `openssl::hash::MessageDigest` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use openssl::hash::MessageDigest; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Write` [INFO] [stderr] --> src/main.rs:12:20 [INFO] [stderr] | [INFO] [stderr] 12 | use std::io::{Read,Write}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn is_0(&self) -> bool { return self.get_version() == 0; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_version() == 0` [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/srs/parser.rs:18:34 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn is_1(&self) -> bool { return self.get_version() == 1; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_version() == 1` [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/srs/parser.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | / return SRSParser{ [INFO] [stderr] 71 | | input: input, [INFO] [stderr] 72 | | }; [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] 70 | SRSParser{ [INFO] [stderr] 71 | input: input, [INFO] [stderr] 72 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | / return Ok(SRS0(SRS0Address{ [INFO] [stderr] 110 | | separator: separator.to_string(), [INFO] [stderr] 111 | | hash: hash.to_string(), [INFO] [stderr] 112 | | tt: tt.to_string(), [INFO] [stderr] ... | [INFO] [stderr] 115 | | domain: domain.to_string(), [INFO] [stderr] 116 | | })); [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] 109 | Ok(SRS0(SRS0Address{ [INFO] [stderr] 110 | separator: separator.to_string(), [INFO] [stderr] 111 | hash: hash.to_string(), [INFO] [stderr] 112 | tt: tt.to_string(), [INFO] [stderr] 113 | hostname: hostname.to_string(), [INFO] [stderr] 114 | local: local.to_string(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | / return Ok (SRS1(SRS1Address{ [INFO] [stderr] 150 | | separator: separator.to_string(), [INFO] [stderr] 151 | | hash: hash.to_string(), [INFO] [stderr] 152 | | hostname: hostname.to_string(), [INFO] [stderr] 153 | | opaque_local: opaque_local.to_string(), [INFO] [stderr] 154 | | domain: domain.to_string(), [INFO] [stderr] 155 | | })); [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] 149 | Ok (SRS1(SRS1Address{ [INFO] [stderr] 150 | separator: separator.to_string(), [INFO] [stderr] 151 | hash: hash.to_string(), [INFO] [stderr] 152 | hostname: hostname.to_string(), [INFO] [stderr] 153 | opaque_local: opaque_local.to_string(), [INFO] [stderr] 154 | domain: domain.to_string(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / return match version { [INFO] [stderr] 174 | | 0 => self.parse_srs0(separator), [INFO] [stderr] 175 | | 1 => self.parse_srs1(separator), [INFO] [stderr] 176 | | _ => panic!("variable should not contain a value != 0 or 1"), [INFO] [stderr] 177 | | }; [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] 173 | match version { [INFO] [stderr] 174 | 0 => self.parse_srs0(separator), [INFO] [stderr] 175 | 1 => self.parse_srs1(separator), [INFO] [stderr] 176 | _ => panic!("variable should not contain a value != 0 or 1"), [INFO] [stderr] 177 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/parser.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | return p.parse(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `p.parse()` [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 import: `base64_email_safe_decode` [INFO] [stderr] --> src/srs/transformers.rs:12:42 [INFO] [stderr] | [INFO] [stderr] 12 | use srs::util::{base64_email_safe_encode,base64_email_safe_decode}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | return days as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `days as u16` [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/srs/transformers.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | return Ok(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(res)` [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/srs/transformers.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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/srs/transformers.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | return String::from_utf8(bytes).expect("routine should only produce ASCII bytes"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from_utf8(bytes).expect("routine should only produce ASCII bytes")` [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/srs/transformers.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/srs/transformers.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | return Self::base32_email_safe_encode_10bit(now); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::base32_email_safe_encode_10bit(now)` [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/srs/transformers.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/srs/transformers.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | return Ok(hmac_base64_prefix); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(hmac_base64_prefix)` [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/srs/transformers.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | / return Ok(Receiver{ [INFO] [stderr] 203 | | secret_pkey: secret_pkey, [INFO] [stderr] 204 | | hostname: hostname, [INFO] [stderr] 205 | | md: md, [INFO] [stderr] 206 | | timestamper: timestamper, [INFO] [stderr] 207 | | }); [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] 202 | Ok(Receiver{ [INFO] [stderr] 203 | secret_pkey: secret_pkey, [INFO] [stderr] 204 | hostname: hostname, [INFO] [stderr] 205 | md: md, [INFO] [stderr] 206 | timestamper: timestamper, [INFO] [stderr] 207 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | / return match *address { [INFO] [stderr] 235 | | SRSAddress::SRS0(ref a) => { [INFO] [stderr] 236 | | let mut rewritten = String::with_capacity(a.local.len() + a.hostname.len() + 1); [INFO] [stderr] 237 | | rewritten.push_str(&a.local); [INFO] [stderr] ... | [INFO] [stderr] 249 | | } [INFO] [stderr] 250 | | }; [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] 234 | match *address { [INFO] [stderr] 235 | SRSAddress::SRS0(ref a) => { [INFO] [stderr] 236 | let mut rewritten = String::with_capacity(a.local.len() + a.hostname.len() + 1); [INFO] [stderr] 237 | rewritten.push_str(&a.local); [INFO] [stderr] 238 | rewritten.push_str("@"); [INFO] [stderr] 239 | rewritten.push_str(&a.hostname); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:298:9 [INFO] [stderr] | [INFO] [stderr] 298 | / return Ok(Forwarder{ [INFO] [stderr] 299 | | separator: separator.to_string(), [INFO] [stderr] 300 | | secret_pkey: secret_key, [INFO] [stderr] 301 | | hostname: hostname, [INFO] [stderr] 302 | | md: md, [INFO] [stderr] 303 | | timestamper: timestamper, [INFO] [stderr] 304 | | }); [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] 298 | Ok(Forwarder{ [INFO] [stderr] 299 | separator: separator.to_string(), [INFO] [stderr] 300 | secret_pkey: secret_key, [INFO] [stderr] 301 | hostname: hostname, [INFO] [stderr] 302 | md: md, [INFO] [stderr] 303 | timestamper: timestamper, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/srs/transformers.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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/srs/transformers.rs:362:9 [INFO] [stderr] | [INFO] [stderr] 362 | return Ok(rewritten); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(rewritten)` [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/srs/util.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return Ok(s); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(s)` [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/srs/util.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | return Ok(b); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(b)` [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 import: `openssl::hash::MessageDigest` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use openssl::hash::MessageDigest; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Write` [INFO] [stderr] --> src/main.rs:12:20 [INFO] [stderr] | [INFO] [stderr] 12 | use std::io::{Read,Write}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/srs/transformers.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/srs/transformers.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/srs/transformers.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `substr` [INFO] [stderr] --> src/srs/transformers.rs:149:30 [INFO] [stderr] | [INFO] [stderr] 149 | fn is_email_compatible_ascii(substr: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^ help: consider using `_substr` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `res` is never read [INFO] [stderr] --> src/srs/transformers.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | let mut res: u16 = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_version` [INFO] [stderr] --> src/srs/parser.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | fn get_version(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_0` [INFO] [stderr] --> src/srs/parser.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn is_0(&self) -> bool { return self.get_version() == 0; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_1` [INFO] [stderr] --> src/srs/parser.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn is_1(&self) -> bool { return self.get_version() == 1; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `srs0` [INFO] [stderr] --> src/srs/parser.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn srs0(self) -> SRS0Address { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `srs1` [INFO] [stderr] --> src/srs/parser.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn srs1(self) -> SRS1Address { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `is_valid_srs_separator` [INFO] [stderr] --> src/srs/transformers.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | fn is_valid_srs_separator(separator: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Forwarder` [INFO] [stderr] --> src/srs/transformers.rs:256:1 [INFO] [stderr] | [INFO] [stderr] 256 | pub struct Forwarder where T: Timestamper { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ForwarderInitializationError` [INFO] [stderr] --> src/srs/transformers.rs:265:1 [INFO] [stderr] | [INFO] [stderr] 265 | pub enum ForwarderInitializationError { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ForwarderError` [INFO] [stderr] --> src/srs/transformers.rs:271:1 [INFO] [stderr] | [INFO] [stderr] 271 | pub enum ForwarderError { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ForwardableAddress` [INFO] [stderr] --> src/srs/transformers.rs:276:1 [INFO] [stderr] | [INFO] [stderr] 276 | pub enum ForwardableAddress { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/srs/transformers.rs:286:5 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn new(secret: Vec, hostname: Vec, md: MessageDigest, separator: &str, timestamper: T) -> Result,ForwarderInitializationError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update_hash` [INFO] [stderr] --> src/srs/transformers.rs:307:5 [INFO] [stderr] | [INFO] [stderr] 307 | fn update_hash(&self, address: &mut SRSAddress) -> Result<(), ForwarderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `forward` [INFO] [stderr] --> src/srs/transformers.rs:319:5 [INFO] [stderr] | [INFO] [stderr] 319 | pub fn forward(&self, address: ForwardableAddress) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DecodingErr` [INFO] [stderr] --> src/srs/util.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | DecodingErr, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `base64_email_safe_decode` [INFO] [stderr] --> src/srs/util.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn base64_email_safe_decode(s: &str) -> Result, Base64Err> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/srs/parser.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | / match self { [INFO] [stderr] 13 | | &SRS0(_) => 0, [INFO] [stderr] 14 | | &SRS1(_) => 1, [INFO] [stderr] 15 | | } [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] 12 | match *self { [INFO] [stderr] 13 | SRS0(_) => 0, [INFO] [stderr] 14 | SRS1(_) => 1, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/srs/parser.rs:100:55 [INFO] [stderr] | [INFO] [stderr] 100 | let ld_sep_pos = match self.input[idx..].find("@") { [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/srs/parser.rs:140:55 [INFO] [stderr] | [INFO] [stderr] 140 | let ld_sep_pos = match self.input[idx..].find("@") { [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:75:15 [INFO] [stderr] | [INFO] [stderr] 75 | res = val_high as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(val_high)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/srs/transformers.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | res = res << 5; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `res <<= 5` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:77:16 [INFO] [stderr] | [INFO] [stderr] 77 | res |= val_low as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(val_low)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/srs/transformers.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | *b = *b + 97; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `*b += 97` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/srs/transformers.rs:112:25 [INFO] [stderr] | [INFO] [stderr] 112 | let abs_delta = match now > days_ts { [INFO] [stderr] | _________________________^ [INFO] [stderr] 113 | | true => (now as i32) - (days_ts as i32), [INFO] [stderr] 114 | | false => (days_ts as i32) - (now as i32), [INFO] [stderr] 115 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if now > days_ts { (now as i32) - (days_ts as i32) } else { (days_ts as i32) - (now as i32) }` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | true => (now as i32) - (days_ts as i32), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(now)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:113:36 [INFO] [stderr] | [INFO] [stderr] 113 | true => (now as i32) - (days_ts as i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i32::from(days_ts)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:114:22 [INFO] [stderr] | [INFO] [stderr] 114 | false => (days_ts as i32) - (now as i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i32::from(days_ts)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:114:41 [INFO] [stderr] | [INFO] [stderr] 114 | false => (days_ts as i32) - (now as i32), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(now)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:117:24 [INFO] [stderr] | [INFO] [stderr] 117 | if abs_delta > self.max_valid_delta as i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.max_valid_delta)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/srs/transformers.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/srs/transformers.rs:164:38 [INFO] [stderr] | [INFO] [stderr] 164 | fn compute_addr_hash(key: &PKey, md: &MessageDigest, address: &SRSAddress) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider passing by value instead: `MessageDigest` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/srs/transformers.rs:166:39 [INFO] [stderr] | [INFO] [stderr] 166 | let mut signer = try!(Signer::new(md.clone(), key)); [INFO] [stderr] | ^^^^^^^^^^ help: try dereferencing it: `*md` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/srs/transformers.rs:217:20 [INFO] [stderr] | [INFO] [stderr] 217 | let hash = match address { [INFO] [stderr] | ____________________^ [INFO] [stderr] 218 | | &SRSAddress::SRS0(ref a) => a.hash.as_str(), [INFO] [stderr] 219 | | &SRSAddress::SRS1(ref a) => a.hash.as_str(), [INFO] [stderr] 220 | | }; [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] 217 | let hash = match *address { [INFO] [stderr] 218 | SRSAddress::SRS0(ref a) => a.hash.as_str(), [INFO] [stderr] 219 | SRSAddress::SRS1(ref a) => a.hash.as_str(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/srs/util.rs:9:18 [INFO] [stderr] | [INFO] [stderr] 9 | let base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `idx` [INFO] [stderr] --> src/srs/util.rs:70:44 [INFO] [stderr] | [INFO] [stderr] 70 | let b0 = try!(map_ascii_to_6_bit(c[idx+0])); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: unused variable: `substr` [INFO] [stderr] --> src/srs/transformers.rs:149:30 [INFO] [stderr] | [INFO] [stderr] 149 | fn is_email_compatible_ascii(substr: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^ help: consider using `_substr` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ts` [INFO] [stderr] --> src/srs/transformer_tests.rs:25:35 [INFO] [stderr] | [INFO] [stderr] 25 | verify: Box::new(|ts| Ok(())), [INFO] [stderr] | ^^ help: consider using `_ts` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ts` [INFO] [stderr] --> src/srs/transformer_tests.rs:124:35 [INFO] [stderr] | [INFO] [stderr] 124 | verify: Box::new(|ts| Err(23)), [INFO] [stderr] | ^^ help: consider using `_ts` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r_c` [INFO] [stderr] --> src/srs/transformer_tests.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let r_c = make_receiver("csecret", "c"); [INFO] [stderr] | ^^^ help: consider using `_r_c` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/srs/transformer_tests.rs:302:13 [INFO] [stderr] | [INFO] [stderr] 302 | let t = SRSTimestamper { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/srs/transformer_tests.rs:319:13 [INFO] [stderr] | [INFO] [stderr] 319 | let t = SRSTimestamper { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `res` is never read [INFO] [stderr] --> src/srs/transformers.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | let mut res: u16 = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | stream.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/srs/transformer_tests.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | let mut res = res.srs0(); [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/srs/transformer_tests.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | let mut res = res.srs1(); [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/srs/transformer_tests.rs:280:13 [INFO] [stderr] | [INFO] [stderr] 280 | let mut t = SRSTimestamper { [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/srs/parser.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | / match self { [INFO] [stderr] 13 | | &SRS0(_) => 0, [INFO] [stderr] 14 | | &SRS1(_) => 1, [INFO] [stderr] 15 | | } [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] 12 | match *self { [INFO] [stderr] 13 | SRS0(_) => 0, [INFO] [stderr] 14 | SRS1(_) => 1, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/srs/parser.rs:100:55 [INFO] [stderr] | [INFO] [stderr] 100 | let ld_sep_pos = match self.input[idx..].find("@") { [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/srs/parser.rs:140:55 [INFO] [stderr] | [INFO] [stderr] 140 | let ld_sep_pos = match self.input[idx..].find("@") { [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:75:15 [INFO] [stderr] | [INFO] [stderr] 75 | res = val_high as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(val_high)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/srs/transformers.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | res = res << 5; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `res <<= 5` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:77:16 [INFO] [stderr] | [INFO] [stderr] 77 | res |= val_low as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(val_low)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/srs/transformers.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | *b = *b + 97; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `*b += 97` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/srs/transformers.rs:112:25 [INFO] [stderr] | [INFO] [stderr] 112 | let abs_delta = match now > days_ts { [INFO] [stderr] | _________________________^ [INFO] [stderr] 113 | | true => (now as i32) - (days_ts as i32), [INFO] [stderr] 114 | | false => (days_ts as i32) - (now as i32), [INFO] [stderr] 115 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if now > days_ts { (now as i32) - (days_ts as i32) } else { (days_ts as i32) - (now as i32) }` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | true => (now as i32) - (days_ts as i32), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(now)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:113:36 [INFO] [stderr] | [INFO] [stderr] 113 | true => (now as i32) - (days_ts as i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i32::from(days_ts)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:114:22 [INFO] [stderr] | [INFO] [stderr] 114 | false => (days_ts as i32) - (now as i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i32::from(days_ts)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:114:41 [INFO] [stderr] | [INFO] [stderr] 114 | false => (days_ts as i32) - (now as i32), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(now)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/srs/transformers.rs:117:24 [INFO] [stderr] | [INFO] [stderr] 117 | if abs_delta > self.max_valid_delta as i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.max_valid_delta)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/srs/transformers.rs:164:38 [INFO] [stderr] | [INFO] [stderr] 164 | fn compute_addr_hash(key: &PKey, md: &MessageDigest, address: &SRSAddress) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider passing by value instead: `MessageDigest` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/srs/transformers.rs:166:39 [INFO] [stderr] | [INFO] [stderr] 166 | let mut signer = try!(Signer::new(md.clone(), key)); [INFO] [stderr] | ^^^^^^^^^^ help: try dereferencing it: `*md` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/srs/transformers.rs:217:20 [INFO] [stderr] | [INFO] [stderr] 217 | let hash = match address { [INFO] [stderr] | ____________________^ [INFO] [stderr] 218 | | &SRSAddress::SRS0(ref a) => a.hash.as_str(), [INFO] [stderr] 219 | | &SRSAddress::SRS1(ref a) => a.hash.as_str(), [INFO] [stderr] 220 | | }; [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] 217 | let hash = match *address { [INFO] [stderr] 218 | SRSAddress::SRS0(ref a) => a.hash.as_str(), [INFO] [stderr] 219 | SRSAddress::SRS1(ref a) => a.hash.as_str(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/srs/transformer_tests.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | assert!(match_err(receive) == true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `match_err(receive)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/srs/transformer_tests.rs:67:28 [INFO] [stderr] | [INFO] [stderr] 67 | correct == "uNjN".to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `"uNjN"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/srs/transformer_tests.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | correct == "nAM6".to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `"nAM6"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/srs/transformer_tests.rs:101:35 [INFO] [stderr] | [INFO] [stderr] 101 | verify: Box::new(|ts| match ts == "ac" { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 102 | | true => Ok(()), [INFO] [stderr] 103 | | false => Err(23), [INFO] [stderr] 104 | | }), [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if ts == "ac" { Ok(()) } else { Err(23) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/srs/util.rs:9:18 [INFO] [stderr] | [INFO] [stderr] 9 | let base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `idx` [INFO] [stderr] --> src/srs/util.rs:70:44 [INFO] [stderr] | [INFO] [stderr] 70 | let b0 = try!(map_ascii_to_6_bit(c[idx+0])); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/srs/util.rs:105:42 [INFO] [stderr] | [INFO] [stderr] 105 | let r = base64_email_safe_encode("four".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"four"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/srs/util.rs:122:44 [INFO] [stderr] | [INFO] [stderr] 122 | let enc = base64_email_safe_encode("Man".as_bytes()).expect("should encode"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Man"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | stream.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.34s [INFO] running `"docker" "inspect" "6c3dc710e122d8d6ed1dd6133e383a57bf5f11091181967bb11b8b6d344ed936"` [INFO] running `"docker" "rm" "-f" "6c3dc710e122d8d6ed1dd6133e383a57bf5f11091181967bb11b8b6d344ed936"` [INFO] [stdout] 6c3dc710e122d8d6ed1dd6133e383a57bf5f11091181967bb11b8b6d344ed936