[INFO] cloning repository https://github.com/genericlastname/crosspub [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/genericlastname/crosspub" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgenericlastname%2Fcrosspub", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgenericlastname%2Fcrosspub'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 56e76a9969f8e3fe2b7d7b78860296162967e25e [INFO] linting genericlastname/crosspub against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgenericlastname%2Fcrosspub" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/genericlastname/crosspub [INFO] finished tweaking git repo https://github.com/genericlastname/crosspub [INFO] tweaked toml for git repo https://github.com/genericlastname/crosspub written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/genericlastname/crosspub on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/genericlastname/crosspub already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded xdg v2.4.1 [INFO] [stderr] Downloaded thiserror-impl v1.0.31 [INFO] [stderr] Downloaded thiserror v1.0.31 [INFO] [stderr] Downloaded ryu v1.0.10 [INFO] [stderr] Downloaded serde_derive v1.0.137 [INFO] [stderr] Downloaded serde v1.0.137 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5fef144721c0dc4d53f28f76916f28ff5332ee1d819ea8ff296a0e92957ce8d7 [INFO] running `Command { std: "docker" "start" "-a" "5fef144721c0dc4d53f28f76916f28ff5332ee1d819ea8ff296a0e92957ce8d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5fef144721c0dc4d53f28f76916f28ff5332ee1d819ea8ff296a0e92957ce8d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5fef144721c0dc4d53f28f76916f28ff5332ee1d819ea8ff296a0e92957ce8d7", kill_on_drop: false }` [INFO] [stdout] 5fef144721c0dc4d53f28f76916f28ff5332ee1d819ea8ff296a0e92957ce8d7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ee6fe39afce88e8b5542115445083ddcafc3beff4c964167efd5e7d36f69fd89 [INFO] running `Command { std: "docker" "start" "-a" "ee6fe39afce88e8b5542115445083ddcafc3beff4c964167efd5e7d36f69fd89", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.39 [INFO] [stderr] Compiling unicode-ident v1.0.0 [INFO] [stderr] Compiling syn v1.0.95 [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling serde_derive v1.0.137 [INFO] [stderr] Compiling serde v1.0.137 [INFO] [stderr] Compiling serde_json v1.0.81 [INFO] [stderr] Checking os_str_bytes v6.1.0 [INFO] [stderr] Checking itoa v1.0.2 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Checking ryu v1.0.10 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling indexmap v1.8.2 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Checking clap_lex v0.2.0 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking xdg v2.4.1 [INFO] [stderr] Compiling quote v1.0.18 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Compiling clap_derive v3.1.18 [INFO] [stderr] Checking clap v3.1.18 [INFO] [stderr] Checking toml v0.5.9 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking crosspub v0.5.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/crosspub.rs:1092:13 [INFO] [stdout] | [INFO] [stdout] 1092 | entries: entries, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `entries` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/crosspub.rs:1217:13 [INFO] [stdout] | [INFO] [stdout] 1217 | entries: entries, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `entries` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | use xdg; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/crosspub.rs:1092:13 [INFO] [stdout] | [INFO] [stdout] 1092 | entries: entries, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `entries` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/crosspub.rs:1217:13 [INFO] [stdout] | [INFO] [stdout] 1217 | entries: entries, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `entries` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | use xdg; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/crosspub.rs:107:36 [INFO] [stdout] | [INFO] [stdout] 107 | let posts_path: PathBuf = [&path.to_str().unwrap(), "posts"].iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `path.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/crosspub.rs:115:37 [INFO] [stdout] | [INFO] [stdout] 115 | let topics_path: PathBuf = [&path.to_str().unwrap(), "topics"].iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `path.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 183 | / template_file = OpenOptions::new() [INFO] [stdout] 184 | | .read(true) [INFO] [stdout] 185 | | .open(index_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 173 ~ [INFO] [stdout] 174 | let index_template_path = self.xdg_dirs.find_data_file("templates/html/index.html"); [INFO] [stdout] ... [INFO] [stdout] 182 | [INFO] [stdout] 183 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 259 | / template_file = OpenOptions::new() [INFO] [stdout] 260 | | .read(true) [INFO] [stdout] 261 | | .open(postlist_template_path); [INFO] [stdout] | |_________________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 253 ~ [INFO] [stdout] 254 | let postlist_template_path: PathBuf = [ [INFO] [stdout] ... [INFO] [stdout] 258 | [INFO] [stdout] 259 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 338 | / template_file = OpenOptions::new() [INFO] [stdout] 339 | | .read(true) [INFO] [stdout] 340 | | .open(postlist_template_path); [INFO] [stdout] | |_________________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 332 ~ [INFO] [stdout] 333 | let postlist_template_path: PathBuf = [ [INFO] [stdout] ... [INFO] [stdout] 337 | [INFO] [stdout] 338 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:411:9 [INFO] [stdout] | [INFO] [stdout] 411 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 421 | / template_file = OpenOptions::new() [INFO] [stdout] 422 | | .read(true) [INFO] [stdout] 423 | | .open(index_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 411 ~ [INFO] [stdout] 412 | let index_template_path = self.xdg_dirs.find_data_file("templates/gemini/index.gmi"); [INFO] [stdout] ... [INFO] [stdout] 420 | [INFO] [stdout] 421 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:674:9 [INFO] [stdout] | [INFO] [stdout] 674 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 682 | / template_file = OpenOptions::new() [INFO] [stdout] 683 | | .read(true) [INFO] [stdout] 684 | | .open(post_template_path); [INFO] [stdout] | |_____________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 674 ~ [INFO] [stdout] 675 | let post_template_path = match self.xdg_dirs.find_data_file("templates/html/post.html") { [INFO] [stdout] ... [INFO] [stdout] 681 | }; [INFO] [stdout] 682 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:757:9 [INFO] [stdout] | [INFO] [stdout] 757 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 765 | / template_file = OpenOptions::new() [INFO] [stdout] 766 | | .read(true) [INFO] [stdout] 767 | | .open(topic_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 757 ~ [INFO] [stdout] 758 | let topic_template_path = match self.xdg_dirs.find_data_file("templates/html/topic.html") { [INFO] [stdout] ... [INFO] [stdout] 764 | }; [INFO] [stdout] 765 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:838:9 [INFO] [stdout] | [INFO] [stdout] 838 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 846 | / template_file = OpenOptions::new() [INFO] [stdout] 847 | | .read(true) [INFO] [stdout] 848 | | .open(post_template_path); [INFO] [stdout] | |_____________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 838 ~ [INFO] [stdout] 839 | let post_template_path = match self.xdg_dirs.find_data_file("templates/gemini/post.gmi") { [INFO] [stdout] ... [INFO] [stdout] 845 | }; [INFO] [stdout] 846 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:921:9 [INFO] [stdout] | [INFO] [stdout] 921 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 929 | / template_file = OpenOptions::new() [INFO] [stdout] 930 | | .read(true) [INFO] [stdout] 931 | | .open(topic_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 921 ~ [INFO] [stdout] 922 | let topic_template_path = match self.xdg_dirs.find_data_file("templates/gemini/topic.gmi") { [INFO] [stdout] ... [INFO] [stdout] 928 | }; [INFO] [stdout] 929 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/crosspub.rs:1255:50 [INFO] [stdout] | [INFO] [stdout] 1255 | let date = NaiveDate::parse_from_str(&s, "%Y-%m-%d"); [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/post.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | post.title = frontmatter.title; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `post::Post { title: frontmatter.title, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/post.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | let mut post = Post::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/topic.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / topic.title = match lines[1].parse::() { [INFO] [stdout] 37 | | Ok(v) => { [INFO] [stdout] 38 | | let s = v["title"].to_string(); [INFO] [stdout] 39 | | let end = s.len() - 1; [INFO] [stdout] ... | [INFO] [stdout] 46 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `topic::Topic { title: match lines[1].parse::() { [INFO] [stdout] Ok(v) => { [INFO] [stdout] let s = v["title"].to_string(); [INFO] [stdout] let end = s.len() - 1; [INFO] [stdout] s[1..end].to_string() [INFO] [stdout] }, [INFO] [stdout] Err(_) => { [INFO] [stdout] eprintln!("Could not parse frontmatter title."); [INFO] [stdout] exit(1); [INFO] [stdout] } [INFO] [stdout] }, filename: match lines[2].parse::() { [INFO] [stdout] Ok(v) => { [INFO] [stdout] let s = v["slug"].to_string(); [INFO] [stdout] let end = s.len() - 1; [INFO] [stdout] s[1..end].to_string() [INFO] [stdout] }, [INFO] [stdout] Err(_) => { [INFO] [stdout] eprintln!("Could not parse frontmatter slug."); [INFO] [stdout] exit(1); [INFO] [stdout] } [INFO] [stdout] }, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/topic.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let mut topic = Topic::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | if !args.config.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `args.config.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its scrutinee and body [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | / match fs::create_dir("~/.config/crosspub") { [INFO] [stdout] 53 | | _ => {} [INFO] [stdout] 54 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using the scrutinee and body instead [INFO] [stdout] | [INFO] [stdout] 52 ~ fs::create_dir("~/.config/crosspub"); [INFO] [stdout] 53 + {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | let config_path: PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `config_path` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 67 ~ [INFO] [stdout] 68 | [INFO] [stdout] 69 ~ let config_path: PathBuf = if !args.config.is_none() { [INFO] [stdout] 70 ~ args.config.clone().unwrap() [INFO] [stdout] 71 | } else { [INFO] [stdout] 72 ~ match xdg_dirs.find_config_file("config.toml") { [INFO] [stdout] 73 | Some(p) => p, [INFO] [stdout] ... [INFO] [stdout] 77 | } [INFO] [stdout] 78 ~ } [INFO] [stdout] 79 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/crosspub.rs:107:36 [INFO] [stdout] | [INFO] [stdout] 107 | let posts_path: PathBuf = [&path.to_str().unwrap(), "posts"].iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `path.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/crosspub.rs:115:37 [INFO] [stdout] | [INFO] [stdout] 115 | let topics_path: PathBuf = [&path.to_str().unwrap(), "topics"].iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `path.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 183 | / template_file = OpenOptions::new() [INFO] [stdout] 184 | | .read(true) [INFO] [stdout] 185 | | .open(index_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 173 ~ [INFO] [stdout] 174 | let index_template_path = self.xdg_dirs.find_data_file("templates/html/index.html"); [INFO] [stdout] ... [INFO] [stdout] 182 | [INFO] [stdout] 183 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 259 | / template_file = OpenOptions::new() [INFO] [stdout] 260 | | .read(true) [INFO] [stdout] 261 | | .open(postlist_template_path); [INFO] [stdout] | |_________________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 253 ~ [INFO] [stdout] 254 | let postlist_template_path: PathBuf = [ [INFO] [stdout] ... [INFO] [stdout] 258 | [INFO] [stdout] 259 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 338 | / template_file = OpenOptions::new() [INFO] [stdout] 339 | | .read(true) [INFO] [stdout] 340 | | .open(postlist_template_path); [INFO] [stdout] | |_________________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 332 ~ [INFO] [stdout] 333 | let postlist_template_path: PathBuf = [ [INFO] [stdout] ... [INFO] [stdout] 337 | [INFO] [stdout] 338 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:411:9 [INFO] [stdout] | [INFO] [stdout] 411 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 421 | / template_file = OpenOptions::new() [INFO] [stdout] 422 | | .read(true) [INFO] [stdout] 423 | | .open(index_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 411 ~ [INFO] [stdout] 412 | let index_template_path = self.xdg_dirs.find_data_file("templates/gemini/index.gmi"); [INFO] [stdout] ... [INFO] [stdout] 420 | [INFO] [stdout] 421 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:674:9 [INFO] [stdout] | [INFO] [stdout] 674 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 682 | / template_file = OpenOptions::new() [INFO] [stdout] 683 | | .read(true) [INFO] [stdout] 684 | | .open(post_template_path); [INFO] [stdout] | |_____________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 674 ~ [INFO] [stdout] 675 | let post_template_path = match self.xdg_dirs.find_data_file("templates/html/post.html") { [INFO] [stdout] ... [INFO] [stdout] 681 | }; [INFO] [stdout] 682 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:757:9 [INFO] [stdout] | [INFO] [stdout] 757 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 765 | / template_file = OpenOptions::new() [INFO] [stdout] 766 | | .read(true) [INFO] [stdout] 767 | | .open(topic_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 757 ~ [INFO] [stdout] 758 | let topic_template_path = match self.xdg_dirs.find_data_file("templates/html/topic.html") { [INFO] [stdout] ... [INFO] [stdout] 764 | }; [INFO] [stdout] 765 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:838:9 [INFO] [stdout] | [INFO] [stdout] 838 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 846 | / template_file = OpenOptions::new() [INFO] [stdout] 847 | | .read(true) [INFO] [stdout] 848 | | .open(post_template_path); [INFO] [stdout] | |_____________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 838 ~ [INFO] [stdout] 839 | let post_template_path = match self.xdg_dirs.find_data_file("templates/gemini/post.gmi") { [INFO] [stdout] ... [INFO] [stdout] 845 | }; [INFO] [stdout] 846 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/crosspub.rs:921:9 [INFO] [stdout] | [INFO] [stdout] 921 | let template_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 929 | / template_file = OpenOptions::new() [INFO] [stdout] 930 | | .read(true) [INFO] [stdout] 931 | | .open(topic_template_path); [INFO] [stdout] | |______________________________________^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `template_file` here [INFO] [stdout] | [INFO] [stdout] 921 ~ [INFO] [stdout] 922 | let topic_template_path = match self.xdg_dirs.find_data_file("templates/gemini/topic.gmi") { [INFO] [stdout] ... [INFO] [stdout] 928 | }; [INFO] [stdout] 929 ~ let template_file = OpenOptions::new() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/crosspub.rs:1255:50 [INFO] [stdout] | [INFO] [stdout] 1255 | let date = NaiveDate::parse_from_str(&s, "%Y-%m-%d"); [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/post.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | post.title = frontmatter.title; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `post::Post { title: frontmatter.title, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/post.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | let mut post = Post::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/topic.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / topic.title = match lines[1].parse::() { [INFO] [stdout] 37 | | Ok(v) => { [INFO] [stdout] 38 | | let s = v["title"].to_string(); [INFO] [stdout] 39 | | let end = s.len() - 1; [INFO] [stdout] ... | [INFO] [stdout] 46 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `topic::Topic { title: match lines[1].parse::() { [INFO] [stdout] Ok(v) => { [INFO] [stdout] let s = v["title"].to_string(); [INFO] [stdout] let end = s.len() - 1; [INFO] [stdout] s[1..end].to_string() [INFO] [stdout] }, [INFO] [stdout] Err(_) => { [INFO] [stdout] eprintln!("Could not parse frontmatter title."); [INFO] [stdout] exit(1); [INFO] [stdout] } [INFO] [stdout] }, filename: match lines[2].parse::() { [INFO] [stdout] Ok(v) => { [INFO] [stdout] let s = v["slug"].to_string(); [INFO] [stdout] let end = s.len() - 1; [INFO] [stdout] s[1..end].to_string() [INFO] [stdout] }, [INFO] [stdout] Err(_) => { [INFO] [stdout] eprintln!("Could not parse frontmatter slug."); [INFO] [stdout] exit(1); [INFO] [stdout] } [INFO] [stdout] }, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/topic.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let mut topic = Topic::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | if !args.config.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `args.config.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its scrutinee and body [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | / match fs::create_dir("~/.config/crosspub") { [INFO] [stdout] 53 | | _ => {} [INFO] [stdout] 54 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using the scrutinee and body instead [INFO] [stdout] | [INFO] [stdout] 52 ~ fs::create_dir("~/.config/crosspub"); [INFO] [stdout] 53 + {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | let config_path: PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `config_path` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 67 ~ [INFO] [stdout] 68 | [INFO] [stdout] 69 ~ let config_path: PathBuf = if !args.config.is_none() { [INFO] [stdout] 70 ~ args.config.clone().unwrap() [INFO] [stdout] 71 | } else { [INFO] [stdout] 72 ~ match xdg_dirs.find_config_file("config.toml") { [INFO] [stdout] 73 | Some(p) => p, [INFO] [stdout] ... [INFO] [stdout] 77 | } [INFO] [stdout] 78 ~ } [INFO] [stdout] 79 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.40s [INFO] running `Command { std: "docker" "inspect" "ee6fe39afce88e8b5542115445083ddcafc3beff4c964167efd5e7d36f69fd89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ee6fe39afce88e8b5542115445083ddcafc3beff4c964167efd5e7d36f69fd89", kill_on_drop: false }` [INFO] [stdout] ee6fe39afce88e8b5542115445083ddcafc3beff4c964167efd5e7d36f69fd89