[INFO] fetching crate breb 0.1.2... [INFO] linting breb-0.1.2 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate breb 0.1.2 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate breb 0.1.2 [INFO] finished tweaking crates.io crate breb 0.1.2 [INFO] tweaked toml for crates.io crate breb 0.1.2 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate breb 0.1.2 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 crates.io crate breb 0.1.2 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] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded phf_codegen v0.11.2 [INFO] [stderr] Downloaded mac v0.1.1 [INFO] [stderr] Downloaded futf v0.1.5 [INFO] [stderr] Downloaded scraper v0.21.0 [INFO] [stderr] Downloaded servo_arc v0.4.0 [INFO] [stderr] Downloaded tendril v0.4.3 [INFO] [stderr] Downloaded uuid v1.10.0 [INFO] [stderr] Downloaded dtoa-short v0.3.5 [INFO] [stderr] Downloaded darling_macro v0.20.10 [INFO] [stderr] Downloaded iana-time-zone v0.1.61 [INFO] [stderr] Downloaded maud v0.26.0 [INFO] [stderr] Downloaded maud_macros v0.26.0 [INFO] [stderr] Downloaded dtoa v1.0.9 [INFO] [stderr] Downloaded phf_generator v0.11.2 [INFO] [stderr] Downloaded atom_syndication v0.12.4 [INFO] [stderr] Downloaded darling v0.20.10 [INFO] [stderr] Downloaded darling_core v0.20.10 [INFO] [stderr] Downloaded sized-chunks v0.6.5 [INFO] [stderr] Downloaded string_cache v0.8.7 [INFO] [stderr] Downloaded markup5ever v0.14.0 [INFO] [stderr] Downloaded html5ever v0.29.0 [INFO] [stderr] Downloaded im v15.1.0 [INFO] [stderr] Downloaded cssparser v0.34.0 [INFO] [stderr] Downloaded derive_more v0.99.18 [INFO] [stderr] Downloaded proc-macro2 v1.0.87 [INFO] [stderr] Downloaded pure-rust-locales v0.8.1 [INFO] [stderr] Downloaded selectors v0.26.0 [INFO] [stderr] Downloaded bitmaps v2.1.0 [INFO] [stderr] Downloaded phf v0.11.2 [INFO] [stderr] Downloaded string_cache_codegen v0.5.2 [INFO] [stderr] Downloaded phf_macros v0.11.2 [INFO] [stderr] Downloaded ego-tree v0.9.0 [INFO] [stderr] Downloaded cssparser-macros v0.6.1 [INFO] [stderr] Downloaded rand_xoshiro v0.6.0 [INFO] [stderr] Downloaded phf_shared v0.11.2 [INFO] [stderr] Downloaded libc v0.2.159 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 04205612c329fd1f62c76f3e1f4c3034c0009ed4c5ec8094796687520fc736bd [INFO] running `Command { std: "docker" "start" "-a" "04205612c329fd1f62c76f3e1f4c3034c0009ed4c5ec8094796687520fc736bd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "04205612c329fd1f62c76f3e1f4c3034c0009ed4c5ec8094796687520fc736bd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "04205612c329fd1f62c76f3e1f4c3034c0009ed4c5ec8094796687520fc736bd", kill_on_drop: false }` [INFO] [stdout] 04205612c329fd1f62c76f3e1f4c3034c0009ed4c5ec8094796687520fc736bd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 80af2b7ec361ce60d74844b7a9e09b138a308954f2c7dc44513686584e36ea6c [INFO] running `Command { std: "docker" "start" "-a" "80af2b7ec361ce60d74844b7a9e09b138a308954f2c7dc44513686584e36ea6c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.87 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Checking mac v0.1.1 [INFO] [stderr] Compiling phf_shared v0.11.2 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Checking futf v0.1.5 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking dtoa v1.0.9 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking pure-rust-locales v0.8.1 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking bitmaps v2.1.0 [INFO] [stderr] Checking servo_arc v0.4.0 [INFO] [stderr] Compiling im v15.1.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tendril v0.4.3 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking rand_xoshiro v0.6.0 [INFO] [stderr] Checking ego-tree v0.9.0 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking glob v0.3.1 [INFO] [stderr] Checking quick-xml v0.36.2 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking getopts v0.2.21 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.79 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking sized-chunks v0.6.5 [INFO] [stderr] Checking string_cache v0.8.7 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling html5ever v0.29.0 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling maud_macros v0.26.0 [INFO] [stderr] Checking maud v0.26.0 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Checking diligent-date-parser v0.1.4 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Checking derive_builder v0.20.2 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Compiling phf_generator v0.10.0 [INFO] [stderr] Compiling string_cache_codegen v0.5.2 [INFO] [stderr] Compiling phf_codegen v0.11.2 [INFO] [stderr] Compiling phf_macros v0.11.2 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Checking atom_syndication v0.12.4 [INFO] [stderr] Compiling markup5ever v0.14.0 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Checking cssparser v0.34.0 [INFO] [stderr] Checking scraper v0.21.0 [INFO] [stderr] Checking breb v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:54:6 [INFO] [stdout] | [INFO] [stdout] 54 | /// Blog::builder() [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] = note: `#[warn(clippy::tabs_in_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:55:6 [INFO] [stdout] | [INFO] [stdout] 55 | /// .base_dir(in_dir) [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | /// .base_url("https://example.com/") [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:57:6 [INFO] [stdout] | [INFO] [stdout] 57 | /// .name("examplecom example blog") [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | /// .author(Author::new("thor, a. u.").email("author@example.com")) [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:59:6 [INFO] [stdout] | [INFO] [stdout] 59 | /// .serve(Feed::atom("/feed.xml")) [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | /// # Blog::builder() [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | /// # .base_dir("").base_url("").name("") [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | /// # .skip_author_check().skip_serve_check() [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:73:6 [INFO] [stdout] | [INFO] [stdout] 73 | /// boilerplate(make_blog); [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:54:6 [INFO] [stdout] | [INFO] [stdout] 54 | /// Blog::builder() [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] = note: `#[warn(clippy::tabs_in_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:55:6 [INFO] [stdout] | [INFO] [stdout] 55 | /// .base_dir(in_dir) [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | /// .base_url("https://example.com/") [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:57:6 [INFO] [stdout] | [INFO] [stdout] 57 | /// .name("examplecom example blog") [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | /// .author(Author::new("thor, a. u.").email("author@example.com")) [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:59:6 [INFO] [stdout] | [INFO] [stdout] 59 | /// .serve(Feed::atom("/feed.xml")) [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | /// # Blog::builder() [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | /// # .base_dir("").base_url("").name("") [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | /// # .skip_author_check().skip_serve_check() [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:73:6 [INFO] [stdout] | [INFO] [stdout] 73 | /// boilerplate(make_blog); [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parse/html.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | if !VOIDS.binary_search(&e.name()).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `VOIDS.binary_search(&e.name()).is_err()` [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 can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:31:35 [INFO] [stdout] | [INFO] [stdout] 31 | Node::Doctype(d) => return Err(io::Error::new( [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 32 | | io::ErrorKind::Other, [INFO] [stdout] 33 | | format!("cannot have doctype ({d:?}) in body"), [INFO] [stdout] 34 | | )), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 31 ~ Node::Doctype(d) => return Err(io::Error::other( [INFO] [stdout] 32 ~ format!("cannot have doctype ({d:?}) in body"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:35:50 [INFO] [stdout] | [INFO] [stdout] 35 | Node::ProcessingInstruction(pi) => return Err(io::Error::new( [INFO] [stdout] | ___________________________________________________________^ [INFO] [stdout] 36 | | io::ErrorKind::Other, [INFO] [stdout] 37 | | format!("cannot have PI () in body", pi.target, pi.data), [INFO] [stdout] 38 | | )), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 35 ~ Node::ProcessingInstruction(pi) => return Err(io::Error::other( [INFO] [stdout] 36 ~ format!("cannot have PI () in body", pi.target, pi.data), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/parse/html.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | for word in c.trim().split_whitespace() { [INFO] [stdout] | ^^^^^^^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] = note: `#[warn(clippy::trim_split_whitespace)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 85 | return Err(io::Error::new( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 86 | | io::ErrorKind::Other, [INFO] [stdout] 87 | | format!(" cannot have children (make sure to close it!)"), [INFO] [stdout] 88 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 85 ~ return Err(io::Error::other( [INFO] [stdout] 86 ~ format!(" cannot have children (make sure to close it!)"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:107:18 [INFO] [stdout] | [INFO] [stdout] 107 | return Err(io::Error::new( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 108 | | io::ErrorKind::Other, [INFO] [stdout] 109 | | format!(" doesn't define a collection?"), [INFO] [stdout] 110 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 107 ~ return Err(io::Error::other( [INFO] [stdout] 108 ~ format!(" doesn't define a collection?"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | return Err(io::Error::new(io::ErrorKind::Other, "unrecognized kind of ")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 119 - return Err(io::Error::new(io::ErrorKind::Other, "unrecognized kind of ")); [INFO] [stdout] 119 + return Err(io::Error::other("unrecognized kind of ")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/parse/html.rs:129:10 [INFO] [stdout] | [INFO] [stdout] 129 | if val == "" { [INFO] [stdout] | ^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `val.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:130:19 [INFO] [stdout] | [INFO] [stdout] 130 | ... return Err(io::Error::new( [INFO] [stdout] | __________________________________^ [INFO] [stdout] 131 | | ... io::ErrorKind::Other, [INFO] [stdout] 132 | | ... format!("<{} {}> dyn: attribute cannot be empty", e.name(), name), [INFO] [stdout] 133 | | ... )); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 130 ~ return Err(io::Error::other( [INFO] [stdout] 131 ~ format!("<{} {}> dyn: attribute cannot be empty", e.name(), name), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/parse/html.rs:141:10 [INFO] [stdout] | [INFO] [stdout] 141 | if val != "" { [INFO] [stdout] | ^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!val.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:190:42 [INFO] [stdout] | [INFO] [stdout] 190 | let prop = meta.attr("property").ok_or(io::Error::new( [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 191 | | io::ErrorKind::Other, [INFO] [stdout] 192 | | format!(" tag without property= in frontmatter"), [INFO] [stdout] 193 | | ))?; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 190 ~ let prop = meta.attr("property").ok_or(io::Error::other( [INFO] [stdout] 191 ~ format!(" tag without property= in frontmatter"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parse/html.rs:192:4 [INFO] [stdout] | [INFO] [stdout] 192 | format!(" tag without property= in frontmatter"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `" tag without property= in frontmatter".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:194:46 [INFO] [stdout] | [INFO] [stdout] 194 | let name = prop.strip_prefix("brb:").ok_or(io::Error::new( [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 195 | | io::ErrorKind::Other, [INFO] [stdout] 196 | | format!("non-brb tag in frontmatter"), [INFO] [stdout] 197 | | ))?; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 194 ~ let name = prop.strip_prefix("brb:").ok_or(io::Error::other( [INFO] [stdout] 195 ~ format!("non-brb tag in frontmatter"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parse/html.rs:196:4 [INFO] [stdout] | [INFO] [stdout] 196 | format!("non-brb tag in frontmatter"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"non-brb tag in frontmatter".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:198:42 [INFO] [stdout] | [INFO] [stdout] 198 | let value = meta.attr("content").ok_or(io::Error::new( [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 199 | | io::ErrorKind::Other, [INFO] [stdout] 200 | | format!(" has no content attr"), [INFO] [stdout] 201 | | ))?; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 198 ~ let value = meta.attr("content").ok_or(io::Error::other( [INFO] [stdout] 199 ~ format!(" has no content attr"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/blog/mod.rs:99:16 [INFO] [stdout] | [INFO] [stdout] 99 | serve.list(&self).into_iter().map(move |url| (base, url)) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/blog/mod.rs:130:33 [INFO] [stdout] | [INFO] [stdout] 130 | 'urls: for url in serve.list(&self) { [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/blog/mod.rs:142:20 [INFO] [stdout] | [INFO] [stdout] 142 | serve.metadata(&self, &url, &mut metadata) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/blog/mod.rs:148:28 [INFO] [stdout] | [INFO] [stdout] 148 | self.stylesheets.extend(metadata.stylesheets.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 148 - self.stylesheets.extend(metadata.stylesheets.into_iter()); [INFO] [stdout] 148 + self.stylesheets.extend(metadata.stylesheets); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parse/html.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | if !VOIDS.binary_search(&e.name()).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `VOIDS.binary_search(&e.name()).is_err()` [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: you seem to want to iterate on a map's values [INFO] [stdout] --> src/blog/mod.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | for (_, posts) in &mut self.posts { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 150 - for (_, posts) in &mut self.posts { [INFO] [stdout] 150 + for posts in self.posts.values_mut() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/blog/mod.rs:169:36 [INFO] [stdout] | [INFO] [stdout] 169 | serve.respond(self, url).map_err(|e| BlogError::Io(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `BlogError::Io` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:31:35 [INFO] [stdout] | [INFO] [stdout] 31 | Node::Doctype(d) => return Err(io::Error::new( [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 32 | | io::ErrorKind::Other, [INFO] [stdout] 33 | | format!("cannot have doctype ({d:?}) in body"), [INFO] [stdout] 34 | | )), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 31 ~ Node::Doctype(d) => return Err(io::Error::other( [INFO] [stdout] 32 ~ format!("cannot have doctype ({d:?}) in body"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:35:50 [INFO] [stdout] | [INFO] [stdout] 35 | Node::ProcessingInstruction(pi) => return Err(io::Error::new( [INFO] [stdout] | ___________________________________________________________^ [INFO] [stdout] 36 | | io::ErrorKind::Other, [INFO] [stdout] 37 | | format!("cannot have PI () in body", pi.target, pi.data), [INFO] [stdout] 38 | | )), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 35 ~ Node::ProcessingInstruction(pi) => return Err(io::Error::other( [INFO] [stdout] 36 ~ format!("cannot have PI () in body", pi.target, pi.data), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found call to `str::trim` before `str::split_whitespace` [INFO] [stdout] --> src/parse/html.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | for word in c.trim().split_whitespace() { [INFO] [stdout] | ^^^^^^^ help: remove `trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace [INFO] [stdout] = note: `#[warn(clippy::trim_split_whitespace)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 85 | return Err(io::Error::new( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 86 | | io::ErrorKind::Other, [INFO] [stdout] 87 | | format!(" cannot have children (make sure to close it!)"), [INFO] [stdout] 88 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 85 ~ return Err(io::Error::other( [INFO] [stdout] 86 ~ format!(" cannot have children (make sure to close it!)"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/blog/mod.rs:231:24 [INFO] [stdout] | [INFO] [stdout] 231 | fs::create_dir_all(&p)?; [INFO] [stdout] | ^^ help: change this to: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:107:18 [INFO] [stdout] | [INFO] [stdout] 107 | return Err(io::Error::new( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 108 | | io::ErrorKind::Other, [INFO] [stdout] 109 | | format!(" doesn't define a collection?"), [INFO] [stdout] 110 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 107 ~ return Err(io::Error::other( [INFO] [stdout] 108 ~ format!(" doesn't define a collection?"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | return Err(io::Error::new(io::ErrorKind::Other, "unrecognized kind of ")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 119 - return Err(io::Error::new(io::ErrorKind::Other, "unrecognized kind of ")); [INFO] [stdout] 119 + return Err(io::Error::other("unrecognized kind of ")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/parse/html.rs:129:10 [INFO] [stdout] | [INFO] [stdout] 129 | if val == "" { [INFO] [stdout] | ^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `val.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:130:19 [INFO] [stdout] | [INFO] [stdout] 130 | ... return Err(io::Error::new( [INFO] [stdout] | __________________________________^ [INFO] [stdout] 131 | | ... io::ErrorKind::Other, [INFO] [stdout] 132 | | ... format!("<{} {}> dyn: attribute cannot be empty", e.name(), name), [INFO] [stdout] 133 | | ... )); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 130 ~ return Err(io::Error::other( [INFO] [stdout] 131 ~ format!("<{} {}> dyn: attribute cannot be empty", e.name(), name), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/parse/html.rs:141:10 [INFO] [stdout] | [INFO] [stdout] 141 | if val != "" { [INFO] [stdout] | ^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!val.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:70:44 [INFO] [stdout] | [INFO] [stdout] 70 | BodyBlock::Static(s) => buffer.push_str(&s), [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:71:61 [INFO] [stdout] | [INFO] [stdout] 71 | BodyBlock::Subst { var, params } => match self.input.get(&var) { [INFO] [stdout] | ^^^^ help: change this to: `var` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:72:41 [INFO] [stdout] | [INFO] [stdout] 72 | Some(InputItem::String(s)) => quote(&s, buffer), [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | let var = self.input.get(&var); [INFO] [stdout] | ^^^^ help: change this to: `var` [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: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:190:42 [INFO] [stdout] | [INFO] [stdout] 190 | let prop = meta.attr("property").ok_or(io::Error::new( [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 191 | | io::ErrorKind::Other, [INFO] [stdout] 192 | | format!(" tag without property= in frontmatter"), [INFO] [stdout] 193 | | ))?; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 190 ~ let prop = meta.attr("property").ok_or(io::Error::other( [INFO] [stdout] 191 ~ format!(" tag without property= in frontmatter"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:93:37 [INFO] [stdout] | [INFO] [stdout] 93 | let Some(coll) = self.input.get(&coll) else { panic!("unknown variable: {coll:?}") }; [INFO] [stdout] | ^^^^^ help: change this to: `coll` [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: useless use of `format!` [INFO] [stdout] --> src/parse/html.rs:192:4 [INFO] [stdout] | [INFO] [stdout] 192 | format!(" tag without property= in frontmatter"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `" tag without property= in frontmatter".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:194:46 [INFO] [stdout] | [INFO] [stdout] 194 | let name = prop.strip_prefix("brb:").ok_or(io::Error::new( [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 195 | | io::ErrorKind::Other, [INFO] [stdout] 196 | | format!("non-brb tag in frontmatter"), [INFO] [stdout] 197 | | ))?; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 194 ~ let name = prop.strip_prefix("brb:").ok_or(io::Error::other( [INFO] [stdout] 195 ~ format!("non-brb tag in frontmatter"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parse/html.rs:196:4 [INFO] [stdout] | [INFO] [stdout] 196 | format!("non-brb tag in frontmatter"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"non-brb tag in frontmatter".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/parse/html.rs:198:42 [INFO] [stdout] | [INFO] [stdout] 198 | let value = meta.attr("content").ok_or(io::Error::new( [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 199 | | io::ErrorKind::Other, [INFO] [stdout] 200 | | format!(" has no content attr"), [INFO] [stdout] 201 | | ))?; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 198 ~ let value = meta.attr("content").ok_or(io::Error::other( [INFO] [stdout] 199 ~ format!(" has no content attr"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/dynamic/body.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | / impl<'b> ToString for BodyRender<'b> { [INFO] [stdout] 76 | | fn to_string(&self) -> String { [INFO] [stdout] 77 | | self.render().0 [INFO] [stdout] 78 | | } [INFO] [stdout] 79 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/dynamic/input.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | impl<'s> Input { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` 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/dynamic/input.rs:88:15 [INFO] [stdout] | [INFO] [stdout] 88 | T::to_input(&self) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this lifetime isn't used in the function definition [INFO] [stdout] --> src/serve/asis.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn new<'p>(url: impl Into, dir: impl Into) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/serve/asis.rs:88:3 [INFO] [stdout] | [INFO] [stdout] 88 | / match url.extension().and_then(OsStr::to_str) { [INFO] [stdout] 89 | | Some("css") => if let Some(name) = url.file_name().and_then(OsStr::to_str) { [INFO] [stdout] 90 | | meta.stylesheet(name, url.clone()); [INFO] [stdout] ... | [INFO] [stdout] 93 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 88 ~ if let Some("css") = url.extension().and_then(OsStr::to_str) { if let Some(name) = url.file_name().and_then(OsStr::to_str) { [INFO] [stdout] 89 ~ meta.stylesheet(name, url.clone()); [INFO] [stdout] 90 ~ } }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/serve/html.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 47 | let url = self.mount.url(&Dir(rel.into())); [INFO] [stdout] | ------------------------------------------- unnecessary `let` binding [INFO] [stdout] 48 | url [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 47 ~ [INFO] [stdout] 48 ~ self.mount.url(&Dir(rel.into())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/serve/html.rs:54:40 [INFO] [stdout] | [INFO] [stdout] 54 | let path = self.mount.dir(url).ok_or(io::Error::new( [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 55 | | io::ErrorKind::Other, [INFO] [stdout] 56 | | format!("{url:?} isn't served by {:?}", self.mount.url), [INFO] [stdout] 57 | | ))?.0; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 54 ~ let path = self.mount.dir(url).ok_or(io::Error::other( [INFO] [stdout] 55 ~ format!("{url:?} isn't served by {:?}", self.mount.url), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/blog/mod.rs:99:16 [INFO] [stdout] | [INFO] [stdout] 99 | serve.list(&self).into_iter().map(move |url| (base, url)) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/blog/mod.rs:130:33 [INFO] [stdout] | [INFO] [stdout] 130 | 'urls: for url in serve.list(&self) { [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/blog/mod.rs:142:20 [INFO] [stdout] | [INFO] [stdout] 142 | serve.metadata(&self, &url, &mut metadata) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/serve/page.rs:27:24 [INFO] [stdout] | [INFO] [stdout] 27 | PageRenderer { meta: &self, blog, stylesheets: blog.resolve(styles), nav } [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/blog/mod.rs:148:28 [INFO] [stdout] | [INFO] [stdout] 148 | self.stylesheets.extend(metadata.stylesheets.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 148 - self.stylesheets.extend(metadata.stylesheets.into_iter()); [INFO] [stdout] 148 + self.stylesheets.extend(metadata.stylesheets); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/blog/mod.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | for (_, posts) in &mut self.posts { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 150 - for (_, posts) in &mut self.posts { [INFO] [stdout] 150 + for posts in self.posts.values_mut() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/blog/mod.rs:169:36 [INFO] [stdout] | [INFO] [stdout] 169 | serve.respond(self, url).map_err(|e| BlogError::Io(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `BlogError::Io` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` 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/serve/page.rs:109:3 [INFO] [stdout] | [INFO] [stdout] 109 | &self.html.base() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `self.html.base()` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/blog/mod.rs:231:24 [INFO] [stdout] | [INFO] [stdout] 231 | fs::create_dir_all(&p)?; [INFO] [stdout] | ^^ help: change this to: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` 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/dynamic/block.rs:70:44 [INFO] [stdout] | [INFO] [stdout] 70 | BodyBlock::Static(s) => buffer.push_str(&s), [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: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/serve/post.rs:43:63 [INFO] [stdout] | [INFO] [stdout] 43 | contents.insert("published".into(), crate::InputItem::Date(p.clone())); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` 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/dynamic/block.rs:71:61 [INFO] [stdout] | [INFO] [stdout] 71 | BodyBlock::Subst { var, params } => match self.input.get(&var) { [INFO] [stdout] | ^^^^ help: change this to: `var` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:72:41 [INFO] [stdout] | [INFO] [stdout] 72 | Some(InputItem::String(s)) => quote(&s, buffer), [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | let var = self.input.get(&var); [INFO] [stdout] | ^^^^ help: change this to: `var` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dynamic/block.rs:93:37 [INFO] [stdout] | [INFO] [stdout] 93 | let Some(coll) = self.input.get(&coll) else { panic!("unknown variable: {coll:?}") }; [INFO] [stdout] | ^^^^^ help: change this to: `coll` [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: direct implementation of `ToString` [INFO] [stdout] --> src/dynamic/body.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | / impl<'b> ToString for BodyRender<'b> { [INFO] [stdout] 76 | | fn to_string(&self) -> String { [INFO] [stdout] 77 | | self.render().0 [INFO] [stdout] 78 | | } [INFO] [stdout] 79 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` 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/serve/post.rs:170:3 [INFO] [stdout] | [INFO] [stdout] 170 | &self.html.base() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `self.html.base()` [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: this lifetime isn't used in the impl [INFO] [stdout] --> src/dynamic/input.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | impl<'s> Input { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` 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/dynamic/input.rs:88:15 [INFO] [stdout] | [INFO] [stdout] 88 | T::to_input(&self) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this lifetime isn't used in the function definition [INFO] [stdout] --> src/serve/asis.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn new<'p>(url: impl Into, dir: impl Into) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/serve/asis.rs:88:3 [INFO] [stdout] | [INFO] [stdout] 88 | / match url.extension().and_then(OsStr::to_str) { [INFO] [stdout] 89 | | Some("css") => if let Some(name) = url.file_name().and_then(OsStr::to_str) { [INFO] [stdout] 90 | | meta.stylesheet(name, url.clone()); [INFO] [stdout] ... | [INFO] [stdout] 93 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 88 ~ if let Some("css") = url.extension().and_then(OsStr::to_str) { if let Some(name) = url.file_name().and_then(OsStr::to_str) { [INFO] [stdout] 89 ~ meta.stylesheet(name, url.clone()); [INFO] [stdout] 90 ~ } }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/serve/html.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 47 | let url = self.mount.url(&Dir(rel.into())); [INFO] [stdout] | ------------------------------------------- unnecessary `let` binding [INFO] [stdout] 48 | url [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 47 ~ [INFO] [stdout] 48 ~ self.mount.url(&Dir(rel.into())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/serve/html.rs:54:40 [INFO] [stdout] | [INFO] [stdout] 54 | let path = self.mount.dir(url).ok_or(io::Error::new( [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 55 | | io::ErrorKind::Other, [INFO] [stdout] 56 | | format!("{url:?} isn't served by {:?}", self.mount.url), [INFO] [stdout] 57 | | ))?.0; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 54 ~ let path = self.mount.dir(url).ok_or(io::Error::other( [INFO] [stdout] 55 ~ format!("{url:?} isn't served by {:?}", self.mount.url), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/serve/page.rs:27:24 [INFO] [stdout] | [INFO] [stdout] 27 | PageRenderer { meta: &self, blog, stylesheets: blog.resolve(styles), nav } [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/serve/page.rs:109:3 [INFO] [stdout] | [INFO] [stdout] 109 | &self.html.base() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `self.html.base()` [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: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/serve/post.rs:43:63 [INFO] [stdout] | [INFO] [stdout] 43 | contents.insert("published".into(), crate::InputItem::Date(p.clone())); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` 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/serve/post.rs:170:3 [INFO] [stdout] | [INFO] [stdout] 170 | &self.html.base() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `self.html.base()` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.47s [INFO] running `Command { std: "docker" "inspect" "80af2b7ec361ce60d74844b7a9e09b138a308954f2c7dc44513686584e36ea6c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "80af2b7ec361ce60d74844b7a9e09b138a308954f2c7dc44513686584e36ea6c", kill_on_drop: false }` [INFO] [stdout] 80af2b7ec361ce60d74844b7a9e09b138a308954f2c7dc44513686584e36ea6c