[INFO] fetching crate ripdoc 0.9.1... [INFO] linting ripdoc-0.9.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate ripdoc 0.9.1 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate ripdoc 0.9.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate ripdoc 0.9.1 [INFO] tweaked toml for crates.io crate ripdoc 0.9.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate ripdoc 0.9.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 ripdoc 0.9.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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cargo_toml v0.22.3 [INFO] [stderr] Downloaded rustdoc-json v0.9.8 [INFO] [stderr] Downloaded cargo-manifest v0.19.1 [INFO] [stderr] Downloaded rustdoc-types v0.56.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 61ea957207dcfb406347e008b49ade005d7d2bc6c3673b5cbfb1a0f936393066 [INFO] running `Command { std: "docker" "start" "-a" "61ea957207dcfb406347e008b49ade005d7d2bc6c3673b5cbfb1a0f936393066", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "61ea957207dcfb406347e008b49ade005d7d2bc6c3673b5cbfb1a0f936393066", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "61ea957207dcfb406347e008b49ade005d7d2bc6c3673b5cbfb1a0f936393066", kill_on_drop: false }` [INFO] [stdout] 61ea957207dcfb406347e008b49ade005d7d2bc6c3673b5cbfb1a0f936393066 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8780121f3cd92d51d2229d644ba46e35a52333824dd03875bf9abaf12e88e763 [INFO] running `Command { std: "docker" "start" "-a" "8780121f3cd92d51d2229d644ba46e35a52333824dd03875bf9abaf12e88e763", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling camino v1.2.2 [INFO] [stderr] Compiling rustls v0.23.35 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Checking toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Checking regex-syntax v0.8.8 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking webpki-roots v1.0.4 [INFO] [stderr] Checking unty v0.0.4 [INFO] [stderr] Checking tempfile v3.23.0 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking rust-format v0.3.4 [INFO] [stderr] Checking ureq-proto v0.5.3 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking semver v1.0.27 [INFO] [stderr] Checking cargo-platform v0.3.2 [INFO] [stderr] Checking serde_spanned v1.0.4 [INFO] [stderr] Checking toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Checking toml v0.9.10+spec-1.1.0 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking bincode v2.0.1 [INFO] [stderr] Checking rustdoc-types v0.56.0 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking cargo_metadata v0.23.1 [INFO] [stderr] Checking cargo_toml v0.22.3 [INFO] [stderr] Checking rustls-webpki v0.103.8 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking cargo-manifest v0.19.1 [INFO] [stderr] Checking rustdoc-json v0.9.8 [INFO] [stderr] Checking ureq v3.1.4 [INFO] [stderr] Checking ripdoc v0.9.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/render/items/mod.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | if !output.is_empty() [INFO] [stdout] | ________^ [INFO] [stdout] 186 | | && state.config.render_source_labels [INFO] [stdout] 187 | | && !matches!(item.inner, ItemEnum::Use(_)) [INFO] [stdout] 188 | | && !(matches!(item.inner, ItemEnum::Module(_)) && state.config.plain) [INFO] [stdout] | |_____________________________________________________________________________^ help: try: `!(output.is_empty() || !state.config.render_source_labels || matches!(item.inner, ItemEnum::Use(_)) || matches!(item.inner, ItemEnum::Module(_)) && state.config.plain)` [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: the loop variable `i` is only used to index `lines` [INFO] [stdout] --> src/render/utils.rs:171:11 [INFO] [stdout] | [INFO] [stdout] 171 | for i in start_line..end_line { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 171 - for i in start_line..end_line { [INFO] [stdout] 171 + for in lines.iter().take(end_line).skip(start_line) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> src/skelebuild/resolver.rs:176:2 [INFO] [stdout] | [INFO] [stdout] 176 | / let Some(ty_item) = crate_data.index.get(&ty_match.item_id) else { [INFO] [stdout] 177 | | return None; [INFO] [stdout] 178 | | }; [INFO] [stdout] | |______^ help: replace it with: `let ty_item = crate_data.index.get(&ty_match.item_id)?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/skelebuild/resolver.rs:294:2 [INFO] [stdout] | [INFO] [stdout] 294 | / if matched_id.is_none() && !strict { [INFO] [stdout] 295 | | if let Some((first, rest)) = base_query.split_once("::") { [INFO] [stdout] 296 | | if let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | | if first != actual_crate && first != "crate" { [INFO] [stdout] ... | [INFO] [stdout] 327 | | } [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] 294 ~ if matched_id.is_none() && !strict [INFO] [stdout] 295 ~ && let Some((first, rest)) = base_query.split_once("::") { [INFO] [stdout] 296 | if let Some(ref actual_crate) = crate_name { [INFO] [stdout] ... [INFO] [stdout] 325 | } [INFO] [stdout] 326 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/skelebuild/resolver.rs:295:3 [INFO] [stdout] | [INFO] [stdout] 295 | / if let Some((first, rest)) = base_query.split_once("::") { [INFO] [stdout] 296 | | if let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | | if first != actual_crate && first != "crate" { [INFO] [stdout] 298 | | let crate_query = format!("crate::{}", rest); [INFO] [stdout] ... | [INFO] [stdout] 326 | | } [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] 295 ~ if let Some((first, rest)) = base_query.split_once("::") [INFO] [stdout] 296 ~ && let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | if first != actual_crate && first != "crate" { [INFO] [stdout] ... [INFO] [stdout] 324 | } [INFO] [stdout] 325 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/skelebuild/resolver.rs:296:4 [INFO] [stdout] | [INFO] [stdout] 296 | / if let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | | if first != actual_crate && first != "crate" { [INFO] [stdout] 298 | | let crate_query = format!("crate::{}", rest); [INFO] [stdout] ... | [INFO] [stdout] 325 | | } [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] 296 ~ if let Some(ref actual_crate) = crate_name [INFO] [stdout] 297 ~ && first != actual_crate && first != "crate" { [INFO] [stdout] 298 | let crate_query = format!("crate::{}", rest); [INFO] [stdout] ... [INFO] [stdout] 323 | } [INFO] [stdout] 324 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/core_api/mod.rs:222:2 [INFO] [stdout] | [INFO] [stdout] 222 | / pub fn search( [INFO] [stdout] 223 | | &self, [INFO] [stdout] 224 | | target: &str, [INFO] [stdout] 225 | | no_default_features: bool, [INFO] [stdout] ... | [INFO] [stdout] 230 | | raw_source: bool, [INFO] [stdout] 231 | | ) -> Result { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/core_api/mod.rs:378:2 [INFO] [stdout] | [INFO] [stdout] 378 | / pub fn render( [INFO] [stdout] 379 | | &self, [INFO] [stdout] 380 | | target: &str, [INFO] [stdout] 381 | | no_default_features: bool, [INFO] [stdout] ... | [INFO] [stdout] 386 | | raw_source: bool, [INFO] [stdout] 387 | | ) -> Result { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/render/items/mod.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | if !output.is_empty() [INFO] [stdout] | ________^ [INFO] [stdout] 186 | | && state.config.render_source_labels [INFO] [stdout] 187 | | && !matches!(item.inner, ItemEnum::Use(_)) [INFO] [stdout] 188 | | && !(matches!(item.inner, ItemEnum::Module(_)) && state.config.plain) [INFO] [stdout] | |_____________________________________________________________________________^ help: try: `!(output.is_empty() || !state.config.render_source_labels || matches!(item.inner, ItemEnum::Use(_)) || matches!(item.inner, ItemEnum::Module(_)) && state.config.plain)` [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] --> tests/gaps.rs:63:33 [INFO] [stdout] | [INFO] [stdout] 63 | let rendered = renderer.render(&crate_data).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `crate_data` [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 loop variable `i` is only used to index `lines` [INFO] [stdout] --> src/render/utils.rs:171:11 [INFO] [stdout] | [INFO] [stdout] 171 | for i in start_line..end_line { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 171 - for i in start_line..end_line { [INFO] [stdout] 171 + for in lines.iter().take(end_line).skip(start_line) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> tests/skelebuild.rs:84:39 [INFO] [stdout] | [INFO] [stdout] 84 | fn find_inherent_save_path(crate_dir: &PathBuf) -> 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] 84 - fn find_inherent_save_path(crate_dir: &PathBuf) -> String { [INFO] [stdout] 84 + fn find_inherent_save_path(crate_dir: &Path) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> tests/skelebuild.rs:128:2 [INFO] [stdout] | [INFO] [stdout] 121 | / let inherent = inherent.unwrap_or_else(|| { [INFO] [stdout] 122 | | panic!( [INFO] [stdout] 123 | | "failed to find inherent save path; candidates: {:?}", [INFO] [stdout] 124 | | candidates [INFO] [stdout] 125 | | ) [INFO] [stdout] 126 | | }); [INFO] [stdout] | |_______- unnecessary `let` binding [INFO] [stdout] 127 | [INFO] [stdout] 128 | inherent [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] 121 ~ [INFO] [stdout] 122 | [INFO] [stdout] 123 ~ inherent.unwrap_or_else(|| { [INFO] [stdout] 124 ~ panic!( [INFO] [stdout] 125 ~ "failed to find inherent save path; candidates: {:?}", [INFO] [stdout] 126 ~ candidates [INFO] [stdout] 127 ~ ) [INFO] [stdout] 128 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> tests/skelebuild.rs:143:2 [INFO] [stdout] | [INFO] [stdout] 143 | state.output_path = Some(out_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `ripdoc::skelebuild::SkeleState { output_path: Some(out_path.clone()), plain: true, entries: vec![ [INFO] [stdout] SkeleEntry::Injection(SkeleInjection { [INFO] [stdout] content: "## Intro\nThis is injected commentary.".to_string(), [INFO] [stdout] }), [INFO] [stdout] // Users often guess the crate prefix from the package name (tome_term), but for bin crates [INFO] [stdout] // rustdoc uses the bin name (tome). skelebuild should still resolve this. [INFO] [stdout] SkeleEntry::Target(SkeleTarget { [INFO] [stdout] path: format!( [INFO] [stdout] "{}::tome_term::terminal_panel::TerminalState", [INFO] [stdout] crate_dir.display() [INFO] [stdout] ), [INFO] [stdout] implementation: true, [INFO] [stdout] raw_source: false, [INFO] [stdout] private: false, [INFO] [stdout] }), [INFO] [stdout] SkeleEntry::Injection(SkeleInjection { [INFO] [stdout] // Stored injections are literal; CLI `inject` now unescapes `\\n` by default. [INFO] [stdout] content: "### Notes\n- first\n- second".to_string(), [INFO] [stdout] }), [INFO] [stdout] SkeleEntry::Target(SkeleTarget { [INFO] [stdout] path: format!("{}::{inherent_save}", crate_dir.display()), [INFO] [stdout] implementation: true, [INFO] [stdout] raw_source: false, [INFO] [stdout] private: false, [INFO] [stdout] }), [INFO] [stdout] // Target an entire impl block via `Type::Trait`. [INFO] [stdout] SkeleEntry::Target(SkeleTarget { [INFO] [stdout] path: format!("{}::editor::Editor::EditorOps", crate_dir.display()), [INFO] [stdout] implementation: false, [INFO] [stdout] raw_source: false, [INFO] [stdout] private: false, [INFO] [stdout] }), [INFO] [stdout] ] }` and removing relevant reassignments [INFO] [stdout] --> tests/skelebuild.rs:142:2 [INFO] [stdout] | [INFO] [stdout] 142 | let mut state = SkeleState::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> src/skelebuild/resolver.rs:176:2 [INFO] [stdout] | [INFO] [stdout] 176 | / let Some(ty_item) = crate_data.index.get(&ty_match.item_id) else { [INFO] [stdout] 177 | | return None; [INFO] [stdout] 178 | | }; [INFO] [stdout] | |______^ help: replace it with: `let ty_item = crate_data.index.get(&ty_match.item_id)?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/skelebuild/resolver.rs:294:2 [INFO] [stdout] | [INFO] [stdout] 294 | / if matched_id.is_none() && !strict { [INFO] [stdout] 295 | | if let Some((first, rest)) = base_query.split_once("::") { [INFO] [stdout] 296 | | if let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | | if first != actual_crate && first != "crate" { [INFO] [stdout] ... | [INFO] [stdout] 327 | | } [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] 294 ~ if matched_id.is_none() && !strict [INFO] [stdout] 295 ~ && let Some((first, rest)) = base_query.split_once("::") { [INFO] [stdout] 296 | if let Some(ref actual_crate) = crate_name { [INFO] [stdout] ... [INFO] [stdout] 325 | } [INFO] [stdout] 326 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/skelebuild/resolver.rs:295:3 [INFO] [stdout] | [INFO] [stdout] 295 | / if let Some((first, rest)) = base_query.split_once("::") { [INFO] [stdout] 296 | | if let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | | if first != actual_crate && first != "crate" { [INFO] [stdout] 298 | | let crate_query = format!("crate::{}", rest); [INFO] [stdout] ... | [INFO] [stdout] 326 | | } [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] 295 ~ if let Some((first, rest)) = base_query.split_once("::") [INFO] [stdout] 296 ~ && let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | if first != actual_crate && first != "crate" { [INFO] [stdout] ... [INFO] [stdout] 324 | } [INFO] [stdout] 325 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/skelebuild/resolver.rs:296:4 [INFO] [stdout] | [INFO] [stdout] 296 | / if let Some(ref actual_crate) = crate_name { [INFO] [stdout] 297 | | if first != actual_crate && first != "crate" { [INFO] [stdout] 298 | | let crate_query = format!("crate::{}", rest); [INFO] [stdout] ... | [INFO] [stdout] 325 | | } [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] 296 ~ if let Some(ref actual_crate) = crate_name [INFO] [stdout] 297 ~ && first != actual_crate && first != "crate" { [INFO] [stdout] 298 | let crate_query = format!("crate::{}", rest); [INFO] [stdout] ... [INFO] [stdout] 323 | } [INFO] [stdout] 324 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/skelebuild.rs:399:16 [INFO] [stdout] | [INFO] [stdout] 399 | let entries = vec![ [INFO] [stdout] | ___________________^ [INFO] [stdout] 400 | | SkeleEntry::Target(SkeleTarget { [INFO] [stdout] 401 | | path: "crate::module::Type".to_string(), [INFO] [stdout] 402 | | implementation: true, [INFO] [stdout] ... | [INFO] [stdout] 414 | | }), [INFO] [stdout] 415 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 399 ~ let entries = [SkeleEntry::Target(SkeleTarget { [INFO] [stdout] 400 ~ path: "crate::module::Type".to_string(), [INFO] [stdout] 401 ~ implementation: true, [INFO] [stdout] 402 ~ raw_source: false, [INFO] [stdout] 403 ~ private: true, [INFO] [stdout] 404 ~ }), [INFO] [stdout] 405 ~ SkeleEntry::Injection(SkeleInjection { [INFO] [stdout] 406 ~ content: "## Notes".to_string(), [INFO] [stdout] 407 ~ }), [INFO] [stdout] 408 ~ SkeleEntry::RawSource(SkeleRawSource { [INFO] [stdout] 409 ~ file: PathBuf::from("/home/user/project/src/lib.rs"), [INFO] [stdout] 410 ~ canonical_key: Some("src/lib.rs".to_string()), [INFO] [stdout] 411 ~ start_line: None, [INFO] [stdout] 412 ~ end_line: None, [INFO] [stdout] 413 ~ })]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/core_api/mod.rs:222:2 [INFO] [stdout] | [INFO] [stdout] 222 | / pub fn search( [INFO] [stdout] 223 | | &self, [INFO] [stdout] 224 | | target: &str, [INFO] [stdout] 225 | | no_default_features: bool, [INFO] [stdout] ... | [INFO] [stdout] 230 | | raw_source: bool, [INFO] [stdout] 231 | | ) -> Result { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/core_api/mod.rs:378:2 [INFO] [stdout] | [INFO] [stdout] 378 | / pub fn render( [INFO] [stdout] 379 | | &self, [INFO] [stdout] 380 | | target: &str, [INFO] [stdout] 381 | | no_default_features: bool, [INFO] [stdout] ... | [INFO] [stdout] 386 | | raw_source: bool, [INFO] [stdout] 387 | | ) -> Result { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.84s [INFO] running `Command { std: "docker" "inspect" "8780121f3cd92d51d2229d644ba46e35a52333824dd03875bf9abaf12e88e763", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8780121f3cd92d51d2229d644ba46e35a52333824dd03875bf9abaf12e88e763", kill_on_drop: false }` [INFO] [stdout] 8780121f3cd92d51d2229d644ba46e35a52333824dd03875bf9abaf12e88e763