[INFO] fetching crate holy-carpet 0.1.3...
[INFO] linting holy-carpet-0.1.3 against nightly for clippy-nonminimal_bool-denied
[INFO] extracting crate holy-carpet 0.1.3 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate holy-carpet 0.1.3
[INFO] finished tweaking crates.io crate holy-carpet 0.1.3
[INFO] tweaked toml for crates.io crate holy-carpet 0.1.3 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate holy-carpet 0.1.3 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 holy-carpet 0.1.3 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 unicode-id v0.3.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] f86968113b24b51caaf18515818f55d9bd614cf2ca017e03c5c47b52db6d2bb6
[INFO] running `Command { std: "docker" "start" "-a" "f86968113b24b51caaf18515818f55d9bd614cf2ca017e03c5c47b52db6d2bb6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f86968113b24b51caaf18515818f55d9bd614cf2ca017e03c5c47b52db6d2bb6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f86968113b24b51caaf18515818f55d9bd614cf2ca017e03c5c47b52db6d2bb6", kill_on_drop: false }`
[INFO] [stdout] f86968113b24b51caaf18515818f55d9bd614cf2ca017e03c5c47b52db6d2bb6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 93448a3a32b3ffc760e16f97df705bcfec5ea5e961f48ca94d6c0188ea687cb9
[INFO] running `Command { std: "docker" "start" "-a" "93448a3a32b3ffc760e16f97df705bcfec5ea5e961f48ca94d6c0188ea687cb9", kill_on_drop: false }`
[INFO] [stderr] Compiling serde v1.0.219
[INFO] [stderr] Compiling serde_json v1.0.140
[INFO] [stderr] Checking hashbrown v0.15.3
[INFO] [stderr] Compiling syn v2.0.101
[INFO] [stderr] Checking tracing v0.1.41
[INFO] [stderr] Checking winnow v0.7.9
[INFO] [stderr] Checking toml_write v0.1.1
[INFO] [stderr] Checking unicode-id v0.3.5
[INFO] [stderr] Checking clap_builder v4.5.37
[INFO] [stderr] Checking matchit v0.8.4
[INFO] [stderr] Checking axum-core v0.5.2
[INFO] [stderr] Checking markdown v1.0.0
[INFO] [stderr] Checking indexmap v2.9.0
[INFO] [stderr] Compiling serde_derive v1.0.219
[INFO] [stderr] Compiling futures-macro v0.3.31
[INFO] [stderr] Compiling tokio-macros v2.5.0
[INFO] [stderr] Compiling clap_derive v4.5.32
[INFO] [stderr] Checking tokio v1.44.2
[INFO] [stderr] Checking futures-util v0.3.31
[INFO] [stderr] Checking clap v4.5.37
[INFO] [stderr] Checking hyper v1.6.0
[INFO] [stderr] Checking tower v0.5.2
[INFO] [stderr] Checking tokio-util v0.7.15
[INFO] [stderr] Checking toml_datetime v0.6.9
[INFO] [stderr] Checking serde_spanned v0.6.8
[INFO] [stderr] Checking serde_urlencoded v0.7.1
[INFO] [stderr] Checking serde_path_to_error v0.1.17
[INFO] [stderr] Checking toml_edit v0.22.26
[INFO] [stderr] Checking hyper-util v0.1.11
[INFO] [stderr] Checking axum v0.8.4
[INFO] [stderr] Checking toml v0.8.22
[INFO] [stderr] Checking holy-carpet v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: this import is redundant
[INFO] [stdout] --> src/markdown2html.rs:1:1
[INFO] [stdout] |
[INFO] [stdout] 1 | use markdown;
[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 import is redundant
[INFO] [stdout] --> src/rss.rs:10:1
[INFO] [stdout] |
[INFO] [stdout] 10 | use toml;
[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]
[INFO] [stdout]
[INFO] [stdout] warning: this import is redundant
[INFO] [stdout] --> src/markdown2html.rs:1:1
[INFO] [stdout] |
[INFO] [stdout] 1 | use markdown;
[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 import is redundant
[INFO] [stdout] --> src/rss.rs:10:1
[INFO] [stdout] |
[INFO] [stdout] 10 | use toml;
[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]
[INFO] [stdout]
[INFO] [stdout] warning: compiling a regex in a loop
[INFO] [stdout] --> src/builder.rs:54:24
[INFO] [stdout] |
[INFO] [stdout] 54 | let tags = Regex::new(r"%(\w+):(.*?)%").unwrap();
[INFO] [stdout] | ^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] help: move the regex construction outside this loop
[INFO] [stdout] --> src/builder.rs:45:5
[INFO] [stdout] |
[INFO] [stdout] 45 | for post in posts_md {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops
[INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/builder.rs:102:26
[INFO] [stdout] |
[INFO] [stdout] 102 | let mut html_posts = String::from(format!("{}\n
", head));
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}\n", head)`
[INFO] [stdout] |
[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]
[INFO] [stdout]
[INFO] [stdout] warning: `format!` in `format!` args
[INFO] [stdout] --> src/builder.rs:104:30
[INFO] [stdout] |
[INFO] [stdout] 104 | html_posts.push_str(&format!(
[INFO] [stdout] | ______________________________^
[INFO] [stdout] 105 | | "\n- {}
",
[INFO] [stdout] 106 | | filename,
[INFO] [stdout] 107 | | format!(
[INFO] [stdout] ... |
[INFO] [stdout] 115 | | ))
[INFO] [stdout] | |_________^
[INFO] [stdout] |
[INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call
[INFO] [stdout] = help: or consider changing `format!` to `format_args!`
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args
[INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function call inside of `expect`
[INFO] [stdout] --> src/cleaner.rs:8:50
[INFO] [stdout] |
[INFO] [stdout] 8 | fs::remove_dir_all(directory.join("output")).expect(
[INFO] [stdout] | __________________________________________________^
[INFO] [stdout] 9 | | &format!(
[INFO] [stdout] 10 | | "==> Error: Couldn't find HTML directory. Are you sure you've built/initialized the blog? Elapsed time: {} microsecond...
[INFO] [stdout] ... |
[INFO] [stdout] 17 | | );
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call
[INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 8 ~ fs::remove_dir_all(directory.join("output")).unwrap_or_else(|_| panic!("==> Error: Couldn't find HTML directory. Are you sure you've built/initialized the blog? Elapsed time: {} microseconds\nError",
[INFO] [stdout] 9 + // error message is appended here ^^^
[INFO] [stdout] 10 + time::SystemTime::now()
[INFO] [stdout] 11 + .duration_since(start_time)
[INFO] [stdout] 12 + .unwrap()
[INFO] [stdout] 13 ~ .as_micros()));
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this boolean expression can be simplified
[INFO] [stdout] --> src/initializer.rs:25:51
[INFO] [stdout] |
[INFO] [stdout] 25 | if (fs::read_dir(directory)?.count() != 0) && !(ignore == true) {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(ignore != true)`
[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: equality checks against true are unnecessary
[INFO] [stdout] --> src/initializer.rs:25:53
[INFO] [stdout] |
[INFO] [stdout] 25 | if (fs::read_dir(directory)?.count() != 0) && !(ignore == true) {
[INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `ignore`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison
[INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/markdown2html.rs:8:5
[INFO] [stdout] |
[INFO] [stdout] 8 | / String::from(
[INFO] [stdout] 9 | | markdown::to_html_with_options(
[INFO] [stdout] 10 | | &markdown_content,
[INFO] [stdout] 11 | | &markdown::Options {
[INFO] [stdout] ... |
[INFO] [stdout] 20 | | .unwrap(),
[INFO] [stdout] 21 | | )
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
[INFO] [stdout] help: consider removing `String::from()`
[INFO] [stdout] |
[INFO] [stdout] 8 ~ markdown::to_html_with_options(
[INFO] [stdout] 9 + &markdown_content,
[INFO] [stdout] 10 + &markdown::Options {
[INFO] [stdout] 11 + compile: markdown::CompileOptions {
[INFO] [stdout] 12 + allow_dangerous_html: true,
[INFO] [stdout] 13 + allow_dangerous_protocol: true,
[INFO] [stdout] 14 + ..markdown::CompileOptions::default()
[INFO] [stdout] 15 + },
[INFO] [stdout] 16 + ..markdown::Options::default()
[INFO] [stdout] 17 + },
[INFO] [stdout] 18 + )
[INFO] [stdout] 19 + .unwrap()
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: compiling a regex in a loop
[INFO] [stdout] --> src/builder.rs:54:24
[INFO] [stdout] |
[INFO] [stdout] 54 | let tags = Regex::new(r"%(\w+):(.*?)%").unwrap();
[INFO] [stdout] | ^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] help: move the regex construction outside this loop
[INFO] [stdout] --> src/builder.rs:45:5
[INFO] [stdout] |
[INFO] [stdout] 45 | for post in posts_md {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops
[INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/markdown2html.rs:25:5
[INFO] [stdout] |
[INFO] [stdout] 25 | / String::from(
[INFO] [stdout] 26 | | markdown::to_html_with_options(
[INFO] [stdout] 27 | | &markdown_content,
[INFO] [stdout] 28 | | &markdown::Options {
[INFO] [stdout] ... |
[INFO] [stdout] 37 | | .unwrap(),
[INFO] [stdout] 38 | | )
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
[INFO] [stdout] help: consider removing `String::from()`
[INFO] [stdout] |
[INFO] [stdout] 25 ~ markdown::to_html_with_options(
[INFO] [stdout] 26 + &markdown_content,
[INFO] [stdout] 27 + &markdown::Options {
[INFO] [stdout] 28 + compile: markdown::CompileOptions {
[INFO] [stdout] 29 + allow_dangerous_html: true,
[INFO] [stdout] 30 + allow_dangerous_protocol: true,
[INFO] [stdout] 31 + ..markdown::CompileOptions::default()
[INFO] [stdout] 32 + },
[INFO] [stdout] 33 + ..markdown::Options::default()
[INFO] [stdout] 34 + },
[INFO] [stdout] 35 + )
[INFO] [stdout] 36 + .unwrap()
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: compiling a regex in a loop
[INFO] [stdout] --> src/rss.rs:48:24
[INFO] [stdout] |
[INFO] [stdout] 48 | let tags = Regex::new(r"%(\w+):(.*?)%").unwrap();
[INFO] [stdout] | ^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] help: move the regex construction outside this loop
[INFO] [stdout] --> src/rss.rs:40:5
[INFO] [stdout] |
[INFO] [stdout] 40 | for post in posts_md {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: useless use of `format!`
[INFO] [stdout] --> src/rss.rs:81:32
[INFO] [stdout] |
[INFO] [stdout] 81 | .replace("%URL%", &format!("{}", url)),
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `url.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: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/builder.rs:102:26
[INFO] [stdout] |
[INFO] [stdout] 102 | let mut html_posts = String::from(format!("{}\n", head));
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}\n", head)`
[INFO] [stdout] |
[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]
[INFO] [stdout]
[INFO] [stdout] warning: calling `push_str()` using a single-character string literal
[INFO] [stdout] --> src/rss.rs:84:5
[INFO] [stdout] |
[INFO] [stdout] 84 | final_output.push_str("\n");
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `final_output.push('\n')`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str
[INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: calling `push_str()` using a single-character string literal
[INFO] [stdout] --> src/rss.rs:103:9
[INFO] [stdout] |
[INFO] [stdout] 103 | final_output.push_str("\n");
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `final_output.push('\n')`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: `format!` in `format!` args
[INFO] [stdout] --> src/builder.rs:104:30
[INFO] [stdout] |
[INFO] [stdout] 104 | html_posts.push_str(&format!(
[INFO] [stdout] | ______________________________^
[INFO] [stdout] 105 | | "\n- {}
",
[INFO] [stdout] 106 | | filename,
[INFO] [stdout] 107 | | format!(
[INFO] [stdout] ... |
[INFO] [stdout] 115 | | ))
[INFO] [stdout] | |_________^
[INFO] [stdout] |
[INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call
[INFO] [stdout] = help: or consider changing `format!` to `format_args!`
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args
[INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function call inside of `expect`
[INFO] [stdout] --> src/cleaner.rs:8:50
[INFO] [stdout] |
[INFO] [stdout] 8 | fs::remove_dir_all(directory.join("output")).expect(
[INFO] [stdout] | __________________________________________________^
[INFO] [stdout] 9 | | &format!(
[INFO] [stdout] 10 | | "==> Error: Couldn't find HTML directory. Are you sure you've built/initialized the blog? Elapsed time: {} microsecond...
[INFO] [stdout] ... |
[INFO] [stdout] 17 | | );
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call
[INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 8 ~ fs::remove_dir_all(directory.join("output")).unwrap_or_else(|_| panic!("==> Error: Couldn't find HTML directory. Are you sure you've built/initialized the blog? Elapsed time: {} microseconds\nError",
[INFO] [stdout] 9 + // error message is appended here ^^^
[INFO] [stdout] 10 + time::SystemTime::now()
[INFO] [stdout] 11 + .duration_since(start_time)
[INFO] [stdout] 12 + .unwrap()
[INFO] [stdout] 13 ~ .as_micros()));
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this boolean expression can be simplified
[INFO] [stdout] --> src/initializer.rs:25:51
[INFO] [stdout] |
[INFO] [stdout] 25 | if (fs::read_dir(directory)?.count() != 0) && !(ignore == true) {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(ignore != true)`
[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 expression creates a reference which is immediately dereferenced by the compiler
[INFO] [stdout] --> src/server.rs:89:28
[INFO] [stdout] |
[INFO] [stdout] 89 | let _ = builder::build(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/server.rs:98:28
[INFO] [stdout] |
[INFO] [stdout] 98 | let _ = builder::build(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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: `to_string` applied to a type that implements `Display` in `format!` args
[INFO] [stdout] --> src/server.rs:106:78
[INFO] [stdout] |
[INFO] [stdout] 106 | let full_path = PathBuf::from(format!("{}{}", path.to_str().unwrap(), uri.to_string()));
[INFO] [stdout] | ^^^^^^^^^^^^ help: remove this
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args
[INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_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/server.rs:119:28
[INFO] [stdout] |
[INFO] [stdout] 119 | let _ = builder::build(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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: equality checks against true are unnecessary
[INFO] [stdout] --> src/initializer.rs:25:53
[INFO] [stdout] |
[INFO] [stdout] 25 | if (fs::read_dir(directory)?.count() != 0) && !(ignore == true) {
[INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `ignore`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison
[INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` 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/server.rs:120:24
[INFO] [stdout] |
[INFO] [stdout] 120 | let _ = rss::build(&path, state.url.clone());
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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 conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/markdown2html.rs:8:5
[INFO] [stdout] |
[INFO] [stdout] 8 | / String::from(
[INFO] [stdout] 9 | | markdown::to_html_with_options(
[INFO] [stdout] 10 | | &markdown_content,
[INFO] [stdout] 11 | | &markdown::Options {
[INFO] [stdout] ... |
[INFO] [stdout] 20 | | .unwrap(),
[INFO] [stdout] 21 | | )
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
[INFO] [stdout] help: consider removing `String::from()`
[INFO] [stdout] |
[INFO] [stdout] 8 ~ markdown::to_html_with_options(
[INFO] [stdout] 9 + &markdown_content,
[INFO] [stdout] 10 + &markdown::Options {
[INFO] [stdout] 11 + compile: markdown::CompileOptions {
[INFO] [stdout] 12 + allow_dangerous_html: true,
[INFO] [stdout] 13 + allow_dangerous_protocol: true,
[INFO] [stdout] 14 + ..markdown::CompileOptions::default()
[INFO] [stdout] 15 + },
[INFO] [stdout] 16 + ..markdown::Options::default()
[INFO] [stdout] 17 + },
[INFO] [stdout] 18 + )
[INFO] [stdout] 19 + .unwrap()
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/markdown2html.rs:25:5
[INFO] [stdout] |
[INFO] [stdout] 25 | / String::from(
[INFO] [stdout] 26 | | markdown::to_html_with_options(
[INFO] [stdout] 27 | | &markdown_content,
[INFO] [stdout] 28 | | &markdown::Options {
[INFO] [stdout] ... |
[INFO] [stdout] 37 | | .unwrap(),
[INFO] [stdout] 38 | | )
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
[INFO] [stdout] help: consider removing `String::from()`
[INFO] [stdout] |
[INFO] [stdout] 25 ~ markdown::to_html_with_options(
[INFO] [stdout] 26 + &markdown_content,
[INFO] [stdout] 27 + &markdown::Options {
[INFO] [stdout] 28 + compile: markdown::CompileOptions {
[INFO] [stdout] 29 + allow_dangerous_html: true,
[INFO] [stdout] 30 + allow_dangerous_protocol: true,
[INFO] [stdout] 31 + ..markdown::CompileOptions::default()
[INFO] [stdout] 32 + },
[INFO] [stdout] 33 + ..markdown::Options::default()
[INFO] [stdout] 34 + },
[INFO] [stdout] 35 + )
[INFO] [stdout] 36 + .unwrap()
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: compiling a regex in a loop
[INFO] [stdout] --> src/rss.rs:48:24
[INFO] [stdout] |
[INFO] [stdout] 48 | let tags = Regex::new(r"%(\w+):(.*?)%").unwrap();
[INFO] [stdout] | ^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] help: move the regex construction outside this loop
[INFO] [stdout] --> src/rss.rs:40:5
[INFO] [stdout] |
[INFO] [stdout] 40 | for post in posts_md {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: useless use of `format!`
[INFO] [stdout] --> src/rss.rs:81:32
[INFO] [stdout] |
[INFO] [stdout] 81 | .replace("%URL%", &format!("{}", url)),
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `url.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: calling `push_str()` using a single-character string literal
[INFO] [stdout] --> src/rss.rs:84:5
[INFO] [stdout] |
[INFO] [stdout] 84 | final_output.push_str("\n");
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `final_output.push('\n')`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str
[INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: comparison to empty slice
[INFO] [stdout] --> src/main.rs:59:23
[INFO] [stdout] |
[INFO] [stdout] 59 | if args.serve && (url == "") {
[INFO] [stdout] | ^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `url.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: comparison to empty slice
[INFO] [stdout] --> src/main.rs:64:21
[INFO] [stdout] |
[INFO] [stdout] 64 | if args.rss && (url == "") {
[INFO] [stdout] | ^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `url.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: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/main.rs:76:22
[INFO] [stdout] |
[INFO] [stdout] 76 | let dir_string = String::from(args.directory);
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `args.directory`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: calling `push_str()` using a single-character string literal
[INFO] [stdout] --> src/rss.rs:103:9
[INFO] [stdout] |
[INFO] [stdout] 103 | final_output.push_str("\n");
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `final_output.push('\n')`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler
[INFO] [stdout] --> src/main.rs:80:27
[INFO] [stdout] |
[INFO] [stdout] 80 | initializer::init(&path, args.ignore_non_empty_dir).unwrap();
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:84:24
[INFO] [stdout] |
[INFO] [stdout] 84 | cleaner::clean(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:88:24
[INFO] [stdout] |
[INFO] [stdout] 88 | builder::build(&path).unwrap();
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:90:24
[INFO] [stdout] |
[INFO] [stdout] 90 | rss::build(&path, url.clone()).unwrap();
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:95:23
[INFO] [stdout] |
[INFO] [stdout] 95 | server::serve(&path, url.clone()).await;
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/server.rs:89:28
[INFO] [stdout] |
[INFO] [stdout] 89 | let _ = builder::build(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/server.rs:98:28
[INFO] [stdout] |
[INFO] [stdout] 98 | let _ = builder::build(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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: `to_string` applied to a type that implements `Display` in `format!` args
[INFO] [stdout] --> src/server.rs:106:78
[INFO] [stdout] |
[INFO] [stdout] 106 | let full_path = PathBuf::from(format!("{}{}", path.to_str().unwrap(), uri.to_string()));
[INFO] [stdout] | ^^^^^^^^^^^^ help: remove this
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args
[INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_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/server.rs:119:28
[INFO] [stdout] |
[INFO] [stdout] 119 | let _ = builder::build(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/server.rs:120:24
[INFO] [stdout] |
[INFO] [stdout] 120 | let _ = rss::build(&path, state.url.clone());
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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: comparison to empty slice
[INFO] [stdout] --> src/main.rs:59:23
[INFO] [stdout] |
[INFO] [stdout] 59 | if args.serve && (url == "") {
[INFO] [stdout] | ^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `url.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: comparison to empty slice
[INFO] [stdout] --> src/main.rs:64:21
[INFO] [stdout] |
[INFO] [stdout] 64 | if args.rss && (url == "") {
[INFO] [stdout] | ^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `url.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: useless conversion to the same type: `std::string::String`
[INFO] [stdout] --> src/main.rs:76:22
[INFO] [stdout] |
[INFO] [stdout] 76 | let dir_string = String::from(args.directory);
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `args.directory`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler
[INFO] [stdout] --> src/main.rs:80:27
[INFO] [stdout] |
[INFO] [stdout] 80 | initializer::init(&path, args.ignore_non_empty_dir).unwrap();
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:84:24
[INFO] [stdout] |
[INFO] [stdout] 84 | cleaner::clean(&path);
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:88:24
[INFO] [stdout] |
[INFO] [stdout] 88 | builder::build(&path).unwrap();
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:90:24
[INFO] [stdout] |
[INFO] [stdout] 90 | rss::build(&path, url.clone()).unwrap();
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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/main.rs:95:23
[INFO] [stdout] |
[INFO] [stdout] 95 | server::serve(&path, url.clone()).await;
[INFO] [stdout] | ^^^^^ help: change this to: `path`
[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 23.84s
[INFO] running `Command { std: "docker" "inspect" "93448a3a32b3ffc760e16f97df705bcfec5ea5e961f48ca94d6c0188ea687cb9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93448a3a32b3ffc760e16f97df705bcfec5ea5e961f48ca94d6c0188ea687cb9", kill_on_drop: false }`
[INFO] [stdout] 93448a3a32b3ffc760e16f97df705bcfec5ea5e961f48ca94d6c0188ea687cb9