[INFO] cloning repository https://github.com/Zistack/macrospace [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zistack/macrospace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZistack%2Fmacrospace", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZistack%2Fmacrospace'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 52a5e6854c33c9d62fd8faa91f13a2f502bdeef0 [INFO] linting Zistack/macrospace against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZistack%2Fmacrospace" "/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/Zistack/macrospace [INFO] finished tweaking git repo https://github.com/Zistack/macrospace [INFO] tweaked toml for git repo https://github.com/Zistack/macrospace written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Zistack/macrospace 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/Zistack/macrospace 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 syn_derive v0.2.0 [INFO] [stderr] Downloaded syn_derive v0.1.8 [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] 241827801b8dfa9b6037fb802c74f60740a1982f97971aeadc19c47634d672ba [INFO] running `Command { std: "docker" "start" "-a" "241827801b8dfa9b6037fb802c74f60740a1982f97971aeadc19c47634d672ba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "241827801b8dfa9b6037fb802c74f60740a1982f97971aeadc19c47634d672ba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "241827801b8dfa9b6037fb802c74f60740a1982f97971aeadc19c47634d672ba", kill_on_drop: false }` [INFO] [stdout] 241827801b8dfa9b6037fb802c74f60740a1982f97971aeadc19c47634d672ba [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] 0c8a0239668b62333b3b05529c92c81d65a49d00cdf844f361b20748086a2125 [INFO] running `Command { std: "docker" "start" "-a" "0c8a0239668b62333b3b05529c92c81d65a49d00cdf844f361b20748086a2125", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking syn v2.0.104 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling syn_derive v0.1.8 [INFO] [stderr] Compiling syn_derive v0.2.0 [INFO] [stderr] Compiling macrospace-core v0.1.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling macrospace-macros v0.1.0 (/opt/rustwide/workdir/macros) [INFO] [stderr] Checking macrospace v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the `a @ _` pattern can be written as just `a` [INFO] [stdout] --> src/path_utils.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | a @ _ => a [INFO] [stdout] | ^^^^^ help: try: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `input @ _` pattern can be written as just `input` [INFO] [stdout] --> src/pattern/expect.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | (input @ _, TokenTree::Group (expected_group)) => [INFO] [stdout] | ^^^^^^^^^ help: try: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `input @ _` pattern can be written as just `input` [INFO] [stdout] --> src/pattern/expect.rs:107:4 [INFO] [stdout] | [INFO] [stdout] 107 | (input @ _, expected @ _) => [INFO] [stdout] | ^^^^^^^^^ help: try: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expected @ _` pattern can be written as just `expected` [INFO] [stdout] --> src/pattern/expect.rs:107:15 [INFO] [stdout] | [INFO] [stdout] 107 | (input @ _, expected @ _) => [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `expected` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `a @ _` pattern can be written as just `a` [INFO] [stdout] --> src/path_utils.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | a @ _ => a [INFO] [stdout] | ^^^^^ help: try: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `input @ _` pattern can be written as just `input` [INFO] [stdout] --> src/pattern/expect.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | (input @ _, TokenTree::Group (expected_group)) => [INFO] [stdout] | ^^^^^^^^^ help: try: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `input @ _` pattern can be written as just `input` [INFO] [stdout] --> src/pattern/expect.rs:107:4 [INFO] [stdout] | [INFO] [stdout] 107 | (input @ _, expected @ _) => [INFO] [stdout] | ^^^^^^^^^ help: try: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expected @ _` pattern can be written as just `expected` [INFO] [stdout] --> src/pattern/expect.rs:107:15 [INFO] [stdout] | [INFO] [stdout] 107 | (input @ _, expected @ _) => [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `expected` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/generics.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | if ! type_parameter . default . is_some () => count += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `type_parameter . default.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/generics.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | if ! const_parameter . default . is_some () => count += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `const_parameter . default.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` statement can be collapsed [INFO] [stdout] --> src/path_utils.rs:112:2 [INFO] [stdout] | [INFO] [stdout] 112 | / if let Some (last_segment) = p . segments . last_mut () [INFO] [stdout] 113 | | { [INFO] [stdout] 114 | | if let PathArguments::AngleBracketed (path_arguments) = [INFO] [stdout] 115 | | &mut last_segment . arguments [INFO] [stdout] ... | [INFO] [stdout] 121 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 112 ~ if let Some (last_segment) = p . segments . last_mut () [INFO] [stdout] 113 ~ && let PathArguments::AngleBracketed (path_arguments) = [INFO] [stdout] 114 | &mut last_segment . arguments [INFO] [stdout] ... [INFO] [stdout] 118 | . get_or_insert (::default ()); [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/substitute/substitutions.rs:88:32 [INFO] [stdout] | [INFO] [stdout] 88 | get_num_required_arguments (&item_parameters); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `item_parameters` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/substitute/substitutions.rs:239:5 [INFO] [stdout] | [INFO] [stdout] 239 | -> std::result::Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 488 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `substitute::substitutions::ArgumentMismatchError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/substitute/substitutions.rs:408:4 [INFO] [stdout] | [INFO] [stdout] 408 | / if let Type::Path (type_path) = ty [INFO] [stdout] 409 | | { [INFO] [stdout] 410 | | if type_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 431 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/substitute/substitutions.rs:404:32 [INFO] [stdout] | [INFO] [stdout] 404 | if let Some (Argument::Type (ty)) = self [INFO] [stdout] | ^^ replace this binding [INFO] [stdout] ... [INFO] [stdout] 408 | if let Type::Path (type_path) = ty [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:404:3 [INFO] [stdout] | [INFO] [stdout] 404 | / if let Some (Argument::Type (ty)) = self [INFO] [stdout] 405 | | . parameters [INFO] [stdout] 406 | | . get (&Parameter::Type (node . ident . clone ())) [INFO] [stdout] ... | [INFO] [stdout] 432 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 406 ~ . get (&Parameter::Type (node . ident . clone ())) [INFO] [stdout] 407 ~ && let Type::Path (type_path) = ty [INFO] [stdout] 408 | { [INFO] [stdout] ... [INFO] [stdout] 429 | } [INFO] [stdout] 430 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:408:4 [INFO] [stdout] | [INFO] [stdout] 408 | / if let Type::Path (type_path) = ty [INFO] [stdout] 409 | | { [INFO] [stdout] 410 | | if type_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 431 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 408 ~ if let Type::Path (type_path) = ty [INFO] [stdout] 409 ~ && type_path . qself . is_none () [INFO] [stdout] 410 | { [INFO] [stdout] ... [INFO] [stdout] 428 | } [INFO] [stdout] 429 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 410 | / if type_path . qself . is_none () [INFO] [stdout] 411 | | { [INFO] [stdout] 412 | | if let Some (ident) = type_path . path . get_ident () [INFO] [stdout] ... | [INFO] [stdout] 430 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 410 ~ if type_path . qself . is_none () [INFO] [stdout] 411 ~ && let Some (ident) = type_path . path . get_ident () [INFO] [stdout] 412 | { [INFO] [stdout] ... [INFO] [stdout] 427 | }; [INFO] [stdout] 428 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/substitute/substitutions.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | / if let Expr::Path (expr_path) = expr [INFO] [stdout] 453 | | { [INFO] [stdout] 454 | | if expr_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/substitute/substitutions.rs:441:33 [INFO] [stdout] | [INFO] [stdout] 441 | if let Some (Argument::Const (expr)) = self [INFO] [stdout] | ^^^^ replace this binding [INFO] [stdout] ... [INFO] [stdout] 452 | if let Expr::Path (expr_path) = expr [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:441:3 [INFO] [stdout] | [INFO] [stdout] 441 | / if let Some (Argument::Const (expr)) = self [INFO] [stdout] 442 | | . parameters [INFO] [stdout] 443 | | . get [INFO] [stdout] ... | [INFO] [stdout] 473 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 450 ~ ) [INFO] [stdout] 451 ~ && let Expr::Path (expr_path) = expr [INFO] [stdout] 452 | { [INFO] [stdout] ... [INFO] [stdout] 470 | } [INFO] [stdout] 471 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | / if let Expr::Path (expr_path) = expr [INFO] [stdout] 453 | | { [INFO] [stdout] 454 | | if expr_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 452 ~ if let Expr::Path (expr_path) = expr [INFO] [stdout] 453 ~ && expr_path . qself . is_none () [INFO] [stdout] 454 | { [INFO] [stdout] ... [INFO] [stdout] 469 | } [INFO] [stdout] 470 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:454:5 [INFO] [stdout] | [INFO] [stdout] 454 | / if expr_path . qself . is_none () [INFO] [stdout] 455 | | { [INFO] [stdout] 456 | | if let Some (ident) = expr_path . path . get_ident () [INFO] [stdout] ... | [INFO] [stdout] 471 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 454 ~ if expr_path . qself . is_none () [INFO] [stdout] 455 ~ && let Some (ident) = expr_path . path . get_ident () [INFO] [stdout] 456 | { [INFO] [stdout] ... [INFO] [stdout] 468 | }; [INFO] [stdout] 469 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/substitute/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod substitute; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `members.get(0)` [INFO] [stdout] --> src/struct_utils.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | match members . get (0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `members.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/pattern/structured_bindings.rs:92:24 [INFO] [stdout] | [INFO] [stdout] 92 | fn write_vec (vec: &Vec >, f: &mut Formatter <'_>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 92 - fn write_vec (vec: &Vec >, f: &mut Formatter <'_>) [INFO] [stdout] 92 + fn write_vec (vec: &[StructuredBinding ], f: &mut Formatter <'_>) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/pattern/structured_bindings.rs:129:33 [INFO] [stdout] | [INFO] [stdout] 129 | format_args! ("Some ({})", &*boxed_binding) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 129 - format_args! ("Some ({})", &*boxed_binding) [INFO] [stdout] 129 + format_args! ("Some ({})", boxed_binding) [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 129 | format_args! ("Some ({})", &**boxed_binding) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `StructuredBindings ` [INFO] [stdout] --> src/pattern/structured_bindings.rs:147:2 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn new () -> Self [INFO] [stdout] 148 | | { [INFO] [stdout] 149 | | Self {map: HashMap::new ()} [INFO] [stdout] 150 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 145 + impl Default for StructuredBindings { [INFO] [stdout] 146 + fn default() -> Self { [INFO] [stdout] 147 + Self::new() [INFO] [stdout] 148 + } [INFO] [stdout] 149 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/pattern/structured_bindings.rs:297:6 [INFO] [stdout] | [INFO] [stdout] 297 | if one_or_more_bindings . len () < 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `one_or_more_bindings.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `HashMap` [INFO] [stdout] --> src/pattern/structured_bindings.rs:399:19 [INFO] [stdout] | [INFO] [stdout] 399 | (&self . map) . into_iter () [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `HashMap` [INFO] [stdout] --> src/pattern/structured_bindings.rs:410:23 [INFO] [stdout] | [INFO] [stdout] 410 | (&mut self . map) . into_iter () [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:459:1 [INFO] [stdout] | [INFO] [stdout] 459 | / impl Into for ParameterBindingMismatch [INFO] [stdout] 460 | | where V: Display [INFO] [stdout] 461 | | { [INFO] [stdout] 462 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 466 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 459 ~ impl From > for syn::Error [INFO] [stdout] 460 | where V: Display [INFO] [stdout] 461 | { [INFO] [stdout] 462 ~ fn from (val: ParameterBindingMismatch ) -> Self [INFO] [stdout] 463 | { [INFO] [stdout] 464 ~ syn::Error::new (proc_macro2::Span::call_site (), &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:501:1 [INFO] [stdout] | [INFO] [stdout] 501 | impl Into for ParameterBindingNotFound [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 501 ~ impl From for syn::Error [INFO] [stdout] 502 | { [INFO] [stdout] 503 ~ fn from (val: ParameterBindingNotFound) -> Self [INFO] [stdout] 504 | { [INFO] [stdout] 505 ~ syn::Error::new_spanned (&val . parameter, val . to_string ()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:550:1 [INFO] [stdout] | [INFO] [stdout] 550 | / impl Into for StructuredBindingMergeError [INFO] [stdout] 551 | | where V: Display [INFO] [stdout] 552 | | { [INFO] [stdout] 553 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 561 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 550 ~ impl From > for syn::Error [INFO] [stdout] 551 | where V: Display [INFO] [stdout] 552 | { [INFO] [stdout] 553 ~ fn from (val: StructuredBindingMergeError ) -> Self [INFO] [stdout] 554 | { [INFO] [stdout] 555 ~ match val [INFO] [stdout] 556 | { [INFO] [stdout] 557 ~ StructuredBindingMergeError ::Mismatch (e) => e . into (), [INFO] [stdout] 558 ~ StructuredBindingMergeError ::NotFound (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `pattern::structured_bindings::StructuredBindingTypeMismatch` [INFO] [stdout] --> src/pattern/structured_bindings.rs:611:5 [INFO] [stdout] | [INFO] [stdout] 611 | / StructuredBindingTypeMismatch::new [INFO] [stdout] 612 | | ( [INFO] [stdout] 613 | | ident . clone (), [INFO] [stdout] 614 | | s . ty (), [INFO] [stdout] ... | [INFO] [stdout] 617 | | . into () [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 611 ~ StructuredBindingTypeMismatch::new [INFO] [stdout] 612 ~ ( [INFO] [stdout] 613 ~ ident . clone (), [INFO] [stdout] 614 ~ s . ty (), [INFO] [stdout] 615 ~ StructuredBindingType::Value [INFO] [stdout] 616 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `binding_vec.get(0)` [INFO] [stdout] --> src/pattern/structured_bindings.rs:737:12 [INFO] [stdout] | [INFO] [stdout] 737 | match binding_vec . get (0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `binding_vec.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:840:1 [INFO] [stdout] | [INFO] [stdout] 840 | impl Into for StructuredBindingTypeMismatch [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 840 ~ impl From for syn::Error [INFO] [stdout] 841 | { [INFO] [stdout] 842 ~ fn from (val: StructuredBindingTypeMismatch) -> Self [INFO] [stdout] 843 | { [INFO] [stdout] 844 ~ syn::Error::new_spanned (&val . parameter, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:887:1 [INFO] [stdout] | [INFO] [stdout] 887 | impl Into for StructuredBindingLookupError [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 887 ~ impl From for syn::Error [INFO] [stdout] 888 | { [INFO] [stdout] 889 ~ fn from (val: StructuredBindingLookupError) -> Self [INFO] [stdout] 890 | { [INFO] [stdout] 891 ~ match val [INFO] [stdout] 892 | { [INFO] [stdout] 893 ~ StructuredBindingLookupError::TypeMismatch (e) => e . into (), [INFO] [stdout] 894 ~ StructuredBindingLookupError::NotFound (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 74 | -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 77 | if ! self . referenced_identifiers () . next () . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . referenced_identifiers () . next ().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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:93:29 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:266:6 [INFO] [stdout] | [INFO] [stdout] 266 | if ! self . referenced_identifiers () . next () . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . referenced_identifiers () . next ().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 boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:267:7 [INFO] [stdout] | [INFO] [stdout] 267 | && ! self . repetition_index . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . repetition_index.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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:283:29 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:303:23 [INFO] [stdout] | [INFO] [stdout] 303 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________^ [INFO] [stdout] 304 | | { [INFO] [stdout] 305 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 312 | | None => None [INFO] [stdout] 313 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 303 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 304 ~ ( [INFO] [stdout] 305 ~ repetition_index . ident . clone () [INFO] [stdout] 306 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern/repetition_pattern.rs:335:4 [INFO] [stdout] | [INFO] [stdout] 335 | / if let Some (punct) = &self . interspersed_token [INFO] [stdout] 336 | | { [INFO] [stdout] 337 | | if ! zero_or_more_visitor [INFO] [stdout] 338 | | . visit_maybe_punct (punct) [INFO] [stdout] ... | [INFO] [stdout] 343 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 335 ~ if let Some (punct) = &self . interspersed_token [INFO] [stdout] 336 ~ && ! zero_or_more_visitor [INFO] [stdout] 337 | . visit_maybe_punct (punct) [INFO] [stdout] ... [INFO] [stdout] 340 | break; [INFO] [stdout] 341 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:346:30 [INFO] [stdout] | [INFO] [stdout] 346 | let repetition_index_len = match &self . repetition_index [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 347 | | { [INFO] [stdout] 348 | | Some (repetition_index) => Some [INFO] [stdout] 349 | | (( [INFO] [stdout] ... | [INFO] [stdout] 353 | | None => None [INFO] [stdout] 354 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 346 ~ let repetition_index_len = self . repetition_index.as_ref().map(|repetition_index| ( [INFO] [stdout] 347 ~ &repetition_index . ident, [INFO] [stdout] 348 ~ index_bindings . return_binding_scope (binding_scope . unwrap ()) [INFO] [stdout] 349 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:381:25 [INFO] [stdout] | [INFO] [stdout] 381 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 382 | | { [INFO] [stdout] 383 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 390 | | None => None [INFO] [stdout] 391 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 381 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 382 ~ ( [INFO] [stdout] 383 ~ repetition_index . ident . clone () [INFO] [stdout] 384 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:533:6 [INFO] [stdout] | [INFO] [stdout] 533 | if ! self . referenced_identifiers () . next () . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . referenced_identifiers () . next ().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 boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:534:7 [INFO] [stdout] | [INFO] [stdout] 534 | && ! self . repetition_index . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . repetition_index.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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:550:29 [INFO] [stdout] | [INFO] [stdout] 550 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:570:23 [INFO] [stdout] | [INFO] [stdout] 570 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________^ [INFO] [stdout] 571 | | { [INFO] [stdout] 572 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 579 | | None => None [INFO] [stdout] 580 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 570 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 571 ~ ( [INFO] [stdout] 572 ~ repetition_index . ident . clone () [INFO] [stdout] 573 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern/repetition_pattern.rs:596:3 [INFO] [stdout] | [INFO] [stdout] 596 | / if let Some (punct) = &self . interspersed_token [INFO] [stdout] 597 | | { [INFO] [stdout] 598 | | if ! one_or_more_visitor [INFO] [stdout] 599 | | . visit_maybe_punct (punct) [INFO] [stdout] ... | [INFO] [stdout] 622 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 596 ~ if let Some (punct) = &self . interspersed_token [INFO] [stdout] 597 ~ && ! one_or_more_visitor [INFO] [stdout] 598 | . visit_maybe_punct (punct) [INFO] [stdout] ... [INFO] [stdout] 619 | return Ok (()); [INFO] [stdout] 620 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:602:32 [INFO] [stdout] | [INFO] [stdout] 602 | let repetition_index_len = match &self . repetition_index [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 603 | | { [INFO] [stdout] 604 | | Some (repetition_index) => Some [INFO] [stdout] 605 | | (( [INFO] [stdout] ... | [INFO] [stdout] 609 | | None => None [INFO] [stdout] 610 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 602 ~ let repetition_index_len = self . repetition_index.as_ref().map(|repetition_index| ( [INFO] [stdout] 603 ~ &repetition_index . ident, [INFO] [stdout] 604 ~ index_bindings . return_binding_scope (binding_scope . unwrap ()) [INFO] [stdout] 605 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern/repetition_pattern.rs:643:4 [INFO] [stdout] | [INFO] [stdout] 643 | / if let Some (punct) = &self . interspersed_token [INFO] [stdout] 644 | | { [INFO] [stdout] 645 | | if ! one_or_more_visitor [INFO] [stdout] 646 | | . visit_maybe_punct (punct) [INFO] [stdout] ... | [INFO] [stdout] 651 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 643 ~ if let Some (punct) = &self . interspersed_token [INFO] [stdout] 644 ~ && ! one_or_more_visitor [INFO] [stdout] 645 | . visit_maybe_punct (punct) [INFO] [stdout] ... [INFO] [stdout] 648 | break; [INFO] [stdout] 649 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:654:30 [INFO] [stdout] | [INFO] [stdout] 654 | let repetition_index_len = match &self . repetition_index [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 655 | | { [INFO] [stdout] 656 | | Some (repetition_index) => Some [INFO] [stdout] 657 | | (( [INFO] [stdout] ... | [INFO] [stdout] 661 | | None => None [INFO] [stdout] 662 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 654 ~ let repetition_index_len = self . repetition_index.as_ref().map(|repetition_index| ( [INFO] [stdout] 655 ~ &repetition_index . ident, [INFO] [stdout] 656 ~ index_bindings . return_binding_scope (binding_scope . unwrap ()) [INFO] [stdout] 657 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:689:25 [INFO] [stdout] | [INFO] [stdout] 689 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 690 | | { [INFO] [stdout] 691 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 698 | | None => None [INFO] [stdout] 699 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 689 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 690 ~ ( [INFO] [stdout] 691 ~ repetition_index . ident . clone () [INFO] [stdout] 692 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/repetition_pattern.rs:968:1 [INFO] [stdout] | [INFO] [stdout] 968 | / impl Into for NoParameterInRepetition [INFO] [stdout] 969 | | where T: ToTokens [INFO] [stdout] 970 | | { [INFO] [stdout] 971 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 975 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 968 ~ impl From > for syn::Error [INFO] [stdout] 969 | where T: ToTokens [INFO] [stdout] 970 | { [INFO] [stdout] 971 ~ fn from (val: NoParameterInRepetition ) -> Self [INFO] [stdout] 972 | { [INFO] [stdout] 973 ~ syn::Error::new_spanned (&val . repetition, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/repetition_pattern.rs:1014:1 [INFO] [stdout] | [INFO] [stdout] 1014 | impl Into for RepetitionLenMismatch [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 1014 ~ impl From for syn::Error [INFO] [stdout] 1015 | { [INFO] [stdout] 1016 ~ fn from (val: RepetitionLenMismatch) -> Self [INFO] [stdout] 1017 | { [INFO] [stdout] 1018 ~ syn::Error::new_spanned (&val . ident, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/pattern/group_pattern.rs:31:3 [INFO] [stdout] | [INFO] [stdout] 31 | Ok (Self::try_from (input . parse:: ()?)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 31 - Ok (Self::try_from (input . parse:: ()?)?) [INFO] [stdout] 31 + Self::try_from (input . parse:: ()?) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/group_pattern.rs:42:29 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/pattern_item.rs:100:29 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/pattern/pattern_item.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | Ok (pattern_buffer . append_ident (ident . clone ())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 212 ~ { [INFO] [stdout] 213 + pattern_buffer . append_ident (ident . clone ()); [INFO] [stdout] 214 + Ok (()) [INFO] [stdout] 215 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/pattern/pattern_item.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 214 | Ok (pattern_buffer . append_punct (punct . clone ())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 214 ~ { [INFO] [stdout] 215 + pattern_buffer . append_punct (punct . clone ()); [INFO] [stdout] 216 + Ok (()) [INFO] [stdout] 217 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/pattern/pattern_item.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | Ok (pattern_buffer . append_literal (literal . clone ())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 216 ~ { [INFO] [stdout] 217 + pattern_buffer . append_literal (literal . clone ()); [INFO] [stdout] 218 + Ok (()) [INFO] [stdout] 219 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/pattern_item.rs:274:1 [INFO] [stdout] | [INFO] [stdout] 274 | / impl Into for VisitationError [INFO] [stdout] 275 | | where E: Into [INFO] [stdout] 276 | | { [INFO] [stdout] 277 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 285 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 274 ~ impl From > for syn::Error [INFO] [stdout] 275 | where E: Into [INFO] [stdout] 276 | { [INFO] [stdout] 277 ~ fn from (val: VisitationError ) -> Self [INFO] [stdout] 278 | { [INFO] [stdout] 279 ~ match val [INFO] [stdout] 280 | { [INFO] [stdout] 281 ~ VisitationError ::IndexLookup (e) => e . into (), [INFO] [stdout] 282 ~ VisitationError ::Visitor (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/pattern_item.rs:348:1 [INFO] [stdout] | [INFO] [stdout] 348 | / impl Into for SpecializationError [INFO] [stdout] 349 | | where E: Into [INFO] [stdout] 350 | | { [INFO] [stdout] 351 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 361 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 348 ~ impl From > for syn::Error [INFO] [stdout] 349 | where E: Into [INFO] [stdout] 350 | { [INFO] [stdout] 351 ~ fn from (val: SpecializationError ) -> Self [INFO] [stdout] 352 | { [INFO] [stdout] 353 ~ match val [INFO] [stdout] 354 | { [INFO] [stdout] 355 ~ SpecializationError ::Lookup (e) => e . into (), [INFO] [stdout] 356 ~ SpecializationError ::LenMismatch (e) => e . into (), [INFO] [stdout] 357 ~ SpecializationError ::Tokenize (e) => e . into (), [INFO] [stdout] 358 ~ SpecializationError ::Parse (e) => e [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PatternBuffer ` [INFO] [stdout] --> src/pattern/pattern_buffer.rs:53:2 [INFO] [stdout] | [INFO] [stdout] 53 | / pub fn new () -> Self [INFO] [stdout] 54 | | { [INFO] [stdout] 55 | | Self [INFO] [stdout] ... | [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 51 + impl Default for PatternBuffer { [INFO] [stdout] 52 + fn default() -> Self { [INFO] [stdout] 53 + Self::new() [INFO] [stdout] 54 + } [INFO] [stdout] 55 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/pattern_buffer.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `default` to create a unit struct [INFO] [stdout] --> src/pattern/match_visitor.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | input_lifetime: PhantomData::default (), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs [INFO] [stdout] = note: `#[warn(clippy::default_constructed_unit_structs)]` on by default [INFO] [stdout] help: remove this call to `default` [INFO] [stdout] | [INFO] [stdout] 38 - input_lifetime: PhantomData::default (), [INFO] [stdout] 38 + input_lifetime: PhantomData, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `syn::Error` [INFO] [stdout] --> src/pattern/match_visitor.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | / syn::parse::Error::new [INFO] [stdout] 218 | | ( [INFO] [stdout] 219 | | group_span . join (), [INFO] [stdout] 220 | | "undelimited groups are not supported" [INFO] [stdout] 221 | | ) [INFO] [stdout] 222 | | . into () [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 217 ~ syn::parse::Error::new [INFO] [stdout] 218 ~ ( [INFO] [stdout] 219 ~ group_span . join (), [INFO] [stdout] 220 ~ "undelimited groups are not supported" [INFO] [stdout] 221 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `default` to create a unit struct [INFO] [stdout] --> src/pattern/match_visitor.rs:333:20 [INFO] [stdout] | [INFO] [stdout] 333 | input_lifetime: PhantomData::default (), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs [INFO] [stdout] help: remove this call to `default` [INFO] [stdout] | [INFO] [stdout] 333 - input_lifetime: PhantomData::default (), [INFO] [stdout] 333 + input_lifetime: PhantomData, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `default` to create a unit struct [INFO] [stdout] --> src/pattern/match_visitor.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 386 | input_lifespan: PhantomData::default (), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs [INFO] [stdout] help: remove this call to `default` [INFO] [stdout] | [INFO] [stdout] 386 - input_lifespan: PhantomData::default (), [INFO] [stdout] 386 + input_lifespan: PhantomData, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/substitution_visitor.rs:486:1 [INFO] [stdout] | [INFO] [stdout] 486 | / impl Into for SubstitutionError [INFO] [stdout] 487 | | where E: Into [INFO] [stdout] 488 | | { [INFO] [stdout] 489 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 498 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 486 ~ impl From > for syn::Error [INFO] [stdout] 487 | where E: Into [INFO] [stdout] 488 | { [INFO] [stdout] 489 ~ fn from (val: SubstitutionError ) -> Self [INFO] [stdout] 490 | { [INFO] [stdout] 491 ~ match val [INFO] [stdout] 492 | { [INFO] [stdout] 493 ~ SubstitutionError ::Lookup (e) => e . into (), [INFO] [stdout] 494 ~ SubstitutionError ::LenMismatch (e) => e . into (), [INFO] [stdout] 495 ~ SubstitutionError ::Tokenize (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/pattern/mod.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | mod pattern; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/type_annotation.rs:112:1 [INFO] [stdout] | [INFO] [stdout] 112 | / impl Into for ParameterBindingTypeMismatch [INFO] [stdout] 113 | | where [INFO] [stdout] 114 | | V: ToTokens, [INFO] [stdout] 115 | | T: Display [INFO] [stdout] ... | [INFO] [stdout] 121 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 112 ~ impl From > for syn::Error [INFO] [stdout] 113 | where [INFO] [stdout] ... [INFO] [stdout] 116 | { [INFO] [stdout] 117 ~ fn from (val: ParameterBindingTypeMismatch ) -> Self [INFO] [stdout] 118 | { [INFO] [stdout] 119 ~ syn::Error::new_spanned (&val . value, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/generics.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | if ! type_parameter . default . is_some () => count += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `type_parameter . default.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/generics.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | if ! const_parameter . default . is_some () => count += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `const_parameter . default.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` statement can be collapsed [INFO] [stdout] --> src/path_utils.rs:112:2 [INFO] [stdout] | [INFO] [stdout] 112 | / if let Some (last_segment) = p . segments . last_mut () [INFO] [stdout] 113 | | { [INFO] [stdout] 114 | | if let PathArguments::AngleBracketed (path_arguments) = [INFO] [stdout] 115 | | &mut last_segment . arguments [INFO] [stdout] ... | [INFO] [stdout] 121 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 112 ~ if let Some (last_segment) = p . segments . last_mut () [INFO] [stdout] 113 ~ && let PathArguments::AngleBracketed (path_arguments) = [INFO] [stdout] 114 | &mut last_segment . arguments [INFO] [stdout] ... [INFO] [stdout] 118 | . get_or_insert (::default ()); [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/substitute/substitutions.rs:88:32 [INFO] [stdout] | [INFO] [stdout] 88 | get_num_required_arguments (&item_parameters); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `item_parameters` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/substitute/substitutions.rs:239:5 [INFO] [stdout] | [INFO] [stdout] 239 | -> std::result::Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 488 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `substitute::substitutions::ArgumentMismatchError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/substitute/substitutions.rs:408:4 [INFO] [stdout] | [INFO] [stdout] 408 | / if let Type::Path (type_path) = ty [INFO] [stdout] 409 | | { [INFO] [stdout] 410 | | if type_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 431 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/substitute/substitutions.rs:404:32 [INFO] [stdout] | [INFO] [stdout] 404 | if let Some (Argument::Type (ty)) = self [INFO] [stdout] | ^^ replace this binding [INFO] [stdout] ... [INFO] [stdout] 408 | if let Type::Path (type_path) = ty [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:404:3 [INFO] [stdout] | [INFO] [stdout] 404 | / if let Some (Argument::Type (ty)) = self [INFO] [stdout] 405 | | . parameters [INFO] [stdout] 406 | | . get (&Parameter::Type (node . ident . clone ())) [INFO] [stdout] ... | [INFO] [stdout] 432 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 406 ~ . get (&Parameter::Type (node . ident . clone ())) [INFO] [stdout] 407 ~ && let Type::Path (type_path) = ty [INFO] [stdout] 408 | { [INFO] [stdout] ... [INFO] [stdout] 429 | } [INFO] [stdout] 430 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:408:4 [INFO] [stdout] | [INFO] [stdout] 408 | / if let Type::Path (type_path) = ty [INFO] [stdout] 409 | | { [INFO] [stdout] 410 | | if type_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 431 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 408 ~ if let Type::Path (type_path) = ty [INFO] [stdout] 409 ~ && type_path . qself . is_none () [INFO] [stdout] 410 | { [INFO] [stdout] ... [INFO] [stdout] 428 | } [INFO] [stdout] 429 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 410 | / if type_path . qself . is_none () [INFO] [stdout] 411 | | { [INFO] [stdout] 412 | | if let Some (ident) = type_path . path . get_ident () [INFO] [stdout] ... | [INFO] [stdout] 430 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 410 ~ if type_path . qself . is_none () [INFO] [stdout] 411 ~ && let Some (ident) = type_path . path . get_ident () [INFO] [stdout] 412 | { [INFO] [stdout] ... [INFO] [stdout] 427 | }; [INFO] [stdout] 428 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/substitute/substitutions.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | / if let Expr::Path (expr_path) = expr [INFO] [stdout] 453 | | { [INFO] [stdout] 454 | | if expr_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/substitute/substitutions.rs:441:33 [INFO] [stdout] | [INFO] [stdout] 441 | if let Some (Argument::Const (expr)) = self [INFO] [stdout] | ^^^^ replace this binding [INFO] [stdout] ... [INFO] [stdout] 452 | if let Expr::Path (expr_path) = expr [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:441:3 [INFO] [stdout] | [INFO] [stdout] 441 | / if let Some (Argument::Const (expr)) = self [INFO] [stdout] 442 | | . parameters [INFO] [stdout] 443 | | . get [INFO] [stdout] ... | [INFO] [stdout] 473 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 450 ~ ) [INFO] [stdout] 451 ~ && let Expr::Path (expr_path) = expr [INFO] [stdout] 452 | { [INFO] [stdout] ... [INFO] [stdout] 470 | } [INFO] [stdout] 471 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | / if let Expr::Path (expr_path) = expr [INFO] [stdout] 453 | | { [INFO] [stdout] 454 | | if expr_path . qself . is_none () [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 452 ~ if let Expr::Path (expr_path) = expr [INFO] [stdout] 453 ~ && expr_path . qself . is_none () [INFO] [stdout] 454 | { [INFO] [stdout] ... [INFO] [stdout] 469 | } [INFO] [stdout] 470 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/substitute/substitutions.rs:454:5 [INFO] [stdout] | [INFO] [stdout] 454 | / if expr_path . qself . is_none () [INFO] [stdout] 455 | | { [INFO] [stdout] 456 | | if let Some (ident) = expr_path . path . get_ident () [INFO] [stdout] ... | [INFO] [stdout] 471 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 454 ~ if expr_path . qself . is_none () [INFO] [stdout] 455 ~ && let Some (ident) = expr_path . path . get_ident () [INFO] [stdout] 456 | { [INFO] [stdout] ... [INFO] [stdout] 468 | }; [INFO] [stdout] 469 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/substitute/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod substitute; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `members.get(0)` [INFO] [stdout] --> src/struct_utils.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | match members . get (0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `members.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/pattern/structured_bindings.rs:92:24 [INFO] [stdout] | [INFO] [stdout] 92 | fn write_vec (vec: &Vec >, f: &mut Formatter <'_>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 92 - fn write_vec (vec: &Vec >, f: &mut Formatter <'_>) [INFO] [stdout] 92 + fn write_vec (vec: &[StructuredBinding ], f: &mut Formatter <'_>) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/pattern/structured_bindings.rs:129:33 [INFO] [stdout] | [INFO] [stdout] 129 | format_args! ("Some ({})", &*boxed_binding) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 129 - format_args! ("Some ({})", &*boxed_binding) [INFO] [stdout] 129 + format_args! ("Some ({})", boxed_binding) [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 129 | format_args! ("Some ({})", &**boxed_binding) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `StructuredBindings ` [INFO] [stdout] --> src/pattern/structured_bindings.rs:147:2 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn new () -> Self [INFO] [stdout] 148 | | { [INFO] [stdout] 149 | | Self {map: HashMap::new ()} [INFO] [stdout] 150 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 145 + impl Default for StructuredBindings { [INFO] [stdout] 146 + fn default() -> Self { [INFO] [stdout] 147 + Self::new() [INFO] [stdout] 148 + } [INFO] [stdout] 149 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/pattern/structured_bindings.rs:297:6 [INFO] [stdout] | [INFO] [stdout] 297 | if one_or_more_bindings . len () < 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `one_or_more_bindings.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `HashMap` [INFO] [stdout] --> src/pattern/structured_bindings.rs:399:19 [INFO] [stdout] | [INFO] [stdout] 399 | (&self . map) . into_iter () [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `HashMap` [INFO] [stdout] --> src/pattern/structured_bindings.rs:410:23 [INFO] [stdout] | [INFO] [stdout] 410 | (&mut self . map) . into_iter () [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:459:1 [INFO] [stdout] | [INFO] [stdout] 459 | / impl Into for ParameterBindingMismatch [INFO] [stdout] 460 | | where V: Display [INFO] [stdout] 461 | | { [INFO] [stdout] 462 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 466 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 459 ~ impl From > for syn::Error [INFO] [stdout] 460 | where V: Display [INFO] [stdout] 461 | { [INFO] [stdout] 462 ~ fn from (val: ParameterBindingMismatch ) -> Self [INFO] [stdout] 463 | { [INFO] [stdout] 464 ~ syn::Error::new (proc_macro2::Span::call_site (), &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:501:1 [INFO] [stdout] | [INFO] [stdout] 501 | impl Into for ParameterBindingNotFound [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 501 ~ impl From for syn::Error [INFO] [stdout] 502 | { [INFO] [stdout] 503 ~ fn from (val: ParameterBindingNotFound) -> Self [INFO] [stdout] 504 | { [INFO] [stdout] 505 ~ syn::Error::new_spanned (&val . parameter, val . to_string ()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:550:1 [INFO] [stdout] | [INFO] [stdout] 550 | / impl Into for StructuredBindingMergeError [INFO] [stdout] 551 | | where V: Display [INFO] [stdout] 552 | | { [INFO] [stdout] 553 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 561 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 550 ~ impl From > for syn::Error [INFO] [stdout] 551 | where V: Display [INFO] [stdout] 552 | { [INFO] [stdout] 553 ~ fn from (val: StructuredBindingMergeError ) -> Self [INFO] [stdout] 554 | { [INFO] [stdout] 555 ~ match val [INFO] [stdout] 556 | { [INFO] [stdout] 557 ~ StructuredBindingMergeError ::Mismatch (e) => e . into (), [INFO] [stdout] 558 ~ StructuredBindingMergeError ::NotFound (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `pattern::structured_bindings::StructuredBindingTypeMismatch` [INFO] [stdout] --> src/pattern/structured_bindings.rs:611:5 [INFO] [stdout] | [INFO] [stdout] 611 | / StructuredBindingTypeMismatch::new [INFO] [stdout] 612 | | ( [INFO] [stdout] 613 | | ident . clone (), [INFO] [stdout] 614 | | s . ty (), [INFO] [stdout] ... | [INFO] [stdout] 617 | | . into () [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 611 ~ StructuredBindingTypeMismatch::new [INFO] [stdout] 612 ~ ( [INFO] [stdout] 613 ~ ident . clone (), [INFO] [stdout] 614 ~ s . ty (), [INFO] [stdout] 615 ~ StructuredBindingType::Value [INFO] [stdout] 616 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `binding_vec.get(0)` [INFO] [stdout] --> src/pattern/structured_bindings.rs:737:12 [INFO] [stdout] | [INFO] [stdout] 737 | match binding_vec . get (0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `binding_vec.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:840:1 [INFO] [stdout] | [INFO] [stdout] 840 | impl Into for StructuredBindingTypeMismatch [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 840 ~ impl From for syn::Error [INFO] [stdout] 841 | { [INFO] [stdout] 842 ~ fn from (val: StructuredBindingTypeMismatch) -> Self [INFO] [stdout] 843 | { [INFO] [stdout] 844 ~ syn::Error::new_spanned (&val . parameter, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/structured_bindings.rs:887:1 [INFO] [stdout] | [INFO] [stdout] 887 | impl Into for StructuredBindingLookupError [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 887 ~ impl From for syn::Error [INFO] [stdout] 888 | { [INFO] [stdout] 889 ~ fn from (val: StructuredBindingLookupError) -> Self [INFO] [stdout] 890 | { [INFO] [stdout] 891 ~ match val [INFO] [stdout] 892 | { [INFO] [stdout] 893 ~ StructuredBindingLookupError::TypeMismatch (e) => e . into (), [INFO] [stdout] 894 ~ StructuredBindingLookupError::NotFound (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 74 | -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 77 | if ! self . referenced_identifiers () . next () . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . referenced_identifiers () . next ().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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:93:29 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:266:6 [INFO] [stdout] | [INFO] [stdout] 266 | if ! self . referenced_identifiers () . next () . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . referenced_identifiers () . next ().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 boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:267:7 [INFO] [stdout] | [INFO] [stdout] 267 | && ! self . repetition_index . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . repetition_index.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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:283:29 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:303:23 [INFO] [stdout] | [INFO] [stdout] 303 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________^ [INFO] [stdout] 304 | | { [INFO] [stdout] 305 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 312 | | None => None [INFO] [stdout] 313 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 303 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 304 ~ ( [INFO] [stdout] 305 ~ repetition_index . ident . clone () [INFO] [stdout] 306 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern/repetition_pattern.rs:335:4 [INFO] [stdout] | [INFO] [stdout] 335 | / if let Some (punct) = &self . interspersed_token [INFO] [stdout] 336 | | { [INFO] [stdout] 337 | | if ! zero_or_more_visitor [INFO] [stdout] 338 | | . visit_maybe_punct (punct) [INFO] [stdout] ... | [INFO] [stdout] 343 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 335 ~ if let Some (punct) = &self . interspersed_token [INFO] [stdout] 336 ~ && ! zero_or_more_visitor [INFO] [stdout] 337 | . visit_maybe_punct (punct) [INFO] [stdout] ... [INFO] [stdout] 340 | break; [INFO] [stdout] 341 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:346:30 [INFO] [stdout] | [INFO] [stdout] 346 | let repetition_index_len = match &self . repetition_index [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 347 | | { [INFO] [stdout] 348 | | Some (repetition_index) => Some [INFO] [stdout] 349 | | (( [INFO] [stdout] ... | [INFO] [stdout] 353 | | None => None [INFO] [stdout] 354 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 346 ~ let repetition_index_len = self . repetition_index.as_ref().map(|repetition_index| ( [INFO] [stdout] 347 ~ &repetition_index . ident, [INFO] [stdout] 348 ~ index_bindings . return_binding_scope (binding_scope . unwrap ()) [INFO] [stdout] 349 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:381:25 [INFO] [stdout] | [INFO] [stdout] 381 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 382 | | { [INFO] [stdout] 383 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 390 | | None => None [INFO] [stdout] 391 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 381 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 382 ~ ( [INFO] [stdout] 383 ~ repetition_index . ident . clone () [INFO] [stdout] 384 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:533:6 [INFO] [stdout] | [INFO] [stdout] 533 | if ! self . referenced_identifiers () . next () . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . referenced_identifiers () . next ().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 boolean expression can be simplified [INFO] [stdout] --> src/pattern/repetition_pattern.rs:534:7 [INFO] [stdout] | [INFO] [stdout] 534 | && ! self . repetition_index . is_some () [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self . repetition_index.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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/repetition_pattern.rs:550:29 [INFO] [stdout] | [INFO] [stdout] 550 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:570:23 [INFO] [stdout] | [INFO] [stdout] 570 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________^ [INFO] [stdout] 571 | | { [INFO] [stdout] 572 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 579 | | None => None [INFO] [stdout] 580 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 570 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 571 ~ ( [INFO] [stdout] 572 ~ repetition_index . ident . clone () [INFO] [stdout] 573 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern/repetition_pattern.rs:596:3 [INFO] [stdout] | [INFO] [stdout] 596 | / if let Some (punct) = &self . interspersed_token [INFO] [stdout] 597 | | { [INFO] [stdout] 598 | | if ! one_or_more_visitor [INFO] [stdout] 599 | | . visit_maybe_punct (punct) [INFO] [stdout] ... | [INFO] [stdout] 622 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 596 ~ if let Some (punct) = &self . interspersed_token [INFO] [stdout] 597 ~ && ! one_or_more_visitor [INFO] [stdout] 598 | . visit_maybe_punct (punct) [INFO] [stdout] ... [INFO] [stdout] 619 | return Ok (()); [INFO] [stdout] 620 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:602:32 [INFO] [stdout] | [INFO] [stdout] 602 | let repetition_index_len = match &self . repetition_index [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 603 | | { [INFO] [stdout] 604 | | Some (repetition_index) => Some [INFO] [stdout] 605 | | (( [INFO] [stdout] ... | [INFO] [stdout] 609 | | None => None [INFO] [stdout] 610 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 602 ~ let repetition_index_len = self . repetition_index.as_ref().map(|repetition_index| ( [INFO] [stdout] 603 ~ &repetition_index . ident, [INFO] [stdout] 604 ~ index_bindings . return_binding_scope (binding_scope . unwrap ()) [INFO] [stdout] 605 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pattern/repetition_pattern.rs:643:4 [INFO] [stdout] | [INFO] [stdout] 643 | / if let Some (punct) = &self . interspersed_token [INFO] [stdout] 644 | | { [INFO] [stdout] 645 | | if ! one_or_more_visitor [INFO] [stdout] 646 | | . visit_maybe_punct (punct) [INFO] [stdout] ... | [INFO] [stdout] 651 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 643 ~ if let Some (punct) = &self . interspersed_token [INFO] [stdout] 644 ~ && ! one_or_more_visitor [INFO] [stdout] 645 | . visit_maybe_punct (punct) [INFO] [stdout] ... [INFO] [stdout] 648 | break; [INFO] [stdout] 649 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:654:30 [INFO] [stdout] | [INFO] [stdout] 654 | let repetition_index_len = match &self . repetition_index [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 655 | | { [INFO] [stdout] 656 | | Some (repetition_index) => Some [INFO] [stdout] 657 | | (( [INFO] [stdout] ... | [INFO] [stdout] 661 | | None => None [INFO] [stdout] 662 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 654 ~ let repetition_index_len = self . repetition_index.as_ref().map(|repetition_index| ( [INFO] [stdout] 655 ~ &repetition_index . ident, [INFO] [stdout] 656 ~ index_bindings . return_binding_scope (binding_scope . unwrap ()) [INFO] [stdout] 657 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/pattern/repetition_pattern.rs:689:25 [INFO] [stdout] | [INFO] [stdout] 689 | let binding_scope = match &self . repetition_index [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 690 | | { [INFO] [stdout] 691 | | Some (repetition_index) => Some [INFO] [stdout] ... | [INFO] [stdout] 698 | | None => None [INFO] [stdout] 699 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 689 ~ let binding_scope = self . repetition_index.as_ref().map(|repetition_index| index_bindings . get_binding_scope [INFO] [stdout] 690 ~ ( [INFO] [stdout] 691 ~ repetition_index . ident . clone () [INFO] [stdout] 692 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/repetition_pattern.rs:968:1 [INFO] [stdout] | [INFO] [stdout] 968 | / impl Into for NoParameterInRepetition [INFO] [stdout] 969 | | where T: ToTokens [INFO] [stdout] 970 | | { [INFO] [stdout] 971 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 975 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 968 ~ impl From > for syn::Error [INFO] [stdout] 969 | where T: ToTokens [INFO] [stdout] 970 | { [INFO] [stdout] 971 ~ fn from (val: NoParameterInRepetition ) -> Self [INFO] [stdout] 972 | { [INFO] [stdout] 973 ~ syn::Error::new_spanned (&val . repetition, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/repetition_pattern.rs:1014:1 [INFO] [stdout] | [INFO] [stdout] 1014 | impl Into for RepetitionLenMismatch [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 1014 ~ impl From for syn::Error [INFO] [stdout] 1015 | { [INFO] [stdout] 1016 ~ fn from (val: RepetitionLenMismatch) -> Self [INFO] [stdout] 1017 | { [INFO] [stdout] 1018 ~ syn::Error::new_spanned (&val . ident, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/pattern/group_pattern.rs:31:3 [INFO] [stdout] | [INFO] [stdout] 31 | Ok (Self::try_from (input . parse:: ()?)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 31 - Ok (Self::try_from (input . parse:: ()?)?) [INFO] [stdout] 31 + Self::try_from (input . parse:: ()?) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/group_pattern.rs:42:29 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/pattern_item.rs:100:29 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/pattern/pattern_item.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | Ok (pattern_buffer . append_ident (ident . clone ())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 212 ~ { [INFO] [stdout] 213 + pattern_buffer . append_ident (ident . clone ()); [INFO] [stdout] 214 + Ok (()) [INFO] [stdout] 215 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/pattern/pattern_item.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 214 | Ok (pattern_buffer . append_punct (punct . clone ())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 214 ~ { [INFO] [stdout] 215 + pattern_buffer . append_punct (punct . clone ()); [INFO] [stdout] 216 + Ok (()) [INFO] [stdout] 217 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/pattern/pattern_item.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | Ok (pattern_buffer . append_literal (literal . clone ())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 216 ~ { [INFO] [stdout] 217 + pattern_buffer . append_literal (literal . clone ()); [INFO] [stdout] 218 + Ok (()) [INFO] [stdout] 219 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/pattern_item.rs:274:1 [INFO] [stdout] | [INFO] [stdout] 274 | / impl Into for VisitationError [INFO] [stdout] 275 | | where E: Into [INFO] [stdout] 276 | | { [INFO] [stdout] 277 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 285 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 274 ~ impl From > for syn::Error [INFO] [stdout] 275 | where E: Into [INFO] [stdout] 276 | { [INFO] [stdout] 277 ~ fn from (val: VisitationError ) -> Self [INFO] [stdout] 278 | { [INFO] [stdout] 279 ~ match val [INFO] [stdout] 280 | { [INFO] [stdout] 281 ~ VisitationError ::IndexLookup (e) => e . into (), [INFO] [stdout] 282 ~ VisitationError ::Visitor (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/pattern_item.rs:348:1 [INFO] [stdout] | [INFO] [stdout] 348 | / impl Into for SpecializationError [INFO] [stdout] 349 | | where E: Into [INFO] [stdout] 350 | | { [INFO] [stdout] 351 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 361 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 348 ~ impl From > for syn::Error [INFO] [stdout] 349 | where E: Into [INFO] [stdout] 350 | { [INFO] [stdout] 351 ~ fn from (val: SpecializationError ) -> Self [INFO] [stdout] 352 | { [INFO] [stdout] 353 ~ match val [INFO] [stdout] 354 | { [INFO] [stdout] 355 ~ SpecializationError ::Lookup (e) => e . into (), [INFO] [stdout] 356 ~ SpecializationError ::LenMismatch (e) => e . into (), [INFO] [stdout] 357 ~ SpecializationError ::Tokenize (e) => e . into (), [INFO] [stdout] 358 ~ SpecializationError ::Parse (e) => e [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PatternBuffer ` [INFO] [stdout] --> src/pattern/pattern_buffer.rs:53:2 [INFO] [stdout] | [INFO] [stdout] 53 | / pub fn new () -> Self [INFO] [stdout] 54 | | { [INFO] [stdout] 55 | | Self [INFO] [stdout] ... | [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 51 + impl Default for PatternBuffer { [INFO] [stdout] 52 + fn default() -> Self { [INFO] [stdout] 53 + Self::new() [INFO] [stdout] 54 + } [INFO] [stdout] 55 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/pattern/pattern_buffer.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn validate (&self) -> Result <(), NoParameterInRepetition > [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 176 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `pattern::repetition_pattern::NoParameterInRepetition`, for example by boxing large elements or replacing it with `Box>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `default` to create a unit struct [INFO] [stdout] --> src/pattern/match_visitor.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | input_lifetime: PhantomData::default (), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs [INFO] [stdout] = note: `#[warn(clippy::default_constructed_unit_structs)]` on by default [INFO] [stdout] help: remove this call to `default` [INFO] [stdout] | [INFO] [stdout] 38 - input_lifetime: PhantomData::default (), [INFO] [stdout] 38 + input_lifetime: PhantomData, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `syn::Error` [INFO] [stdout] --> src/pattern/match_visitor.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | / syn::parse::Error::new [INFO] [stdout] 218 | | ( [INFO] [stdout] 219 | | group_span . join (), [INFO] [stdout] 220 | | "undelimited groups are not supported" [INFO] [stdout] 221 | | ) [INFO] [stdout] 222 | | . into () [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 217 ~ syn::parse::Error::new [INFO] [stdout] 218 ~ ( [INFO] [stdout] 219 ~ group_span . join (), [INFO] [stdout] 220 ~ "undelimited groups are not supported" [INFO] [stdout] 221 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `default` to create a unit struct [INFO] [stdout] --> src/pattern/match_visitor.rs:333:20 [INFO] [stdout] | [INFO] [stdout] 333 | input_lifetime: PhantomData::default (), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs [INFO] [stdout] help: remove this call to `default` [INFO] [stdout] | [INFO] [stdout] 333 - input_lifetime: PhantomData::default (), [INFO] [stdout] 333 + input_lifetime: PhantomData, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `default` to create a unit struct [INFO] [stdout] --> src/pattern/match_visitor.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 386 | input_lifespan: PhantomData::default (), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs [INFO] [stdout] help: remove this call to `default` [INFO] [stdout] | [INFO] [stdout] 386 - input_lifespan: PhantomData::default (), [INFO] [stdout] 386 + input_lifespan: PhantomData, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/substitution_visitor.rs:486:1 [INFO] [stdout] | [INFO] [stdout] 486 | / impl Into for SubstitutionError [INFO] [stdout] 487 | | where E: Into [INFO] [stdout] 488 | | { [INFO] [stdout] 489 | | fn into (self) -> syn::Error [INFO] [stdout] ... | [INFO] [stdout] 498 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 486 ~ impl From > for syn::Error [INFO] [stdout] 487 | where E: Into [INFO] [stdout] 488 | { [INFO] [stdout] 489 ~ fn from (val: SubstitutionError ) -> Self [INFO] [stdout] 490 | { [INFO] [stdout] 491 ~ match val [INFO] [stdout] 492 | { [INFO] [stdout] 493 ~ SubstitutionError ::Lookup (e) => e . into (), [INFO] [stdout] 494 ~ SubstitutionError ::LenMismatch (e) => e . into (), [INFO] [stdout] 495 ~ SubstitutionError ::Tokenize (e) => e . into () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/pattern/mod.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | mod pattern; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pattern/type_annotation.rs:112:1 [INFO] [stdout] | [INFO] [stdout] 112 | / impl Into for ParameterBindingTypeMismatch [INFO] [stdout] 113 | | where [INFO] [stdout] 114 | | V: ToTokens, [INFO] [stdout] 115 | | T: Display [INFO] [stdout] ... | [INFO] [stdout] 121 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 112 ~ impl From > for syn::Error [INFO] [stdout] 113 | where [INFO] [stdout] ... [INFO] [stdout] 116 | { [INFO] [stdout] 117 ~ fn from (val: ParameterBindingTypeMismatch ) -> Self [INFO] [stdout] 118 | { [INFO] [stdout] 119 ~ syn::Error::new_spanned (&val . value, &val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.20s [INFO] running `Command { std: "docker" "inspect" "0c8a0239668b62333b3b05529c92c81d65a49d00cdf844f361b20748086a2125", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c8a0239668b62333b3b05529c92c81d65a49d00cdf844f361b20748086a2125", kill_on_drop: false }` [INFO] [stdout] 0c8a0239668b62333b3b05529c92c81d65a49d00cdf844f361b20748086a2125