[INFO] crate nntp 0.0.5 is already in cache [INFO] extracting crate nntp 0.0.5 into work/ex/clippy-test-run/sources/stable/reg/nntp/0.0.5 [INFO] extracting crate nntp 0.0.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nntp/0.0.5 [INFO] validating manifest of nntp-0.0.5 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 nntp-0.0.5 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 nntp-0.0.5 [INFO] finished frobbing nntp-0.0.5 [INFO] frobbed toml for nntp-0.0.5 written to work/ex/clippy-test-run/sources/stable/reg/nntp/0.0.5/Cargo.toml [INFO] started frobbing nntp-0.0.5 [INFO] finished frobbing nntp-0.0.5 [INFO] frobbed toml for nntp-0.0.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nntp/0.0.5/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 nntp-0.0.5 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nntp/0.0.5:/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 -Dclippy::into_iter_on_array" "-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] 55052ef25cc89c651dfff974c1057b11630072e81846c39048417c17fe814115 [INFO] running `"docker" "start" "-a" "55052ef25cc89c651dfff974c1057b11630072e81846c39048417c17fe814115"` [INFO] [stderr] Checking nntp v0.0.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/nntp.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | Article {headers: headers, body: body} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/nntp.rs:46:30 [INFO] [stderr] | [INFO] [stderr] 46 | Article {headers: headers, body: body} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/nntp.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | Article {headers: headers, body: body} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/nntp.rs:46:30 [INFO] [stderr] | [INFO] [stderr] 46 | Article {headers: headers, body: body} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/nntp.rs:237:5 [INFO] [stderr] | [INFO] [stderr] 237 | return Ok(lines) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(lines)` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/nntp.rs:236:88 [INFO] [stderr] | [INFO] [stderr] 236 | let lines: Vec = lines.iter().map(|ref mut x| NewsGroup::new_news_group((*x))).collect(); [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/nntp.rs:236:88 [INFO] [stderr] | [INFO] [stderr] 236 | let lines: Vec = lines.iter().map(|ref mut x| NewsGroup::new_news_group((*x))).collect(); [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: unneeded return statement [INFO] [stderr] --> src/nntp.rs:410:3 [INFO] [stderr] | [INFO] [stderr] 410 | return length >= 5 && (message_bytes[length-1] == lf && message_bytes[length-2] == cr && [INFO] [stderr] | _________^ [INFO] [stderr] 411 | | message_bytes[length-3] == dot && message_bytes[length-4] == lf && message_bytes[length-5] == cr) [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] 410 | length >= 5 && (message_bytes[length-1] == lf && message_bytes[length-2] == cr && [INFO] [stderr] 411 | message_bytes[length-3] == dot && message_bytes[length-4] == lf && message_bytes[length-5] == cr) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nntp.rs:237:5 [INFO] [stderr] | [INFO] [stderr] 237 | return Ok(lines) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(lines)` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/nntp.rs:236:88 [INFO] [stderr] | [INFO] [stderr] 236 | let lines: Vec = lines.iter().map(|ref mut x| NewsGroup::new_news_group((*x))).collect(); [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/nntp.rs:236:88 [INFO] [stderr] | [INFO] [stderr] 236 | let lines: Vec = lines.iter().map(|ref mut x| NewsGroup::new_news_group((*x))).collect(); [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: unneeded return statement [INFO] [stderr] --> src/nntp.rs:410:3 [INFO] [stderr] | [INFO] [stderr] 410 | return length >= 5 && (message_bytes[length-1] == lf && message_bytes[length-2] == cr && [INFO] [stderr] | _________^ [INFO] [stderr] 411 | | message_bytes[length-3] == dot && message_bytes[length-4] == lf && message_bytes[length-5] == cr) [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] 410 | length >= 5 && (message_bytes[length-1] == lf && message_bytes[length-2] == cr && [INFO] [stderr] 411 | message_bytes[length-3] == dot && message_bytes[length-4] == lf && message_bytes[length-5] == cr) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | if i == &format!("\r\n") { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:38:15 [INFO] [stderr] | [INFO] [stderr] 38 | let key = format!("{}", header.nth(0).unwrap().trim_matches(chars_to_trim)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `header.nth(0).unwrap().trim_matches(chars_to_trim).to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | let value = format!("{}", header.nth(0).unwrap().trim_matches(chars_to_trim)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `header.nth(0).unwrap().trim_matches(chars_to_trim).to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:62:19 [INFO] [stderr] | [INFO] [stderr] 62 | NewsGroup{name: format!("{}", split_group[0]), high: FromStr::from_str(split_group[1]).unwrap(), low: FromStr::from_str(split_group[2]).unwrap(), status: format!("{}", split_group[3])} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `split_group[0].to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:62:157 [INFO] [stderr] | [INFO] [stderr] 62 | NewsGroup{name: format!("{}", split_group[0]), high: FromStr::from_str(split_group[1]).unwrap(), low: FromStr::from_str(split_group[2]).unwrap(), status: format!("{}", split_group[3])} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `split_group[3].to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | self.retrieve_article(&format!("ARTICLE\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"ARTICLE\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:117:23 [INFO] [stderr] | [INFO] [stderr] 117 | self.retrieve_body(&format!("BODY\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"BODY\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | let capabilities_command = format!("CAPABILITIES\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"CAPABILITIES\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:163:22 [INFO] [stderr] | [INFO] [stderr] 163 | let date_command = format!("DATE\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"DATE\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | self.retrieve_head(&format!("HEAD\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"HEAD\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:207:22 [INFO] [stderr] | [INFO] [stderr] 207 | let last_command = format!("LAST\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"LAST\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:222:22 [INFO] [stderr] | [INFO] [stderr] 222 | let list_command = format!("LIST\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"LIST\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:260:22 [INFO] [stderr] | [INFO] [stderr] 260 | let help_command = format!("HELP\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"HELP\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:277:22 [INFO] [stderr] | [INFO] [stderr] 277 | let quit_command = format!("QUIT\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"QUIT\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/nntp.rs:291:27 [INFO] [stderr] | [INFO] [stderr] 291 | let newgroups_command = match use_gmt { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 292 | | true => format!("NEWSGROUP {} {} GMT\r\n", date, time), [INFO] [stderr] 293 | | false => format!("NEWSGROUP {} {}\r\n", date, time) [INFO] [stderr] 294 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if use_gmt { format!("NEWSGROUP {} {} GMT\r\n", date, time) } else { format!("NEWSGROUP {} {}\r\n", date, time) }` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/nntp.rs:311:25 [INFO] [stderr] | [INFO] [stderr] 311 | let newnews_command = match use_gmt { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 312 | | true => format!("NEWNEWS {} {} {} GMT\r\n", wildmat, date, time), [INFO] [stderr] 313 | | false => format!("NEWNEWS {} {} {}\r\n", wildmat, date, time) [INFO] [stderr] 314 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if use_gmt { format!("NEWNEWS {} {} {} GMT\r\n", wildmat, date, time) } else { format!("NEWNEWS {} {} {}\r\n", wildmat, date, time) }` [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: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/nntp.rs:330:2 [INFO] [stderr] | [INFO] [stderr] 330 | pub fn next(&mut self) -> Result { [INFO] [stderr] | _____^ [INFO] [stderr] 331 | | let next_command = format!("NEXT\r\n"); [INFO] [stderr] 332 | | match self.stream.write_fmt(format_args!("{}", next_command)) { [INFO] [stderr] 333 | | Ok(_) => (), [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:331:22 [INFO] [stderr] | [INFO] [stderr] 331 | let next_command = format!("NEXT\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"NEXT\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:349:22 [INFO] [stderr] | [INFO] [stderr] 349 | let post_command = format!("POST\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"POST\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:374:23 [INFO] [stderr] | [INFO] [stderr] 374 | self.retrieve_stat(&format!("STAT\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"STAT\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/nntp.rs:399:22 [INFO] [stderr] | [INFO] [stderr] 399 | fn is_valid_message(&mut self, message: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:469:22 [INFO] [stderr] | [INFO] [stderr] 469 | if res == format!(".\r\n") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `".\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | if i == &format!("\r\n") { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:38:15 [INFO] [stderr] | [INFO] [stderr] 38 | let key = format!("{}", header.nth(0).unwrap().trim_matches(chars_to_trim)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `header.nth(0).unwrap().trim_matches(chars_to_trim).to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | let value = format!("{}", header.nth(0).unwrap().trim_matches(chars_to_trim)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `header.nth(0).unwrap().trim_matches(chars_to_trim).to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:62:19 [INFO] [stderr] | [INFO] [stderr] 62 | NewsGroup{name: format!("{}", split_group[0]), high: FromStr::from_str(split_group[1]).unwrap(), low: FromStr::from_str(split_group[2]).unwrap(), status: format!("{}", split_group[3])} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `split_group[0].to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:62:157 [INFO] [stderr] | [INFO] [stderr] 62 | NewsGroup{name: format!("{}", split_group[0]), high: FromStr::from_str(split_group[1]).unwrap(), low: FromStr::from_str(split_group[2]).unwrap(), status: format!("{}", split_group[3])} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `split_group[3].to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | self.retrieve_article(&format!("ARTICLE\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"ARTICLE\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:117:23 [INFO] [stderr] | [INFO] [stderr] 117 | self.retrieve_body(&format!("BODY\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"BODY\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | let capabilities_command = format!("CAPABILITIES\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"CAPABILITIES\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:163:22 [INFO] [stderr] | [INFO] [stderr] 163 | let date_command = format!("DATE\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"DATE\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | self.retrieve_head(&format!("HEAD\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"HEAD\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:207:22 [INFO] [stderr] | [INFO] [stderr] 207 | let last_command = format!("LAST\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"LAST\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:222:22 [INFO] [stderr] | [INFO] [stderr] 222 | let list_command = format!("LIST\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"LIST\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:260:22 [INFO] [stderr] | [INFO] [stderr] 260 | let help_command = format!("HELP\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"HELP\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:277:22 [INFO] [stderr] | [INFO] [stderr] 277 | let quit_command = format!("QUIT\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"QUIT\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/nntp.rs:291:27 [INFO] [stderr] | [INFO] [stderr] 291 | let newgroups_command = match use_gmt { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 292 | | true => format!("NEWSGROUP {} {} GMT\r\n", date, time), [INFO] [stderr] 293 | | false => format!("NEWSGROUP {} {}\r\n", date, time) [INFO] [stderr] 294 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if use_gmt { format!("NEWSGROUP {} {} GMT\r\n", date, time) } else { format!("NEWSGROUP {} {}\r\n", date, time) }` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/nntp.rs:311:25 [INFO] [stderr] | [INFO] [stderr] 311 | let newnews_command = match use_gmt { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 312 | | true => format!("NEWNEWS {} {} {} GMT\r\n", wildmat, date, time), [INFO] [stderr] 313 | | false => format!("NEWNEWS {} {} {}\r\n", wildmat, date, time) [INFO] [stderr] 314 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if use_gmt { format!("NEWNEWS {} {} {} GMT\r\n", wildmat, date, time) } else { format!("NEWNEWS {} {} {}\r\n", wildmat, date, time) }` [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: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/nntp.rs:330:2 [INFO] [stderr] | [INFO] [stderr] 330 | pub fn next(&mut self) -> Result { [INFO] [stderr] | _____^ [INFO] [stderr] 331 | | let next_command = format!("NEXT\r\n"); [INFO] [stderr] 332 | | match self.stream.write_fmt(format_args!("{}", next_command)) { [INFO] [stderr] 333 | | Ok(_) => (), [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:331:22 [INFO] [stderr] | [INFO] [stderr] 331 | let next_command = format!("NEXT\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"NEXT\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:349:22 [INFO] [stderr] | [INFO] [stderr] 349 | let post_command = format!("POST\r\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"POST\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:374:23 [INFO] [stderr] | [INFO] [stderr] 374 | self.retrieve_stat(&format!("STAT\r\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"STAT\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/nntp.rs:399:22 [INFO] [stderr] | [INFO] [stderr] 399 | fn is_valid_message(&mut self, message: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/nntp.rs:469:22 [INFO] [stderr] | [INFO] [stderr] 469 | if res == format!(".\r\n") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `".\r\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.60s [INFO] running `"docker" "inspect" "55052ef25cc89c651dfff974c1057b11630072e81846c39048417c17fe814115"` [INFO] running `"docker" "rm" "-f" "55052ef25cc89c651dfff974c1057b11630072e81846c39048417c17fe814115"` [INFO] [stdout] 55052ef25cc89c651dfff974c1057b11630072e81846c39048417c17fe814115