[INFO] updating cached repository cmbrandenburg/rss2email [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/cmbrandenburg/rss2email [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/cmbrandenburg/rss2email" "work/ex/clippy-test-run/sources/stable/gh/cmbrandenburg/rss2email"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/cmbrandenburg/rss2email'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/cmbrandenburg/rss2email" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cmbrandenburg/rss2email"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cmbrandenburg/rss2email'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b76acd0f8489f3580b39c0ebbce16be3dd46b832 [INFO] sha for GitHub repo cmbrandenburg/rss2email: b76acd0f8489f3580b39c0ebbce16be3dd46b832 [INFO] validating manifest of cmbrandenburg/rss2email 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 cmbrandenburg/rss2email 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 cmbrandenburg/rss2email [INFO] finished frobbing cmbrandenburg/rss2email [INFO] frobbed toml for cmbrandenburg/rss2email written to work/ex/clippy-test-run/sources/stable/gh/cmbrandenburg/rss2email/Cargo.toml [INFO] started frobbing cmbrandenburg/rss2email [INFO] finished frobbing cmbrandenburg/rss2email [INFO] frobbed toml for cmbrandenburg/rss2email written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cmbrandenburg/rss2email/Cargo.toml [INFO] crate cmbrandenburg/rss2email 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 cmbrandenburg/rss2email against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/cmbrandenburg/rss2email:/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] f1c84a21c7787f6c489a8018ae04263ffba57d4744eef9c2ea47ff485705c52b [INFO] running `"docker" "start" "-a" "f1c84a21c7787f6c489a8018ae04263ffba57d4744eef9c2ea47ff485705c52b"` [INFO] [stderr] Compiling openssl v0.9.14 [INFO] [stderr] Compiling derive_builder v0.5.0 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Compiling openssl-sys v0.9.14 [INFO] [stderr] Checking libflate v0.1.7 [INFO] [stderr] Checking rmp v0.8.6 [INFO] [stderr] Checking toml v0.4.5 [INFO] [stderr] Compiling tempdir v0.3.5 [INFO] [stderr] Compiling email v0.0.17 [INFO] [stderr] Checking textwrap v0.7.0 [INFO] [stderr] Checking uuid v0.4.0 [INFO] [stderr] Compiling skeptic v0.6.1 [INFO] [stderr] Checking rmp-serde v0.13.6 [INFO] [stderr] Compiling derive_builder_core v0.1.7 [INFO] [stderr] Checking chrono v0.3.0 [INFO] [stderr] Checking chrono v0.4.0 [INFO] [stderr] Checking serde_urlencoded v0.5.1 [INFO] [stderr] Checking hyper v0.10.12 [INFO] [stderr] Checking clap v2.26.0 [INFO] [stderr] Compiling escapade v0.0.3 [INFO] [stderr] Checking quick-xml v0.7.3 [INFO] [stderr] Checking quick-xml v0.8.1 [INFO] [stderr] Checking rss v0.7.0 [INFO] [stderr] Checking atom_syndication v0.5.4 [INFO] [stderr] Checking native-tls v0.1.2 [INFO] [stderr] Checking hyper-native-tls v0.2.4 [INFO] [stderr] Checking lettre v0.6.2 [INFO] [stderr] Checking reqwest v0.6.2 [INFO] [stderr] Checking rss2email v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/log.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | Logger { level: level } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `level` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/log.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | Logger { level: level } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `level` [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/model.rs:535:13 [INFO] [stderr] | [INFO] [stderr] 535 | threads: threads, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `threads` [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/model.rs:536:13 [INFO] [stderr] | [INFO] [stderr] 536 | recv_chan: recv_chan, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `recv_chan` [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/model.rs:683:27 [INFO] [stderr] | [INFO] [stderr] 683 | MockFetcher { mock_items: mock_items } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `mock_items` [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] | [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/model.rs:535:13 [INFO] [stderr] | [INFO] [stderr] 535 | threads: threads, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `threads` [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/model.rs:536:13 [INFO] [stderr] | [INFO] [stderr] 536 | recv_chan: recv_chan, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `recv_chan` [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/model.rs:683:27 [INFO] [stderr] | [INFO] [stderr] 683 | MockFetcher { mock_items: mock_items } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `mock_items` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/error.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn new>>(reason: R) -> ErrorBuilder { [INFO] [stderr] 26 | | ErrorBuilder { [INFO] [stderr] 27 | | inner: Error { [INFO] [stderr] 28 | | reason: reason.into(), [INFO] [stderr] ... | [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/model.rs:174:30 [INFO] [stderr] | [INFO] [stderr] 174 | let feeds_to_fetch = self.feeds [INFO] [stderr] | ______________________________^ [INFO] [stderr] 175 | | .keys() [INFO] [stderr] 176 | | .filter(|x| options.should_fetch(x)) [INFO] [stderr] 177 | | .map(|x| x.clone()) [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 174 | let feeds_to_fetch = self.feeds [INFO] [stderr] 175 | .keys() [INFO] [stderr] 176 | .filter(|x| options.should_fetch(x)).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/model.rs:437:20 [INFO] [stderr] | [INFO] [stderr] 437 | send_chan: Arc>>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/model.rs:480:21 [INFO] [stderr] | [INFO] [stderr] 480 | / match send_chan.lock().unwrap().send(Err(e.to_string())) { [INFO] [stderr] 481 | | Err(_) => return, // channel closed [INFO] [stderr] 482 | | Ok(_) => {} [INFO] [stderr] 483 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Err(_) = send_chan.lock().unwrap().send(Err(e.to_string())) { return }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/model.rs:495:21 [INFO] [stderr] | [INFO] [stderr] 495 | / match send_chan.lock().unwrap().send(Ok((feed_url, feed))) { [INFO] [stderr] 496 | | Err(_) => return, // channel closed [INFO] [stderr] 497 | | Ok(_) => {} [INFO] [stderr] 498 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Err(_) = send_chan.lock().unwrap().send(Ok((feed_url, feed))) { return }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/model.rs:515:23 [INFO] [stderr] | [INFO] [stderr] 515 | let threads = (0..NUM_FETCHERS) [INFO] [stderr] | _______________________^ [INFO] [stderr] 516 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..NUM_FETCHERS)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/model.rs:576:30 [INFO] [stderr] | [INFO] [stderr] 576 | .ok_or( [INFO] [stderr] | ______________________________^ [INFO] [stderr] 577 | | Error::new(format!( [INFO] [stderr] 578 | | "Cannot determine unique identifier for RSS item (feed URL: {})", [INFO] [stderr] 579 | | feed_url [INFO] [stderr] 580 | | )).into_error(), [INFO] [stderr] 581 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 576 | .ok_or_else(|| Error::new(format!( [INFO] [stderr] 577 | "Cannot determine unique identifier for RSS item (feed URL: {})", [INFO] [stderr] 578 | feed_url [INFO] [stderr] 579 | )).into_error())?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/model.rs:575:30 [INFO] [stderr] | [INFO] [stderr] 575 | .or(item.link().map(|x| String::from(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| item.link().map(|x| String::from(x)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:575:49 [INFO] [stderr] | [INFO] [stderr] 575 | .or(item.link().map(|x| String::from(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:586:57 [INFO] [stderr] | [INFO] [stderr] 586 | title: item.title().map(|x| String::from(x)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:587:55 [INFO] [stderr] | [INFO] [stderr] 587 | link: item.link().map(|x| String::from(x)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:589:37 [INFO] [stderr] | [INFO] [stderr] 589 | |x| String::from(x), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/model.rs:588:57 [INFO] [stderr] | [INFO] [stderr] 588 | content: item.content().or(item.description()).map( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| item.description())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:617:29 [INFO] [stderr] | [INFO] [stderr] 617 | |x| String::from(x), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:159:18 [INFO] [stderr] | [INFO] [stderr] 159 | .unwrap_or(String::from(UNKNOWN_EXE)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| String::from(UNKNOWN_EXE))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:157:26 [INFO] [stderr] | [INFO] [stderr] 157 | .unwrap_or(String::from(UNKNOWN_EXE)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(UNKNOWN_EXE))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/error.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn new>>(reason: R) -> ErrorBuilder { [INFO] [stderr] 26 | | ErrorBuilder { [INFO] [stderr] 27 | | inner: Error { [INFO] [stderr] 28 | | reason: reason.into(), [INFO] [stderr] ... | [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/model.rs:174:30 [INFO] [stderr] | [INFO] [stderr] 174 | let feeds_to_fetch = self.feeds [INFO] [stderr] | ______________________________^ [INFO] [stderr] 175 | | .keys() [INFO] [stderr] 176 | | .filter(|x| options.should_fetch(x)) [INFO] [stderr] 177 | | .map(|x| x.clone()) [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 174 | let feeds_to_fetch = self.feeds [INFO] [stderr] 175 | .keys() [INFO] [stderr] 176 | .filter(|x| options.should_fetch(x)).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/model.rs:437:20 [INFO] [stderr] | [INFO] [stderr] 437 | send_chan: Arc>>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/model.rs:480:21 [INFO] [stderr] | [INFO] [stderr] 480 | / match send_chan.lock().unwrap().send(Err(e.to_string())) { [INFO] [stderr] 481 | | Err(_) => return, // channel closed [INFO] [stderr] 482 | | Ok(_) => {} [INFO] [stderr] 483 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Err(_) = send_chan.lock().unwrap().send(Err(e.to_string())) { return }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/model.rs:495:21 [INFO] [stderr] | [INFO] [stderr] 495 | / match send_chan.lock().unwrap().send(Ok((feed_url, feed))) { [INFO] [stderr] 496 | | Err(_) => return, // channel closed [INFO] [stderr] 497 | | Ok(_) => {} [INFO] [stderr] 498 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Err(_) = send_chan.lock().unwrap().send(Ok((feed_url, feed))) { return }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/model.rs:515:23 [INFO] [stderr] | [INFO] [stderr] 515 | let threads = (0..NUM_FETCHERS) [INFO] [stderr] | _______________________^ [INFO] [stderr] 516 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..NUM_FETCHERS)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/model.rs:576:30 [INFO] [stderr] | [INFO] [stderr] 576 | .ok_or( [INFO] [stderr] | ______________________________^ [INFO] [stderr] 577 | | Error::new(format!( [INFO] [stderr] 578 | | "Cannot determine unique identifier for RSS item (feed URL: {})", [INFO] [stderr] 579 | | feed_url [INFO] [stderr] 580 | | )).into_error(), [INFO] [stderr] 581 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 576 | .ok_or_else(|| Error::new(format!( [INFO] [stderr] 577 | "Cannot determine unique identifier for RSS item (feed URL: {})", [INFO] [stderr] 578 | feed_url [INFO] [stderr] 579 | )).into_error())?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/model.rs:575:30 [INFO] [stderr] | [INFO] [stderr] 575 | .or(item.link().map(|x| String::from(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| item.link().map(|x| String::from(x)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:575:49 [INFO] [stderr] | [INFO] [stderr] 575 | .or(item.link().map(|x| String::from(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:586:57 [INFO] [stderr] | [INFO] [stderr] 586 | title: item.title().map(|x| String::from(x)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:587:55 [INFO] [stderr] | [INFO] [stderr] 587 | link: item.link().map(|x| String::from(x)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:589:37 [INFO] [stderr] | [INFO] [stderr] 589 | |x| String::from(x), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/model.rs:588:57 [INFO] [stderr] | [INFO] [stderr] 588 | content: item.content().or(item.description()).map( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| item.description())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/model.rs:617:29 [INFO] [stderr] | [INFO] [stderr] 617 | |x| String::from(x), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:159:18 [INFO] [stderr] | [INFO] [stderr] 159 | .unwrap_or(String::from(UNKNOWN_EXE)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| String::from(UNKNOWN_EXE))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:157:26 [INFO] [stderr] | [INFO] [stderr] 157 | .unwrap_or(String::from(UNKNOWN_EXE)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(UNKNOWN_EXE))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 31.55s [INFO] running `"docker" "inspect" "f1c84a21c7787f6c489a8018ae04263ffba57d4744eef9c2ea47ff485705c52b"` [INFO] running `"docker" "rm" "-f" "f1c84a21c7787f6c489a8018ae04263ffba57d4744eef9c2ea47ff485705c52b"` [INFO] [stdout] f1c84a21c7787f6c489a8018ae04263ffba57d4744eef9c2ea47ff485705c52b