[INFO] fetching crate erd_rs 0.1.0... [INFO] linting erd_rs-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate erd_rs 0.1.0 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate erd_rs 0.1.0 [INFO] finished tweaking crates.io crate erd_rs 0.1.0 [INFO] tweaked toml for crates.io crate erd_rs 0.1.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate erd_rs 0.1.0 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 erd_rs 0.1.0 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 clap v4.5.27 [INFO] [stderr] Downloaded clap_builder v4.5.27 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 00c4fe02685128dc96ae1afd0935a370000c1217bb5c00fd3b171825a079a706 [INFO] running `Command { std: "docker" "start" "-a" "00c4fe02685128dc96ae1afd0935a370000c1217bb5c00fd3b171825a079a706", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "00c4fe02685128dc96ae1afd0935a370000c1217bb5c00fd3b171825a079a706", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "00c4fe02685128dc96ae1afd0935a370000c1217bb5c00fd3b171825a079a706", kill_on_drop: false }` [INFO] [stdout] 00c4fe02685128dc96ae1afd0935a370000c1217bb5c00fd3b171825a079a706 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] a1c6c23afd6dfe5201a26de8a9d01687f8e534b0dc008b993e137c57a25bb5d7 [INFO] running `Command { std: "docker" "start" "-a" "a1c6c23afd6dfe5201a26de8a9d01687f8e534b0dc008b993e137c57a25bb5d7", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.16 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking log v0.4.25 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking clap_builder v4.5.27 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking quote v1.0.38 [INFO] [stderr] Checking syn v2.0.96 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling clap_derive v4.5.24 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking clap v4.5.27 [INFO] [stderr] Checking erd_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/main.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | output.push(args.output.to_owned()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `&args.output` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/main.rs:87:22 [INFO] [stdout] | [INFO] [stdout] 87 | .current_dir(dir.to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use: `&dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:152:39 [INFO] [stdout] | [INFO] [stdout] 152 | syn::Item::Impl(iimpl) => match iimpl.self_ty.as_ref() { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 153 | | Type::Path(ty) => { [INFO] [stdout] 154 | | let clazz = ty.path.segments.last().unwrap().ident.to_string(); [INFO] [stdout] 155 | | let mut m = methods_map.get_mut(&clazz); [INFO] [stdout] ... | [INFO] [stdout] 163 | | _ => {} [INFO] [stdout] 164 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 152 ~ syn::Item::Impl(iimpl) => if let Type::Path(ty) = iimpl.self_ty.as_ref() { [INFO] [stdout] 153 + let clazz = ty.path.segments.last().unwrap().ident.to_string(); [INFO] [stdout] 154 + let mut m = methods_map.get_mut(&clazz); [INFO] [stdout] 155 + if m.is_none() { [INFO] [stdout] 156 + methods_map.insert(clazz.to_owned(), vec![]); [INFO] [stdout] 157 + m = methods_map.get_mut(&clazz); [INFO] [stdout] 158 + } [INFO] [stdout] 159 + let clazz_vis = clazz_map.get(&clazz).map(|v| v.0).unwrap_or_default(); [INFO] [stdout] 160 + m.unwrap().extend(parse_impl(iimpl, clazz, clazz_vis, fmt)?); [INFO] [stdout] 161 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | / match impl_item { [INFO] [stdout] 286 | | ImplItem::Fn(impl_item) => { [INFO] [stdout] 287 | | let (_, vis) = parse_vis(&impl_item.vis, fmt, default_vis); [INFO] [stdout] 288 | | let method = impl_item.sig.ident.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 322 | | _ => {} [INFO] [stdout] 323 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 285 ~ if let ImplItem::Fn(impl_item) = impl_item { [INFO] [stdout] 286 + let (_, vis) = parse_vis(&impl_item.vis, fmt, default_vis); [INFO] [stdout] 287 + let method = impl_item.sig.ident.to_string(); [INFO] [stdout] 288 + let inputs = impl_item [INFO] [stdout] 289 + .sig [INFO] [stdout] 290 + .inputs [INFO] [stdout] 291 + .iter() [INFO] [stdout] 292 + .filter_map(|i| match i { [INFO] [stdout] 293 + syn::FnArg::Typed(p_ty) => { [INFO] [stdout] 294 + let path = match p_ty.pat.as_ref() { [INFO] [stdout] 295 + Pat::Ident(p) => Some(p.ident.to_string()), [INFO] [stdout] 296 + _ => None, [INFO] [stdout] 297 + }; [INFO] [stdout] 298 + let ty = match p_ty.ty.as_ref() { [INFO] [stdout] 299 + Type::Path(p) => { [INFO] [stdout] 300 + Some(p.path.segments.last().unwrap().ident.to_string()) [INFO] [stdout] 301 + } [INFO] [stdout] 302 + _ => None, [INFO] [stdout] 303 + }; [INFO] [stdout] 304 + [INFO] [stdout] 305 + if !path.is_some() && !ty.is_some() { [INFO] [stdout] 306 + warn!("Failed to parse inputs of fn {method}"); [INFO] [stdout] 307 + None [INFO] [stdout] 308 + } else { [INFO] [stdout] 309 + Some((path.unwrap(), ty.unwrap())) [INFO] [stdout] 310 + } [INFO] [stdout] 311 + } [INFO] [stdout] 312 + _ => None, [INFO] [stdout] 313 + }) [INFO] [stdout] 314 + .collect::>(); [INFO] [stdout] 315 + let output = match impl_item.sig.output { [INFO] [stdout] 316 + ReturnType::Default => "".to_string(), [INFO] [stdout] 317 + ReturnType::Type(_, ty) => parse_return_type(ty.as_ref(), &clazz)?, [INFO] [stdout] 318 + }; [INFO] [stdout] 319 + markdown.push(fmt.format_fn(clazz.to_owned(), vis, method, inputs, output)); [INFO] [stdout] 320 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:306:32 [INFO] [stdout] | [INFO] [stdout] 306 | ... if !path.is_some() && !ty.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `path.is_none()` [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/main.rs:306:51 [INFO] [stdout] | [INFO] [stdout] 306 | ... if !path.is_some() && !ty.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `ty.is_none()` [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 `if` has identical blocks [INFO] [stdout] --> src/main.rs:349:37 [INFO] [stdout] | [INFO] [stdout] 349 | if ty.const_token.is_some() { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 350 | | Ok(format!( [INFO] [stdout] 351 | | "*const {}", [INFO] [stdout] 352 | | parse_return_type(&ty.elem, self_clazz)? [INFO] [stdout] 353 | | )) [INFO] [stdout] 354 | | } else if ty.mutability.is_some() { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/main.rs:354:43 [INFO] [stdout] | [INFO] [stdout] 354 | } else if ty.mutability.is_some() { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 355 | | Ok(format!( [INFO] [stdout] 356 | | "*const {}", [INFO] [stdout] 357 | | parse_return_type(&ty.elem, self_clazz)? [INFO] [stdout] 358 | | )) [INFO] [stdout] 359 | | } else { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/main.rs:370:22 [INFO] [stdout] | [INFO] [stdout] 370 | n.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/main.rs:378:47 [INFO] [stdout] | [INFO] [stdout] 378 | .map(|r_ty| r_ty.as_str().replace("Self", &self_clazz)) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `self_clazz` [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: unnecessary use of `to_owned` [INFO] [stdout] --> src/main.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | output.push(args.output.to_owned()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `&args.output` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/main.rs:87:22 [INFO] [stdout] | [INFO] [stdout] 87 | .current_dir(dir.to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use: `&dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:152:39 [INFO] [stdout] | [INFO] [stdout] 152 | syn::Item::Impl(iimpl) => match iimpl.self_ty.as_ref() { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 153 | | Type::Path(ty) => { [INFO] [stdout] 154 | | let clazz = ty.path.segments.last().unwrap().ident.to_string(); [INFO] [stdout] 155 | | let mut m = methods_map.get_mut(&clazz); [INFO] [stdout] ... | [INFO] [stdout] 163 | | _ => {} [INFO] [stdout] 164 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 152 ~ syn::Item::Impl(iimpl) => if let Type::Path(ty) = iimpl.self_ty.as_ref() { [INFO] [stdout] 153 + let clazz = ty.path.segments.last().unwrap().ident.to_string(); [INFO] [stdout] 154 + let mut m = methods_map.get_mut(&clazz); [INFO] [stdout] 155 + if m.is_none() { [INFO] [stdout] 156 + methods_map.insert(clazz.to_owned(), vec![]); [INFO] [stdout] 157 + m = methods_map.get_mut(&clazz); [INFO] [stdout] 158 + } [INFO] [stdout] 159 + let clazz_vis = clazz_map.get(&clazz).map(|v| v.0).unwrap_or_default(); [INFO] [stdout] 160 + m.unwrap().extend(parse_impl(iimpl, clazz, clazz_vis, fmt)?); [INFO] [stdout] 161 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | / match impl_item { [INFO] [stdout] 286 | | ImplItem::Fn(impl_item) => { [INFO] [stdout] 287 | | let (_, vis) = parse_vis(&impl_item.vis, fmt, default_vis); [INFO] [stdout] 288 | | let method = impl_item.sig.ident.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 322 | | _ => {} [INFO] [stdout] 323 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 285 ~ if let ImplItem::Fn(impl_item) = impl_item { [INFO] [stdout] 286 + let (_, vis) = parse_vis(&impl_item.vis, fmt, default_vis); [INFO] [stdout] 287 + let method = impl_item.sig.ident.to_string(); [INFO] [stdout] 288 + let inputs = impl_item [INFO] [stdout] 289 + .sig [INFO] [stdout] 290 + .inputs [INFO] [stdout] 291 + .iter() [INFO] [stdout] 292 + .filter_map(|i| match i { [INFO] [stdout] 293 + syn::FnArg::Typed(p_ty) => { [INFO] [stdout] 294 + let path = match p_ty.pat.as_ref() { [INFO] [stdout] 295 + Pat::Ident(p) => Some(p.ident.to_string()), [INFO] [stdout] 296 + _ => None, [INFO] [stdout] 297 + }; [INFO] [stdout] 298 + let ty = match p_ty.ty.as_ref() { [INFO] [stdout] 299 + Type::Path(p) => { [INFO] [stdout] 300 + Some(p.path.segments.last().unwrap().ident.to_string()) [INFO] [stdout] 301 + } [INFO] [stdout] 302 + _ => None, [INFO] [stdout] 303 + }; [INFO] [stdout] 304 + [INFO] [stdout] 305 + if !path.is_some() && !ty.is_some() { [INFO] [stdout] 306 + warn!("Failed to parse inputs of fn {method}"); [INFO] [stdout] 307 + None [INFO] [stdout] 308 + } else { [INFO] [stdout] 309 + Some((path.unwrap(), ty.unwrap())) [INFO] [stdout] 310 + } [INFO] [stdout] 311 + } [INFO] [stdout] 312 + _ => None, [INFO] [stdout] 313 + }) [INFO] [stdout] 314 + .collect::>(); [INFO] [stdout] 315 + let output = match impl_item.sig.output { [INFO] [stdout] 316 + ReturnType::Default => "".to_string(), [INFO] [stdout] 317 + ReturnType::Type(_, ty) => parse_return_type(ty.as_ref(), &clazz)?, [INFO] [stdout] 318 + }; [INFO] [stdout] 319 + markdown.push(fmt.format_fn(clazz.to_owned(), vis, method, inputs, output)); [INFO] [stdout] 320 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:306:32 [INFO] [stdout] | [INFO] [stdout] 306 | ... if !path.is_some() && !ty.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `path.is_none()` [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/main.rs:306:51 [INFO] [stdout] | [INFO] [stdout] 306 | ... if !path.is_some() && !ty.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `ty.is_none()` [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 `if` has identical blocks [INFO] [stdout] --> src/main.rs:349:37 [INFO] [stdout] | [INFO] [stdout] 349 | if ty.const_token.is_some() { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 350 | | Ok(format!( [INFO] [stdout] 351 | | "*const {}", [INFO] [stdout] 352 | | parse_return_type(&ty.elem, self_clazz)? [INFO] [stdout] 353 | | )) [INFO] [stdout] 354 | | } else if ty.mutability.is_some() { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/main.rs:354:43 [INFO] [stdout] | [INFO] [stdout] 354 | } else if ty.mutability.is_some() { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 355 | | Ok(format!( [INFO] [stdout] 356 | | "*const {}", [INFO] [stdout] 357 | | parse_return_type(&ty.elem, self_clazz)? [INFO] [stdout] 358 | | )) [INFO] [stdout] 359 | | } else { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/main.rs:370:22 [INFO] [stdout] | [INFO] [stdout] 370 | n.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/main.rs:378:47 [INFO] [stdout] | [INFO] [stdout] 378 | .map(|r_ty| r_ty.as_str().replace("Self", &self_clazz)) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `self_clazz` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.64s [INFO] running `Command { std: "docker" "inspect" "a1c6c23afd6dfe5201a26de8a9d01687f8e534b0dc008b993e137c57a25bb5d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a1c6c23afd6dfe5201a26de8a9d01687f8e534b0dc008b993e137c57a25bb5d7", kill_on_drop: false }` [INFO] [stdout] a1c6c23afd6dfe5201a26de8a9d01687f8e534b0dc008b993e137c57a25bb5d7