[INFO] fetching crate docify_macros 0.4.1... [INFO] linting docify_macros-0.4.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate docify_macros 0.4.1 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate docify_macros 0.4.1 [INFO] finished tweaking crates.io crate docify_macros 0.4.1 [INFO] tweaked toml for crates.io crate docify_macros 0.4.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate docify_macros 0.4.1 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 docify_macros 0.4.1 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 git2 v0.20.0 [INFO] [stderr] Downloaded libgit2-sys v0.18.0+1.9.0 [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] 0be18d0f96962d44c38752dd313274d07b18dad98897852cf646937f1a78b297 [INFO] running `Command { std: "docker" "start" "-a" "0be18d0f96962d44c38752dd313274d07b18dad98897852cf646937f1a78b297", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0be18d0f96962d44c38752dd313274d07b18dad98897852cf646937f1a78b297", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0be18d0f96962d44c38752dd313274d07b18dad98897852cf646937f1a78b297", kill_on_drop: false }` [INFO] [stdout] 0be18d0f96962d44c38752dd313274d07b18dad98897852cf646937f1a78b297 [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] 30e7e3624e16cc18747394a340d1a75552dcbcf2ff2ce3dab51bdd3f6ee62f94 [INFO] running `Command { std: "docker" "start" "-a" "30e7e3624e16cc18747394a340d1a75552dcbcf2ff2ce3dab51bdd3f6ee62f94", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.17 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking writeable v0.5.5 [INFO] [stderr] Checking litemap v0.7.4 [INFO] [stderr] Checking icu_locid_transform_data v1.5.0 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling serde v1.0.218 [INFO] [stderr] Checking icu_properties_data v1.5.0 [INFO] [stderr] Checking icu_normalizer_data v1.5.0 [INFO] [stderr] Checking utf16_iter v1.0.5 [INFO] [stderr] Checking write16 v1.0.0 [INFO] [stderr] Checking smallvec v1.14.0 [INFO] [stderr] Compiling getrandom v0.3.1 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking bitflags v2.8.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Checking indexmap v2.7.1 [INFO] [stderr] Checking winnow v0.7.3 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Compiling cc v1.2.14 [INFO] [stderr] Checking log v0.4.25 [INFO] [stderr] Checking once_cell v1.20.3 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking common-path v1.0.0 [INFO] [stderr] Compiling openssl-sys v0.9.106 [INFO] [stderr] Compiling libz-sys v1.1.21 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.18.0+1.9.0 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking tempfile v3.17.1 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking toml_edit v0.22.24 [INFO] [stderr] Checking toml v0.8.20 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.5 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling derive-syn-parse v0.2.0 [INFO] [stderr] Checking zerofrom v0.1.5 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking git2 v0.20.0 [INFO] [stderr] Checking docify_macros v0.4.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/lib.rs:550:1 [INFO] [stdout] | [INFO] [stdout] 550 | / /// Used to parse args for `docify::embed!(..)` [INFO] [stdout] 551 | | [INFO] [stdout] | |_^ [INFO] [stdout] 552 | mod kw { [INFO] [stdout] | ------ the comment documents this module [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/lib.rs:550:1 [INFO] [stdout] | [INFO] [stdout] 550 | / /// Used to parse args for `docify::embed!(..)` [INFO] [stdout] 551 | | [INFO] [stdout] | |_^ [INFO] [stdout] 552 | mod kw { [INFO] [stdout] | ------ the comment documents this module [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> src/utils/mod.rs:144:21 [INFO] [stdout] | [INFO] [stdout] 144 | let repo_name = git_url [INFO] [stdout] | _____________________^ [INFO] [stdout] 145 | | .split('/') [INFO] [stdout] 146 | | .last() [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 146 - .last() [INFO] [stdout] 146 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/lib.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | if let Err(_) = write!(&mut stdout, "{}", st.as_ref()) { [INFO] [stdout] | -------^^^^^^----------------------------------------- help: try: `if write!(&mut stdout, "{}", st.as_ref()).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> src/utils/mod.rs:144:21 [INFO] [stdout] | [INFO] [stdout] 144 | let repo_name = git_url [INFO] [stdout] | _____________________^ [INFO] [stdout] 145 | | .split('/') [INFO] [stdout] 146 | | .last() [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 146 - .last() [INFO] [stdout] 146 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:919:34 [INFO] [stdout] | [INFO] [stdout] 919 | fn into_example(st: &str, langs: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 919 - fn into_example(st: &str, langs: &Vec) -> String { [INFO] [stdout] 919 + fn into_example(st: &str, langs: &[MarkdownLanguage]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `i` is used as a loop counter [INFO] [stdout] --> src/lib.rs:957:9 [INFO] [stdout] | [INFO] [stdout] 957 | for attr in attrs { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using: `for (i, attr) in attrs.iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:981:37 [INFO] [stdout] | [INFO] [stdout] 981 | Meta::List(list) => match parse2::(list.tokens.clone()) { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 982 | | Ok(ident) => Some(ident), [INFO] [stdout] 983 | | Err(_) => None, [INFO] [stdout] 984 | | }, [INFO] [stdout] | |_________________^ help: replace with: `parse2::(list.tokens.clone()).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/lib.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | if let Err(_) = write!(&mut stdout, "{}", st.as_ref()) { [INFO] [stdout] | -------^^^^^^----------------------------------------- help: try: `if write!(&mut stdout, "{}", st.as_ref()).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:1080:34 [INFO] [stdout] | [INFO] [stdout] 1080 | pub fn claim(&self, claimed: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1080 - pub fn claim(&self, claimed: &mut Vec) { [INFO] [stdout] 1080 + pub fn claim(&self, claimed: &mut [bool]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:1087:39 [INFO] [stdout] | [INFO] [stdout] 1087 | pub fn is_claimed(&self, claimed: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1087 - pub fn is_claimed(&self, claimed: &Vec) -> bool { [INFO] [stdout] 1087 + pub fn is_claimed(&self, claimed: &[bool]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `CompressedString` [INFO] [stdout] --> src/lib.rs:1109:5 [INFO] [stdout] | [INFO] [stdout] 1109 | / fn to_string(&self) -> String { [INFO] [stdout] 1110 | | self.chars_arr.iter().map(|c| c.char).collect() [INFO] [stdout] 1111 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `CompressedString` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1271:24 [INFO] [stdout] | [INFO] [stdout] 1271 | .filter(|line| !(DOCIFY_ATTRIBUTES.is_match(line) && !line.trim().starts_with("//"))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!DOCIFY_ATTRIBUTES.is_match(line) || line.trim().starts_with("//")` [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 boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1287:13 [INFO] [stdout] | [INFO] [stdout] 1287 | !std::env::var("DOCS_RS").is_ok() && !std::env::var("DOCIFY_DISABLE_UPDATES").is_ok(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::env::var("DOCS_RS").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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1287:50 [INFO] [stdout] | [INFO] [stdout] 1287 | !std::env::var("DOCS_RS").is_ok() && !std::env::var("DOCIFY_DISABLE_UPDATES").is_ok(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::env::var("DOCIFY_DISABLE_UPDATES").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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:1335:13 [INFO] [stdout] | [INFO] [stdout] 1335 | &new_snippet.commit_hash.as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `new_snippet.commit_hash.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/lib.rs:1338:41 [INFO] [stdout] | [INFO] [stdout] 1338 | let source_path = repo_dir.join(&args.file_path.value()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `args.file_path.value()` [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 `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:1517:5 [INFO] [stdout] | [INFO] [stdout] 1517 | / if path.as_ref().exists() { [INFO] [stdout] 1518 | | if let Ok(existing) = fs::read(path.as_ref()) { [INFO] [stdout] 1519 | | if existing == data.as_ref() { [INFO] [stdout] 1520 | | return Ok(()); [INFO] [stdout] ... | [INFO] [stdout] 1523 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1517 ~ if path.as_ref().exists() [INFO] [stdout] 1518 ~ && let Ok(existing) = fs::read(path.as_ref()) { [INFO] [stdout] 1519 | if existing == data.as_ref() { [INFO] [stdout] 1520 | return Ok(()); [INFO] [stdout] 1521 | } [INFO] [stdout] 1522 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:1518:9 [INFO] [stdout] | [INFO] [stdout] 1518 | / if let Ok(existing) = fs::read(path.as_ref()) { [INFO] [stdout] 1519 | | if existing == data.as_ref() { [INFO] [stdout] 1520 | | return Ok(()); [INFO] [stdout] 1521 | | } [INFO] [stdout] 1522 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1518 ~ if let Ok(existing) = fs::read(path.as_ref()) [INFO] [stdout] 1519 ~ && existing == data.as_ref() { [INFO] [stdout] 1520 | return Ok(()); [INFO] [stdout] 1521 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:919:34 [INFO] [stdout] | [INFO] [stdout] 919 | fn into_example(st: &str, langs: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 919 - fn into_example(st: &str, langs: &Vec) -> String { [INFO] [stdout] 919 + fn into_example(st: &str, langs: &[MarkdownLanguage]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `i` is used as a loop counter [INFO] [stdout] --> src/lib.rs:957:9 [INFO] [stdout] | [INFO] [stdout] 957 | for attr in attrs { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using: `for (i, attr) in attrs.iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:981:37 [INFO] [stdout] | [INFO] [stdout] 981 | Meta::List(list) => match parse2::(list.tokens.clone()) { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 982 | | Ok(ident) => Some(ident), [INFO] [stdout] 983 | | Err(_) => None, [INFO] [stdout] 984 | | }, [INFO] [stdout] | |_________________^ help: replace with: `parse2::(list.tokens.clone()).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:1080:34 [INFO] [stdout] | [INFO] [stdout] 1080 | pub fn claim(&self, claimed: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1080 - pub fn claim(&self, claimed: &mut Vec) { [INFO] [stdout] 1080 + pub fn claim(&self, claimed: &mut [bool]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:1087:39 [INFO] [stdout] | [INFO] [stdout] 1087 | pub fn is_claimed(&self, claimed: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1087 - pub fn is_claimed(&self, claimed: &Vec) -> bool { [INFO] [stdout] 1087 + pub fn is_claimed(&self, claimed: &[bool]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `CompressedString` [INFO] [stdout] --> src/lib.rs:1109:5 [INFO] [stdout] | [INFO] [stdout] 1109 | / fn to_string(&self) -> String { [INFO] [stdout] 1110 | | self.chars_arr.iter().map(|c| c.char).collect() [INFO] [stdout] 1111 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `CompressedString` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1271:24 [INFO] [stdout] | [INFO] [stdout] 1271 | .filter(|line| !(DOCIFY_ATTRIBUTES.is_match(line) && !line.trim().starts_with("//"))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!DOCIFY_ATTRIBUTES.is_match(line) || line.trim().starts_with("//")` [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 boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1287:13 [INFO] [stdout] | [INFO] [stdout] 1287 | !std::env::var("DOCS_RS").is_ok() && !std::env::var("DOCIFY_DISABLE_UPDATES").is_ok(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::env::var("DOCS_RS").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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1287:50 [INFO] [stdout] | [INFO] [stdout] 1287 | !std::env::var("DOCS_RS").is_ok() && !std::env::var("DOCIFY_DISABLE_UPDATES").is_ok(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::env::var("DOCIFY_DISABLE_UPDATES").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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:1335:13 [INFO] [stdout] | [INFO] [stdout] 1335 | &new_snippet.commit_hash.as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `new_snippet.commit_hash.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/lib.rs:1338:41 [INFO] [stdout] | [INFO] [stdout] 1338 | let source_path = repo_dir.join(&args.file_path.value()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `args.file_path.value()` [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 `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:1517:5 [INFO] [stdout] | [INFO] [stdout] 1517 | / if path.as_ref().exists() { [INFO] [stdout] 1518 | | if let Ok(existing) = fs::read(path.as_ref()) { [INFO] [stdout] 1519 | | if existing == data.as_ref() { [INFO] [stdout] 1520 | | return Ok(()); [INFO] [stdout] ... | [INFO] [stdout] 1523 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1517 ~ if path.as_ref().exists() [INFO] [stdout] 1518 ~ && let Ok(existing) = fs::read(path.as_ref()) { [INFO] [stdout] 1519 | if existing == data.as_ref() { [INFO] [stdout] 1520 | return Ok(()); [INFO] [stdout] 1521 | } [INFO] [stdout] 1522 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:1518:9 [INFO] [stdout] | [INFO] [stdout] 1518 | / if let Ok(existing) = fs::read(path.as_ref()) { [INFO] [stdout] 1519 | | if existing == data.as_ref() { [INFO] [stdout] 1520 | | return Ok(()); [INFO] [stdout] 1521 | | } [INFO] [stdout] 1522 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1518 ~ if let Ok(existing) = fs::read(path.as_ref()) [INFO] [stdout] 1519 ~ && existing == data.as_ref() { [INFO] [stdout] 1520 | return Ok(()); [INFO] [stdout] 1521 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s [INFO] running `Command { std: "docker" "inspect" "30e7e3624e16cc18747394a340d1a75552dcbcf2ff2ce3dab51bdd3f6ee62f94", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30e7e3624e16cc18747394a340d1a75552dcbcf2ff2ce3dab51bdd3f6ee62f94", kill_on_drop: false }` [INFO] [stdout] 30e7e3624e16cc18747394a340d1a75552dcbcf2ff2ce3dab51bdd3f6ee62f94