[INFO] updating cached repository SirVer/taskpaper [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/SirVer/taskpaper [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/SirVer/taskpaper" "work/ex/clippy-test-run/sources/stable/gh/SirVer/taskpaper"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/SirVer/taskpaper'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/SirVer/taskpaper" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/SirVer/taskpaper"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/SirVer/taskpaper'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a05befda0445a4ad57da8f8c46204a5e41c18f7e [INFO] sha for GitHub repo SirVer/taskpaper: a05befda0445a4ad57da8f8c46204a5e41c18f7e [INFO] validating manifest of SirVer/taskpaper 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 SirVer/taskpaper 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 SirVer/taskpaper [INFO] finished frobbing SirVer/taskpaper [INFO] frobbed toml for SirVer/taskpaper written to work/ex/clippy-test-run/sources/stable/gh/SirVer/taskpaper/Cargo.toml [INFO] started frobbing SirVer/taskpaper [INFO] finished frobbing SirVer/taskpaper [INFO] frobbed toml for SirVer/taskpaper written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/SirVer/taskpaper/Cargo.toml [INFO] crate SirVer/taskpaper 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 SirVer/taskpaper against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/SirVer/taskpaper:/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] 07f170fde97c550c2f6cde56523053ec2679e2879a55585a4af9ab7adc7a37f2 [INFO] running `"docker" "start" "-a" "07f170fde97c550c2f6cde56523053ec2679e2879a55585a4af9ab7adc7a37f2"` [INFO] [stderr] Checking rand v0.4.3 [INFO] [stderr] Checking xattr v0.2.2 [INFO] [stderr] Checking net2 v0.2.33 [INFO] [stderr] Checking filetime v0.2.1 [INFO] [stderr] Checking path-dedot v1.1.6 [INFO] [stderr] Checking base64 v0.9.3 [INFO] [stderr] Checking rand v0.5.5 [INFO] [stderr] Checking bytes v0.4.10 [INFO] [stderr] Checking pbr v1.0.1 [INFO] [stderr] Checking crossbeam-epoch v0.5.2 [INFO] [stderr] Checking want v0.0.4 [INFO] [stderr] Checking want v0.0.6 [INFO] [stderr] Checking memchr v2.1.1 [INFO] [stderr] Checking path-absolutize v1.1.1 [INFO] [stderr] Checking tar v0.4.17 [INFO] [stderr] Checking mio v0.6.16 [INFO] [stderr] Checking miniz-sys v0.1.11 [INFO] [stderr] Checking tokio-io v0.1.9 [INFO] [stderr] Checking http v0.1.14 [INFO] [stderr] Compiling syn v0.14.8 [INFO] [stderr] Compiling syn v0.15.11 [INFO] [stderr] Checking uuid v0.6.5 [INFO] [stderr] Checking tempdir v0.3.7 [INFO] [stderr] Checking openssl v0.9.24 [INFO] [stderr] Checking openssl v0.10.15 [INFO] [stderr] Checking crossbeam-deque v0.6.1 [INFO] [stderr] Checking libflate v0.1.18 [INFO] [stderr] Checking chrono v0.4.5 [INFO] [stderr] Compiling phf_generator v0.7.23 [INFO] [stderr] Checking parking_lot_core v0.3.1 [INFO] [stderr] Checking uuid v0.7.1 [INFO] [stderr] Checking aho-corasick v0.6.9 [INFO] [stderr] Checking flate2 v1.0.4 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking tokio-threadpool v0.1.7 [INFO] [stderr] Compiling string_cache_codegen v0.4.2 [INFO] [stderr] Compiling phf_codegen v0.7.23 [INFO] [stderr] Checking parking_lot v0.6.4 [INFO] [stderr] Checking native-tls v0.1.5 [INFO] [stderr] Checking h2 v0.1.14 [INFO] [stderr] Checking regex v1.1.0 [INFO] [stderr] Checking native-tls v0.2.2 [INFO] [stderr] Compiling mime_guess v2.0.0-alpha.6 [INFO] [stderr] Checking tokio-reactor v0.1.6 [INFO] [stderr] Checking tokio-fs v0.1.3 [INFO] [stderr] Compiling string_cache v0.7.3 [INFO] [stderr] Compiling serde_derive v1.0.71 [INFO] [stderr] Checking tokio-uds v0.2.2 [INFO] [stderr] Checking tokio-tcp v0.1.2 [INFO] [stderr] Checking tokio-udp v0.1.2 [INFO] [stderr] Compiling html5ever v0.22.5 [INFO] [stderr] Compiling structopt-derive v0.2.12 [INFO] [stderr] Checking tokio v0.1.11 [INFO] [stderr] Checking structopt v0.2.12 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Checking hyper v0.12.16 [INFO] [stderr] Compiling markup5ever v0.7.3 [INFO] [stderr] Checking tokio-tls v0.1.4 [INFO] [stderr] Checking hyper v0.11.27 [INFO] [stderr] Checking hyper-tls v0.3.1 [INFO] [stderr] Checking reqwest v0.9.5 [INFO] [stderr] Checking hyper-tls v0.1.4 [INFO] [stderr] Checking soup v0.3.0 [INFO] [stderr] Checking reqwest v0.8.8 [INFO] [stderr] Checking self_update v0.4.3 [INFO] [stderr] Checking taskpaper v0.12.2 (/opt/crater/workdir) [INFO] [stderr] warning: using `writeln!(buf, "")` [INFO] [stderr] --> src/lib.rs:279:17 [INFO] [stderr] | [INFO] [stderr] 279 | writeln!(buf, "")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `writeln!(buf)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(buf, "")` [INFO] [stderr] --> src/lib.rs:279:17 [INFO] [stderr] | [INFO] [stderr] 279 | writeln!(buf, "")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `writeln!(buf)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [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/search.rs:335:20 [INFO] [stderr] | [INFO] [stderr] 335 | pub fn is_next(&mut self, c: char) -> 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: item `tag::Tags` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/tag.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | / impl Tags { [INFO] [stderr] 33 | | pub fn new() -> Self { [INFO] [stderr] 34 | | Tags { [INFO] [stderr] 35 | | tags: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `tag::Tags` [INFO] [stderr] --> src/tag.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn new() -> Self { [INFO] [stderr] 34 | | Tags { [INFO] [stderr] 35 | | tags: HashMap::new(), [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 28 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tag.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | / match token.kind { [INFO] [stderr] 275 | | TokenKind::At => { [INFO] [stderr] 276 | | parser.tag().map(|r| tags.push(r)); [INFO] [stderr] 277 | | } [INFO] [stderr] 278 | | _ => (), [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 274 | if let TokenKind::At = token.kind { [INFO] [stderr] 275 | parser.tag().map(|r| tags.push(r)); [INFO] [stderr] 276 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tag.rs:276:17 [INFO] [stderr] | [INFO] [stderr] 276 | parser.tag().map(|r| tags.push(r)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(r) = parser.tag() { tags.push(r) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `TaskpaperFile` [INFO] [stderr] --> src/lib.rs:460:5 [INFO] [stderr] | [INFO] [stderr] 460 | / pub fn new() -> Self { [INFO] [stderr] 461 | | TaskpaperFile { [INFO] [stderr] 462 | | entries: Vec::new(), [INFO] [stderr] 463 | | } [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 414 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:495:22 [INFO] [stderr] | [INFO] [stderr] 495 | let mut it = lines.into_iter().peekable(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `lines` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:622:17 [INFO] [stderr] | [INFO] [stderr] 622 | / match e { [INFO] [stderr] 623 | | Entry::Project(ref mut p) => { [INFO] [stderr] 624 | | recurse(&mut p.children, f); [INFO] [stderr] 625 | | } [INFO] [stderr] 626 | | _ => (), [INFO] [stderr] 627 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 622 | if let Entry::Project(ref mut p) = e { [INFO] [stderr] 623 | recurse(&mut p.children, f); [INFO] [stderr] 624 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:642:9 [INFO] [stderr] | [INFO] [stderr] 642 | &entries.append_to_string(buf, indent, options)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entries.append_to_string(buf, indent, options)?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | tags: tags, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tags` [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/bin/taskpaper/to_inbox.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | tags: tags, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tags` [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: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/search.rs:335:20 [INFO] [stderr] | [INFO] [stderr] 335 | pub fn is_next(&mut self, c: char) -> 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: item `tag::Tags` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/tag.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | / impl Tags { [INFO] [stderr] 33 | | pub fn new() -> Self { [INFO] [stderr] 34 | | Tags { [INFO] [stderr] 35 | | tags: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `tag::Tags` [INFO] [stderr] --> src/tag.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn new() -> Self { [INFO] [stderr] 34 | | Tags { [INFO] [stderr] 35 | | tags: HashMap::new(), [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 28 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tag.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | / match token.kind { [INFO] [stderr] 275 | | TokenKind::At => { [INFO] [stderr] 276 | | parser.tag().map(|r| tags.push(r)); [INFO] [stderr] 277 | | } [INFO] [stderr] 278 | | _ => (), [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 274 | if let TokenKind::At = token.kind { [INFO] [stderr] 275 | parser.tag().map(|r| tags.push(r)); [INFO] [stderr] 276 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tag.rs:276:17 [INFO] [stderr] | [INFO] [stderr] 276 | parser.tag().map(|r| tags.push(r)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(r) = parser.tag() { tags.push(r) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `TaskpaperFile` [INFO] [stderr] --> src/lib.rs:460:5 [INFO] [stderr] | [INFO] [stderr] 460 | / pub fn new() -> Self { [INFO] [stderr] 461 | | TaskpaperFile { [INFO] [stderr] 462 | | entries: Vec::new(), [INFO] [stderr] 463 | | } [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 414 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:495:22 [INFO] [stderr] | [INFO] [stderr] 495 | let mut it = lines.into_iter().peekable(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `lines` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:622:17 [INFO] [stderr] | [INFO] [stderr] 622 | / match e { [INFO] [stderr] 623 | | Entry::Project(ref mut p) => { [INFO] [stderr] 624 | | recurse(&mut p.children, f); [INFO] [stderr] 625 | | } [INFO] [stderr] 626 | | _ => (), [INFO] [stderr] 627 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 622 | if let Entry::Project(ref mut p) = e { [INFO] [stderr] 623 | recurse(&mut p.children, f); [INFO] [stderr] 624 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:642:9 [INFO] [stderr] | [INFO] [stderr] 642 | &entries.append_to_string(buf, indent, options)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entries.append_to_string(buf, indent, options)?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/taskpaper/extract_timeline.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | sorted.entry(due).or_insert(Vec::new()).push(entry); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [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] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/bin/taskpaper/log_done.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | Err(_) => panic!("Encountered unexpected date formatting: {}", p.text), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/bin/taskpaper/extract_timeline.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | sorted.entry(due).or_insert(Vec::new()).push(entry); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [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] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/bin/taskpaper/merge_timelines.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | Err(_) => panic!("Encountered unexpected date formatting: {}", p.text), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/bin/taskpaper/log_done.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | Err(_) => panic!("Encountered unexpected date formatting: {}", p.text), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/bin/taskpaper/merge_timelines.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | Err(_) => panic!("Encountered unexpected date formatting: {}", p.text), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:98:21 [INFO] [stderr] | [INFO] [stderr] 98 | / client [INFO] [stderr] 99 | | .get(&line_without_tags) [INFO] [stderr] 100 | | .send() [INFO] [stderr] 101 | | .ok() [INFO] [stderr] ... | [INFO] [stderr] 134 | | } [INFO] [stderr] 135 | | }); [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 98 | if let Some(soup) = client [INFO] [stderr] 99 | .get(&line_without_tags) [INFO] [stderr] 100 | .send() [INFO] [stderr] 101 | .ok() [INFO] [stderr] 102 | .and_then(|resp| Soup::from_reader(resp).ok()) { ... } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:106:29 [INFO] [stderr] | [INFO] [stderr] 106 | soup.tag("title").find().map(|node| { [INFO] [stderr] | _____________________________^ [INFO] [stderr] | |_____________________________| [INFO] [stderr] | || [INFO] [stderr] 107 | || let text = node.text().trim().to_string(); [INFO] [stderr] 108 | || if !text.is_empty() { [INFO] [stderr] 109 | || description_texts.push(text); [INFO] [stderr] 110 | || } [INFO] [stderr] 111 | || }); [INFO] [stderr] | ||______________________________^- help: try this: `if let Some(node) = soup.tag("title").find() { ... }` [INFO] [stderr] | |_______________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:114:29 [INFO] [stderr] | [INFO] [stderr] 114 | / soup.tag("meta") [INFO] [stderr] 115 | | .attr("name", "description") [INFO] [stderr] 116 | | .find() [INFO] [stderr] 117 | | .map(|node| { [INFO] [stderr] ... | [INFO] [stderr] 128 | | }); [INFO] [stderr] 129 | | }); [INFO] [stderr] | |__________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 114 | if let Some(node) = soup.tag("meta") [INFO] [stderr] 115 | .attr("name", "description") [INFO] [stderr] 116 | .find() { node.attrs().get("content").map(|t| match t.len() { [INFO] [stderr] 117 | 0 => (), [INFO] [stderr] 118 | 1...100 => description_texts.push(t.to_string()), [INFO] [stderr] 119 | _ => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:118:37 [INFO] [stderr] | [INFO] [stderr] 118 | node.attrs().get("content").map(|t| match t.len() { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] | |_____________________________________| [INFO] [stderr] | || [INFO] [stderr] 119 | || 0 => (), [INFO] [stderr] 120 | || 1...100 => description_texts.push(t.to_string()), [INFO] [stderr] 121 | || _ => { [INFO] [stderr] ... || [INFO] [stderr] 127 | || } [INFO] [stderr] 128 | || }); [INFO] [stderr] | ||______________________________________^- help: try this: `if let Some(t) = node.attrs().get("content") { ... }` [INFO] [stderr] | |_______________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:139:42 [INFO] [stderr] | [INFO] [stderr] 139 | if line_without_tags.starts_with(".") || line_without_tags.starts_with(",") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:139:80 [INFO] [stderr] | [INFO] [stderr] 139 | if line_without_tags.starts_with(".") || line_without_tags.starts_with(",") { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:98:21 [INFO] [stderr] | [INFO] [stderr] 98 | / client [INFO] [stderr] 99 | | .get(&line_without_tags) [INFO] [stderr] 100 | | .send() [INFO] [stderr] 101 | | .ok() [INFO] [stderr] ... | [INFO] [stderr] 134 | | } [INFO] [stderr] 135 | | }); [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 98 | if let Some(soup) = client [INFO] [stderr] 99 | .get(&line_without_tags) [INFO] [stderr] 100 | .send() [INFO] [stderr] 101 | .ok() [INFO] [stderr] 102 | .and_then(|resp| Soup::from_reader(resp).ok()) { ... } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:106:29 [INFO] [stderr] | [INFO] [stderr] 106 | soup.tag("title").find().map(|node| { [INFO] [stderr] | _____________________________^ [INFO] [stderr] | |_____________________________| [INFO] [stderr] | || [INFO] [stderr] 107 | || let text = node.text().trim().to_string(); [INFO] [stderr] 108 | || if !text.is_empty() { [INFO] [stderr] 109 | || description_texts.push(text); [INFO] [stderr] 110 | || } [INFO] [stderr] 111 | || }); [INFO] [stderr] | ||______________________________^- help: try this: `if let Some(node) = soup.tag("title").find() { ... }` [INFO] [stderr] | |_______________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:114:29 [INFO] [stderr] | [INFO] [stderr] 114 | / soup.tag("meta") [INFO] [stderr] 115 | | .attr("name", "description") [INFO] [stderr] 116 | | .find() [INFO] [stderr] 117 | | .map(|node| { [INFO] [stderr] ... | [INFO] [stderr] 128 | | }); [INFO] [stderr] 129 | | }); [INFO] [stderr] | |__________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 114 | if let Some(node) = soup.tag("meta") [INFO] [stderr] 115 | .attr("name", "description") [INFO] [stderr] 116 | .find() { node.attrs().get("content").map(|t| match t.len() { [INFO] [stderr] 117 | 0 => (), [INFO] [stderr] 118 | 1...100 => description_texts.push(t.to_string()), [INFO] [stderr] 119 | _ => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:118:37 [INFO] [stderr] | [INFO] [stderr] 118 | node.attrs().get("content").map(|t| match t.len() { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] | |_____________________________________| [INFO] [stderr] | || [INFO] [stderr] 119 | || 0 => (), [INFO] [stderr] 120 | || 1...100 => description_texts.push(t.to_string()), [INFO] [stderr] 121 | || _ => { [INFO] [stderr] ... || [INFO] [stderr] 127 | || } [INFO] [stderr] 128 | || }); [INFO] [stderr] | ||______________________________________^- help: try this: `if let Some(t) = node.attrs().get("content") { ... }` [INFO] [stderr] | |_______________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:139:42 [INFO] [stderr] | [INFO] [stderr] 139 | if line_without_tags.starts_with(".") || line_without_tags.starts_with(",") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bin/taskpaper/to_inbox.rs:139:80 [INFO] [stderr] | [INFO] [stderr] 139 | if line_without_tags.starts_with(".") || line_without_tags.starts_with(",") { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 50s [INFO] running `"docker" "inspect" "07f170fde97c550c2f6cde56523053ec2679e2879a55585a4af9ab7adc7a37f2"` [INFO] running `"docker" "rm" "-f" "07f170fde97c550c2f6cde56523053ec2679e2879a55585a4af9ab7adc7a37f2"` [INFO] [stdout] 07f170fde97c550c2f6cde56523053ec2679e2879a55585a4af9ab7adc7a37f2