[INFO] cloning repository https://github.com/avolens/kubefuzz [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/avolens/kubefuzz" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Favolens%2Fkubefuzz", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Favolens%2Fkubefuzz'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 290167e148b95d023db9f03869cf3e9eb6d48249 [INFO] linting avolens/kubefuzz against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Favolens%2Fkubefuzz" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/avolens/kubefuzz [INFO] finished tweaking git repo https://github.com/avolens/kubefuzz [INFO] tweaked toml for git repo https://github.com/avolens/kubefuzz written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/avolens/kubefuzz 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 git repo https://github.com/avolens/kubefuzz 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 kube v0.82.2 [INFO] [stderr] Downloaded rand_regex v0.15.1 [INFO] [stderr] Downloaded pin-project v1.1.0 [INFO] [stderr] Downloaded tokio-openssl v0.6.3 [INFO] [stderr] Downloaded hyper-openssl v0.9.2 [INFO] [stderr] Downloaded proc-macro2 v1.0.60 [INFO] [stderr] Downloaded kube-core v0.82.2 [INFO] [stderr] Downloaded clap v4.3.5 [INFO] [stderr] Downloaded bitflags v2.3.2 [INFO] [stderr] Downloaded unsafe-libyaml v0.2.8 [INFO] [stderr] Downloaded serde_json v1.0.97 [INFO] [stderr] Downloaded clap_builder v4.3.5 [INFO] [stderr] Downloaded kube-client v0.82.2 [INFO] [stderr] Downloaded tower-http v0.4.1 [INFO] [stderr] Downloaded serde_yaml v0.9.21 [INFO] [stderr] Downloaded pin-project-internal v1.1.0 [INFO] [stderr] Downloaded jsonpath_lib v0.3.0 [INFO] [stderr] Downloaded k8s-openapi v0.18.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8f7e3a17e3b553fc1b9000fecd4fe2b87271c9b1e72e25ffc44efe7bd215045f [INFO] running `Command { std: "docker" "start" "-a" "8f7e3a17e3b553fc1b9000fecd4fe2b87271c9b1e72e25ffc44efe7bd215045f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8f7e3a17e3b553fc1b9000fecd4fe2b87271c9b1e72e25ffc44efe7bd215045f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f7e3a17e3b553fc1b9000fecd4fe2b87271c9b1e72e25ffc44efe7bd215045f", kill_on_drop: false }` [INFO] [stdout] 8f7e3a17e3b553fc1b9000fecd4fe2b87271c9b1e72e25ffc44efe7bd215045f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 321f96efd9dd8f1dfeb03e429164b48cb2877564213db28596d076a74c7f7c43 [INFO] running `Command { std: "docker" "start" "-a" "321f96efd9dd8f1dfeb03e429164b48cb2877564213db28596d076a74c7f7c43", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.146 [INFO] [stderr] Compiling proc-macro2 v1.0.60 [INFO] [stderr] Compiling parking_lot_core v0.9.8 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Compiling futures-channel v0.3.28 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling futures-task v0.3.28 [INFO] [stderr] Compiling serde v1.0.164 [INFO] [stderr] Compiling futures-util v0.3.28 [INFO] [stderr] Checking futures-io v0.3.28 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling openssl-sys v0.9.90 [INFO] [stderr] Compiling serde_json v1.0.97 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Compiling openssl v0.10.55 [INFO] [stderr] Compiling rustix v0.37.20 [INFO] [stderr] Checking percent-encoding v2.3.0 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Compiling k8s-openapi v0.18.0 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking form_urlencoded v1.2.0 [INFO] [stderr] Compiling signal-hook v0.3.15 [INFO] [stderr] Compiling tokio-openssl v0.6.3 [INFO] [stderr] Checking linux-raw-sys v0.3.8 [INFO] [stderr] Checking iana-time-zone v0.1.57 [INFO] [stderr] Compiling thiserror v1.0.40 [INFO] [stderr] Compiling hyper-openssl v0.9.2 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Checking base64 v0.21.2 [INFO] [stderr] Checking anstyle-parse v0.2.1 [INFO] [stderr] Checking aho-corasick v1.0.2 [INFO] [stderr] Checking tracing-core v0.1.31 [INFO] [stderr] Checking anstyle v1.0.1 [INFO] [stderr] Checking bitflags v2.3.2 [INFO] [stderr] Checking base64 v0.20.0 [INFO] [stderr] Checking http-range-header v0.3.0 [INFO] [stderr] Checking zeroize v1.6.0 [INFO] [stderr] Checking unsafe-libyaml v0.2.8 [INFO] [stderr] Checking linked_hash_set v0.1.4 [INFO] [stderr] Checking anstyle-query v1.0.0 [INFO] [stderr] Checking regex-syntax v0.7.2 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking pem v1.1.1 [INFO] [stderr] Checking either v1.8.1 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking clap_lex v0.5.0 [INFO] [stderr] Checking termcolor v1.2.0 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Compiling kubefuzz v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking idna v0.4.0 [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> build.rs:5:15 [INFO] [stdout] | [INFO] [stdout] 5 | .args(&["describe", "--tags"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["describe", "--tags"]` [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] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking unicode-segmentation v1.10.1 [INFO] [stderr] Checking url v2.4.0 [INFO] [stderr] Compiling quote v1.0.28 [INFO] [stderr] Compiling syn v2.0.18 [INFO] [stderr] Checking ordered-float v2.10.0 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Checking num_cpus v1.15.0 [INFO] [stderr] Checking socket2 v0.4.9 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking time v0.1.45 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking regex v1.8.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_xorshift v0.3.0 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.25.0 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Checking rand_regex v0.15.1 [INFO] [stderr] Checking tui v0.19.0 [INFO] [stderr] Checking is-terminal v0.4.7 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Checking anstream v0.3.2 [INFO] [stderr] Checking pretty_env_logger v0.4.0 [INFO] [stderr] Checking clap_builder v4.3.5 [INFO] [stderr] Compiling serde_derive v1.0.164 [INFO] [stderr] Compiling futures-macro v0.3.28 [INFO] [stderr] Compiling tokio-macros v2.1.0 [INFO] [stderr] Compiling tracing-attributes v0.1.26 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.40 [INFO] [stderr] Compiling pin-project-internal v1.1.0 [INFO] [stderr] Compiling clap_derive v4.3.2 [INFO] [stderr] Checking tokio v1.28.2 [INFO] [stderr] Checking tracing v0.1.37 [INFO] [stderr] Checking pin-project v1.1.0 [INFO] [stderr] Checking clap v4.3.5 [INFO] [stderr] Checking futures-executor v0.3.28 [INFO] [stderr] Checking tower-http v0.4.1 [INFO] [stderr] Checking futures v0.3.28 [INFO] [stderr] Checking hyper v0.14.26 [INFO] [stderr] Checking tokio-io-timeout v1.2.0 [INFO] [stderr] Checking tokio-util v0.7.8 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking chrono v0.4.26 [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking secrecy v0.8.0 [INFO] [stderr] Checking serde_yaml v0.9.21 [INFO] [stderr] Checking serde-transcode v1.1.1 [INFO] [stderr] Checking jsonpath_lib v0.3.0 [INFO] [stderr] Checking hyper-timeout v0.4.1 [INFO] [stderr] Checking kube-core v0.82.2 [INFO] [stderr] Checking kube-client v0.82.2 [INFO] [stderr] Checking kube v0.82.2 [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/generator/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_yaml; [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: redundant field names in struct initialization [INFO] [stdout] --> src/runtime/mode_fuzz.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | constraint: constraint, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constraint` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/generator/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_yaml; [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: redundant field names in struct initialization [INFO] [stdout] --> src/runtime/mode_fuzz.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | constraint: constraint, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constraint` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` 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/conf/mod.rs:99:35 [INFO] [stdout] | [INFO] [stdout] 99 | Unexpected::Other(&"not a string or object"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"not a string or object"` [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: called `unwrap` on `kconf_path` after checking its variant with `is_some` [INFO] [stdout] --> src/executor/mod.rs:20:48 [INFO] [stdout] | [INFO] [stdout] 19 | if kconf_path.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = kconf_path` [INFO] [stdout] 20 | info!("using kubeconfig from path {}", kconf_path.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `kconf_path` after checking its variant with `is_some` [INFO] [stdout] --> src/executor/mod.rs:21:45 [INFO] [stdout] | [INFO] [stdout] 19 | if kconf_path.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = kconf_path` [INFO] [stdout] 20 | info!("using kubeconfig from path {}", kconf_path.unwrap()); [INFO] [stdout] 21 | let kconfig = Kubeconfig::read_from(kconf_path.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/executor/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | / return match Client::try_default().await { [INFO] [stdout] 38 | | Err(e) => error_exit!("could not infer kubeconfig from environment: {}", e), [INFO] [stdout] 39 | | Ok(cl) => cl, [INFO] [stdout] 40 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 ~ match Client::try_default().await { [INFO] [stdout] 38 + Err(e) => error_exit!("could not infer kubeconfig from environment: {}", e), [INFO] [stdout] 39 + Ok(cl) => cl, [INFO] [stdout] 40 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/executor/mod.rs:66:53 [INFO] [stdout] | [INFO] [stdout] 66 | let gvk = GroupVersionKind::gvk(group, version, &kind); [INFO] [stdout] | ^^^^^ help: change this to: `kind` [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: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return serde_json::Value::String(ip); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return serde_json::Value::String(ip); [INFO] [stdout] 17 + serde_json::Value::String(ip) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | / return match format { [INFO] [stdout] 67 | | Some(fmt) => match fmt.as_str() { [INFO] [stdout] 68 | | "int32" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 69 | | "int64" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] ... | [INFO] [stdout] 72 | | None => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 73 | | }; [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 ~ match format { [INFO] [stdout] 67 + Some(fmt) => match fmt.as_str() { [INFO] [stdout] 68 + "int32" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 69 + "int64" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 70 + &_ => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 71 + }, [INFO] [stdout] 72 + None => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 73 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | return arr; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 94 - return arr; [INFO] [stdout] 94 + arr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern reimplements `Option::unwrap_or` [INFO] [stdout] --> src/generator/gen.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let (min, max) = match spec.minmax { [INFO] [stdout] | ______________________^ [INFO] [stdout] 85 | | Some(minmax) => minmax, [INFO] [stdout] 86 | | None => (1, 20), [INFO] [stdout] 87 | | }; [INFO] [stdout] | |_____^ help: replace with: `spec.minmax.unwrap_or((1, 20))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or)]` 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/generator/gen.rs:92:32 [INFO] [stdout] | [INFO] [stdout] 92 | .push(gen_property(&items, propname)); [INFO] [stdout] | ^^^^^^ help: change this to: `items` [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: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 125 - return None; [INFO] [stdout] 125 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:174:21 [INFO] [stdout] | [INFO] [stdout] 174 | "string" => return gen_string(propname, &spec.format, spec.is_quant), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 - "string" => return gen_string(propname, &spec.format, spec.is_quant), [INFO] [stdout] 174 + "string" => gen_string(propname, &spec.format, spec.is_quant), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:175:22 [INFO] [stdout] | [INFO] [stdout] 175 | "boolean" => return gen_bool(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 175 - "boolean" => return gen_bool(), [INFO] [stdout] 175 + "boolean" => gen_bool(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | "array" => return gen_array(spec, propname), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 - "array" => return gen_array(spec, propname), [INFO] [stdout] 176 + "array" => gen_array(spec, propname), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:177:22 [INFO] [stdout] | [INFO] [stdout] 177 | "integer" => return gen_int(propname, &spec.format), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 177 - "integer" => return gen_int(propname, &spec.format), [INFO] [stdout] 177 + "integer" => gen_int(propname, &spec.format), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:178:21 [INFO] [stdout] | [INFO] [stdout] 178 | "number" => return gen_int(propname, &spec.format), // TODO: number differs from integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - "number" => return gen_int(propname, &spec.format), // TODO: number differs from integer [INFO] [stdout] 178 + "number" => gen_int(propname, &spec.format), // TODO: number differs from integer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/generator/gen.rs:160:24 [INFO] [stdout] | [INFO] [stdout] 160 | for opt in optionalprops[0..num_optional].to_vec() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `optionalprops[0..num_optional].iter().cloned()` [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: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | return resc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 204 - return resc; [INFO] [stdout] 204 + resc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/conf/mod.rs:99:35 [INFO] [stdout] | [INFO] [stdout] 99 | Unexpected::Other(&"not a string or object"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"not a string or object"` [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: called `unwrap` on `kconf_path` after checking its variant with `is_some` [INFO] [stdout] --> src/executor/mod.rs:20:48 [INFO] [stdout] | [INFO] [stdout] 19 | if kconf_path.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = kconf_path` [INFO] [stdout] 20 | info!("using kubeconfig from path {}", kconf_path.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `kconf_path` after checking its variant with `is_some` [INFO] [stdout] --> src/executor/mod.rs:21:45 [INFO] [stdout] | [INFO] [stdout] 19 | if kconf_path.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = kconf_path` [INFO] [stdout] 20 | info!("using kubeconfig from path {}", kconf_path.unwrap()); [INFO] [stdout] 21 | let kconfig = Kubeconfig::read_from(kconf_path.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/executor/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | / return match Client::try_default().await { [INFO] [stdout] 38 | | Err(e) => error_exit!("could not infer kubeconfig from environment: {}", e), [INFO] [stdout] 39 | | Ok(cl) => cl, [INFO] [stdout] 40 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 ~ match Client::try_default().await { [INFO] [stdout] 38 + Err(e) => error_exit!("could not infer kubeconfig from environment: {}", e), [INFO] [stdout] 39 + Ok(cl) => cl, [INFO] [stdout] 40 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/executor/mod.rs:66:53 [INFO] [stdout] | [INFO] [stdout] 66 | let gvk = GroupVersionKind::gvk(group, version, &kind); [INFO] [stdout] | ^^^^^ help: change this to: `kind` [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 `map_or` can be simplified [INFO] [stdout] --> src/generator/k8sresc.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | let is_quant = intermediate [INFO] [stdout] | ________________________^ [INFO] [stdout] 67 | | .description [INFO] [stdout] 68 | | .map_or(false, |desc| desc.contains("quantity")); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 68 - .map_or(false, |desc| desc.contains("quantity")); [INFO] [stdout] 68 + .is_some_and(|desc| desc.contains("quantity")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return serde_json::Value::String(ip); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return serde_json::Value::String(ip); [INFO] [stdout] 17 + serde_json::Value::String(ip) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/rand.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | return seed; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return seed; [INFO] [stdout] 25 + seed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | / return match format { [INFO] [stdout] 67 | | Some(fmt) => match fmt.as_str() { [INFO] [stdout] 68 | | "int32" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 69 | | "int64" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] ... | [INFO] [stdout] 72 | | None => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 73 | | }; [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 ~ match format { [INFO] [stdout] 67 + Some(fmt) => match fmt.as_str() { [INFO] [stdout] 68 + "int32" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 69 + "int64" => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 70 + &_ => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 71 + }, [INFO] [stdout] 72 + None => serde_json::Value::Number(rand_int::().into()), [INFO] [stdout] 73 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/generator/rand.rs:70:22 [INFO] [stdout] | [INFO] [stdout] 70 | .map(|_| cs[rng.gen_range(0..cs.len())] as u8) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cs[rng.gen_range(0..cs.len())]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/generator/rand.rs:84:14 [INFO] [stdout] | [INFO] [stdout] 84 | .expect(format!("could not compile regex '{}'", ®ex).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("could not compile regex '{}'", ®ex))` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / return path [INFO] [stdout] 21 | | .split(".") [INFO] [stdout] 22 | | .filter(|x| !x.is_empty()) [INFO] [stdout] 23 | | .collect::>() [INFO] [stdout] 24 | | .join("."); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ path [INFO] [stdout] 21 + .split(".") [INFO] [stdout] 22 + .filter(|x| !x.is_empty()) [INFO] [stdout] 23 + .collect::>() [INFO] [stdout] 24 ~ .join(".") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | return arr; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 94 - return arr; [INFO] [stdout] 94 + arr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern reimplements `Option::unwrap_or` [INFO] [stdout] --> src/generator/gen.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let (min, max) = match spec.minmax { [INFO] [stdout] | ______________________^ [INFO] [stdout] 85 | | Some(minmax) => minmax, [INFO] [stdout] 86 | | None => (1, 20), [INFO] [stdout] 87 | | }; [INFO] [stdout] | |_____^ help: replace with: `spec.minmax.unwrap_or((1, 20))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or)]` 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/generator/gen.rs:92:32 [INFO] [stdout] | [INFO] [stdout] 92 | .push(gen_property(&items, propname)); [INFO] [stdout] | ^^^^^^ help: change this to: `items` [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: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 125 - return None; [INFO] [stdout] 125 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:174:21 [INFO] [stdout] | [INFO] [stdout] 174 | "string" => return gen_string(propname, &spec.format, spec.is_quant), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 - "string" => return gen_string(propname, &spec.format, spec.is_quant), [INFO] [stdout] 174 + "string" => gen_string(propname, &spec.format, spec.is_quant), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:175:22 [INFO] [stdout] | [INFO] [stdout] 175 | "boolean" => return gen_bool(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 175 - "boolean" => return gen_bool(), [INFO] [stdout] 175 + "boolean" => gen_bool(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | "array" => return gen_array(spec, propname), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 - "array" => return gen_array(spec, propname), [INFO] [stdout] 176 + "array" => gen_array(spec, propname), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:177:22 [INFO] [stdout] | [INFO] [stdout] 177 | "integer" => return gen_int(propname, &spec.format), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 177 - "integer" => return gen_int(propname, &spec.format), [INFO] [stdout] 177 + "integer" => gen_int(propname, &spec.format), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:178:21 [INFO] [stdout] | [INFO] [stdout] 178 | "number" => return gen_int(propname, &spec.format), // TODO: number differs from integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - "number" => return gen_int(propname, &spec.format), // TODO: number differs from integer [INFO] [stdout] 178 + "number" => gen_int(propname, &spec.format), // TODO: number differs from integer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:142:31 [INFO] [stdout] | [INFO] [stdout] 142 | .is_match(&childpath), [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `childpath` [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: unneeded `return` statement [INFO] [stdout] --> src/generator/mod.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 169 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 169 - return false; [INFO] [stdout] 169 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/generator/gen.rs:160:24 [INFO] [stdout] | [INFO] [stdout] 160 | for opt in optionalprops[0..num_optional].to_vec() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `optionalprops[0..num_optional].iter().cloned()` [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: called `unwrap` on `fcnfg.regex_values` after checking its variant with `is_some` [INFO] [stdout] --> src/generator/mod.rs:281:32 [INFO] [stdout] | [INFO] [stdout] 280 | if fcnfg.regex_values.is_some() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = &fcnfg.regex_values` [INFO] [stdout] 281 | spec._enum_regex = fcnfg.regex_values.as_ref().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> src/generator/mod.rs:208:25 [INFO] [stdout] | [INFO] [stdout] 208 | let child = childpath.split('.').last().unwrap().to_string(); [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] 208 - let child = childpath.split('.').last().unwrap().to_string(); [INFO] [stdout] 208 + let child = childpath.split('.').next_back().unwrap().to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/gen.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | return resc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 204 - return resc; [INFO] [stdout] 204 + resc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:241:29 [INFO] [stdout] | [INFO] [stdout] 241 | re.is_match(&parentpath) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `parentpath` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/generator/mod.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | / match &fcnfg.values { [INFO] [stdout] 250 | | Some(values) => { [INFO] [stdout] 251 | | if spec._enum.is_empty() { [INFO] [stdout] 252 | | spec._enum = values.clone(); [INFO] [stdout] ... | [INFO] [stdout] 276 | | None => {} [INFO] [stdout] 277 | | } [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] 249 ~ if let Some(values) = &fcnfg.values { [INFO] [stdout] 250 + if spec._enum.is_empty() { [INFO] [stdout] 251 + spec._enum = values.clone(); [INFO] [stdout] 252 + } else { [INFO] [stdout] 253 + match &fcnfg.values_mode { [INFO] [stdout] 254 + Some(mode) => { [INFO] [stdout] 255 + if *mode == ValuesMode::Override { [INFO] [stdout] 256 + warn!( [INFO] [stdout] 257 + "overriding enum for field '{}', original content : {:?}", [INFO] [stdout] 258 + parentpath, spec._enum [INFO] [stdout] 259 + ); [INFO] [stdout] 260 + spec._enum = values.clone(); [INFO] [stdout] 261 + } else { [INFO] [stdout] 262 + spec._enum.extend(values.clone()); [INFO] [stdout] 263 + } [INFO] [stdout] 264 + } [INFO] [stdout] 265 + None => { [INFO] [stdout] 266 + error_exit!( [INFO] [stdout] 267 + "missing values_mode for field '{}' since enum is not empty : {:?}", [INFO] [stdout] 268 + parentpath, [INFO] [stdout] 269 + spec._enum [INFO] [stdout] 270 + ); [INFO] [stdout] 271 + } [INFO] [stdout] 272 + } [INFO] [stdout] 273 + } [INFO] [stdout] 274 + } [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/generator/mod.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | / match &fcnfg.minmax { [INFO] [stdout] 286 | | Some(minmax) => { [INFO] [stdout] 287 | | if spec._type != "array" { [INFO] [stdout] 288 | | error_exit!( [INFO] [stdout] ... | [INFO] [stdout] 296 | | None => {} [INFO] [stdout] 297 | | } [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 Some(minmax) = &fcnfg.minmax { [INFO] [stdout] 286 + if spec._type != "array" { [INFO] [stdout] 287 + error_exit!( [INFO] [stdout] 288 + "minmax is only allowed for arrays, but found for field '{}'", [INFO] [stdout] 289 + parentpath [INFO] [stdout] 290 + ); [INFO] [stdout] 291 + } else { [INFO] [stdout] 292 + spec.minmax = Some(minmax.clone()); [INFO] [stdout] 293 + } [INFO] [stdout] 294 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(usize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/generator/mod.rs:293:40 [INFO] [stdout] | [INFO] [stdout] 293 | spec.minmax = Some(minmax.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*minmax` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:341:24 [INFO] [stdout] | [INFO] [stdout] 341 | constrain_spec(&constraintconfig, &mut *resc, &path, paths_covered); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `constraintconfig` [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: called `unwrap` on `field.regex_values` after checking its variant with `is_some` [INFO] [stdout] --> src/generator/mod.rs:382:26 [INFO] [stdout] | [INFO] [stdout] 381 | if field.regex_values.is_some() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = &field.regex_values` [INFO] [stdout] 382 | for regex in field.regex_values.as_ref().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:383:34 [INFO] [stdout] | [INFO] [stdout] 383 | match Regex::new(®ex) { [INFO] [stdout] | ^^^^^^ help: change this to: `regex` [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 `map_or` can be simplified [INFO] [stdout] --> src/generator/k8sresc.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | let is_quant = intermediate [INFO] [stdout] | ________________________^ [INFO] [stdout] 67 | | .description [INFO] [stdout] 68 | | .map_or(false, |desc| desc.contains("quantity")); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 68 - .map_or(false, |desc| desc.contains("quantity")); [INFO] [stdout] 68 + .is_some_and(|desc| desc.contains("quantity")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/rand.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | return seed; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return seed; [INFO] [stdout] 25 + seed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/generator/rand.rs:70:22 [INFO] [stdout] | [INFO] [stdout] 70 | .map(|_| cs[rng.gen_range(0..cs.len())] as u8) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cs[rng.gen_range(0..cs.len())]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/mutator/mod.rs:156:33 [INFO] [stdout] | [INFO] [stdout] 156 | let toremove: Vec = resource [INFO] [stdout] | _________________________________^ [INFO] [stdout] 157 | | .as_object() [INFO] [stdout] 158 | | .unwrap() [INFO] [stdout] 159 | | .keys() [INFO] [stdout] 160 | | .filter(|fieldname| !required.contains(fieldname) && chance(0.1)) [INFO] [stdout] 161 | | .map(|s| s.clone()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 156 ~ let toremove: Vec = resource [INFO] [stdout] 157 + .as_object() [INFO] [stdout] 158 + .unwrap() [INFO] [stdout] 159 + .keys() [INFO] [stdout] 160 + .filter(|fieldname| !required.contains(fieldname) && chance(0.1)).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/generator/rand.rs:84:14 [INFO] [stdout] | [INFO] [stdout] 84 | .expect(format!("could not compile regex '{}'", ®ex).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("could not compile regex '{}'", ®ex))` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generator/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / return path [INFO] [stdout] 21 | | .split(".") [INFO] [stdout] 22 | | .filter(|x| !x.is_empty()) [INFO] [stdout] 23 | | .collect::>() [INFO] [stdout] 24 | | .join("."); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ path [INFO] [stdout] 21 + .split(".") [INFO] [stdout] 22 + .filter(|x| !x.is_empty()) [INFO] [stdout] 23 + .collect::>() [INFO] [stdout] 24 ~ .join(".") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mutator/mod.rs:202:69 [INFO] [stdout] | [INFO] [stdout] 202 | Value::String(_) => mutate_string(field, subconstraint, &key), [INFO] [stdout] | ^^^^ help: change this to: `key` [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: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/mutator/mod.rs:211:30 [INFO] [stdout] | [INFO] [stdout] 211 | let toadd: Vec = constraint [INFO] [stdout] | ______________________________^ [INFO] [stdout] 212 | | .properties [INFO] [stdout] 213 | | .keys() [INFO] [stdout] 214 | | .filter(|fieldname| !resource.as_object().unwrap().contains_key(*fieldname)) [INFO] [stdout] 215 | | .map(|s| s.clone()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 211 ~ let toadd: Vec = constraint [INFO] [stdout] 212 + .properties [INFO] [stdout] 213 + .keys() [INFO] [stdout] 214 + .filter(|fieldname| !resource.as_object().unwrap().contains_key(*fieldname)).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/runtime/mode_fuzz.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | if !fs::metadata(&dir).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&dir).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:142:31 [INFO] [stdout] | [INFO] [stdout] 142 | .is_match(&childpath), [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `childpath` [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: unneeded `return` statement [INFO] [stdout] --> src/generator/mod.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 169 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 169 - return false; [INFO] [stdout] 169 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `fcnfg.regex_values` after checking its variant with `is_some` [INFO] [stdout] --> src/generator/mod.rs:281:32 [INFO] [stdout] | [INFO] [stdout] 280 | if fcnfg.regex_values.is_some() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = &fcnfg.regex_values` [INFO] [stdout] 281 | spec._enum_regex = fcnfg.regex_values.as_ref().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [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/runtime/mode_fuzz.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | / match do_fuzz_iteration( [INFO] [stdout] 110 | | &client, [INFO] [stdout] 111 | | &mut corpus, [INFO] [stdout] 112 | | &constraintmap, [INFO] [stdout] ... | [INFO] [stdout] 122 | | Ok(()) => {} [INFO] [stdout] 123 | | } [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] 109 ~ if let Err(e) = do_fuzz_iteration( [INFO] [stdout] 110 + &client, [INFO] [stdout] 111 + &mut corpus, [INFO] [stdout] 112 + &constraintmap, [INFO] [stdout] 113 + args, [INFO] [stdout] 114 + fuzzer_stats.clone(), [INFO] [stdout] 115 + ) [INFO] [stdout] 116 + .await { [INFO] [stdout] 117 + err = e; [INFO] [stdout] 118 + break; [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> src/generator/mod.rs:208:25 [INFO] [stdout] | [INFO] [stdout] 208 | let child = childpath.split('.').last().unwrap().to_string(); [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] 208 - let child = childpath.split('.').last().unwrap().to_string(); [INFO] [stdout] 208 + let child = childpath.split('.').next_back().unwrap().to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/runtime/mode_fuzz.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | if err.msg != "" { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!err.msg.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:241:29 [INFO] [stdout] | [INFO] [stdout] 241 | re.is_match(&parentpath) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `parentpath` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/generator/mod.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | / match &fcnfg.values { [INFO] [stdout] 250 | | Some(values) => { [INFO] [stdout] 251 | | if spec._enum.is_empty() { [INFO] [stdout] 252 | | spec._enum = values.clone(); [INFO] [stdout] ... | [INFO] [stdout] 276 | | None => {} [INFO] [stdout] 277 | | } [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] 249 ~ if let Some(values) = &fcnfg.values { [INFO] [stdout] 250 + if spec._enum.is_empty() { [INFO] [stdout] 251 + spec._enum = values.clone(); [INFO] [stdout] 252 + } else { [INFO] [stdout] 253 + match &fcnfg.values_mode { [INFO] [stdout] 254 + Some(mode) => { [INFO] [stdout] 255 + if *mode == ValuesMode::Override { [INFO] [stdout] 256 + warn!( [INFO] [stdout] 257 + "overriding enum for field '{}', original content : {:?}", [INFO] [stdout] 258 + parentpath, spec._enum [INFO] [stdout] 259 + ); [INFO] [stdout] 260 + spec._enum = values.clone(); [INFO] [stdout] 261 + } else { [INFO] [stdout] 262 + spec._enum.extend(values.clone()); [INFO] [stdout] 263 + } [INFO] [stdout] 264 + } [INFO] [stdout] 265 + None => { [INFO] [stdout] 266 + error_exit!( [INFO] [stdout] 267 + "missing values_mode for field '{}' since enum is not empty : {:?}", [INFO] [stdout] 268 + parentpath, [INFO] [stdout] 269 + spec._enum [INFO] [stdout] 270 + ); [INFO] [stdout] 271 + } [INFO] [stdout] 272 + } [INFO] [stdout] 273 + } [INFO] [stdout] 274 + } [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/generator/mod.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | / match &fcnfg.minmax { [INFO] [stdout] 286 | | Some(minmax) => { [INFO] [stdout] 287 | | if spec._type != "array" { [INFO] [stdout] 288 | | error_exit!( [INFO] [stdout] ... | [INFO] [stdout] 296 | | None => {} [INFO] [stdout] 297 | | } [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 Some(minmax) = &fcnfg.minmax { [INFO] [stdout] 286 + if spec._type != "array" { [INFO] [stdout] 287 + error_exit!( [INFO] [stdout] 288 + "minmax is only allowed for arrays, but found for field '{}'", [INFO] [stdout] 289 + parentpath [INFO] [stdout] 290 + ); [INFO] [stdout] 291 + } else { [INFO] [stdout] 292 + spec.minmax = Some(minmax.clone()); [INFO] [stdout] 293 + } [INFO] [stdout] 294 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(usize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/generator/mod.rs:293:40 [INFO] [stdout] | [INFO] [stdout] 293 | spec.minmax = Some(minmax.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*minmax` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/runtime/mode_fuzz.rs:215:42 [INFO] [stdout] | [INFO] [stdout] 215 | let errormsg = match deploy_resource(&sample, client, &args.namespace).await { [INFO] [stdout] | ^^^^^^^ help: change this to: `sample` [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/generator/mod.rs:341:24 [INFO] [stdout] | [INFO] [stdout] 341 | constrain_spec(&constraintconfig, &mut *resc, &path, paths_covered); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `constraintconfig` [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: called `unwrap` on `field.regex_values` after checking its variant with `is_some` [INFO] [stdout] --> src/generator/mod.rs:382:26 [INFO] [stdout] | [INFO] [stdout] 381 | if field.regex_values.is_some() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = &field.regex_values` [INFO] [stdout] 382 | for regex in field.regex_values.as_ref().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/runtime/mode_fuzz.rs:296:28 [INFO] [stdout] | [INFO] [stdout] 296 | async fn do_fuzz_iteration<'a, 'b>( [INFO] [stdout] | ^^ [INFO] [stdout] 297 | client: &kube::Client, [INFO] [stdout] 298 | corpus: &'a mut HashMap>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/runtime/mode_fuzz.rs:308:23 [INFO] [stdout] | [INFO] [stdout] 308 | for (_, entry) in &mut *corpus { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 308 - for (_, entry) in &mut *corpus { [INFO] [stdout] 308 + for entry in (*corpus).values_mut() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/runtime/mode_fuzz.rs:319:28 [INFO] [stdout] | [INFO] [stdout] 319 | for (_, constraint) in constraintmap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 319 - for (_, constraint) in constraintmap { [INFO] [stdout] 319 + for constraint in constraintmap.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/generator/mod.rs:383:34 [INFO] [stdout] | [INFO] [stdout] 383 | match Regex::new(®ex) { [INFO] [stdout] | ^^^^^^ help: change this to: `regex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/runtime/mode_fuzz.rs:339:27 [INFO] [stdout] | [INFO] [stdout] 339 | let key = corpus.keys().next().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*corpus.keys().next().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/runtime/mode_generate.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | / match gvkdir.strip_prefix(".") { [INFO] [stdout] 34 | | Some(s) => gvkdir = s.to_string(), [INFO] [stdout] 35 | | None => {} [INFO] [stdout] 36 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(s) = gvkdir.strip_prefix(".") { gvkdir = s.to_string() }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/mutator/mod.rs:156:33 [INFO] [stdout] | [INFO] [stdout] 156 | let toremove: Vec = resource [INFO] [stdout] | _________________________________^ [INFO] [stdout] 157 | | .as_object() [INFO] [stdout] 158 | | .unwrap() [INFO] [stdout] 159 | | .keys() [INFO] [stdout] 160 | | .filter(|fieldname| !required.contains(fieldname) && chance(0.1)) [INFO] [stdout] 161 | | .map(|s| s.clone()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 156 ~ let toremove: Vec = resource [INFO] [stdout] 157 + .as_object() [INFO] [stdout] 158 + .unwrap() [INFO] [stdout] 159 + .keys() [INFO] [stdout] 160 + .filter(|fieldname| !required.contains(fieldname) && chance(0.1)).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/runtime/mode_mutate.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | let spec = load_constrained_spec(&constraintfile, &args.schemadir); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `constraintfile` [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/mutator/mod.rs:202:69 [INFO] [stdout] | [INFO] [stdout] 202 | Value::String(_) => mutate_string(field, subconstraint, &key), [INFO] [stdout] | ^^^^ help: change this to: `key` [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: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/mutator/mod.rs:211:30 [INFO] [stdout] | [INFO] [stdout] 211 | let toadd: Vec = constraint [INFO] [stdout] | ______________________________^ [INFO] [stdout] 212 | | .properties [INFO] [stdout] 213 | | .keys() [INFO] [stdout] 214 | | .filter(|fieldname| !resource.as_object().unwrap().contains_key(*fieldname)) [INFO] [stdout] 215 | | .map(|s| s.clone()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 211 ~ let toadd: Vec = constraint [INFO] [stdout] 212 + .properties [INFO] [stdout] 213 + .keys() [INFO] [stdout] 214 + .filter(|fieldname| !resource.as_object().unwrap().contains_key(*fieldname)).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/runtime/mode_fuzz.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | if !fs::metadata(&dir).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&dir).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/runtime/mode_mutate.rs:124:43 [INFO] [stdout] | [INFO] [stdout] 124 | mutate_resource(&mut rawdata, &spec); [INFO] [stdout] | ^^^^^ help: change this to: `spec` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/runtime/mode_fuzz.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | / match do_fuzz_iteration( [INFO] [stdout] 110 | | &client, [INFO] [stdout] 111 | | &mut corpus, [INFO] [stdout] 112 | | &constraintmap, [INFO] [stdout] ... | [INFO] [stdout] 122 | | Ok(()) => {} [INFO] [stdout] 123 | | } [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] 109 ~ if let Err(e) = do_fuzz_iteration( [INFO] [stdout] 110 + &client, [INFO] [stdout] 111 + &mut corpus, [INFO] [stdout] 112 + &constraintmap, [INFO] [stdout] 113 + args, [INFO] [stdout] 114 + fuzzer_stats.clone(), [INFO] [stdout] 115 + ) [INFO] [stdout] 116 + .await { [INFO] [stdout] 117 + err = e; [INFO] [stdout] 118 + break; [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/runtime/mode_fuzz.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | if err.msg != "" { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!err.msg.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/runtime/mode_fuzz.rs:215:42 [INFO] [stdout] | [INFO] [stdout] 215 | let errormsg = match deploy_resource(&sample, client, &args.namespace).await { [INFO] [stdout] | ^^^^^^^ help: change this to: `sample` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/runtime/mode_fuzz.rs:296:28 [INFO] [stdout] | [INFO] [stdout] 296 | async fn do_fuzz_iteration<'a, 'b>( [INFO] [stdout] | ^^ [INFO] [stdout] 297 | client: &kube::Client, [INFO] [stdout] 298 | corpus: &'a mut HashMap>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/runtime/mode_fuzz.rs:308:23 [INFO] [stdout] | [INFO] [stdout] 308 | for (_, entry) in &mut *corpus { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 308 - for (_, entry) in &mut *corpus { [INFO] [stdout] 308 + for entry in (*corpus).values_mut() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/runtime/mode_fuzz.rs:319:28 [INFO] [stdout] | [INFO] [stdout] 319 | for (_, constraint) in constraintmap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 319 - for (_, constraint) in constraintmap { [INFO] [stdout] 319 + for constraint in constraintmap.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/runtime/mode_fuzz.rs:339:27 [INFO] [stdout] | [INFO] [stdout] 339 | let key = corpus.keys().next().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*corpus.keys().next().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/runtime/mode_generate.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | / match gvkdir.strip_prefix(".") { [INFO] [stdout] 34 | | Some(s) => gvkdir = s.to_string(), [INFO] [stdout] 35 | | None => {} [INFO] [stdout] 36 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(s) = gvkdir.strip_prefix(".") { gvkdir = s.to_string() }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/runtime/mode_mutate.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | let spec = load_constrained_spec(&constraintfile, &args.schemadir); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `constraintfile` [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/runtime/mode_mutate.rs:124:43 [INFO] [stdout] | [INFO] [stdout] 124 | mutate_resource(&mut rawdata, &spec); [INFO] [stdout] | ^^^^^ help: change this to: `spec` [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 43.33s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: openssl v0.10.55 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "321f96efd9dd8f1dfeb03e429164b48cb2877564213db28596d076a74c7f7c43", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "321f96efd9dd8f1dfeb03e429164b48cb2877564213db28596d076a74c7f7c43", kill_on_drop: false }` [INFO] [stdout] 321f96efd9dd8f1dfeb03e429164b48cb2877564213db28596d076a74c7f7c43