[INFO] cloning repository https://github.com/david-pikas/exjobb [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/david-pikas/exjobb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-pikas%2Fexjobb", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-pikas%2Fexjobb'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0d9f367966826ff3c40fcd494f6fc7c1f8b5124e [INFO] linting david-pikas/exjobb against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-pikas%2Fexjobb" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/david-pikas/exjobb [INFO] finished tweaking git repo https://github.com/david-pikas/exjobb [INFO] tweaked toml for git repo https://github.com/david-pikas/exjobb written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/david-pikas/exjobb 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/david-pikas/exjobb already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded filedescriptor v0.8.0 [INFO] [stderr] Downloaded cc v1.0.69 [INFO] [stderr] Downloaded ctrlc v3.1.9 [INFO] [stderr] Downloaded thiserror v1.0.26 [INFO] [stderr] Downloaded subprocess v0.2.7 [INFO] [stderr] Downloaded thiserror-impl v1.0.26 [INFO] [stderr] Downloaded nix v0.20.0 [INFO] [stderr] Downloaded arbitrary v1.0.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] ec436051d10e0bf534ca179b1eda8f7a3e563fa4c38c49639ba141e2275b2c88 [INFO] running `Command { std: "docker" "start" "-a" "ec436051d10e0bf534ca179b1eda8f7a3e563fa4c38c49639ba141e2275b2c88", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ec436051d10e0bf534ca179b1eda8f7a3e563fa4c38c49639ba141e2275b2c88", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec436051d10e0bf534ca179b1eda8f7a3e563fa4c38c49639ba141e2275b2c88", kill_on_drop: false }` [INFO] [stdout] ec436051d10e0bf534ca179b1eda8f7a3e563fa4c38c49639ba141e2275b2c88 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 0ab261442ec20293bf36648548cb1446910347003dd2de91f703838da55d2832 [INFO] running `Command { std: "docker" "start" "-a" "0ab261442ec20293bf36648548cb1446910347003dd2de91f703838da55d2832", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.98 [INFO] [stderr] Compiling proc-macro2 v1.0.28 [INFO] [stderr] Compiling syn v1.0.74 [INFO] [stderr] Checking unicode-xid v0.2.2 [INFO] [stderr] Checking arbitrary v1.0.1 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Checking quote v1.0.9 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking nix v0.20.0 [INFO] [stderr] Checking subprocess v0.2.7 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking tempfile v3.2.0 [INFO] [stderr] Checking ctrlc v3.1.9 [INFO] [stderr] Compiling thiserror-impl v1.0.26 [INFO] [stderr] Checking thiserror v1.0.26 [INFO] [stderr] Checking filedescriptor v0.8.0 [INFO] [stderr] Checking gag v1.0.0 [INFO] [stderr] Checking rustsmith v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:99:41 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn c_arbitrary_iter<'a, 'b, 'c, 'd, El: 'd , Ctx: 'd>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 104 | El: ContextArbitrary<'a, Ctx>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:109:55 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn c_arbitrary_iter_with<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 115 | F: FnMut(&mut Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:128:63 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn c_arbitrary_iter_with_non_mut<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 134 | F: FnMut(&Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/semantics.rs:804:25 [INFO] [stdout] | [INFO] [stdout] 804 | const INDIRECT_TYPES: [&'static [StringWrapper]; 4] = [ [INFO] [stdout] | -^^^^^^^---------------- help: consider removing `'static`: `&[StringWrapper]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:139:13 [INFO] [stdout] | [INFO] [stdout] 139 | make_alias!(Result::Ok : [Ok]), [INFO] [stdout] | ------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: `#[warn(clippy::double_parens)]` on by default [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | make_alias!(Result::Err : [Err]), [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | make_alias!(Option::Some : [Some]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | make_alias!(Option::None : [None]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/ty_macros.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | pub static TUPLE_NAMES: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | ((crate::parse_path!($name), Rc::new(Variable::new( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | (!) => (crate::semantics::Type { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | crate::parse_args!([$(,$lts)*,Lifetime(stringify!($lt).into())],[$(,$tys)*];$($arg)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | crate::parse_generics!([$(,$lts)*,stringify!($lt).into()],[$(,$tys)*];$($arg)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | crate::semantics::TraitDescription { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:219:11 [INFO] [stdout] | [INFO] [stdout] 219 | = crate::parse_generics!([],[]$($args)*); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:229:9 [INFO] [stdout] | [INFO] [stdout] 229 | crate::parse_constraints!($(,$exprs)*, crate::parse_constraint!($name$([$($args)*])?); $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | crate::semantics::Constraint { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:248:10 [INFO] [stdout] | [INFO] [stdout] 248 | (crate::parse_path!($name), crate::semantics::Kind { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:288:20 [INFO] [stdout] | [INFO] [stdout] 288 | let name = crate::parse_path!($name); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:302:9 [INFO] [stdout] | [INFO] [stdout] 302 | crate::parse_implementors!($(,$exprs)*; {}[] : #($name$({$($gen)*})?$([$($args)*])?), $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/ty_macros.rs:324:26 [INFO] [stdout] | [INFO] [stdout] 324 | pub static GEN_STRING: [&'static str; 12] = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:329:10 [INFO] [stdout] | [INFO] [stdout] 329 | (crate::make_methods!(#($name$([$($type_args)*])?){$($methods)*})); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | crate::parse_methods!($(,$expr)*; $name$({$($gen)*})?($($args)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:376:36 [INFO] [stdout] | [INFO] [stdout] 376 | (self, $($args:tt)*) => ((Some(crate::semantics::VarHandling::Own), crate::parse_types!(;$($args)*))); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:387:10 [INFO] [stdout] | [INFO] [stdout] 387 | (crate::parse_types!($(,$tys)*;#($name$({$($gen)*})?$([$($type_args)*])?), $($rest)*)); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:395:10 [INFO] [stdout] | [INFO] [stdout] 395 | (crate::parse_path!($name), ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | crate::parse_structs!($(,$structs)*, ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:428:35 [INFO] [stdout] | [INFO] [stdout] 428 | (vec![StringWrapper::from(crate::ty_macros::TUPLE_NAMES[len-1])], ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | crate::parse_unnamed_fields!($(,$fields)*; #($ty$({$($gen)*})?$([$($arg)*])?), $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:510:10 [INFO] [stdout] | [INFO] [stdout] 510 | (crate::parse_path!($name), Rc::new(Macro { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/branching.rs:130:42 [INFO] [stdout] | [INFO] [stdout] 130 | Some(std::cell::RefCell::new(crate::branching::Branches::new())) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `backtrace` has been stable since 1.65.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(backtrace)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `once_cell` has been stable since 1.70.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(once_cell)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `cell_update` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(cell_update)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:99:41 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn c_arbitrary_iter<'a, 'b, 'c, 'd, El: 'd , Ctx: 'd>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 104 | El: ContextArbitrary<'a, Ctx>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:109:55 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn c_arbitrary_iter_with<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 115 | F: FnMut(&mut Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:128:63 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn c_arbitrary_iter_with_non_mut<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 134 | F: FnMut(&Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/semantics.rs:804:25 [INFO] [stdout] | [INFO] [stdout] 804 | const INDIRECT_TYPES: [&'static [StringWrapper]; 4] = [ [INFO] [stdout] | -^^^^^^^---------------- help: consider removing `'static`: `&[StringWrapper]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:139:13 [INFO] [stdout] | [INFO] [stdout] 139 | make_alias!(Result::Ok : [Ok]), [INFO] [stdout] | ------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: `#[warn(clippy::double_parens)]` on by default [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | make_alias!(Result::Err : [Err]), [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | make_alias!(Option::Some : [Some]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | make_alias!(Option::None : [None]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/ty_macros.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | pub static TUPLE_NAMES: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | ((crate::parse_path!($name), Rc::new(Variable::new( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | (!) => (crate::semantics::Type { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | crate::parse_args!([$(,$lts)*,Lifetime(stringify!($lt).into())],[$(,$tys)*];$($arg)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | crate::parse_generics!([$(,$lts)*,stringify!($lt).into()],[$(,$tys)*];$($arg)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | crate::semantics::TraitDescription { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:219:11 [INFO] [stdout] | [INFO] [stdout] 219 | = crate::parse_generics!([],[]$($args)*); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:229:9 [INFO] [stdout] | [INFO] [stdout] 229 | crate::parse_constraints!($(,$exprs)*, crate::parse_constraint!($name$([$($args)*])?); $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | crate::semantics::Constraint { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:248:10 [INFO] [stdout] | [INFO] [stdout] 248 | (crate::parse_path!($name), crate::semantics::Kind { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:288:20 [INFO] [stdout] | [INFO] [stdout] 288 | let name = crate::parse_path!($name); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:302:9 [INFO] [stdout] | [INFO] [stdout] 302 | crate::parse_implementors!($(,$exprs)*; {}[] : #($name$({$($gen)*})?$([$($args)*])?), $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/ty_macros.rs:324:26 [INFO] [stdout] | [INFO] [stdout] 324 | pub static GEN_STRING: [&'static str; 12] = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:329:10 [INFO] [stdout] | [INFO] [stdout] 329 | (crate::make_methods!(#($name$([$($type_args)*])?){$($methods)*})); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | crate::parse_methods!($(,$expr)*; $name$({$($gen)*})?($($args)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:376:36 [INFO] [stdout] | [INFO] [stdout] 376 | (self, $($args:tt)*) => ((Some(crate::semantics::VarHandling::Own), crate::parse_types!(;$($args)*))); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:387:10 [INFO] [stdout] | [INFO] [stdout] 387 | (crate::parse_types!($(,$tys)*;#($name$({$($gen)*})?$([$($type_args)*])?), $($rest)*)); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:395:10 [INFO] [stdout] | [INFO] [stdout] 395 | (crate::parse_path!($name), ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | crate::parse_structs!($(,$structs)*, ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:428:35 [INFO] [stdout] | [INFO] [stdout] 428 | (vec![StringWrapper::from(crate::ty_macros::TUPLE_NAMES[len-1])], ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | crate::parse_unnamed_fields!($(,$fields)*; #($ty$({$($gen)*})?$([$($arg)*])?), $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:510:10 [INFO] [stdout] | [INFO] [stdout] 510 | (crate::parse_path!($name), Rc::new(Macro { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/branching.rs:130:42 [INFO] [stdout] | [INFO] [stdout] 130 | Some(std::cell::RefCell::new(crate::branching::Branches::new())) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `backtrace` has been stable since 1.65.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(backtrace)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `once_cell` has been stable since 1.70.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(once_cell)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `cell_update` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(cell_update)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return Ok(FiniteF64(data)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return Ok(FiniteF64(data)); [INFO] [stdout] 45 + Ok(FiniteF64(data)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/context_arbitrary.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | gen: Box) -> Result + 'd>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/context_arbitrary.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | gen: Box) -> Result + 'd>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/context_arbitrary.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | impl<'a, 'd, T, Ctx> ContextArbitrary<'a, Ctx> for NEVec [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return Ok(NEVec(iter.collect::>>()?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return Ok(NEVec(iter.collect::>>()?)); [INFO] [stdout] 156 + Ok(NEVec(iter.collect::>>()?)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | return choice(a); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 183 - return choice(a); [INFO] [stdout] 183 + choice(a) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | return choice(ctx, u); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 222 - return choice(ctx, u); [INFO] [stdout] 222 + choice(ctx, u) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/choose.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn shuffle(u: &mut Unstructured, v: &mut Vec) -> Result<()> { [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] 17 - pub fn shuffle(u: &mut Unstructured, v: &mut Vec) -> Result<()> { [INFO] [stdout] 17 + pub fn shuffle(u: &mut Unstructured, v: &mut [T]) -> Result<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::RangeInclusive` [INFO] [stdout] --> src/choose.rs:20:35 [INFO] [stdout] | [INFO] [stdout] 20 | let j = choose_consume(u, (0..=i as u16).into_iter())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..=i as u16)` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 - return result; [INFO] [stdout] 192 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:32:40 [INFO] [stdout] | [INFO] [stdout] 32 | Lifetime::Named(s) => Some(&s), [INFO] [stdout] | ^^ help: change this to: `s` [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: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return true [INFO] [stdout] 40 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return true [INFO] [stdout] 43 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return true [INFO] [stdout] 45 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | return self == other [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return self == other [INFO] [stdout] 47 + self == other [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:36:65 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn matches_with_generics(&self, other: &Self, generics: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 36 - pub fn matches_with_generics(&self, other: &Self, generics: &Vec) -> bool { [INFO] [stdout] 36 + pub fn matches_with_generics(&self, other: &Self, generics: &[StringWrapper]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | self.name().map_or(false, |name| generics.contains(name)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 39 - self.name().map_or(false, |name| generics.contains(name)) { [INFO] [stdout] 39 + self.name().is_some_and(|name| generics.contains(name)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | return false [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return false [INFO] [stdout] 56 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/semantics.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 101 | .map(|a| format!("{}", a.name.as_str())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `a.name.as_str().to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/semantics.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | hm.into_iter().map(|(_,v)| v) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `hm.into_values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `fn(Vec, &Context, &mut Unstructured<'c>) -> Result` which implements the `Copy` trait [INFO] [stdout] --> src/semantics.rs:211:26 [INFO] [stdout] | [INFO] [stdout] 211 | constructor: self.constructor.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.constructor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantics.rs:269:5 [INFO] [stdout] | [INFO] [stdout] 269 | BranchingRefs { mutable: Vec, immutable: Vec } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/semantics.rs:289:35 [INFO] [stdout] | [INFO] [stdout] 289 | let mut lts = std::mem::replace(old_lts, vec![]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(old_lts)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/semantics.rs:298:29 [INFO] [stdout] | [INFO] [stdout] 298 | mutable.into_iter().for_each(|lt| end_lifetime(ctx, lt)); [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] = 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 `Vec` [INFO] [stdout] --> src/semantics.rs:314:29 [INFO] [stdout] | [INFO] [stdout] 314 | mutable.into_iter().for_each(|lt| end_lifetime(ctx, lt)); [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: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/semantics.rs:315:31 [INFO] [stdout] | [INFO] [stdout] 315 | immutable.into_iter().for_each(|lt| end_lifetime(ctx, lt)); [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: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:477:9 [INFO] [stdout] | [INFO] [stdout] 477 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 477 - return self; [INFO] [stdout] 477 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:410:18 [INFO] [stdout] | [INFO] [stdout] 410 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:417:30 [INFO] [stdout] | [INFO] [stdout] 417 | ... .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:425:30 [INFO] [stdout] | [INFO] [stdout] 425 | ... .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/semantics.rs:433:24 [INFO] [stdout] | [INFO] [stdout] 433 | if let Some(_) = func.ret_type.is_generic_with(&var.ty.type_generics) { [INFO] [stdout] | -------^^^^^^^------------------------------------------------------- help: try: `if func.ret_type.is_generic_with(&var.ty.type_generics).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:435:26 [INFO] [stdout] | [INFO] [stdout] 435 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:439:26 [INFO] [stdout] | [INFO] [stdout] 439 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:444:22 [INFO] [stdout] | [INFO] [stdout] 444 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:452:18 [INFO] [stdout] | [INFO] [stdout] 452 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/semantics.rs:457:24 [INFO] [stdout] | [INFO] [stdout] 457 | if let Some(_) = method.func.ret_type.is_generic_with(&method.type_generics) { [INFO] [stdout] | -------^^^^^^^-------------------------------------------------------------- help: try: `if method.func.ret_type.is_generic_with(&method.type_generics).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:459:26 [INFO] [stdout] | [INFO] [stdout] 459 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:463:26 [INFO] [stdout] | [INFO] [stdout] 463 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:471:22 [INFO] [stdout] | [INFO] [stdout] 471 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/semantics.rs:470:39 [INFO] [stdout] | [INFO] [stdout] 470 | self.by_ty_name.entry((*implementor).name.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `implementor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/semantics.rs:486:18 [INFO] [stdout] | [INFO] [stdout] 486 | pub methods: Vec<(Either, TraitDescription>, Rc)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/semantics.rs:507:23 [INFO] [stdout] | [INFO] [stdout] 507 | pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&T> { [INFO] [stdout] | ^^ ^^ ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 507 - pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&T> { [INFO] [stdout] 507 + pub fn sized_iter(&self) -> std::vec::IntoIter<&T> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/semantics.rs:601:16 [INFO] [stdout] | [INFO] [stdout] 601 | if !self_arg.is_generic_with(generics).is_some() && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self_arg.is_generic_with(generics).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: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:607:9 [INFO] [stdout] | [INFO] [stdout] 607 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 607 - return true; [INFO] [stdout] 607 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:648:9 [INFO] [stdout] | [INFO] [stdout] 648 | / return Some(Type { [INFO] [stdout] 649 | | type_generics, [INFO] [stdout] 650 | | type_args, [INFO] [stdout] 651 | | ..self [INFO] [stdout] 652 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 648 ~ Some(Type { [INFO] [stdout] 649 + type_generics, [INFO] [stdout] 650 + type_args, [INFO] [stdout] 651 + ..self [INFO] [stdout] 652 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/semantics.rs:670:18 [INFO] [stdout] | [INFO] [stdout] 670 | Box::new(self.lt_generics.iter().map(|t| t.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.lt_generics.iter().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:678:38 [INFO] [stdout] | [INFO] [stdout] 678 | self.lt_args.iter().any(|lt| lt.name().map_or(false, |lt_name| lt_name == name)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 678 - self.lt_args.iter().any(|lt| lt.name().map_or(false, |lt_name| lt_name == name)) [INFO] [stdout] 678 + self.lt_args.iter().any(|lt| lt.name().is_some_and(|lt_name| lt_name == name)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:687:13 [INFO] [stdout] | [INFO] [stdout] 687 | return Box::new(iter::once((self, other))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 687 - return Box::new(iter::once((self, other))); [INFO] [stdout] 687 + Box::new(iter::once((self, other))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessarily eager cloning of iterator items [INFO] [stdout] --> src/semantics.rs:702:17 [INFO] [stdout] | [INFO] [stdout] 702 | self.type_generics.iter().cloned() [INFO] [stdout] | _________________^ - [INFO] [stdout] | |__________________________________________| [INFO] [stdout] 703 | || .filter(|gen| &vec![gen.name.clone()] == name).collect(), [INFO] [stdout] | ||______________________________________________________________^ help: try: `.filter(|&gen| &vec![gen.name.clone()] == name).cloned()` [INFO] [stdout] | |______________________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_overeager_cloned [INFO] [stdout] = note: `#[warn(clippy::iter_overeager_cloned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:716:17 [INFO] [stdout] | [INFO] [stdout] 716 | return other_lt.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 716 - return other_lt.clone() [INFO] [stdout] 716 + other_lt.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/semantics.rs:723:33 [INFO] [stdout] | [INFO] [stdout] 723 | self.sub_tys().any(|ty| ty.lt_args.len() > 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!ty.lt_args.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 `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:737:21 [INFO] [stdout] | [INFO] [stdout] 737 | lt.name().map_or(false, |n| self.lt_generics.contains(n)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 737 - lt.name().map_or(false, |n| self.lt_generics.contains(n)) { [INFO] [stdout] 737 + lt.name().is_some_and(|n| self.lt_generics.contains(n)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:748:61 [INFO] [stdout] | [INFO] [stdout] 748 | pub fn assign_lts_vec(&self, u: &mut Unstructured, lts: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 748 - pub fn assign_lts_vec(&self, u: &mut Unstructured, lts: &Vec) -> Result { [INFO] [stdout] 748 + pub fn assign_lts_vec(&self, u: &mut Unstructured, lts: &[Lifetime]) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused "map closure" when calling `Result::map_or_else` value [INFO] [stdout] --> src/semantics.rs:758:18 [INFO] [stdout] | [INFO] [stdout] 758 | let ty = self.assign_lts(&mut || { [INFO] [stdout] | __________________^ [INFO] [stdout] 759 | | match &cached_lt { [INFO] [stdout] 760 | | Some(lt) => Ok::(lt.clone()), [INFO] [stdout] 761 | | None => { [INFO] [stdout] ... | [INFO] [stdout] 767 | | }).map_or_else(|a| a, |a| a); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_result_map_or_else [INFO] [stdout] = note: `#[warn(clippy::unnecessary_result_map_or_else)]` on by default [INFO] [stdout] help: consider using `unwrap_or_else` [INFO] [stdout] | [INFO] [stdout] 758 ~ let ty = self.assign_lts(&mut || { [INFO] [stdout] 759 + match &cached_lt { [INFO] [stdout] 760 + Some(lt) => Ok::(lt.clone()), [INFO] [stdout] 761 + None => { [INFO] [stdout] 762 + let lt = fresh_lt(ctx); [INFO] [stdout] 763 + cached_lt = Some(lt.clone()); [INFO] [stdout] 764 + Ok(lt) [INFO] [stdout] 765 + } [INFO] [stdout] 766 + } [INFO] [stdout] 767 ~ }).unwrap_or_else(|a| a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:786:9 [INFO] [stdout] | [INFO] [stdout] 786 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 786 - return true; [INFO] [stdout] 786 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/semantics.rs:800:18 [INFO] [stdout] | [INFO] [stdout] 800 | Box::new(self.lt_generics.iter().map(|t| t.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.lt_generics.iter().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:823:5 [INFO] [stdout] | [INFO] [stdout] 823 | / ctx.scopes.top_mut().map(|mut scope| { [INFO] [stdout] 824 | | scope.lifetimes.insert(lt, (Cell::new(true), RefCell::new(vec![]))); [INFO] [stdout] 825 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 823 - ctx.scopes.top_mut().map(|mut scope| { [INFO] [stdout] 824 - scope.lifetimes.insert(lt, (Cell::new(true), RefCell::new(vec![]))); [INFO] [stdout] 825 - }); [INFO] [stdout] 823 + if let Some(mut scope) = ctx.scopes.top_mut() { scope.lifetimes.insert(lt, (Cell::new(true), RefCell::new(vec![]))); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:853:5 [INFO] [stdout] | [INFO] [stdout] 853 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 853 - return false; [INFO] [stdout] 853 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:891:20 [INFO] [stdout] | [INFO] [stdout] 891 | |hmap| hmap.get(lt).map_or(true, |other| ref_ty == Borrow && other == &Borrow) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 891 - |hmap| hmap.get(lt).map_or(true, |other| ref_ty == Borrow && other == &Borrow) [INFO] [stdout] 891 + |hmap| hmap.get(lt).is_none_or(|other| ref_ty == Borrow && other == &Borrow) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:906:16 [INFO] [stdout] | [INFO] [stdout] 906 | pub fn add_var<'a>(ctx: &mut Context, name: Path, var: Variable) { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:908:5 [INFO] [stdout] | [INFO] [stdout] 908 | / ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 909 | | let ty_name = var.ty.name.clone(); [INFO] [stdout] 910 | | let rc_var = Rc::new(var); [INFO] [stdout] 911 | | l.by_ty_name.entry(ty_name.clone()) [INFO] [stdout] ... | [INFO] [stdout] 925 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 908 - ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 909 - let ty_name = var.ty.name.clone(); [INFO] [stdout] 910 - let rc_var = Rc::new(var); [INFO] [stdout] 911 - l.by_ty_name.entry(ty_name.clone()) [INFO] [stdout] 912 - .or_insert(Default::default()) [INFO] [stdout] 913 - .vars.insert(name.clone(), rc_var.clone()); [INFO] [stdout] 914 - let old_var_opt = l.vars.insert(name.clone(), rc_var); [INFO] [stdout] 915 - // If the variable is being shadowed we need to remove the [INFO] [stdout] 916 - // old variable from by_ty_name [INFO] [stdout] 917 - if let Some(old_var) = old_var_opt { [INFO] [stdout] 918 - if ty_name != old_var.ty.name { [INFO] [stdout] 919 - l.by_ty_name.entry(old_var.ty.name.clone()) [INFO] [stdout] 920 - .or_insert(Default::default()) [INFO] [stdout] 921 - .vars.remove(&name); [INFO] [stdout] 922 - } [INFO] [stdout] 923 - } [INFO] [stdout] 924 - [INFO] [stdout] 925 - }); [INFO] [stdout] 908 + if let Some(mut l) = ctx.scopes.top_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:929:17 [INFO] [stdout] | [INFO] [stdout] 929 | pub fn add_type<'a>(ctx: &mut Context, name: Path, ty: Kind) { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:939:5 [INFO] [stdout] | [INFO] [stdout] 939 | / ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 940 | | let rc_ty = Rc::new(ty); [INFO] [stdout] 941 | | for (name, field) in struc.iter() { [INFO] [stdout] 942 | | l.by_ty_name.entry(field.ty.as_ref().name.clone()) [INFO] [stdout] ... | [INFO] [stdout] 949 | | l.structs.insert(name, (rc_ty, struc)); [INFO] [stdout] 950 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 939 - ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 940 - let rc_ty = Rc::new(ty); [INFO] [stdout] 941 - for (name, field) in struc.iter() { [INFO] [stdout] 942 - l.by_ty_name.entry(field.ty.as_ref().name.clone()) [INFO] [stdout] 943 - .or_insert(Default::default()) [INFO] [stdout] 944 - .fields.push((rc_ty.clone(), field.ty.clone(), name.clone())) [INFO] [stdout] 945 - } [INFO] [stdout] 946 - l.by_ty_name.entry(rc_ty.name.clone()) [INFO] [stdout] 947 - .or_insert(Default::default()) [INFO] [stdout] 948 - .structs.insert(name.clone(), (rc_ty.clone(), struc.clone())); [INFO] [stdout] 949 - l.structs.insert(name, (rc_ty, struc)); [INFO] [stdout] 950 - }); [INFO] [stdout] 939 + if let Some(mut l) = ctx.scopes.top_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:954:5 [INFO] [stdout] | [INFO] [stdout] 954 | / ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 955 | | let rc_ty = Rc::new(ty); [INFO] [stdout] 956 | | for (variant_name, struc) in strucs.iter() { [INFO] [stdout] 957 | | let mut variant_path = name.clone(); [INFO] [stdout] ... | [INFO] [stdout] 963 | | l.enums.insert(name, (rc_ty, strucs)); [INFO] [stdout] 964 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 954 - ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 955 - let rc_ty = Rc::new(ty); [INFO] [stdout] 956 - for (variant_name, struc) in strucs.iter() { [INFO] [stdout] 957 - let mut variant_path = name.clone(); [INFO] [stdout] 958 - variant_path.push(variant_name.clone()); [INFO] [stdout] 959 - l.by_ty_name.entry(rc_ty.name.clone()) [INFO] [stdout] 960 - .or_insert(Default::default()) [INFO] [stdout] 961 - .structs.insert(variant_path, (rc_ty.clone(), struc.clone())); [INFO] [stdout] 962 - } [INFO] [stdout] 963 - l.enums.insert(name, (rc_ty, strucs)); [INFO] [stdout] 964 - }); [INFO] [stdout] 954 + if let Some(mut l) = ctx.scopes.top_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:968:19 [INFO] [stdout] | [INFO] [stdout] 968 | pub fn lookup_var<'a,'b>(ctx: &'b mut Context, name: &Path) -> Option<&'b Variable> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:974:5 [INFO] [stdout] | [INFO] [stdout] 974 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 974 - return None; [INFO] [stdout] 974 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/semantics.rs:978:23 [INFO] [stdout] | [INFO] [stdout] 978 | pub fn lookup_type<'a,'b>(ctx: &'b mut Context, name: Path) -> Option<&'b Kind> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 978 - pub fn lookup_type<'a,'b>(ctx: &'b mut Context, name: Path) -> Option<&'b Kind> { [INFO] [stdout] 978 + pub fn lookup_type<'a>(ctx: &mut Context, name: Path) -> Option<&Kind> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:978:20 [INFO] [stdout] | [INFO] [stdout] 978 | pub fn lookup_type<'a,'b>(ctx: &'b mut Context, name: Path) -> Option<&'b Kind> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:984:5 [INFO] [stdout] | [INFO] [stdout] 984 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 984 - return None; [INFO] [stdout] 984 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/semantics.rs:1023:5 [INFO] [stdout] | [INFO] [stdout] 1023 | Ok(pick_type_that(ctx, u, |_,_| true)?) [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] 1023 - Ok(pick_type_that(ctx, u, |_,_| true)?) [INFO] [stdout] 1023 + pick_type_that(ctx, u, |_,_| true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1162:5 [INFO] [stdout] | [INFO] [stdout] 1162 | return Ok((ty_with_args, inter.collect())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1162 - return Ok((ty_with_args, inter.collect())) [INFO] [stdout] 1162 + Ok((ty_with_args, inter.collect())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/semantics.rs:1135:9 [INFO] [stdout] | [INFO] [stdout] 1135 | / implementors_map.into_iter().filter_map(|(_,values)| { [INFO] [stdout] 1136 | | // these 3 lines could be replaced by a hypothetical [INFO] [stdout] 1137 | | // values.try_reduce(...) [INFO] [stdout] 1138 | | let mut values_iter = values.into_iter(); [INFO] [stdout] ... | [INFO] [stdout] 1148 | | }) [INFO] [stdout] 1149 | | }).collect::>().into_iter() [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1135 ~ implementors_map.into_values().filter_map(|values| { [INFO] [stdout] 1136 + // these 3 lines could be replaced by a hypothetical [INFO] [stdout] 1137 + // values.try_reduce(...) [INFO] [stdout] 1138 + let mut values_iter = values.into_iter(); [INFO] [stdout] 1139 + values_iter.next().and_then(|(first, f_args)| { [INFO] [stdout] 1140 + let f_iter: InterIter = Box::new(f_args.into_iter()); [INFO] [stdout] 1141 + values_iter.try_fold((first.as_ref().clone(), f_iter), [INFO] [stdout] 1142 + |(acc_ty, acc_iter), (v_ty, v_iter)| [INFO] [stdout] 1143 + -> Option<(Type, InterIter)> { [INFO] [stdout] 1144 + Some((acc_ty.merge(v_ty.as_ref().clone())?, [INFO] [stdout] 1145 + Box::new(acc_iter.into_iter().chain(v_iter)))) [INFO] [stdout] 1146 + } [INFO] [stdout] 1147 + ) [INFO] [stdout] 1148 + }) [INFO] [stdout] 1149 ~ }).collect::>().into_iter() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/semantics.rs:1174:9 [INFO] [stdout] | [INFO] [stdout] 1174 | / if let Borrow(_) = self { [INFO] [stdout] 1175 | | true [INFO] [stdout] 1176 | | } else { [INFO] [stdout] 1177 | | false [INFO] [stdout] 1178 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1174 - if let Borrow(_) = self { [INFO] [stdout] 1175 - true [INFO] [stdout] 1176 - } else { [INFO] [stdout] 1177 - false [INFO] [stdout] 1178 - } [INFO] [stdout] 1174 + matches!(self, Borrow(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/semantics.rs:1181:9 [INFO] [stdout] | [INFO] [stdout] 1181 | / if let MutBorrow(_) = self { [INFO] [stdout] 1182 | | true [INFO] [stdout] 1183 | | } else { [INFO] [stdout] 1184 | | false [INFO] [stdout] 1185 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1181 - if let MutBorrow(_) = self { [INFO] [stdout] 1182 - true [INFO] [stdout] 1183 - } else { [INFO] [stdout] 1184 - false [INFO] [stdout] 1185 - } [INFO] [stdout] 1181 + matches!(self, MutBorrow(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1224:5 [INFO] [stdout] | [INFO] [stdout] 1224 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1224 - return result; [INFO] [stdout] 1224 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1940:5 [INFO] [stdout] | [INFO] [stdout] 1940 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1940 - return result; [INFO] [stdout] 1940 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1257:9 [INFO] [stdout] | [INFO] [stdout] 1257 | return new_map; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1257 - return new_map; [INFO] [stdout] 1257 + new_map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1279:9 [INFO] [stdout] | [INFO] [stdout] 1279 | return new_args; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1279 - return new_args; [INFO] [stdout] 1279 + new_args [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1273:57 [INFO] [stdout] | [INFO] [stdout] 1273 | new_args.push(arg.replace(&ty_path, &ty).replace_lts(<_generics)); [INFO] [stdout] | ^^^ help: change this to: `ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1288:9 [INFO] [stdout] | [INFO] [stdout] 1288 | return single.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1288 - return single.clone(); [INFO] [stdout] 1288 + single.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1284:32 [INFO] [stdout] | [INFO] [stdout] 1284 | if single.contains(&ty_name) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `ty_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1285:39 [INFO] [stdout] | [INFO] [stdout] 1285 | return single.replace(&ty_name, &ty); [INFO] [stdout] | ^^^^^^^^ help: change this to: `ty_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1285:49 [INFO] [stdout] | [INFO] [stdout] 1285 | return single.replace(&ty_name, &ty); [INFO] [stdout] | ^^^ help: change this to: `ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1305:9 [INFO] [stdout] | [INFO] [stdout] 1305 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1305 - return result; [INFO] [stdout] 1305 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1293:24 [INFO] [stdout] | [INFO] [stdout] 1293 | output_params: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1293 - output_params: &Vec, [INFO] [stdout] 1293 + output_params: &[StringWrapper], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1294:26 [INFO] [stdout] | [INFO] [stdout] 1294 | expected_params: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1294 - expected_params: &Vec, [INFO] [stdout] 1294 + expected_params: &[Lifetime], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1295:22 [INFO] [stdout] | [INFO] [stdout] 1295 | lt_generics: &Vec [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1295 - lt_generics: &Vec [INFO] [stdout] 1295 + lt_generics: &[StringWrapper] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/semantics.rs:1308:5 [INFO] [stdout] | [INFO] [stdout] 1308 | / fn make_fn_generics( [INFO] [stdout] 1309 | | ctx: &Context, u: &mut Unstructured, [INFO] [stdout] 1310 | | allow_ambiguity: bool, [INFO] [stdout] 1311 | | ty1: &Type, ty2: &Type, [INFO] [stdout] 1312 | | args: &Vec, [INFO] [stdout] 1313 | | type_generics: &TypeGenerics, type_args: &Vec, [INFO] [stdout] 1314 | | ) -> Result<(Option>, Vec)> { [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1312:15 [INFO] [stdout] | [INFO] [stdout] 1312 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1312 - args: &Vec, [INFO] [stdout] 1312 + args: &[Type], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1313:50 [INFO] [stdout] | [INFO] [stdout] 1313 | type_generics: &TypeGenerics, type_args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1313 - type_generics: &TypeGenerics, type_args: &Vec, [INFO] [stdout] 1313 + type_generics: &TypeGenerics, type_args: &[Type], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1404:13 [INFO] [stdout] | [INFO] [stdout] 1404 | return Ok(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1404 - return Ok(None); [INFO] [stdout] 1404 + Ok(None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1406:13 [INFO] [stdout] | [INFO] [stdout] 1406 | return Ok(Some(determined_args)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1406 - return Ok(Some(determined_args)); [INFO] [stdout] 1406 + Ok(Some(determined_args)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1438:9 [INFO] [stdout] | [INFO] [stdout] 1438 | return Ok(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1438 - return Ok(result); [INFO] [stdout] 1438 + Ok(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1585:13 [INFO] [stdout] | [INFO] [stdout] 1585 | if (operator.ret_type.is_generic_with(&operator.type_generics).map_or(false, [INFO] [stdout] | _____________^ [INFO] [stdout] 1586 | | |con| ty.fits_constraints(ctx, con)) || [INFO] [stdout] | |____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1585 - if (operator.ret_type.is_generic_with(&operator.type_generics).map_or(false, [INFO] [stdout] 1586 - |con| ty.fits_constraints(ctx, con)) || [INFO] [stdout] 1585 + if (operator.ret_type.is_generic_with(&operator.type_generics).is_some_and(|con| ty.fits_constraints(ctx, con)) || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1609:17 [INFO] [stdout] | [INFO] [stdout] 1609 | &struc_ty, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `struc_ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1621:77 [INFO] [stdout] | [INFO] [stdout] 1621 | for (i, (name, arg)) in handle_field_generics(generics, &fields).into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^ help: change this to: `fields` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1623:44 [INFO] [stdout] | [INFO] [stdout] 1623 | let arg_ambigous = determined_fields.as_ref().map_or(true, [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 1624 | | |determined| !determined.contains(&i) [INFO] [stdout] 1625 | | ); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1623 - let arg_ambigous = determined_fields.as_ref().map_or(true, [INFO] [stdout] 1624 - |determined| !determined.contains(&i) [INFO] [stdout] 1623 + let arg_ambigous = determined_fields.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/semantics.rs:1640:46 [INFO] [stdout] | [INFO] [stdout] 1640 | let field_types = fields.into_iter().map(|f| f.ty.as_ref().clone()).collect(); [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] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1650:29 [INFO] [stdout] | [INFO] [stdout] 1650 | / ... determined_fields.as_ref().map_or(true, [INFO] [stdout] 1651 | | ... |determined| !determined.contains(&i) [INFO] [stdout] 1652 | | ... ) [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1650 - determined_fields.as_ref().map_or(true, [INFO] [stdout] 1651 - |determined| !determined.contains(&i) [INFO] [stdout] 1650 + determined_fields.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1711:36 [INFO] [stdout] | [INFO] [stdout] 1711 | let arg_ambigous = determined_args.as_ref().map_or(true, [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 1712 | | |determined| !determined.contains(&i) [INFO] [stdout] 1713 | | ); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1711 - let arg_ambigous = determined_args.as_ref().map_or(true, [INFO] [stdout] 1712 - |determined| !determined.contains(&i) [INFO] [stdout] 1711 + let arg_ambigous = determined_args.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1754:73 [INFO] [stdout] | [INFO] [stdout] 1754 | let (trait_args, assoc_ty) = pick_type_impl(ctx, u, &trait_desc)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `trait_desc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/semantics.rs:1756:25 [INFO] [stdout] | [INFO] [stdout] 1756 | / trait_desc.trait_generics.iter().cloned() [INFO] [stdout] 1757 | | .map(|gen| gen.name.clone()) [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] = note: `#[warn(clippy::redundant_iter_cloned)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1756 ~ trait_desc.trait_generics.iter() [INFO] [stdout] 1757 + .map(|gen| gen.name.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1826:21 [INFO] [stdout] | [INFO] [stdout] 1826 | / determined_args.as_ref().map_or(true, [INFO] [stdout] 1827 | | |determined| !determined.contains(&i) [INFO] [stdout] 1828 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1826 - determined_args.as_ref().map_or(true, [INFO] [stdout] 1827 - |determined| !determined.contains(&i) [INFO] [stdout] 1826 + determined_args.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/semantics.rs:1946:36 [INFO] [stdout] | [INFO] [stdout] 1946 | lt_generics: GEN_STRING[0..(kind.lifetimes as usize)].iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `kind.lifetimes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/semantics.rs:1948:32 [INFO] [stdout] | [INFO] [stdout] 1948 | lt_args: GEN_STRING[0..(kind.lifetimes as usize)].iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `kind.lifetimes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/semantics.rs:1950:38 [INFO] [stdout] | [INFO] [stdout] 1950 | type_generics: GEN_STRING[0..(kind.types as usize)].iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `kind.types` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/string_wrapper.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / impl ToString for StringWrapper { [INFO] [stdout] 30 | | fn to_string(&self) -> String { [INFO] [stdout] 31 | | match self { [INFO] [stdout] 32 | | StringWrapper::Static(s) => s.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/string_wrapper.rs:39:19 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn as_str<'a>(&'a self) -> &'a str { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 39 - pub fn as_str<'a>(&'a self) -> &'a str { [INFO] [stdout] 39 + pub fn as_str(&self) -> &str { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/string_wrapper.rs:42:42 [INFO] [stdout] | [INFO] [stdout] 42 | StringWrapper::Dynamic(s) => &*s [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] 42 - StringWrapper::Dynamic(s) => &*s [INFO] [stdout] 42 + StringWrapper::Dynamic(s) => s [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 42 | StringWrapper::Dynamic(s) => &**s [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return Ok(FiniteF64(data)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return Ok(FiniteF64(data)); [INFO] [stdout] 45 + Ok(FiniteF64(data)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/context_arbitrary.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | gen: Box) -> Result + 'd>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/context_arbitrary.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | gen: Box) -> Result + 'd>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/context_arbitrary.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | impl<'a, 'd, T, Ctx> ContextArbitrary<'a, Ctx> for NEVec [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return Ok(NEVec(iter.collect::>>()?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return Ok(NEVec(iter.collect::>>()?)); [INFO] [stdout] 156 + Ok(NEVec(iter.collect::>>()?)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | return choice(a); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 183 - return choice(a); [INFO] [stdout] 183 + choice(a) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context_arbitrary.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | return choice(ctx, u); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 222 - return choice(ctx, u); [INFO] [stdout] 222 + choice(ctx, u) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/choose.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn shuffle(u: &mut Unstructured, v: &mut Vec) -> Result<()> { [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] 17 - pub fn shuffle(u: &mut Unstructured, v: &mut Vec) -> Result<()> { [INFO] [stdout] 17 + pub fn shuffle(u: &mut Unstructured, v: &mut [T]) -> Result<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::RangeInclusive` [INFO] [stdout] --> src/choose.rs:20:35 [INFO] [stdout] | [INFO] [stdout] 20 | let j = choose_consume(u, (0..=i as u16).into_iter())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..=i as u16)` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/context.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 - return result; [INFO] [stdout] 192 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:32:40 [INFO] [stdout] | [INFO] [stdout] 32 | Lifetime::Named(s) => Some(&s), [INFO] [stdout] | ^^ help: change this to: `s` [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: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return true [INFO] [stdout] 40 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return true [INFO] [stdout] 43 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return true [INFO] [stdout] 45 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | return self == other [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return self == other [INFO] [stdout] 47 + self == other [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:36:65 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn matches_with_generics(&self, other: &Self, generics: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 36 - pub fn matches_with_generics(&self, other: &Self, generics: &Vec) -> bool { [INFO] [stdout] 36 + pub fn matches_with_generics(&self, other: &Self, generics: &[StringWrapper]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | self.name().map_or(false, |name| generics.contains(name)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 39 - self.name().map_or(false, |name| generics.contains(name)) { [INFO] [stdout] 39 + self.name().is_some_and(|name| generics.contains(name)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | return false [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return false [INFO] [stdout] 56 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/semantics.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 101 | .map(|a| format!("{}", a.name.as_str())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `a.name.as_str().to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/semantics.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | hm.into_iter().map(|(_,v)| v) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `hm.into_values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `fn(Vec, &Context, &mut Unstructured<'c>) -> Result` which implements the `Copy` trait [INFO] [stdout] --> src/semantics.rs:211:26 [INFO] [stdout] | [INFO] [stdout] 211 | constructor: self.constructor.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.constructor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantics.rs:269:5 [INFO] [stdout] | [INFO] [stdout] 269 | BranchingRefs { mutable: Vec, immutable: Vec } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/semantics.rs:289:35 [INFO] [stdout] | [INFO] [stdout] 289 | let mut lts = std::mem::replace(old_lts, vec![]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(old_lts)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/semantics.rs:298:29 [INFO] [stdout] | [INFO] [stdout] 298 | mutable.into_iter().for_each(|lt| end_lifetime(ctx, lt)); [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] = 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 `Vec` [INFO] [stdout] --> src/semantics.rs:314:29 [INFO] [stdout] | [INFO] [stdout] 314 | mutable.into_iter().for_each(|lt| end_lifetime(ctx, lt)); [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: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/semantics.rs:315:31 [INFO] [stdout] | [INFO] [stdout] 315 | immutable.into_iter().for_each(|lt| end_lifetime(ctx, lt)); [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: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return dummy_token.span; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return dummy_token.span; [INFO] [stdout] 41 + dummy_token.span [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:477:9 [INFO] [stdout] | [INFO] [stdout] 477 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 477 - return self; [INFO] [stdout] 477 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | / return Expr::Paren(ExprParen { [INFO] [stdout] 73 | | attrs: vec![], [INFO] [stdout] 74 | | paren_token: Paren { span: dummy_span() }, [INFO] [stdout] 75 | | expr: Box::new(e), [INFO] [stdout] 76 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 72 ~ Expr::Paren(ExprParen { [INFO] [stdout] 73 + attrs: vec![], [INFO] [stdout] 74 + paren_token: Paren { span: dummy_span() }, [INFO] [stdout] 75 + expr: Box::new(e), [INFO] [stdout] 76 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return e; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return e; [INFO] [stdout] 78 + e [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:410:18 [INFO] [stdout] | [INFO] [stdout] 410 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:417:30 [INFO] [stdout] | [INFO] [stdout] 417 | ... .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:425:30 [INFO] [stdout] | [INFO] [stdout] 425 | ... .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/semantics.rs:433:24 [INFO] [stdout] | [INFO] [stdout] 433 | if let Some(_) = func.ret_type.is_generic_with(&var.ty.type_generics) { [INFO] [stdout] | -------^^^^^^^------------------------------------------------------- help: try: `if func.ret_type.is_generic_with(&var.ty.type_generics).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:435:26 [INFO] [stdout] | [INFO] [stdout] 435 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:439:26 [INFO] [stdout] | [INFO] [stdout] 439 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:444:22 [INFO] [stdout] | [INFO] [stdout] 444 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:452:18 [INFO] [stdout] | [INFO] [stdout] 452 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/semantics.rs:457:24 [INFO] [stdout] | [INFO] [stdout] 457 | if let Some(_) = method.func.ret_type.is_generic_with(&method.type_generics) { [INFO] [stdout] | -------^^^^^^^-------------------------------------------------------------- help: try: `if method.func.ret_type.is_generic_with(&method.type_generics).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:459:26 [INFO] [stdout] | [INFO] [stdout] 459 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:463:26 [INFO] [stdout] | [INFO] [stdout] 463 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/semantics.rs:471:22 [INFO] [stdout] | [INFO] [stdout] 471 | .or_insert(Default::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/semantics.rs:470:39 [INFO] [stdout] | [INFO] [stdout] 470 | self.by_ty_name.entry((*implementor).name.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `implementor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/semantics.rs:486:18 [INFO] [stdout] | [INFO] [stdout] 486 | pub methods: Vec<(Either, TraitDescription>, Rc)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/semantics.rs:507:23 [INFO] [stdout] | [INFO] [stdout] 507 | pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&T> { [INFO] [stdout] | ^^ ^^ ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 507 - pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&T> { [INFO] [stdout] 507 + pub fn sized_iter(&self) -> std::vec::IntoIter<&T> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/semantics.rs:601:16 [INFO] [stdout] | [INFO] [stdout] 601 | if !self_arg.is_generic_with(generics).is_some() && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self_arg.is_generic_with(generics).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: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:607:9 [INFO] [stdout] | [INFO] [stdout] 607 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 607 - return true; [INFO] [stdout] 607 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:648:9 [INFO] [stdout] | [INFO] [stdout] 648 | / return Some(Type { [INFO] [stdout] 649 | | type_generics, [INFO] [stdout] 650 | | type_args, [INFO] [stdout] 651 | | ..self [INFO] [stdout] 652 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 648 ~ Some(Type { [INFO] [stdout] 649 + type_generics, [INFO] [stdout] 650 + type_args, [INFO] [stdout] 651 + ..self [INFO] [stdout] 652 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/semantics.rs:670:18 [INFO] [stdout] | [INFO] [stdout] 670 | Box::new(self.lt_generics.iter().map(|t| t.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.lt_generics.iter().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:678:38 [INFO] [stdout] | [INFO] [stdout] 678 | self.lt_args.iter().any(|lt| lt.name().map_or(false, |lt_name| lt_name == name)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 678 - self.lt_args.iter().any(|lt| lt.name().map_or(false, |lt_name| lt_name == name)) [INFO] [stdout] 678 + self.lt_args.iter().any(|lt| lt.name().is_some_and(|lt_name| lt_name == name)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:516:47 [INFO] [stdout] | [INFO] [stdout] 516 | path: make_turbofish_path(&path, type_args.clone()) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:523:43 [INFO] [stdout] | [INFO] [stdout] 523 | path: make_turbofish_path(&path, type_args.clone()), [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/syn_arbitrary.rs:556:80 [INFO] [stdout] | [INFO] [stdout] 556 | receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, &*reciever)?)), [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] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 556 - receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, &*reciever)?)), [INFO] [stdout] 556 + receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, reciever)?)), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 556 | receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, &**reciever)?)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:559:31 [INFO] [stdout] | [INFO] [stdout] 559 | turbofish: if type_args.len() == 0 && Arbitrary::arbitrary(u)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `type_args.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:687:13 [INFO] [stdout] | [INFO] [stdout] 687 | return Box::new(iter::once((self, other))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 687 - return Box::new(iter::once((self, other))); [INFO] [stdout] 687 + Box::new(iter::once((self, other))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessarily eager cloning of iterator items [INFO] [stdout] --> src/semantics.rs:702:17 [INFO] [stdout] | [INFO] [stdout] 702 | self.type_generics.iter().cloned() [INFO] [stdout] | _________________^ - [INFO] [stdout] | |__________________________________________| [INFO] [stdout] 703 | || .filter(|gen| &vec![gen.name.clone()] == name).collect(), [INFO] [stdout] | ||______________________________________________________________^ help: try: `.filter(|&gen| &vec![gen.name.clone()] == name).cloned()` [INFO] [stdout] | |______________________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_overeager_cloned [INFO] [stdout] = note: `#[warn(clippy::iter_overeager_cloned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:716:17 [INFO] [stdout] | [INFO] [stdout] 716 | return other_lt.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 716 - return other_lt.clone() [INFO] [stdout] 716 + other_lt.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/semantics.rs:723:33 [INFO] [stdout] | [INFO] [stdout] 723 | self.sub_tys().any(|ty| ty.lt_args.len() > 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!ty.lt_args.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 `Vec` [INFO] [stdout] --> src/syn_arbitrary.rs:565:41 [INFO] [stdout] | [INFO] [stdout] 565 | args: type_args.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] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:737:21 [INFO] [stdout] | [INFO] [stdout] 737 | lt.name().map_or(false, |n| self.lt_generics.contains(n)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 737 - lt.name().map_or(false, |n| self.lt_generics.contains(n)) { [INFO] [stdout] 737 + lt.name().is_some_and(|n| self.lt_generics.contains(n)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:580:55 [INFO] [stdout] | [INFO] [stdout] 580 | let ty_path = make_turbofish_path(&ty, ty_args.clone()); [INFO] [stdout] | ^^^ help: change this to: `ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:748:61 [INFO] [stdout] | [INFO] [stdout] 748 | pub fn assign_lts_vec(&self, u: &mut Unstructured, lts: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 748 - pub fn assign_lts_vec(&self, u: &mut Unstructured, lts: &Vec) -> Result { [INFO] [stdout] 748 + pub fn assign_lts_vec(&self, u: &mut Unstructured, lts: &[Lifetime]) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/syn_arbitrary.rs:588:40 [INFO] [stdout] | [INFO] [stdout] 588 | ... .chain(fn_path.segments.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:510:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 588 - .chain(fn_path.segments.into_iter()) [INFO] [stdout] 588 + .chain(fn_path.segments) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused "map closure" when calling `Result::map_or_else` value [INFO] [stdout] --> src/semantics.rs:758:18 [INFO] [stdout] | [INFO] [stdout] 758 | let ty = self.assign_lts(&mut || { [INFO] [stdout] | __________________^ [INFO] [stdout] 759 | | match &cached_lt { [INFO] [stdout] 760 | | Some(lt) => Ok::(lt.clone()), [INFO] [stdout] 761 | | None => { [INFO] [stdout] ... | [INFO] [stdout] 767 | | }).map_or_else(|a| a, |a| a); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_result_map_or_else [INFO] [stdout] = note: `#[warn(clippy::unnecessary_result_map_or_else)]` on by default [INFO] [stdout] help: consider using `unwrap_or_else` [INFO] [stdout] | [INFO] [stdout] 758 ~ let ty = self.assign_lts(&mut || { [INFO] [stdout] 759 + match &cached_lt { [INFO] [stdout] 760 + Some(lt) => Ok::(lt.clone()), [INFO] [stdout] 761 + None => { [INFO] [stdout] 762 + let lt = fresh_lt(ctx); [INFO] [stdout] 763 + cached_lt = Some(lt.clone()); [INFO] [stdout] 764 + Ok(lt) [INFO] [stdout] 765 + } [INFO] [stdout] 766 + } [INFO] [stdout] 767 ~ }).unwrap_or_else(|a| a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:602:59 [INFO] [stdout] | [INFO] [stdout] 602 | let syn_e = from_sem_expr(ctx, u, &e)?; [INFO] [stdout] | ^^ help: change this to: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:786:9 [INFO] [stdout] | [INFO] [stdout] 786 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 786 - return true; [INFO] [stdout] 786 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/semantics.rs:800:18 [INFO] [stdout] | [INFO] [stdout] 800 | Box::new(self.lt_generics.iter().map(|t| t.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.lt_generics.iter().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:628:49 [INFO] [stdout] | [INFO] [stdout] 628 | path: from_sem_path(ctx, u, &name)?, [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:823:5 [INFO] [stdout] | [INFO] [stdout] 823 | / ctx.scopes.top_mut().map(|mut scope| { [INFO] [stdout] 824 | | scope.lifetimes.insert(lt, (Cell::new(true), RefCell::new(vec![]))); [INFO] [stdout] 825 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 823 - ctx.scopes.top_mut().map(|mut scope| { [INFO] [stdout] 824 - scope.lifetimes.insert(lt, (Cell::new(true), RefCell::new(vec![]))); [INFO] [stdout] 825 - }); [INFO] [stdout] 823 + if let Some(mut scope) = ctx.scopes.top_mut() { scope.lifetimes.insert(lt, (Cell::new(true), RefCell::new(vec![]))); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:654:51 [INFO] [stdout] | [INFO] [stdout] 654 | path: make_turbofish_path(&path, type_args.clone()), [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:853:5 [INFO] [stdout] | [INFO] [stdout] 853 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 853 - return false; [INFO] [stdout] 853 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:666:41 [INFO] [stdout] | [INFO] [stdout] 666 | path: from_sem_path(ctx, u, &path)?, [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:891:20 [INFO] [stdout] | [INFO] [stdout] 891 | |hmap| hmap.get(lt).map_or(true, |other| ref_ty == Borrow && other == &Borrow) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 891 - |hmap| hmap.get(lt).map_or(true, |other| ref_ty == Borrow && other == &Borrow) [INFO] [stdout] 891 + |hmap| hmap.get(lt).is_none_or(|other| ref_ty == Borrow && other == &Borrow) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:906:16 [INFO] [stdout] | [INFO] [stdout] 906 | pub fn add_var<'a>(ctx: &mut Context, name: Path, var: Variable) { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:689:35 [INFO] [stdout] | [INFO] [stdout] 689 | op: parse_str(op).expect(format!("Failed parsing operator {}", op).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed parsing operator {}", op))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:694:40 [INFO] [stdout] | [INFO] [stdout] 694 | let syn_op = parse_str(op).expect(format!("Couldn't parse binary operator {}", op).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Couldn't parse binary operator {}", op))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:908:5 [INFO] [stdout] | [INFO] [stdout] 908 | / ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 909 | | let ty_name = var.ty.name.clone(); [INFO] [stdout] 910 | | let rc_var = Rc::new(var); [INFO] [stdout] 911 | | l.by_ty_name.entry(ty_name.clone()) [INFO] [stdout] ... | [INFO] [stdout] 925 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 908 - ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 909 - let ty_name = var.ty.name.clone(); [INFO] [stdout] 910 - let rc_var = Rc::new(var); [INFO] [stdout] 911 - l.by_ty_name.entry(ty_name.clone()) [INFO] [stdout] 912 - .or_insert(Default::default()) [INFO] [stdout] 913 - .vars.insert(name.clone(), rc_var.clone()); [INFO] [stdout] 914 - let old_var_opt = l.vars.insert(name.clone(), rc_var); [INFO] [stdout] 915 - // If the variable is being shadowed we need to remove the [INFO] [stdout] 916 - // old variable from by_ty_name [INFO] [stdout] 917 - if let Some(old_var) = old_var_opt { [INFO] [stdout] 918 - if ty_name != old_var.ty.name { [INFO] [stdout] 919 - l.by_ty_name.entry(old_var.ty.name.clone()) [INFO] [stdout] 920 - .or_insert(Default::default()) [INFO] [stdout] 921 - .vars.remove(&name); [INFO] [stdout] 922 - } [INFO] [stdout] 923 - } [INFO] [stdout] 924 - [INFO] [stdout] 925 - }); [INFO] [stdout] 908 + if let Some(mut l) = ctx.scopes.top_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:699:35 [INFO] [stdout] | [INFO] [stdout] 699 | op: parse_str(op).expect(format!("Failed parsing operator {}", op).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed parsing operator {}", op))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:929:17 [INFO] [stdout] | [INFO] [stdout] 929 | pub fn add_type<'a>(ctx: &mut Context, name: Path, ty: Kind) { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:939:5 [INFO] [stdout] | [INFO] [stdout] 939 | / ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 940 | | let rc_ty = Rc::new(ty); [INFO] [stdout] 941 | | for (name, field) in struc.iter() { [INFO] [stdout] 942 | | l.by_ty_name.entry(field.ty.as_ref().name.clone()) [INFO] [stdout] ... | [INFO] [stdout] 949 | | l.structs.insert(name, (rc_ty, struc)); [INFO] [stdout] 950 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 939 - ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 940 - let rc_ty = Rc::new(ty); [INFO] [stdout] 941 - for (name, field) in struc.iter() { [INFO] [stdout] 942 - l.by_ty_name.entry(field.ty.as_ref().name.clone()) [INFO] [stdout] 943 - .or_insert(Default::default()) [INFO] [stdout] 944 - .fields.push((rc_ty.clone(), field.ty.clone(), name.clone())) [INFO] [stdout] 945 - } [INFO] [stdout] 946 - l.by_ty_name.entry(rc_ty.name.clone()) [INFO] [stdout] 947 - .or_insert(Default::default()) [INFO] [stdout] 948 - .structs.insert(name.clone(), (rc_ty.clone(), struc.clone())); [INFO] [stdout] 949 - l.structs.insert(name, (rc_ty, struc)); [INFO] [stdout] 950 - }); [INFO] [stdout] 939 + if let Some(mut l) = ctx.scopes.top_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/syn_arbitrary.rs:709:8 [INFO] [stdout] | [INFO] [stdout] 709 | -> Result<(Vec<(Ident, sem::Mutability, sem::Type)>, sem::Expr)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/semantics.rs:954:5 [INFO] [stdout] | [INFO] [stdout] 954 | / ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 955 | | let rc_ty = Rc::new(ty); [INFO] [stdout] 956 | | for (variant_name, struc) in strucs.iter() { [INFO] [stdout] 957 | | let mut variant_path = name.clone(); [INFO] [stdout] ... | [INFO] [stdout] 963 | | l.enums.insert(name, (rc_ty, strucs)); [INFO] [stdout] 964 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 954 - ctx.scopes.top_mut().map(|mut l| { [INFO] [stdout] 955 - let rc_ty = Rc::new(ty); [INFO] [stdout] 956 - for (variant_name, struc) in strucs.iter() { [INFO] [stdout] 957 - let mut variant_path = name.clone(); [INFO] [stdout] 958 - variant_path.push(variant_name.clone()); [INFO] [stdout] 959 - l.by_ty_name.entry(rc_ty.name.clone()) [INFO] [stdout] 960 - .or_insert(Default::default()) [INFO] [stdout] 961 - .structs.insert(variant_path, (rc_ty.clone(), struc.clone())); [INFO] [stdout] 962 - } [INFO] [stdout] 963 - l.enums.insert(name, (rc_ty, strucs)); [INFO] [stdout] 964 - }); [INFO] [stdout] 954 + if let Some(mut l) = ctx.scopes.top_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:968:19 [INFO] [stdout] | [INFO] [stdout] 968 | pub fn lookup_var<'a,'b>(ctx: &'b mut Context, name: &Path) -> Option<&'b Variable> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:974:5 [INFO] [stdout] | [INFO] [stdout] 974 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 974 - return None; [INFO] [stdout] 974 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/semantics.rs:978:23 [INFO] [stdout] | [INFO] [stdout] 978 | pub fn lookup_type<'a,'b>(ctx: &'b mut Context, name: Path) -> Option<&'b Kind> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 978 - pub fn lookup_type<'a,'b>(ctx: &'b mut Context, name: Path) -> Option<&'b Kind> { [INFO] [stdout] 978 + pub fn lookup_type<'a>(ctx: &mut Context, name: Path) -> Option<&Kind> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/semantics.rs:978:20 [INFO] [stdout] | [INFO] [stdout] 978 | pub fn lookup_type<'a,'b>(ctx: &'b mut Context, name: Path) -> Option<&'b Kind> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:984:5 [INFO] [stdout] | [INFO] [stdout] 984 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 984 - return None; [INFO] [stdout] 984 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/semantics.rs:1023:5 [INFO] [stdout] | [INFO] [stdout] 1023 | Ok(pick_type_that(ctx, u, |_,_| true)?) [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] 1023 - Ok(pick_type_that(ctx, u, |_,_| true)?) [INFO] [stdout] 1023 + pick_type_that(ctx, u, |_,_| true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/syn_arbitrary.rs:834:18 [INFO] [stdout] | [INFO] [stdout] 834 | lt_generics: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 834 - lt_generics: &Vec, [INFO] [stdout] 834 + lt_generics: &[StringWrapper], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1162:5 [INFO] [stdout] | [INFO] [stdout] 1162 | return Ok((ty_with_args, inter.collect())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1162 - return Ok((ty_with_args, inter.collect())) [INFO] [stdout] 1162 + Ok((ty_with_args, inter.collect())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:895:28 [INFO] [stdout] | [INFO] [stdout] 895 | Ok(parse_str(name).expect(format!("Unable to parse {} as ident", name).as_str())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse {} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/semantics.rs:1135:9 [INFO] [stdout] | [INFO] [stdout] 1135 | / implementors_map.into_iter().filter_map(|(_,values)| { [INFO] [stdout] 1136 | | // these 3 lines could be replaced by a hypothetical [INFO] [stdout] 1137 | | // values.try_reduce(...) [INFO] [stdout] 1138 | | let mut values_iter = values.into_iter(); [INFO] [stdout] ... | [INFO] [stdout] 1148 | | }) [INFO] [stdout] 1149 | | }).collect::>().into_iter() [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1135 ~ implementors_map.into_values().filter_map(|values| { [INFO] [stdout] 1136 + // these 3 lines could be replaced by a hypothetical [INFO] [stdout] 1137 + // values.try_reduce(...) [INFO] [stdout] 1138 + let mut values_iter = values.into_iter(); [INFO] [stdout] 1139 + values_iter.next().and_then(|(first, f_args)| { [INFO] [stdout] 1140 + let f_iter: InterIter = Box::new(f_args.into_iter()); [INFO] [stdout] 1141 + values_iter.try_fold((first.as_ref().clone(), f_iter), [INFO] [stdout] 1142 + |(acc_ty, acc_iter), (v_ty, v_iter)| [INFO] [stdout] 1143 + -> Option<(Type, InterIter)> { [INFO] [stdout] 1144 + Some((acc_ty.merge(v_ty.as_ref().clone())?, [INFO] [stdout] 1145 + Box::new(acc_iter.into_iter().chain(v_iter)))) [INFO] [stdout] 1146 + } [INFO] [stdout] 1147 + ) [INFO] [stdout] 1148 + }) [INFO] [stdout] 1149 ~ }).collect::>().into_iter() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:899:18 [INFO] [stdout] | [INFO] [stdout] 899 | .expect(format!("Unable to parse r#{} as ident", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse r#{} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:908:25 [INFO] [stdout] | [INFO] [stdout] 908 | parse_str(name).expect(format!("Unable to parse {} as ident", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse {} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/semantics.rs:1174:9 [INFO] [stdout] | [INFO] [stdout] 1174 | / if let Borrow(_) = self { [INFO] [stdout] 1175 | | true [INFO] [stdout] 1176 | | } else { [INFO] [stdout] 1177 | | false [INFO] [stdout] 1178 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1174 - if let Borrow(_) = self { [INFO] [stdout] 1175 - true [INFO] [stdout] 1176 - } else { [INFO] [stdout] 1177 - false [INFO] [stdout] 1178 - } [INFO] [stdout] 1174 + matches!(self, Borrow(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/semantics.rs:1181:9 [INFO] [stdout] | [INFO] [stdout] 1181 | / if let MutBorrow(_) = self { [INFO] [stdout] 1182 | | true [INFO] [stdout] 1183 | | } else { [INFO] [stdout] 1184 | | false [INFO] [stdout] 1185 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1181 - if let MutBorrow(_) = self { [INFO] [stdout] 1182 - true [INFO] [stdout] 1183 - } else { [INFO] [stdout] 1184 - false [INFO] [stdout] 1185 - } [INFO] [stdout] 1181 + matches!(self, MutBorrow(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:911:14 [INFO] [stdout] | [INFO] [stdout] 911 | .expect(format!("Unable to parse r#{} as ident", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse r#{} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:920:9 [INFO] [stdout] | [INFO] [stdout] 920 | return str[2..].to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 920 - return str[2..].to_string(); [INFO] [stdout] 920 + str[2..].to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:922:9 [INFO] [stdout] | [INFO] [stdout] 922 | return str; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 922 - return str; [INFO] [stdout] 922 + str [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/syn_arbitrary.rs:920:16 [INFO] [stdout] | [INFO] [stdout] 920 | return str[2..].to_string(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/syn_arbitrary.rs:919:5 [INFO] [stdout] | [INFO] [stdout] 919 | if str.starts_with("r#") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 919 ~ if let Some() = str.strip_prefix("r#") { [INFO] [stdout] 920 ~ return .to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/syn_arbitrary.rs:928:34 [INFO] [stdout] | [INFO] [stdout] 928 | let mut segments_iter = name.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1224:5 [INFO] [stdout] | [INFO] [stdout] 1224 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1224 - return result; [INFO] [stdout] 1224 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:998:9 [INFO] [stdout] | [INFO] [stdout] 998 | return iter.collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 998 - return iter.collect(); [INFO] [stdout] 998 + iter.collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1940:5 [INFO] [stdout] | [INFO] [stdout] 1940 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1940 - return result; [INFO] [stdout] 1940 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:1012:9 [INFO] [stdout] | [INFO] [stdout] 1012 | return Ok(NEPunctuated(iter.collect::>>()?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1012 - return Ok(NEPunctuated(iter.collect::>>()?)); [INFO] [stdout] 1012 + Ok(NEPunctuated(iter.collect::>>()?)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1257:9 [INFO] [stdout] | [INFO] [stdout] 1257 | return new_map; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1257 - return new_map; [INFO] [stdout] 1257 + new_map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1279:9 [INFO] [stdout] | [INFO] [stdout] 1279 | return new_args; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1279 - return new_args; [INFO] [stdout] 1279 + new_args [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1030:9 [INFO] [stdout] | [INFO] [stdout] 1030 | / reserve_names!(ctx, { [INFO] [stdout] 1031 | | items.extend(from_reservations(ctx, u)?); [INFO] [stdout] 1032 | | // if ctx.has_main { [INFO] [stdout] 1033 | | let main = Item::Fn(make_main(ctx, u)?); [INFO] [stdout] ... | [INFO] [stdout] 1041 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1273:57 [INFO] [stdout] | [INFO] [stdout] 1273 | new_args.push(arg.replace(&ty_path, &ty).replace_lts(<_generics)); [INFO] [stdout] | ^^^ help: change this to: `ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:1075:5 [INFO] [stdout] | [INFO] [stdout] 1075 | return Ok(attrs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1075 - return Ok(attrs); [INFO] [stdout] 1075 + Ok(attrs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1288:9 [INFO] [stdout] | [INFO] [stdout] 1288 | return single.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1288 - return single.clone(); [INFO] [stdout] 1288 + single.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1284:32 [INFO] [stdout] | [INFO] [stdout] 1284 | if single.contains(&ty_name) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `ty_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1285:39 [INFO] [stdout] | [INFO] [stdout] 1285 | return single.replace(&ty_name, &ty); [INFO] [stdout] | ^^^^^^^^ help: change this to: `ty_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1285:49 [INFO] [stdout] | [INFO] [stdout] 1285 | return single.replace(&ty_name, &ty); [INFO] [stdout] | ^^^ help: change this to: `ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1305:9 [INFO] [stdout] | [INFO] [stdout] 1305 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1305 - return result; [INFO] [stdout] 1305 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1293:24 [INFO] [stdout] | [INFO] [stdout] 1293 | output_params: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1293 - output_params: &Vec, [INFO] [stdout] 1293 + output_params: &[StringWrapper], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1294:26 [INFO] [stdout] | [INFO] [stdout] 1294 | expected_params: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1294 - expected_params: &Vec, [INFO] [stdout] 1294 + expected_params: &[Lifetime], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1295:22 [INFO] [stdout] | [INFO] [stdout] 1295 | lt_generics: &Vec [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1295 - lt_generics: &Vec [INFO] [stdout] 1295 + lt_generics: &[StringWrapper] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/semantics.rs:1308:5 [INFO] [stdout] | [INFO] [stdout] 1308 | / fn make_fn_generics( [INFO] [stdout] 1309 | | ctx: &Context, u: &mut Unstructured, [INFO] [stdout] 1310 | | allow_ambiguity: bool, [INFO] [stdout] 1311 | | ty1: &Type, ty2: &Type, [INFO] [stdout] 1312 | | args: &Vec, [INFO] [stdout] 1313 | | type_generics: &TypeGenerics, type_args: &Vec, [INFO] [stdout] 1314 | | ) -> Result<(Option>, Vec)> { [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1312:15 [INFO] [stdout] | [INFO] [stdout] 1312 | args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1312 - args: &Vec, [INFO] [stdout] 1312 + args: &[Type], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/semantics.rs:1313:50 [INFO] [stdout] | [INFO] [stdout] 1313 | type_generics: &TypeGenerics, type_args: &Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1313 - type_generics: &TypeGenerics, type_args: &Vec, [INFO] [stdout] 1313 + type_generics: &TypeGenerics, type_args: &[Type], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1404:13 [INFO] [stdout] | [INFO] [stdout] 1404 | return Ok(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1404 - return Ok(None); [INFO] [stdout] 1404 + Ok(None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1406:13 [INFO] [stdout] | [INFO] [stdout] 1406 | return Ok(Some(determined_args)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1406 - return Ok(Some(determined_args)); [INFO] [stdout] 1406 + Ok(Some(determined_args)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantics.rs:1438:9 [INFO] [stdout] | [INFO] [stdout] 1438 | return Ok(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1438 - return Ok(result); [INFO] [stdout] 1438 + Ok(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: sub-expression diverges [INFO] [stdout] --> src/syn_arbitrary.rs:1123:37 [INFO] [stdout] | [INFO] [stdout] 1123 | ctx.regard_semantics => panic!("Use `from_reserved` instead!"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#diverging_sub_expression [INFO] [stdout] = note: `#[warn(clippy::diverging_sub_expression)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1585:13 [INFO] [stdout] | [INFO] [stdout] 1585 | if (operator.ret_type.is_generic_with(&operator.type_generics).map_or(false, [INFO] [stdout] | _____________^ [INFO] [stdout] 1586 | | |con| ty.fits_constraints(ctx, con)) || [INFO] [stdout] | |____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1585 - if (operator.ret_type.is_generic_with(&operator.type_generics).map_or(false, [INFO] [stdout] 1586 - |con| ty.fits_constraints(ctx, con)) || [INFO] [stdout] 1585 + if (operator.ret_type.is_generic_with(&operator.type_generics).is_some_and(|con| ty.fits_constraints(ctx, con)) || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1162:24 [INFO] [stdout] | [INFO] [stdout] 1162 | }, reserve_names!(ctx, c_arbitrary_iter_with(ctx, u, |ctx, u| { [INFO] [stdout] | ________________________- [INFO] [stdout] 1163 | | let ident = c_arbitrary(ctx, u)?; [INFO] [stdout] 1164 | | let name: StringWrapper = ident_to_name(&ident).into(); [INFO] [stdout] 1165 | | ctx.reserved_names.insert(name.clone()); [INFO] [stdout] 1166 | | Ok((name, Arbitrary::arbitrary(u)?)) [INFO] [stdout] 1167 | | }).collect::>>()?)) [INFO] [stdout] | |____________________________________________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1609:17 [INFO] [stdout] | [INFO] [stdout] 1609 | &struc_ty, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `struc_ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1621:77 [INFO] [stdout] | [INFO] [stdout] 1621 | for (i, (name, arg)) in handle_field_generics(generics, &fields).into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^ help: change this to: `fields` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1623:44 [INFO] [stdout] | [INFO] [stdout] 1623 | let arg_ambigous = determined_fields.as_ref().map_or(true, [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 1624 | | |determined| !determined.contains(&i) [INFO] [stdout] 1625 | | ); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1623 - let arg_ambigous = determined_fields.as_ref().map_or(true, [INFO] [stdout] 1624 - |determined| !determined.contains(&i) [INFO] [stdout] 1623 + let arg_ambigous = determined_fields.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/semantics.rs:1640:46 [INFO] [stdout] | [INFO] [stdout] 1640 | let field_types = fields.into_iter().map(|f| f.ty.as_ref().clone()).collect(); [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] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1650:29 [INFO] [stdout] | [INFO] [stdout] 1650 | / ... determined_fields.as_ref().map_or(true, [INFO] [stdout] 1651 | | ... |determined| !determined.contains(&i) [INFO] [stdout] 1652 | | ... ) [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1650 - determined_fields.as_ref().map_or(true, [INFO] [stdout] 1651 - |determined| !determined.contains(&i) [INFO] [stdout] 1650 + determined_fields.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:1233:5 [INFO] [stdout] | [INFO] [stdout] 1233 | return Ok(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1233 - return Ok(result); [INFO] [stdout] 1233 + Ok(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/syn_arbitrary.rs:1221:24 [INFO] [stdout] | [INFO] [stdout] 1221 | let reservations = mem::replace(&mut scope.reserved, Default::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut scope.reserved)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1711:36 [INFO] [stdout] | [INFO] [stdout] 1711 | let arg_ambigous = determined_args.as_ref().map_or(true, [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 1712 | | |determined| !determined.contains(&i) [INFO] [stdout] 1713 | | ); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1711 - let arg_ambigous = determined_args.as_ref().map_or(true, [INFO] [stdout] 1712 - |determined| !determined.contains(&i) [INFO] [stdout] 1711 + let arg_ambigous = determined_args.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/semantics.rs:1754:73 [INFO] [stdout] | [INFO] [stdout] 1754 | let (trait_args, assoc_ty) = pick_type_impl(ctx, u, &trait_desc)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `trait_desc` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/semantics.rs:1756:25 [INFO] [stdout] | [INFO] [stdout] 1756 | / trait_desc.trait_generics.iter().cloned() [INFO] [stdout] 1757 | | .map(|gen| gen.name.clone()) [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] = note: `#[warn(clippy::redundant_iter_cloned)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1756 ~ trait_desc.trait_generics.iter() [INFO] [stdout] 1757 + .map(|gen| gen.name.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/semantics.rs:1826:21 [INFO] [stdout] | [INFO] [stdout] 1826 | / determined_args.as_ref().map_or(true, [INFO] [stdout] 1827 | | |determined| !determined.contains(&i) [INFO] [stdout] 1828 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1826 - determined_args.as_ref().map_or(true, [INFO] [stdout] 1827 - |determined| !determined.contains(&i) [INFO] [stdout] 1826 + determined_args.as_ref().is_none_or(|determined| !determined.contains(&i) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1324:24 [INFO] [stdout] | [INFO] [stdout] 1324 | let sem_variants = reserve_names!(ctx, reserved_variants.into_iter().map(|(name, is_tuple)| { [INFO] [stdout] | ________________________- [INFO] [stdout] 1325 | | if !type_added { [INFO] [stdout] 1326 | | type_added = true; [INFO] [stdout] 1327 | | add_type(ctx, vec![ident_to_name(&ident).into()], kind.clone()); [INFO] [stdout] ... | [INFO] [stdout] 1335 | | Ok((name, fields)) [INFO] [stdout] 1336 | | }).collect::>>()?); [INFO] [stdout] | |_______________________________________________________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/semantics.rs:1946:36 [INFO] [stdout] | [INFO] [stdout] 1946 | lt_generics: GEN_STRING[0..(kind.lifetimes as usize)].iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `kind.lifetimes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/semantics.rs:1948:32 [INFO] [stdout] | [INFO] [stdout] 1948 | lt_args: GEN_STRING[0..(kind.lifetimes as usize)].iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `kind.lifetimes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/semantics.rs:1950:38 [INFO] [stdout] | [INFO] [stdout] 1950 | type_generics: GEN_STRING[0..(kind.types as usize)].iter() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `kind.types` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/syn_arbitrary.rs:1397:10 [INFO] [stdout] | [INFO] [stdout] 1397 | lts: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1397 - lts: &Vec, [INFO] [stdout] 1397 + lts: &[StringWrapper], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1405:19 [INFO] [stdout] | [INFO] [stdout] 1405 | |_,k| lts.len() > 0 || k.lifetimes == 0 && (!vis || k.is_visible) [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lts.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] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/string_wrapper.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / impl ToString for StringWrapper { [INFO] [stdout] 30 | | fn to_string(&self) -> String { [INFO] [stdout] 31 | | match self { [INFO] [stdout] 32 | | StringWrapper::Static(s) => s.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1422:17 [INFO] [stdout] | [INFO] [stdout] 1422 | lts.len() > 0 => sem::Type { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lts.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] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/string_wrapper.rs:39:19 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn as_str<'a>(&'a self) -> &'a str { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 39 - pub fn as_str<'a>(&'a self) -> &'a str { [INFO] [stdout] 39 + pub fn as_str(&self) -> &str { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/string_wrapper.rs:42:42 [INFO] [stdout] | [INFO] [stdout] 42 | StringWrapper::Dynamic(s) => &*s [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] 42 - StringWrapper::Dynamic(s) => &*s [INFO] [stdout] 42 + StringWrapper::Dynamic(s) => s [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 42 | StringWrapper::Dynamic(s) => &**s [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1428:12 [INFO] [stdout] | [INFO] [stdout] 1428 | if lts.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lts.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] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/syn_arbitrary.rs:1443:9 [INFO] [stdout] | [INFO] [stdout] 1438 | / let fields = reserve_names!(ctx, sem::Fields::Named(fields.into_iter().map(|field| { [INFO] [stdout] 1439 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] 1440 | | ctx.reserved_names.insert(name.clone()); [INFO] [stdout] 1441 | | Ok((name, field)) [INFO] [stdout] 1442 | | }).collect::>>()?)); [INFO] [stdout] | |______________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 1443 | fields [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 1438 ~ [INFO] [stdout] 1439 ~ { [INFO] [stdout] 1440 + let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] 1441 + let result = with_attrs!($obj { $($attrs = $vals),* }, $e); [INFO] [stdout] 1442 + $obj.$attr = old_val; [INFO] [stdout] 1443 + result [INFO] [stdout] 1444 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1438:22 [INFO] [stdout] | [INFO] [stdout] 1438 | let fields = reserve_names!(ctx, sem::Fields::Named(fields.into_iter().map(|field| { [INFO] [stdout] | ______________________- [INFO] [stdout] 1439 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] 1440 | | ctx.reserved_names.insert(name.clone()); [INFO] [stdout] 1441 | | Ok((name, field)) [INFO] [stdout] 1442 | | }).collect::>>()?)); [INFO] [stdout] | |_____________________________________________________________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/syn_arbitrary.rs:1601:5 [INFO] [stdout] | [INFO] [stdout] 1601 | / if let Visibility::Public(_) = vis { [INFO] [stdout] 1602 | | true [INFO] [stdout] 1603 | | } else { [INFO] [stdout] 1604 | | false [INFO] [stdout] 1605 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1601 - if let Visibility::Public(_) = vis { [INFO] [stdout] 1602 - true [INFO] [stdout] 1603 - } else { [INFO] [stdout] 1604 - false [INFO] [stdout] 1605 - } [INFO] [stdout] 1601 + matches!(vis, Visibility::Public(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/syn_arbitrary.rs:1917:24 [INFO] [stdout] | [INFO] [stdout] 1917 | let old_reserved = mem::replace(&mut ctx.reserved_names, HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut ctx.reserved_names)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/syn_arbitrary.rs:1973:24 [INFO] [stdout] | [INFO] [stdout] 1973 | let old_reserved = mem::replace(&mut ctx.reserved_names, HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut ctx.reserved_names)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1975:21 [INFO] [stdout] | [INFO] [stdout] 1975 | let ty = if lt_generics.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `lt_generics.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] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/syn_arbitrary.rs:1936:14 [INFO] [stdout] | [INFO] [stdout] 1936 | for (ref name, _) in scope.enums.iter() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1936 - for (ref name, _) in scope.enums.iter() { [INFO] [stdout] 1936 + for (name, _) in scope.enums.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/choose.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | / let mut conds = vec![]; [INFO] [stdout] 67 | | $( [INFO] [stdout] 68 | | conds.push($guard); [INFO] [stdout] | |___________________________________^ help: consider using the `vec![]` macro: `let conds = vec![..];` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2161:1 [INFO] [stdout] | [INFO] [stdout] 2161 | / lazy_choose!(u, { [INFO] [stdout] 2162 | | // only the first token can be a reciever [INFO] [stdout] 2163 | | // FnArg::Receiver(c_arbitrary(ctx, u)?) , [INFO] [stdout] 2164 | | FnArg::Typed(irrefutable!(ctx, c_arbitrary(ctx, u)?)), [INFO] [stdout] 2165 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/syn_arbitrary.rs:2392:31 [INFO] [stdout] | [INFO] [stdout] 2392 | let precomputed = mem::replace(&mut ctx.precomputed_final, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `ctx.precomputed_final.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/syn_arbitrary.rs:2406:21 [INFO] [stdout] | [INFO] [stdout] 2406 | Ok(c_arbitrary(ctx, u)?) [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] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 2406 - Ok(c_arbitrary(ctx, u)?) [INFO] [stdout] 2406 + c_arbitrary(ctx, u) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/syn_arbitrary.rs:2484:17 [INFO] [stdout] | [INFO] [stdout] 2484 | maybe_lt.as_ref().map(|lt| constrain_lt(ctx, &var.lifetime, <)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 2484 - maybe_lt.as_ref().map(|lt| constrain_lt(ctx, &var.lifetime, <)); [INFO] [stdout] 2484 + if let Some(lt) = maybe_lt.as_ref() { constrain_lt(ctx, &var.lifetime, <) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:2484:77 [INFO] [stdout] | [INFO] [stdout] 2484 | maybe_lt.as_ref().map(|lt| constrain_lt(ctx, &var.lifetime, <)); [INFO] [stdout] | ^^^ help: change this to: `lt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:2655:17 [INFO] [stdout] | [INFO] [stdout] 2655 | return Ok(parenthesize_expr(12, expr)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 2655 - return Ok(parenthesize_expr(12, expr)); [INFO] [stdout] 2655 + Ok(parenthesize_expr(12, expr)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:2657:17 [INFO] [stdout] | [INFO] [stdout] 2657 | return Ok(expr); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 2657 - return Ok(expr); [INFO] [stdout] 2657 + Ok(expr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return dummy_token.span; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return dummy_token.span; [INFO] [stdout] 41 + dummy_token.span [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | / return Expr::Paren(ExprParen { [INFO] [stdout] 73 | | attrs: vec![], [INFO] [stdout] 74 | | paren_token: Paren { span: dummy_span() }, [INFO] [stdout] 75 | | expr: Box::new(e), [INFO] [stdout] 76 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 72 ~ Expr::Paren(ExprParen { [INFO] [stdout] 73 + attrs: vec![], [INFO] [stdout] 74 + paren_token: Paren { span: dummy_span() }, [INFO] [stdout] 75 + expr: Box::new(e), [INFO] [stdout] 76 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return e; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return e; [INFO] [stdout] 78 + e [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:2737:9 [INFO] [stdout] | [INFO] [stdout] 2737 | return Ok(*op); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 2737 - return Ok(*op); [INFO] [stdout] 2737 + Ok(*op) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:516:47 [INFO] [stdout] | [INFO] [stdout] 516 | path: make_turbofish_path(&path, type_args.clone()) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:523:43 [INFO] [stdout] | [INFO] [stdout] 523 | path: make_turbofish_path(&path, type_args.clone()), [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/syn_arbitrary.rs:556:80 [INFO] [stdout] | [INFO] [stdout] 556 | receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, &*reciever)?)), [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] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 556 - receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, &*reciever)?)), [INFO] [stdout] 556 + receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, reciever)?)), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 556 | receiver: Box::new(parenthesize_expr(17, from_sem_expr(ctx, u, &**reciever)?)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:559:31 [INFO] [stdout] | [INFO] [stdout] 559 | turbofish: if type_args.len() == 0 && Arbitrary::arbitrary(u)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `type_args.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] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/syn_arbitrary.rs:565:41 [INFO] [stdout] | [INFO] [stdout] 565 | args: type_args.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:580:55 [INFO] [stdout] | [INFO] [stdout] 580 | let ty_path = make_turbofish_path(&ty, ty_args.clone()); [INFO] [stdout] | ^^^ help: change this to: `ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/syn_arbitrary.rs:588:40 [INFO] [stdout] | [INFO] [stdout] 588 | ... .chain(fn_path.segments.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:510:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 588 - .chain(fn_path.segments.into_iter()) [INFO] [stdout] 588 + .chain(fn_path.segments) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:602:59 [INFO] [stdout] | [INFO] [stdout] 602 | let syn_e = from_sem_expr(ctx, u, &e)?; [INFO] [stdout] | ^^ help: change this to: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:628:49 [INFO] [stdout] | [INFO] [stdout] 628 | path: from_sem_path(ctx, u, &name)?, [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:654:51 [INFO] [stdout] | [INFO] [stdout] 654 | path: make_turbofish_path(&path, type_args.clone()), [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/syn_arbitrary.rs:2922:13 [INFO] [stdout] | [INFO] [stdout] 2922 | arms.last_mut().map(|a: &mut Arm| a.comma = None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 2922 - arms.last_mut().map(|a: &mut Arm| a.comma = None); [INFO] [stdout] 2922 + if let Some(a) = arms.last_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:666:41 [INFO] [stdout] | [INFO] [stdout] 666 | path: from_sem_path(ctx, u, &path)?, [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:689:35 [INFO] [stdout] | [INFO] [stdout] 689 | op: parse_str(op).expect(format!("Failed parsing operator {}", op).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed parsing operator {}", op))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:694:40 [INFO] [stdout] | [INFO] [stdout] 694 | let syn_op = parse_str(op).expect(format!("Couldn't parse binary operator {}", op).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Couldn't parse binary operator {}", op))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:699:35 [INFO] [stdout] | [INFO] [stdout] 699 | op: parse_str(op).expect(format!("Failed parsing operator {}", op).as_str()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed parsing operator {}", op))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/syn_arbitrary.rs:709:8 [INFO] [stdout] | [INFO] [stdout] 709 | -> Result<(Vec<(Ident, sem::Mutability, sem::Type)>, sem::Expr)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `Some(..)` [INFO] [stdout] --> src/branching.rs:128:28 [INFO] [stdout] | [INFO] [stdout] 128 | let old_branches = std::mem::replace( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 129 | | &mut $ctx.branches, [INFO] [stdout] 130 | | Some(std::cell::RefCell::new(crate::branching::Branches::new())) [INFO] [stdout] 131 | | ); [INFO] [stdout] | |_________^ help: consider `Option::replace()` instead: `$ctx.branches.replace(std::cell::RefCell::new(crate::branching::Branches::new()))` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3002:9 [INFO] [stdout] | [INFO] [stdout] 3002 | / branches!(ctx, { [INFO] [stdout] 3003 | | then_branch = not_fn_block!(ctx, no_block_labels!(ctx, c_arbitrary(ctx, u)?)); [INFO] [stdout] 3004 | | ctx.branches.as_ref().unwrap().borrow_mut().new_branch(); [INFO] [stdout] 3005 | | else_branch = guarded_lazy_choose!(u, { [INFO] [stdout] ... | [INFO] [stdout] 3015 | | })? [INFO] [stdout] 3016 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_some [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_some)]` on by default [INFO] [stdout] = note: this warning originates in the macro `branches` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/syn_arbitrary.rs:834:18 [INFO] [stdout] | [INFO] [stdout] 834 | lt_generics: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 834 - lt_generics: &Vec, [INFO] [stdout] 834 + lt_generics: &[StringWrapper], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:895:28 [INFO] [stdout] | [INFO] [stdout] 895 | Ok(parse_str(name).expect(format!("Unable to parse {} as ident", name).as_str())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse {} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:899:18 [INFO] [stdout] | [INFO] [stdout] 899 | .expect(format!("Unable to parse r#{} as ident", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse r#{} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:908:25 [INFO] [stdout] | [INFO] [stdout] 908 | parse_str(name).expect(format!("Unable to parse {} as ident", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse {} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:911:14 [INFO] [stdout] | [INFO] [stdout] 911 | .expect(format!("Unable to parse r#{} as ident", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Unable to parse r#{} as ident", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:920:9 [INFO] [stdout] | [INFO] [stdout] 920 | return str[2..].to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 920 - return str[2..].to_string(); [INFO] [stdout] 920 + str[2..].to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:922:9 [INFO] [stdout] | [INFO] [stdout] 922 | return str; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 922 - return str; [INFO] [stdout] 922 + str [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/syn_arbitrary.rs:920:16 [INFO] [stdout] | [INFO] [stdout] 920 | return str[2..].to_string(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/syn_arbitrary.rs:919:5 [INFO] [stdout] | [INFO] [stdout] 919 | if str.starts_with("r#") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 919 ~ if let Some() = str.strip_prefix("r#") { [INFO] [stdout] 920 ~ return .to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/syn_arbitrary.rs:928:34 [INFO] [stdout] | [INFO] [stdout] 928 | let mut segments_iter = name.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:998:9 [INFO] [stdout] | [INFO] [stdout] 998 | return iter.collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 998 - return iter.collect(); [INFO] [stdout] 998 + iter.collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:1012:9 [INFO] [stdout] | [INFO] [stdout] 1012 | return Ok(NEPunctuated(iter.collect::>>()?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1012 - return Ok(NEPunctuated(iter.collect::>>()?)); [INFO] [stdout] 1012 + Ok(NEPunctuated(iter.collect::>>()?)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1030:9 [INFO] [stdout] | [INFO] [stdout] 1030 | / reserve_names!(ctx, { [INFO] [stdout] 1031 | | items.extend(from_reservations(ctx, u)?); [INFO] [stdout] 1032 | | // if ctx.has_main { [INFO] [stdout] 1033 | | let main = Item::Fn(make_main(ctx, u)?); [INFO] [stdout] ... | [INFO] [stdout] 1041 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:1075:5 [INFO] [stdout] | [INFO] [stdout] 1075 | return Ok(attrs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1075 - return Ok(attrs); [INFO] [stdout] 1075 + Ok(attrs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: sub-expression diverges [INFO] [stdout] --> src/syn_arbitrary.rs:1123:37 [INFO] [stdout] | [INFO] [stdout] 1123 | ctx.regard_semantics => panic!("Use `from_reserved` instead!"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#diverging_sub_expression [INFO] [stdout] = note: `#[warn(clippy::diverging_sub_expression)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/syn_arbitrary.rs:3291:9 [INFO] [stdout] | [INFO] [stdout] 3291 | let path; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `path` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 3291 ~ [INFO] [stdout] 3292 ~ let path = if ctx.regard_semantics { [INFO] [stdout] 3293 | let expected_type = ctx.expected_type.clone(); [INFO] [stdout] ... [INFO] [stdout] 3298 | let var = var.clone(); [INFO] [stdout] 3299 ~ from_sem_path(ctx, u, &var)? [INFO] [stdout] 3300 | } else { [INFO] [stdout] 3301 ~ c_arbitrary(ctx, u)? [INFO] [stdout] 3302 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1162:24 [INFO] [stdout] | [INFO] [stdout] 1162 | }, reserve_names!(ctx, c_arbitrary_iter_with(ctx, u, |ctx, u| { [INFO] [stdout] | ________________________- [INFO] [stdout] 1163 | | let ident = c_arbitrary(ctx, u)?; [INFO] [stdout] 1164 | | let name: StringWrapper = ident_to_name(&ident).into(); [INFO] [stdout] 1165 | | ctx.reserved_names.insert(name.clone()); [INFO] [stdout] 1166 | | Ok((name, Arbitrary::arbitrary(u)?)) [INFO] [stdout] 1167 | | }).collect::>>()?)) [INFO] [stdout] | |____________________________________________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:1233:5 [INFO] [stdout] | [INFO] [stdout] 1233 | return Ok(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1233 - return Ok(result); [INFO] [stdout] 1233 + Ok(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/syn_arbitrary.rs:1221:24 [INFO] [stdout] | [INFO] [stdout] 1221 | let reservations = mem::replace(&mut scope.reserved, Default::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut scope.reserved)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:3362:29 [INFO] [stdout] | [INFO] [stdout] 3362 | colon_token: if bounds.len() > 0 { parse_quote!(=) } else { None }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bounds.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:3379:29 [INFO] [stdout] | [INFO] [stdout] 3379 | colon_token: if bounds.len() > 0 { parse_quote!(=) } else { None }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bounds.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] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1324:24 [INFO] [stdout] | [INFO] [stdout] 1324 | let sem_variants = reserve_names!(ctx, reserved_variants.into_iter().map(|(name, is_tuple)| { [INFO] [stdout] | ________________________- [INFO] [stdout] 1325 | | if !type_added { [INFO] [stdout] 1326 | | type_added = true; [INFO] [stdout] 1327 | | add_type(ctx, vec![ident_to_name(&ident).into()], kind.clone()); [INFO] [stdout] ... | [INFO] [stdout] 1335 | | Ok((name, fields)) [INFO] [stdout] 1336 | | }).collect::>>()?); [INFO] [stdout] | |_______________________________________________________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/syn_arbitrary.rs:1397:10 [INFO] [stdout] | [INFO] [stdout] 1397 | lts: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1397 - lts: &Vec, [INFO] [stdout] 1397 + lts: &[StringWrapper], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1405:19 [INFO] [stdout] | [INFO] [stdout] 1405 | |_,k| lts.len() > 0 || k.lifetimes == 0 && (!vis || k.is_visible) [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lts.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1422:17 [INFO] [stdout] | [INFO] [stdout] 1422 | lts.len() > 0 => sem::Type { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lts.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1428:12 [INFO] [stdout] | [INFO] [stdout] 1428 | if lts.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!lts.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] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/syn_arbitrary.rs:1443:9 [INFO] [stdout] | [INFO] [stdout] 1438 | / let fields = reserve_names!(ctx, sem::Fields::Named(fields.into_iter().map(|field| { [INFO] [stdout] 1439 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] 1440 | | ctx.reserved_names.insert(name.clone()); [INFO] [stdout] 1441 | | Ok((name, field)) [INFO] [stdout] 1442 | | }).collect::>>()?)); [INFO] [stdout] | |______________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 1443 | fields [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 1438 ~ [INFO] [stdout] 1439 ~ { [INFO] [stdout] 1440 + let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] 1441 + let result = with_attrs!($obj { $($attrs = $vals),* }, $e); [INFO] [stdout] 1442 + $obj.$attr = old_val; [INFO] [stdout] 1443 + result [INFO] [stdout] 1444 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/context.rs:200:27 [INFO] [stdout] | [INFO] [stdout] 200 | let old_val = std::mem::replace(&mut $obj.$attr, $val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1438:22 [INFO] [stdout] | [INFO] [stdout] 1438 | let fields = reserve_names!(ctx, sem::Fields::Named(fields.into_iter().map(|field| { [INFO] [stdout] | ______________________- [INFO] [stdout] 1439 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] 1440 | | ctx.reserved_names.insert(name.clone()); [INFO] [stdout] 1441 | | Ok((name, field)) [INFO] [stdout] 1442 | | }).collect::>>()?)); [INFO] [stdout] | |_____________________________________________________________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: this warning originates in the macro `with_attrs` which comes from the expansion of the macro `reserve_names` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:3611:9 [INFO] [stdout] | [INFO] [stdout] 3611 | return Ok(name_token); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 3611 - return Ok(name_token); [INFO] [stdout] 3611 + Ok(name_token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:3607:47 [INFO] [stdout] | [INFO] [stdout] 3607 | parse_str(&format!("r#{}", name)).expect(format!("Failed parsing raw identifier {}", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed parsing raw identifier {}", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/branching.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | mem::replace(&mut self.lt_reset, HashMap::new()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.lt_reset)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/branching.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | mem::replace(&mut self.var_reset, HashMap::new()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.var_reset)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/syn_arbitrary.rs:1601:5 [INFO] [stdout] | [INFO] [stdout] 1601 | / if let Visibility::Public(_) = vis { [INFO] [stdout] 1602 | | true [INFO] [stdout] 1603 | | } else { [INFO] [stdout] 1604 | | false [INFO] [stdout] 1605 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1601 - if let Visibility::Public(_) = vis { [INFO] [stdout] 1602 - true [INFO] [stdout] 1603 - } else { [INFO] [stdout] 1604 - false [INFO] [stdout] 1605 - } [INFO] [stdout] 1601 + matches!(vis, Visibility::Public(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/branching.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | / ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 142 | | let mut b = bcell.borrow_mut(); [INFO] [stdout] 143 | | b.lt_reset.entry(lt).or_insert_with(|| { [INFO] [stdout] 144 | | LtReset { [INFO] [stdout] ... | [INFO] [stdout] 148 | | }); [INFO] [stdout] 149 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 141 - ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 142 - let mut b = bcell.borrow_mut(); [INFO] [stdout] 143 - b.lt_reset.entry(lt).or_insert_with(|| { [INFO] [stdout] 144 - LtReset { [INFO] [stdout] 145 - original: (lt_refs.0.get(), lt_refs.1.borrow().clone()), [INFO] [stdout] 146 - location: lt_refs.clone(), [INFO] [stdout] 147 - } [INFO] [stdout] 148 - }); [INFO] [stdout] 149 - }); [INFO] [stdout] 141 + if let Some(bcell) = ctx.branches.as_ref() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/branching.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | / ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 154 | | let mut b = bcell.borrow_mut(); [INFO] [stdout] 155 | | b.var_reset.entry(name).or_insert_with(|| { [INFO] [stdout] 156 | | VarReset { [INFO] [stdout] ... | [INFO] [stdout] 160 | | }); [INFO] [stdout] 161 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 153 - ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 154 - let mut b = bcell.borrow_mut(); [INFO] [stdout] 155 - b.var_reset.entry(name).or_insert_with(|| { [INFO] [stdout] 156 - VarReset { [INFO] [stdout] 157 - original: var.refs.borrow().clone(), [INFO] [stdout] 158 - location: var.clone(), [INFO] [stdout] 159 - } [INFO] [stdout] 160 - }); [INFO] [stdout] 161 - }); [INFO] [stdout] 153 + if let Some(bcell) = ctx.branches.as_ref() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:42:35 [INFO] [stdout] | [INFO] [stdout] 42 | let mut u = Unstructured::new(&data); [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn iter(&self) -> FieldsIter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 159 | pub fn iter(&self) -> FieldsIter<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:496:56 [INFO] [stdout] | [INFO] [stdout] 496 | pub fn iter<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 496 | pub fn iter<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:507:59 [INFO] [stdout] | [INFO] [stdout] 507 | pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&T> { [INFO] [stdout] | -- the lifetime is named here ^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 507 | pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&'a T> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:510:20 [INFO] [stdout] | [INFO] [stdout] 510 | pub fn top_mut(&self) -> Option> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 510 | pub fn top_mut(&self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:516:16 [INFO] [stdout] | [INFO] [stdout] 516 | pub fn top(&self) -> Option> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 516 | pub fn top(&self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:556:59 [INFO] [stdout] | [INFO] [stdout] 556 | pub fn sub_tys<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 556 | pub fn sub_tys<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:559:59 [INFO] [stdout] | [INFO] [stdout] 559 | pub fn sub_lts<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 559 | pub fn sub_lts<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:681:76 [INFO] [stdout] | [INFO] [stdout] 681 | pub fn diff<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | -- -- ^^^^^ ^^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 681 | pub fn diff<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | ++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:684:80 [INFO] [stdout] | [INFO] [stdout] 684 | pub fn diff_sym<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | -- -- ^^^^^ ^^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 684 | pub fn diff_sym<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | ++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1079:24 [INFO] [stdout] | [INFO] [stdout] 1079 | let (ret_ty, output) = lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1080 | | (make_type!(()), ReturnType::Default), [INFO] [stdout] 1081 | | (make_type!(()), ReturnType::Type(parse_quote!(->), parse_quote!(()))), [INFO] [stdout] 1082 | | (make_type!(Result[#(()), std::io::Error]), [INFO] [stdout] 1083 | | ReturnType::Type(parse_quote!(->), parse_quote!(Result<(), std::io::Error>))), [INFO] [stdout] 1084 | | })?; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1079:24 [INFO] [stdout] | [INFO] [stdout] 1079 | let (ret_ty, output) = lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1080 | | (make_type!(()), ReturnType::Default), [INFO] [stdout] 1081 | | (make_type!(()), ReturnType::Type(parse_quote!(->), parse_quote!(()))), [INFO] [stdout] 1082 | | (make_type!(Result[#(()), std::io::Error]), [INFO] [stdout] 1083 | | ReturnType::Type(parse_quote!(->), parse_quote!(Result<(), std::io::Error>))), [INFO] [stdout] 1084 | | })?; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1122:29 [INFO] [stdout] | [INFO] [stdout] 1122 | not_top_level!(ctx, guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________- [INFO] [stdout] 1123 | | ctx.regard_semantics => panic!("Use `from_reserved` instead!"), [INFO] [stdout] 1124 | | !ctx.regard_semantics => Item::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1125 | | !ctx.regard_semantics => Item::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1140 | | })) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1122:29 [INFO] [stdout] | [INFO] [stdout] 1122 | not_top_level!(ctx, guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________- [INFO] [stdout] 1123 | | ctx.regard_semantics => panic!("Use `from_reserved` instead!"), [INFO] [stdout] 1124 | | !ctx.regard_semantics => Item::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1125 | | !ctx.regard_semantics => Item::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1140 | | })) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1154:13 [INFO] [stdout] | [INFO] [stdout] 1154 | / lazy_choose!(u, { [INFO] [stdout] 1155 | | { [INFO] [stdout] 1156 | | // Enum [INFO] [stdout] 1157 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] ... | [INFO] [stdout] 1196 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1154:13 [INFO] [stdout] | [INFO] [stdout] 1154 | / lazy_choose!(u, { [INFO] [stdout] 1155 | | { [INFO] [stdout] 1156 | | // Enum [INFO] [stdout] 1157 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] ... | [INFO] [stdout] 1196 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1409:24 [INFO] [stdout] | [INFO] [stdout] 1409 | field_ty = guarded_lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1410 | | true => sem::Type { [INFO] [stdout] 1411 | | type_args: vec![field_ty], [INFO] [stdout] 1412 | | ..make_type!(Box) [INFO] [stdout] ... | [INFO] [stdout] 1426 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1409:24 [INFO] [stdout] | [INFO] [stdout] 1409 | field_ty = guarded_lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1410 | | true => sem::Type { [INFO] [stdout] 1411 | | type_args: vec![field_ty], [INFO] [stdout] 1412 | | ..make_type!(Box) [INFO] [stdout] ... | [INFO] [stdout] 1426 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1463:1 [INFO] [stdout] | [INFO] [stdout] 1463 | / lazy_choose!(u, { [INFO] [stdout] 1464 | | Fields::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 1465 | | Fields::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 1466 | | Fields::Unit, [INFO] [stdout] 1467 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1463:1 [INFO] [stdout] | [INFO] [stdout] 1463 | / lazy_choose!(u, { [INFO] [stdout] 1464 | | Fields::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 1465 | | Fields::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 1466 | | Fields::Unit, [INFO] [stdout] 1467 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/syn_arbitrary.rs:1917:24 [INFO] [stdout] | [INFO] [stdout] 1917 | let old_reserved = mem::replace(&mut ctx.reserved_names, HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut ctx.reserved_names)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1531:9 [INFO] [stdout] | [INFO] [stdout] 1531 | / lazy_choose!(u, { [INFO] [stdout] 1532 | | TraitItem::Const(c_arbitrary(ctx, u)?), [INFO] [stdout] 1533 | | TraitItem::Method(c_arbitrary(ctx, u)?), [INFO] [stdout] 1534 | | TraitItem::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1535 | | // intentionally ommited: Macro, Verbatim [INFO] [stdout] 1536 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1531:9 [INFO] [stdout] | [INFO] [stdout] 1531 | / lazy_choose!(u, { [INFO] [stdout] 1532 | | TraitItem::Const(c_arbitrary(ctx, u)?), [INFO] [stdout] 1533 | | TraitItem::Method(c_arbitrary(ctx, u)?), [INFO] [stdout] 1534 | | TraitItem::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1535 | | // intentionally ommited: Macro, Verbatim [INFO] [stdout] 1536 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1582:9 [INFO] [stdout] | [INFO] [stdout] 1582 | / guarded_lazy_choose!(u, { [INFO] [stdout] 1583 | | true => Visibility::Public(VisPublic{ pub_token: parse_quote!(pub), }), [INFO] [stdout] ... | [INFO] [stdout] 1595 | | true => Visibility::Inherited, [INFO] [stdout] 1596 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1582:9 [INFO] [stdout] | [INFO] [stdout] 1582 | / guarded_lazy_choose!(u, { [INFO] [stdout] 1583 | | true => Visibility::Public(VisPublic{ pub_token: parse_quote!(pub), }), [INFO] [stdout] ... | [INFO] [stdout] 1595 | | true => Visibility::Inherited, [INFO] [stdout] 1596 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/syn_arbitrary.rs:1973:24 [INFO] [stdout] | [INFO] [stdout] 1973 | let old_reserved = mem::replace(&mut ctx.reserved_names, HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut ctx.reserved_names)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1718:9 [INFO] [stdout] | [INFO] [stdout] 1718 | / lazy_choose!(u, { [INFO] [stdout] 1719 | | Type::Slice(c_arbitrary(ctx, u)?), [INFO] [stdout] 1720 | | Type::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 1721 | | Type::Ptr(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1733 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:1975:21 [INFO] [stdout] | [INFO] [stdout] 1975 | let ty = if lt_generics.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `lt_generics.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] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1718:9 [INFO] [stdout] | [INFO] [stdout] 1718 | / lazy_choose!(u, { [INFO] [stdout] 1719 | | Type::Slice(c_arbitrary(ctx, u)?), [INFO] [stdout] 1720 | | Type::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 1721 | | Type::Ptr(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1733 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1858:9 [INFO] [stdout] | [INFO] [stdout] 1858 | / lazy_choose!(u, { [INFO] [stdout] 1859 | | TypeParamBound::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] 1860 | | TypeParamBound::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 1861 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1858:9 [INFO] [stdout] | [INFO] [stdout] 1858 | / lazy_choose!(u, { [INFO] [stdout] 1859 | | TypeParamBound::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] 1860 | | TypeParamBound::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 1861 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1867:9 [INFO] [stdout] | [INFO] [stdout] 1867 | / lazy_choose!(u, { [INFO] [stdout] 1868 | | ReturnType::Default, [INFO] [stdout] 1869 | | ReturnType::Type( [INFO] [stdout] 1870 | | parse_quote!(->), [INFO] [stdout] ... | [INFO] [stdout] 1873 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1867:9 [INFO] [stdout] | [INFO] [stdout] 1867 | / lazy_choose!(u, { [INFO] [stdout] 1868 | | ReturnType::Default, [INFO] [stdout] 1869 | | ReturnType::Type( [INFO] [stdout] 1870 | | parse_quote!(->), [INFO] [stdout] ... | [INFO] [stdout] 1873 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2143:20 [INFO] [stdout] | [INFO] [stdout] 2143 | let name = lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2144 | | None, [INFO] [stdout] 2145 | | Some(parse_quote!("Rust")), [INFO] [stdout] 2146 | | Some(parse_quote!("C")), [INFO] [stdout] ... | [INFO] [stdout] 2151 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2143:20 [INFO] [stdout] | [INFO] [stdout] 2143 | let name = lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2144 | | None, [INFO] [stdout] 2145 | | Some(parse_quote!("Rust")), [INFO] [stdout] 2146 | | Some(parse_quote!("C")), [INFO] [stdout] ... | [INFO] [stdout] 2151 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2161:1 [INFO] [stdout] | [INFO] [stdout] 2161 | / lazy_choose!(u, { [INFO] [stdout] 2162 | | // only the first token can be a reciever [INFO] [stdout] 2163 | | // FnArg::Receiver(c_arbitrary(ctx, u)?) , [INFO] [stdout] 2164 | | FnArg::Typed(irrefutable!(ctx, c_arbitrary(ctx, u)?)), [INFO] [stdout] 2165 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2161:1 [INFO] [stdout] | [INFO] [stdout] 2161 | / lazy_choose!(u, { [INFO] [stdout] 2162 | | // only the first token can be a reciever [INFO] [stdout] 2163 | | // FnArg::Receiver(c_arbitrary(ctx, u)?) , [INFO] [stdout] 2164 | | FnArg::Typed(irrefutable!(ctx, c_arbitrary(ctx, u)?)), [INFO] [stdout] 2165 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2184:9 [INFO] [stdout] | [INFO] [stdout] 2184 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2185 | | true => Pat::Box(c_arbitrary(ctx, u)?), [INFO] [stdout] 2186 | | true => Pat::Ident(c_arbitrary(ctx, u)?), [INFO] [stdout] 2187 | | true => Pat::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2209 | | range => Pat::Range(c_arbitrary(ctx, u)?) [INFO] [stdout] 2210 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2184:9 [INFO] [stdout] | [INFO] [stdout] 2184 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2185 | | true => Pat::Box(c_arbitrary(ctx, u)?), [INFO] [stdout] 2186 | | true => Pat::Ident(c_arbitrary(ctx, u)?), [INFO] [stdout] 2187 | | true => Pat::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2209 | | range => Pat::Range(c_arbitrary(ctx, u)?) [INFO] [stdout] 2210 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2228:21 [INFO] [stdout] | [INFO] [stdout] 2228 | by_ref: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2229 | | true => None, [INFO] [stdout] 2230 | | !ctx.regard_semantics => parse_quote!(ref) [INFO] [stdout] 2231 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2228:21 [INFO] [stdout] | [INFO] [stdout] 2228 | by_ref: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2229 | | true => None, [INFO] [stdout] 2230 | | !ctx.regard_semantics => parse_quote!(ref) [INFO] [stdout] 2231 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2234:21 [INFO] [stdout] | [INFO] [stdout] 2234 | subpat: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2235 | | true => None, [INFO] [stdout] 2236 | | !ctx.regard_semantics => Some((parse_quote!(@), c_arbitrary(ctx, u)?)) [INFO] [stdout] 2237 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2234:21 [INFO] [stdout] | [INFO] [stdout] 2234 | subpat: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2235 | | true => None, [INFO] [stdout] 2236 | | !ctx.regard_semantics => Some((parse_quote!(@), c_arbitrary(ctx, u)?)) [INFO] [stdout] 2237 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/syn_arbitrary.rs:1936:14 [INFO] [stdout] | [INFO] [stdout] 1936 | for (ref name, _) in scope.enums.iter() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1936 - for (ref name, _) in scope.enums.iter() { [INFO] [stdout] 1936 + for (name, _) in scope.enums.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2367:1 [INFO] [stdout] | [INFO] [stdout] 2367 | / lazy_choose!(u, { [INFO] [stdout] 2368 | | RangeLimits::HalfOpen(parse_quote!(..)), [INFO] [stdout] 2369 | | RangeLimits::Closed(parse_quote!(..=)), [INFO] [stdout] 2370 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2367:1 [INFO] [stdout] | [INFO] [stdout] 2367 | / lazy_choose!(u, { [INFO] [stdout] 2368 | | RangeLimits::HalfOpen(parse_quote!(..)), [INFO] [stdout] 2369 | | RangeLimits::Closed(parse_quote!(..=)), [INFO] [stdout] 2370 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2425:17 [INFO] [stdout] | [INFO] [stdout] 2425 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2426 | | ctx.expected_type.matches(&make_type!(())) => (), [INFO] [stdout] 2427 | | true => init_stmts.push(Stmt::Expr(c_arbitrary(ctx, u)?)) [INFO] [stdout] 2428 | | })?; [INFO] [stdout] | |__________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2425:17 [INFO] [stdout] | [INFO] [stdout] 2425 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2426 | | ctx.expected_type.matches(&make_type!(())) => (), [INFO] [stdout] 2427 | | true => init_stmts.push(Stmt::Expr(c_arbitrary(ctx, u)?)) [INFO] [stdout] 2428 | | })?; [INFO] [stdout] | |__________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2449:9 [INFO] [stdout] | [INFO] [stdout] 2449 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2450 | | true => Stmt::Local(c_arbitrary(ctx, u)?), [INFO] [stdout] 2451 | | !ctx.regard_semantics => Stmt::Item(c_arbitrary(ctx, u)?), [INFO] [stdout] 2452 | | true => Stmt::Semi({ [INFO] [stdout] ... | [INFO] [stdout] 2459 | | }, parse_quote!(;)), [INFO] [stdout] 2460 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2449:9 [INFO] [stdout] | [INFO] [stdout] 2449 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2450 | | true => Stmt::Local(c_arbitrary(ctx, u)?), [INFO] [stdout] 2451 | | !ctx.regard_semantics => Stmt::Item(c_arbitrary(ctx, u)?), [INFO] [stdout] 2452 | | true => Stmt::Semi({ [INFO] [stdout] ... | [INFO] [stdout] 2459 | | }, parse_quote!(;)), [INFO] [stdout] 2460 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/choose.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | / let mut conds = vec![]; [INFO] [stdout] 67 | | $( [INFO] [stdout] 68 | | conds.push($guard); [INFO] [stdout] | |___________________________________^ help: consider using the `vec![]` macro: `let conds = vec![..];` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2161:1 [INFO] [stdout] | [INFO] [stdout] 2161 | / lazy_choose!(u, { [INFO] [stdout] 2162 | | // only the first token can be a reciever [INFO] [stdout] 2163 | | // FnArg::Receiver(c_arbitrary(ctx, u)?) , [INFO] [stdout] 2164 | | FnArg::Typed(irrefutable!(ctx, c_arbitrary(ctx, u)?)), [INFO] [stdout] 2165 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2517:5 [INFO] [stdout] | [INFO] [stdout] 2517 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2518 | | ctx.is_top_pattern => { [INFO] [stdout] 2519 | | let (pat, sub_vars) = sub_pattern!(ctx, pattern_of_type(ctx, u, ty)?); [INFO] [stdout] 2520 | | (Pat::Type(PatType { [INFO] [stdout] ... | [INFO] [stdout] 2570 | | }) [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2517:5 [INFO] [stdout] | [INFO] [stdout] 2517 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2518 | | ctx.is_top_pattern => { [INFO] [stdout] 2519 | | let (pat, sub_vars) = sub_pattern!(ctx, pattern_of_type(ctx, u, ty)?); [INFO] [stdout] 2520 | | (Pat::Type(PatType { [INFO] [stdout] ... | [INFO] [stdout] 2570 | | }) [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2583:17 [INFO] [stdout] | [INFO] [stdout] 2583 | / weighted_lazy_choose!(u, { [INFO] [stdout] 2584 | | 10 => { [INFO] [stdout] 2585 | | let expr = construct_value( [INFO] [stdout] 2586 | | ctx, u, [INFO] [stdout] ... | [INFO] [stdout] 2593 | | 1 => Expr::Block(c_arbitrary(ctx, u)?) [INFO] [stdout] 2594 | | }) [INFO] [stdout] | |__________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `weighted_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 115 - std::mem::drop(i); [INFO] [stdout] 115 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2600:20 [INFO] [stdout] | [INFO] [stdout] 2600 | let expr = guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2601 | | within_depth => Expr::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 2602 | | within_depth => Expr::Tuple(c_arbitrary(ctx, u)?), [INFO] [stdout] 2603 | | within_depth => Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2648 | | place_expr => local_var_expr(ctx, u)?, [INFO] [stdout] 2649 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2600:20 [INFO] [stdout] | [INFO] [stdout] 2600 | let expr = guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2601 | | within_depth => Expr::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 2602 | | within_depth => Expr::Tuple(c_arbitrary(ctx, u)?), [INFO] [stdout] 2603 | | within_depth => Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2648 | | place_expr => local_var_expr(ctx, u)?, [INFO] [stdout] 2649 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2907:49 [INFO] [stdout] | [INFO] [stdout] 2907 | GenericMethodArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | _________________________________________________- [INFO] [stdout] 2908 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 2909 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 2910 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 2911 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2907:49 [INFO] [stdout] | [INFO] [stdout] 2907 | GenericMethodArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | _________________________________________________- [INFO] [stdout] 2908 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 2909 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 2910 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 2911 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2901:1 [INFO] [stdout] | [INFO] [stdout] 2901 | / lazy_choose!(u, { [INFO] [stdout] ... | [INFO] [stdout] 2912 | | GenericMethodArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 2913 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2901:1 [INFO] [stdout] | [INFO] [stdout] 2901 | / lazy_choose!(u, { [INFO] [stdout] ... | [INFO] [stdout] 2912 | | GenericMethodArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 2913 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3010:71 [INFO] [stdout] | [INFO] [stdout] 3010 | Box::new(not_fn_block!(ctx, no_block_labels!(ctx, lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________________________- [INFO] [stdout] 3011 | | Expr::Block(c_arbitrary(ctx, u)?), [INFO] [stdout] 3012 | | Expr::If(c_arbitrary(ctx, u)?) [INFO] [stdout] 3013 | | })?))) [INFO] [stdout] | |______________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3010:71 [INFO] [stdout] | [INFO] [stdout] 3010 | Box::new(not_fn_block!(ctx, no_block_labels!(ctx, lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________________________- [INFO] [stdout] 3011 | | Expr::Block(c_arbitrary(ctx, u)?), [INFO] [stdout] 3012 | | Expr::If(c_arbitrary(ctx, u)?) [INFO] [stdout] 3013 | | })?))) [INFO] [stdout] | |______________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3005:27 [INFO] [stdout] | [INFO] [stdout] 3005 | else_branch = guarded_lazy_choose!(u, { [INFO] [stdout] | ___________________________- [INFO] [stdout] 3006 | | !ctx.regard_semantics || [INFO] [stdout] 3007 | | ctx.expected_type.name == vec![StringWrapper::from("#Unit")] => None, [INFO] [stdout] 3008 | | true => Some(( [INFO] [stdout] ... | [INFO] [stdout] 3014 | | )) [INFO] [stdout] 3015 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3005:27 [INFO] [stdout] | [INFO] [stdout] 3005 | else_branch = guarded_lazy_choose!(u, { [INFO] [stdout] | ___________________________- [INFO] [stdout] 3006 | | !ctx.regard_semantics || [INFO] [stdout] 3007 | | ctx.expected_type.name == vec![StringWrapper::from("#Unit")] => None, [INFO] [stdout] 3008 | | true => Some(( [INFO] [stdout] ... | [INFO] [stdout] 3014 | | )) [INFO] [stdout] 3015 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3065:1 [INFO] [stdout] | [INFO] [stdout] 3065 | / lazy_choose!(u, { [INFO] [stdout] 3066 | | Member::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 3067 | | Member::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 3068 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3065:1 [INFO] [stdout] | [INFO] [stdout] 3065 | / lazy_choose!(u, { [INFO] [stdout] 3066 | | Member::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 3067 | | Member::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 3068 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3155:20 [INFO] [stdout] | [INFO] [stdout] 3155 | label: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 3156 | | true => None, [INFO] [stdout] 3157 | | // requires #![feature(label_break_value)] [INFO] [stdout] 3158 | | !ctx.regard_semantics && ctx.allow_block_labels => c_arbitrary(ctx, u)? [INFO] [stdout] 3159 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3155:20 [INFO] [stdout] | [INFO] [stdout] 3155 | label: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 3156 | | true => None, [INFO] [stdout] 3157 | | // requires #![feature(label_break_value)] [INFO] [stdout] 3158 | | !ctx.regard_semantics && ctx.allow_block_labels => c_arbitrary(ctx, u)? [INFO] [stdout] 3159 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3219:10 [INFO] [stdout] | [INFO] [stdout] 3219 | let op = lazy_choose!(u, { [INFO] [stdout] | __________- [INFO] [stdout] 3220 | | BinOp::AddEq(parse_quote!(+=)), [INFO] [stdout] 3221 | | BinOp::SubEq(parse_quote!(-=)), [INFO] [stdout] 3222 | | BinOp::MulEq(parse_quote!(*=)), [INFO] [stdout] 3223 | | BinOp::DivEq(parse_quote!(/=)), [INFO] [stdout] 3224 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3219:10 [INFO] [stdout] | [INFO] [stdout] 3219 | let op = lazy_choose!(u, { [INFO] [stdout] | __________- [INFO] [stdout] 3220 | | BinOp::AddEq(parse_quote!(+=)), [INFO] [stdout] 3221 | | BinOp::SubEq(parse_quote!(-=)), [INFO] [stdout] 3222 | | BinOp::MulEq(parse_quote!(*=)), [INFO] [stdout] 3223 | | BinOp::DivEq(parse_quote!(/=)), [INFO] [stdout] 3224 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3249:9 [INFO] [stdout] | [INFO] [stdout] 3249 | / lazy_choose!(u, { [INFO] [stdout] 3250 | | parse_quote!(+), [INFO] [stdout] 3251 | | parse_quote!(*), [INFO] [stdout] 3252 | | parse_quote!(/), [INFO] [stdout] 3253 | | parse_quote!(%), [INFO] [stdout] 3254 | | parse_quote!(-), [INFO] [stdout] 3255 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3249:9 [INFO] [stdout] | [INFO] [stdout] 3249 | / lazy_choose!(u, { [INFO] [stdout] 3250 | | parse_quote!(+), [INFO] [stdout] 3251 | | parse_quote!(*), [INFO] [stdout] 3252 | | parse_quote!(/), [INFO] [stdout] 3253 | | parse_quote!(%), [INFO] [stdout] 3254 | | parse_quote!(-), [INFO] [stdout] 3255 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3313:5 [INFO] [stdout] | [INFO] [stdout] 3313 | / lazy_choose!(u, { [INFO] [stdout] 3314 | | { let data: u32 = Arbitrary::arbitrary(u)?; [INFO] [stdout] 3315 | | parse_quote!(#data) }, [INFO] [stdout] 3316 | | { let data: String = Arbitrary::arbitrary(u)?; [INFO] [stdout] ... | [INFO] [stdout] 3322 | | parse_quote!(#data) }, [INFO] [stdout] 3323 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3313:5 [INFO] [stdout] | [INFO] [stdout] 3313 | / lazy_choose!(u, { [INFO] [stdout] 3314 | | { let data: u32 = Arbitrary::arbitrary(u)?; [INFO] [stdout] 3315 | | parse_quote!(#data) }, [INFO] [stdout] 3316 | | { let data: String = Arbitrary::arbitrary(u)?; [INFO] [stdout] ... | [INFO] [stdout] 3322 | | parse_quote!(#data) }, [INFO] [stdout] 3323 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3340:9 [INFO] [stdout] | [INFO] [stdout] 3340 | / guarded_lazy_choose!(u, { [INFO] [stdout] 3341 | | true => GenericParam::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3342 | | true => GenericParam::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3343 | | !ctx.regard_semantics => GenericParam::Const(c_arbitrary(ctx, u)?) [INFO] [stdout] 3344 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3340:9 [INFO] [stdout] | [INFO] [stdout] 3340 | / guarded_lazy_choose!(u, { [INFO] [stdout] 3341 | | true => GenericParam::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3342 | | true => GenericParam::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3343 | | !ctx.regard_semantics => GenericParam::Const(c_arbitrary(ctx, u)?) [INFO] [stdout] 3344 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3350:61 [INFO] [stdout] | [INFO] [stdout] 3350 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________________________________________- [INFO] [stdout] 3351 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3352 | | true => iter::empty::().collect() [INFO] [stdout] 3353 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3350:61 [INFO] [stdout] | [INFO] [stdout] 3350 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________________________________________- [INFO] [stdout] 3351 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3352 | | true => iter::empty::().collect() [INFO] [stdout] 3353 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3354:25 [INFO] [stdout] | [INFO] [stdout] 3354 | let r#default = guarded_lazy_choose!(u, { [INFO] [stdout] | _________________________- [INFO] [stdout] 3355 | | !ctx.regard_semantics => Some(c_arbitrary(ctx, u)?), [INFO] [stdout] 3356 | | true => None [INFO] [stdout] 3357 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3354:25 [INFO] [stdout] | [INFO] [stdout] 3354 | let r#default = guarded_lazy_choose!(u, { [INFO] [stdout] | _________________________- [INFO] [stdout] 3355 | | !ctx.regard_semantics => Some(c_arbitrary(ctx, u)?), [INFO] [stdout] 3356 | | true => None [INFO] [stdout] 3357 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3372:55 [INFO] [stdout] | [INFO] [stdout] 3372 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________- [INFO] [stdout] 3373 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3374 | | true => iter::empty::().collect() [INFO] [stdout] 3375 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3372:55 [INFO] [stdout] | [INFO] [stdout] 3372 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________- [INFO] [stdout] 3373 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3374 | | true => iter::empty::().collect() [INFO] [stdout] 3375 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3421:12 [INFO] [stdout] | [INFO] [stdout] 3421 | arguments: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________- [INFO] [stdout] 3422 | | true => PathArguments::None, [INFO] [stdout] 3423 | | !ctx.no_generics => PathArguments::AngleBracketed(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3427 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3421:12 [INFO] [stdout] | [INFO] [stdout] 3421 | arguments: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________- [INFO] [stdout] 3422 | | true => PathArguments::None, [INFO] [stdout] 3423 | | !ctx.no_generics => PathArguments::AngleBracketed(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3427 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3451:43 [INFO] [stdout] | [INFO] [stdout] 3451 | GenericArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 3452 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 3453 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 3454 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3451:43 [INFO] [stdout] | [INFO] [stdout] 3451 | GenericArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 3452 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 3453 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 3454 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3446:1 [INFO] [stdout] | [INFO] [stdout] 3446 | / lazy_choose!(u, { [INFO] [stdout] 3447 | | GenericArgument::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3448 | | GenericArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3449 | | GenericArgument::Binding(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] 3456 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/syn_arbitrary.rs:2392:31 [INFO] [stdout] | [INFO] [stdout] 2392 | let precomputed = mem::replace(&mut ctx.precomputed_final, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `ctx.precomputed_final.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3446:1 [INFO] [stdout] | [INFO] [stdout] 3446 | / lazy_choose!(u, { [INFO] [stdout] 3447 | | GenericArgument::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3448 | | GenericArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3449 | | GenericArgument::Binding(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] 3456 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/syn_arbitrary.rs:2406:21 [INFO] [stdout] | [INFO] [stdout] 2406 | Ok(c_arbitrary(ctx, u)?) [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] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 2406 - Ok(c_arbitrary(ctx, u)?) [INFO] [stdout] 2406 + c_arbitrary(ctx, u) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/syn_arbitrary.rs:2484:17 [INFO] [stdout] | [INFO] [stdout] 2484 | maybe_lt.as_ref().map(|lt| constrain_lt(ctx, &var.lifetime, <)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 2484 - maybe_lt.as_ref().map(|lt| constrain_lt(ctx, &var.lifetime, <)); [INFO] [stdout] 2484 + if let Some(lt) = maybe_lt.as_ref() { constrain_lt(ctx, &var.lifetime, <) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syn_arbitrary.rs:2484:77 [INFO] [stdout] | [INFO] [stdout] 2484 | maybe_lt.as_ref().map(|lt| constrain_lt(ctx, &var.lifetime, <)); [INFO] [stdout] | ^^^ help: change this to: `lt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:2655:17 [INFO] [stdout] | [INFO] [stdout] 2655 | return Ok(parenthesize_expr(12, expr)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 2655 - return Ok(parenthesize_expr(12, expr)); [INFO] [stdout] 2655 + Ok(parenthesize_expr(12, expr)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:2657:17 [INFO] [stdout] | [INFO] [stdout] 2657 | return Ok(expr); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 2657 - return Ok(expr); [INFO] [stdout] 2657 + Ok(expr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:2737:9 [INFO] [stdout] | [INFO] [stdout] 2737 | return Ok(*op); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 2737 - return Ok(*op); [INFO] [stdout] 2737 + Ok(*op) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/syn_arbitrary.rs:2922:13 [INFO] [stdout] | [INFO] [stdout] 2922 | arms.last_mut().map(|a: &mut Arm| a.comma = None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 2922 - arms.last_mut().map(|a: &mut Arm| a.comma = None); [INFO] [stdout] 2922 + if let Some(a) = arms.last_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `Some(..)` [INFO] [stdout] --> src/branching.rs:128:28 [INFO] [stdout] | [INFO] [stdout] 128 | let old_branches = std::mem::replace( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 129 | | &mut $ctx.branches, [INFO] [stdout] 130 | | Some(std::cell::RefCell::new(crate::branching::Branches::new())) [INFO] [stdout] 131 | | ); [INFO] [stdout] | |_________^ help: consider `Option::replace()` instead: `$ctx.branches.replace(std::cell::RefCell::new(crate::branching::Branches::new()))` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3002:9 [INFO] [stdout] | [INFO] [stdout] 3002 | / branches!(ctx, { [INFO] [stdout] 3003 | | then_branch = not_fn_block!(ctx, no_block_labels!(ctx, c_arbitrary(ctx, u)?)); [INFO] [stdout] 3004 | | ctx.branches.as_ref().unwrap().borrow_mut().new_branch(); [INFO] [stdout] 3005 | | else_branch = guarded_lazy_choose!(u, { [INFO] [stdout] ... | [INFO] [stdout] 3015 | | })? [INFO] [stdout] 3016 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_some [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_some)]` on by default [INFO] [stdout] = note: this warning originates in the macro `branches` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/syn_arbitrary.rs:3291:9 [INFO] [stdout] | [INFO] [stdout] 3291 | let path; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `path` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 3291 ~ [INFO] [stdout] 3292 ~ let path = if ctx.regard_semantics { [INFO] [stdout] 3293 | let expected_type = ctx.expected_type.clone(); [INFO] [stdout] ... [INFO] [stdout] 3298 | let var = var.clone(); [INFO] [stdout] 3299 ~ from_sem_path(ctx, u, &var)? [INFO] [stdout] 3300 | } else { [INFO] [stdout] 3301 ~ c_arbitrary(ctx, u)? [INFO] [stdout] 3302 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:3362:29 [INFO] [stdout] | [INFO] [stdout] 3362 | colon_token: if bounds.len() > 0 { parse_quote!(=) } else { None }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bounds.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/syn_arbitrary.rs:3379:29 [INFO] [stdout] | [INFO] [stdout] 3379 | colon_token: if bounds.len() > 0 { parse_quote!(=) } else { None }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bounds.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/syn_arbitrary.rs:3611:9 [INFO] [stdout] | [INFO] [stdout] 3611 | return Ok(name_token); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 3611 - return Ok(name_token); [INFO] [stdout] 3611 + Ok(name_token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/syn_arbitrary.rs:3607:47 [INFO] [stdout] | [INFO] [stdout] 3607 | parse_str(&format!("r#{}", name)).expect(format!("Failed parsing raw identifier {}", name).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Failed parsing raw identifier {}", name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/branching.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | mem::replace(&mut self.lt_reset, HashMap::new()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.lt_reset)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/branching.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | mem::replace(&mut self.var_reset, HashMap::new()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.var_reset)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/branching.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | / ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 142 | | let mut b = bcell.borrow_mut(); [INFO] [stdout] 143 | | b.lt_reset.entry(lt).or_insert_with(|| { [INFO] [stdout] 144 | | LtReset { [INFO] [stdout] ... | [INFO] [stdout] 148 | | }); [INFO] [stdout] 149 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 141 - ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 142 - let mut b = bcell.borrow_mut(); [INFO] [stdout] 143 - b.lt_reset.entry(lt).or_insert_with(|| { [INFO] [stdout] 144 - LtReset { [INFO] [stdout] 145 - original: (lt_refs.0.get(), lt_refs.1.borrow().clone()), [INFO] [stdout] 146 - location: lt_refs.clone(), [INFO] [stdout] 147 - } [INFO] [stdout] 148 - }); [INFO] [stdout] 149 - }); [INFO] [stdout] 141 + if let Some(bcell) = ctx.branches.as_ref() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/branching.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | / ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 154 | | let mut b = bcell.borrow_mut(); [INFO] [stdout] 155 | | b.var_reset.entry(name).or_insert_with(|| { [INFO] [stdout] 156 | | VarReset { [INFO] [stdout] ... | [INFO] [stdout] 160 | | }); [INFO] [stdout] 161 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 153 - ctx.branches.as_ref().map(|bcell| { [INFO] [stdout] 154 - let mut b = bcell.borrow_mut(); [INFO] [stdout] 155 - b.var_reset.entry(name).or_insert_with(|| { [INFO] [stdout] 156 - VarReset { [INFO] [stdout] 157 - original: var.refs.borrow().clone(), [INFO] [stdout] 158 - location: var.clone(), [INFO] [stdout] 159 - } [INFO] [stdout] 160 - }); [INFO] [stdout] 161 - }); [INFO] [stdout] 153 + if let Some(bcell) = ctx.branches.as_ref() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:42:35 [INFO] [stdout] | [INFO] [stdout] 42 | let mut u = Unstructured::new(&data); [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn iter(&self) -> FieldsIter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 159 | pub fn iter(&self) -> FieldsIter<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:496:56 [INFO] [stdout] | [INFO] [stdout] 496 | pub fn iter<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 496 | pub fn iter<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:507:59 [INFO] [stdout] | [INFO] [stdout] 507 | pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&T> { [INFO] [stdout] | -- the lifetime is named here ^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 507 | pub fn sized_iter<'a>(&'a self) -> std::vec::IntoIter<&'a T> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:510:20 [INFO] [stdout] | [INFO] [stdout] 510 | pub fn top_mut(&self) -> Option> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 510 | pub fn top_mut(&self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:516:16 [INFO] [stdout] | [INFO] [stdout] 516 | pub fn top(&self) -> Option> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 516 | pub fn top(&self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:556:59 [INFO] [stdout] | [INFO] [stdout] 556 | pub fn sub_tys<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 556 | pub fn sub_tys<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:559:59 [INFO] [stdout] | [INFO] [stdout] 559 | pub fn sub_lts<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 559 | pub fn sub_lts<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:681:76 [INFO] [stdout] | [INFO] [stdout] 681 | pub fn diff<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | -- -- ^^^^^ ^^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 681 | pub fn diff<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | ++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/semantics.rs:684:80 [INFO] [stdout] | [INFO] [stdout] 684 | pub fn diff_sym<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | -- -- ^^^^^ ^^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 684 | pub fn diff_sym<'a>(&'a self, other: &'a Type) -> Box + 'a> { [INFO] [stdout] | ++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1079:24 [INFO] [stdout] | [INFO] [stdout] 1079 | let (ret_ty, output) = lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1080 | | (make_type!(()), ReturnType::Default), [INFO] [stdout] 1081 | | (make_type!(()), ReturnType::Type(parse_quote!(->), parse_quote!(()))), [INFO] [stdout] 1082 | | (make_type!(Result[#(()), std::io::Error]), [INFO] [stdout] 1083 | | ReturnType::Type(parse_quote!(->), parse_quote!(Result<(), std::io::Error>))), [INFO] [stdout] 1084 | | })?; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1079:24 [INFO] [stdout] | [INFO] [stdout] 1079 | let (ret_ty, output) = lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1080 | | (make_type!(()), ReturnType::Default), [INFO] [stdout] 1081 | | (make_type!(()), ReturnType::Type(parse_quote!(->), parse_quote!(()))), [INFO] [stdout] 1082 | | (make_type!(Result[#(()), std::io::Error]), [INFO] [stdout] 1083 | | ReturnType::Type(parse_quote!(->), parse_quote!(Result<(), std::io::Error>))), [INFO] [stdout] 1084 | | })?; [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1122:29 [INFO] [stdout] | [INFO] [stdout] 1122 | not_top_level!(ctx, guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________- [INFO] [stdout] 1123 | | ctx.regard_semantics => panic!("Use `from_reserved` instead!"), [INFO] [stdout] 1124 | | !ctx.regard_semantics => Item::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1125 | | !ctx.regard_semantics => Item::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1140 | | })) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1122:29 [INFO] [stdout] | [INFO] [stdout] 1122 | not_top_level!(ctx, guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________- [INFO] [stdout] 1123 | | ctx.regard_semantics => panic!("Use `from_reserved` instead!"), [INFO] [stdout] 1124 | | !ctx.regard_semantics => Item::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1125 | | !ctx.regard_semantics => Item::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1140 | | })) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1154:13 [INFO] [stdout] | [INFO] [stdout] 1154 | / lazy_choose!(u, { [INFO] [stdout] 1155 | | { [INFO] [stdout] 1156 | | // Enum [INFO] [stdout] 1157 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] ... | [INFO] [stdout] 1196 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1154:13 [INFO] [stdout] | [INFO] [stdout] 1154 | / lazy_choose!(u, { [INFO] [stdout] 1155 | | { [INFO] [stdout] 1156 | | // Enum [INFO] [stdout] 1157 | | let name: StringWrapper = ident_to_name(&c_arbitrary(ctx, u)?).into(); [INFO] [stdout] ... | [INFO] [stdout] 1196 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1409:24 [INFO] [stdout] | [INFO] [stdout] 1409 | field_ty = guarded_lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1410 | | true => sem::Type { [INFO] [stdout] 1411 | | type_args: vec![field_ty], [INFO] [stdout] 1412 | | ..make_type!(Box) [INFO] [stdout] ... | [INFO] [stdout] 1426 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1409:24 [INFO] [stdout] | [INFO] [stdout] 1409 | field_ty = guarded_lazy_choose!(u, { [INFO] [stdout] | ________________________- [INFO] [stdout] 1410 | | true => sem::Type { [INFO] [stdout] 1411 | | type_args: vec![field_ty], [INFO] [stdout] 1412 | | ..make_type!(Box) [INFO] [stdout] ... | [INFO] [stdout] 1426 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1463:1 [INFO] [stdout] | [INFO] [stdout] 1463 | / lazy_choose!(u, { [INFO] [stdout] 1464 | | Fields::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 1465 | | Fields::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 1466 | | Fields::Unit, [INFO] [stdout] 1467 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1463:1 [INFO] [stdout] | [INFO] [stdout] 1463 | / lazy_choose!(u, { [INFO] [stdout] 1464 | | Fields::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 1465 | | Fields::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 1466 | | Fields::Unit, [INFO] [stdout] 1467 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1531:9 [INFO] [stdout] | [INFO] [stdout] 1531 | / lazy_choose!(u, { [INFO] [stdout] 1532 | | TraitItem::Const(c_arbitrary(ctx, u)?), [INFO] [stdout] 1533 | | TraitItem::Method(c_arbitrary(ctx, u)?), [INFO] [stdout] 1534 | | TraitItem::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1535 | | // intentionally ommited: Macro, Verbatim [INFO] [stdout] 1536 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1531:9 [INFO] [stdout] | [INFO] [stdout] 1531 | / lazy_choose!(u, { [INFO] [stdout] 1532 | | TraitItem::Const(c_arbitrary(ctx, u)?), [INFO] [stdout] 1533 | | TraitItem::Method(c_arbitrary(ctx, u)?), [INFO] [stdout] 1534 | | TraitItem::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 1535 | | // intentionally ommited: Macro, Verbatim [INFO] [stdout] 1536 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1582:9 [INFO] [stdout] | [INFO] [stdout] 1582 | / guarded_lazy_choose!(u, { [INFO] [stdout] 1583 | | true => Visibility::Public(VisPublic{ pub_token: parse_quote!(pub), }), [INFO] [stdout] ... | [INFO] [stdout] 1595 | | true => Visibility::Inherited, [INFO] [stdout] 1596 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1582:9 [INFO] [stdout] | [INFO] [stdout] 1582 | / guarded_lazy_choose!(u, { [INFO] [stdout] 1583 | | true => Visibility::Public(VisPublic{ pub_token: parse_quote!(pub), }), [INFO] [stdout] ... | [INFO] [stdout] 1595 | | true => Visibility::Inherited, [INFO] [stdout] 1596 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1718:9 [INFO] [stdout] | [INFO] [stdout] 1718 | / lazy_choose!(u, { [INFO] [stdout] 1719 | | Type::Slice(c_arbitrary(ctx, u)?), [INFO] [stdout] 1720 | | Type::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 1721 | | Type::Ptr(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1733 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1718:9 [INFO] [stdout] | [INFO] [stdout] 1718 | / lazy_choose!(u, { [INFO] [stdout] 1719 | | Type::Slice(c_arbitrary(ctx, u)?), [INFO] [stdout] 1720 | | Type::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 1721 | | Type::Ptr(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 1733 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1858:9 [INFO] [stdout] | [INFO] [stdout] 1858 | / lazy_choose!(u, { [INFO] [stdout] 1859 | | TypeParamBound::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] 1860 | | TypeParamBound::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 1861 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1858:9 [INFO] [stdout] | [INFO] [stdout] 1858 | / lazy_choose!(u, { [INFO] [stdout] 1859 | | TypeParamBound::Trait(c_arbitrary(ctx, u)?), [INFO] [stdout] 1860 | | TypeParamBound::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 1861 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1867:9 [INFO] [stdout] | [INFO] [stdout] 1867 | / lazy_choose!(u, { [INFO] [stdout] 1868 | | ReturnType::Default, [INFO] [stdout] 1869 | | ReturnType::Type( [INFO] [stdout] 1870 | | parse_quote!(->), [INFO] [stdout] ... | [INFO] [stdout] 1873 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:1867:9 [INFO] [stdout] | [INFO] [stdout] 1867 | / lazy_choose!(u, { [INFO] [stdout] 1868 | | ReturnType::Default, [INFO] [stdout] 1869 | | ReturnType::Type( [INFO] [stdout] 1870 | | parse_quote!(->), [INFO] [stdout] ... | [INFO] [stdout] 1873 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2143:20 [INFO] [stdout] | [INFO] [stdout] 2143 | let name = lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2144 | | None, [INFO] [stdout] 2145 | | Some(parse_quote!("Rust")), [INFO] [stdout] 2146 | | Some(parse_quote!("C")), [INFO] [stdout] ... | [INFO] [stdout] 2151 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2143:20 [INFO] [stdout] | [INFO] [stdout] 2143 | let name = lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2144 | | None, [INFO] [stdout] 2145 | | Some(parse_quote!("Rust")), [INFO] [stdout] 2146 | | Some(parse_quote!("C")), [INFO] [stdout] ... | [INFO] [stdout] 2151 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2161:1 [INFO] [stdout] | [INFO] [stdout] 2161 | / lazy_choose!(u, { [INFO] [stdout] 2162 | | // only the first token can be a reciever [INFO] [stdout] 2163 | | // FnArg::Receiver(c_arbitrary(ctx, u)?) , [INFO] [stdout] 2164 | | FnArg::Typed(irrefutable!(ctx, c_arbitrary(ctx, u)?)), [INFO] [stdout] 2165 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2161:1 [INFO] [stdout] | [INFO] [stdout] 2161 | / lazy_choose!(u, { [INFO] [stdout] 2162 | | // only the first token can be a reciever [INFO] [stdout] 2163 | | // FnArg::Receiver(c_arbitrary(ctx, u)?) , [INFO] [stdout] 2164 | | FnArg::Typed(irrefutable!(ctx, c_arbitrary(ctx, u)?)), [INFO] [stdout] 2165 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2184:9 [INFO] [stdout] | [INFO] [stdout] 2184 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2185 | | true => Pat::Box(c_arbitrary(ctx, u)?), [INFO] [stdout] 2186 | | true => Pat::Ident(c_arbitrary(ctx, u)?), [INFO] [stdout] 2187 | | true => Pat::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2209 | | range => Pat::Range(c_arbitrary(ctx, u)?) [INFO] [stdout] 2210 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2184:9 [INFO] [stdout] | [INFO] [stdout] 2184 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2185 | | true => Pat::Box(c_arbitrary(ctx, u)?), [INFO] [stdout] 2186 | | true => Pat::Ident(c_arbitrary(ctx, u)?), [INFO] [stdout] 2187 | | true => Pat::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2209 | | range => Pat::Range(c_arbitrary(ctx, u)?) [INFO] [stdout] 2210 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2228:21 [INFO] [stdout] | [INFO] [stdout] 2228 | by_ref: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2229 | | true => None, [INFO] [stdout] 2230 | | !ctx.regard_semantics => parse_quote!(ref) [INFO] [stdout] 2231 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2228:21 [INFO] [stdout] | [INFO] [stdout] 2228 | by_ref: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2229 | | true => None, [INFO] [stdout] 2230 | | !ctx.regard_semantics => parse_quote!(ref) [INFO] [stdout] 2231 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2234:21 [INFO] [stdout] | [INFO] [stdout] 2234 | subpat: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2235 | | true => None, [INFO] [stdout] 2236 | | !ctx.regard_semantics => Some((parse_quote!(@), c_arbitrary(ctx, u)?)) [INFO] [stdout] 2237 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2234:21 [INFO] [stdout] | [INFO] [stdout] 2234 | subpat: guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________- [INFO] [stdout] 2235 | | true => None, [INFO] [stdout] 2236 | | !ctx.regard_semantics => Some((parse_quote!(@), c_arbitrary(ctx, u)?)) [INFO] [stdout] 2237 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2367:1 [INFO] [stdout] | [INFO] [stdout] 2367 | / lazy_choose!(u, { [INFO] [stdout] 2368 | | RangeLimits::HalfOpen(parse_quote!(..)), [INFO] [stdout] 2369 | | RangeLimits::Closed(parse_quote!(..=)), [INFO] [stdout] 2370 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2367:1 [INFO] [stdout] | [INFO] [stdout] 2367 | / lazy_choose!(u, { [INFO] [stdout] 2368 | | RangeLimits::HalfOpen(parse_quote!(..)), [INFO] [stdout] 2369 | | RangeLimits::Closed(parse_quote!(..=)), [INFO] [stdout] 2370 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2425:17 [INFO] [stdout] | [INFO] [stdout] 2425 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2426 | | ctx.expected_type.matches(&make_type!(())) => (), [INFO] [stdout] 2427 | | true => init_stmts.push(Stmt::Expr(c_arbitrary(ctx, u)?)) [INFO] [stdout] 2428 | | })?; [INFO] [stdout] | |__________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2425:17 [INFO] [stdout] | [INFO] [stdout] 2425 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2426 | | ctx.expected_type.matches(&make_type!(())) => (), [INFO] [stdout] 2427 | | true => init_stmts.push(Stmt::Expr(c_arbitrary(ctx, u)?)) [INFO] [stdout] 2428 | | })?; [INFO] [stdout] | |__________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2449:9 [INFO] [stdout] | [INFO] [stdout] 2449 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2450 | | true => Stmt::Local(c_arbitrary(ctx, u)?), [INFO] [stdout] 2451 | | !ctx.regard_semantics => Stmt::Item(c_arbitrary(ctx, u)?), [INFO] [stdout] 2452 | | true => Stmt::Semi({ [INFO] [stdout] ... | [INFO] [stdout] 2459 | | }, parse_quote!(;)), [INFO] [stdout] 2460 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2449:9 [INFO] [stdout] | [INFO] [stdout] 2449 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2450 | | true => Stmt::Local(c_arbitrary(ctx, u)?), [INFO] [stdout] 2451 | | !ctx.regard_semantics => Stmt::Item(c_arbitrary(ctx, u)?), [INFO] [stdout] 2452 | | true => Stmt::Semi({ [INFO] [stdout] ... | [INFO] [stdout] 2459 | | }, parse_quote!(;)), [INFO] [stdout] 2460 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2517:5 [INFO] [stdout] | [INFO] [stdout] 2517 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2518 | | ctx.is_top_pattern => { [INFO] [stdout] 2519 | | let (pat, sub_vars) = sub_pattern!(ctx, pattern_of_type(ctx, u, ty)?); [INFO] [stdout] 2520 | | (Pat::Type(PatType { [INFO] [stdout] ... | [INFO] [stdout] 2570 | | }) [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2517:5 [INFO] [stdout] | [INFO] [stdout] 2517 | / guarded_lazy_choose!(u, { [INFO] [stdout] 2518 | | ctx.is_top_pattern => { [INFO] [stdout] 2519 | | let (pat, sub_vars) = sub_pattern!(ctx, pattern_of_type(ctx, u, ty)?); [INFO] [stdout] 2520 | | (Pat::Type(PatType { [INFO] [stdout] ... | [INFO] [stdout] 2570 | | }) [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2583:17 [INFO] [stdout] | [INFO] [stdout] 2583 | / weighted_lazy_choose!(u, { [INFO] [stdout] 2584 | | 10 => { [INFO] [stdout] 2585 | | let expr = construct_value( [INFO] [stdout] 2586 | | ctx, u, [INFO] [stdout] ... | [INFO] [stdout] 2593 | | 1 => Expr::Block(c_arbitrary(ctx, u)?) [INFO] [stdout] 2594 | | }) [INFO] [stdout] | |__________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `weighted_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 115 - std::mem::drop(i); [INFO] [stdout] 115 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2600:20 [INFO] [stdout] | [INFO] [stdout] 2600 | let expr = guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2601 | | within_depth => Expr::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 2602 | | within_depth => Expr::Tuple(c_arbitrary(ctx, u)?), [INFO] [stdout] 2603 | | within_depth => Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2648 | | place_expr => local_var_expr(ctx, u)?, [INFO] [stdout] 2649 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2600:20 [INFO] [stdout] | [INFO] [stdout] 2600 | let expr = guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 2601 | | within_depth => Expr::Array(c_arbitrary(ctx, u)?), [INFO] [stdout] 2602 | | within_depth => Expr::Tuple(c_arbitrary(ctx, u)?), [INFO] [stdout] 2603 | | within_depth => Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 2648 | | place_expr => local_var_expr(ctx, u)?, [INFO] [stdout] 2649 | | })?; [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2907:49 [INFO] [stdout] | [INFO] [stdout] 2907 | GenericMethodArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | _________________________________________________- [INFO] [stdout] 2908 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 2909 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 2910 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 2911 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2907:49 [INFO] [stdout] | [INFO] [stdout] 2907 | GenericMethodArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | _________________________________________________- [INFO] [stdout] 2908 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 2909 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 2910 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 2911 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2901:1 [INFO] [stdout] | [INFO] [stdout] 2901 | / lazy_choose!(u, { [INFO] [stdout] ... | [INFO] [stdout] 2912 | | GenericMethodArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 2913 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:2901:1 [INFO] [stdout] | [INFO] [stdout] 2901 | / lazy_choose!(u, { [INFO] [stdout] ... | [INFO] [stdout] 2912 | | GenericMethodArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 2913 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3010:71 [INFO] [stdout] | [INFO] [stdout] 3010 | Box::new(not_fn_block!(ctx, no_block_labels!(ctx, lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________________________- [INFO] [stdout] 3011 | | Expr::Block(c_arbitrary(ctx, u)?), [INFO] [stdout] 3012 | | Expr::If(c_arbitrary(ctx, u)?) [INFO] [stdout] 3013 | | })?))) [INFO] [stdout] | |______________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3010:71 [INFO] [stdout] | [INFO] [stdout] 3010 | Box::new(not_fn_block!(ctx, no_block_labels!(ctx, lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________________________- [INFO] [stdout] 3011 | | Expr::Block(c_arbitrary(ctx, u)?), [INFO] [stdout] 3012 | | Expr::If(c_arbitrary(ctx, u)?) [INFO] [stdout] 3013 | | })?))) [INFO] [stdout] | |______________________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3005:27 [INFO] [stdout] | [INFO] [stdout] 3005 | else_branch = guarded_lazy_choose!(u, { [INFO] [stdout] | ___________________________- [INFO] [stdout] 3006 | | !ctx.regard_semantics || [INFO] [stdout] 3007 | | ctx.expected_type.name == vec![StringWrapper::from("#Unit")] => None, [INFO] [stdout] 3008 | | true => Some(( [INFO] [stdout] ... | [INFO] [stdout] 3014 | | )) [INFO] [stdout] 3015 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3005:27 [INFO] [stdout] | [INFO] [stdout] 3005 | else_branch = guarded_lazy_choose!(u, { [INFO] [stdout] | ___________________________- [INFO] [stdout] 3006 | | !ctx.regard_semantics || [INFO] [stdout] 3007 | | ctx.expected_type.name == vec![StringWrapper::from("#Unit")] => None, [INFO] [stdout] 3008 | | true => Some(( [INFO] [stdout] ... | [INFO] [stdout] 3014 | | )) [INFO] [stdout] 3015 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3065:1 [INFO] [stdout] | [INFO] [stdout] 3065 | / lazy_choose!(u, { [INFO] [stdout] 3066 | | Member::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 3067 | | Member::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 3068 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3065:1 [INFO] [stdout] | [INFO] [stdout] 3065 | / lazy_choose!(u, { [INFO] [stdout] 3066 | | Member::Named(c_arbitrary(ctx, u)?), [INFO] [stdout] 3067 | | Member::Unnamed(c_arbitrary(ctx, u)?), [INFO] [stdout] 3068 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3155:20 [INFO] [stdout] | [INFO] [stdout] 3155 | label: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 3156 | | true => None, [INFO] [stdout] 3157 | | // requires #![feature(label_break_value)] [INFO] [stdout] 3158 | | !ctx.regard_semantics && ctx.allow_block_labels => c_arbitrary(ctx, u)? [INFO] [stdout] 3159 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3155:20 [INFO] [stdout] | [INFO] [stdout] 3155 | label: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________________- [INFO] [stdout] 3156 | | true => None, [INFO] [stdout] 3157 | | // requires #![feature(label_break_value)] [INFO] [stdout] 3158 | | !ctx.regard_semantics && ctx.allow_block_labels => c_arbitrary(ctx, u)? [INFO] [stdout] 3159 | | })?, [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3219:10 [INFO] [stdout] | [INFO] [stdout] 3219 | let op = lazy_choose!(u, { [INFO] [stdout] | __________- [INFO] [stdout] 3220 | | BinOp::AddEq(parse_quote!(+=)), [INFO] [stdout] 3221 | | BinOp::SubEq(parse_quote!(-=)), [INFO] [stdout] 3222 | | BinOp::MulEq(parse_quote!(*=)), [INFO] [stdout] 3223 | | BinOp::DivEq(parse_quote!(/=)), [INFO] [stdout] 3224 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3219:10 [INFO] [stdout] | [INFO] [stdout] 3219 | let op = lazy_choose!(u, { [INFO] [stdout] | __________- [INFO] [stdout] 3220 | | BinOp::AddEq(parse_quote!(+=)), [INFO] [stdout] 3221 | | BinOp::SubEq(parse_quote!(-=)), [INFO] [stdout] 3222 | | BinOp::MulEq(parse_quote!(*=)), [INFO] [stdout] 3223 | | BinOp::DivEq(parse_quote!(/=)), [INFO] [stdout] 3224 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3249:9 [INFO] [stdout] | [INFO] [stdout] 3249 | / lazy_choose!(u, { [INFO] [stdout] 3250 | | parse_quote!(+), [INFO] [stdout] 3251 | | parse_quote!(*), [INFO] [stdout] 3252 | | parse_quote!(/), [INFO] [stdout] 3253 | | parse_quote!(%), [INFO] [stdout] 3254 | | parse_quote!(-), [INFO] [stdout] 3255 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3249:9 [INFO] [stdout] | [INFO] [stdout] 3249 | / lazy_choose!(u, { [INFO] [stdout] 3250 | | parse_quote!(+), [INFO] [stdout] 3251 | | parse_quote!(*), [INFO] [stdout] 3252 | | parse_quote!(/), [INFO] [stdout] 3253 | | parse_quote!(%), [INFO] [stdout] 3254 | | parse_quote!(-), [INFO] [stdout] 3255 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3313:5 [INFO] [stdout] | [INFO] [stdout] 3313 | / lazy_choose!(u, { [INFO] [stdout] 3314 | | { let data: u32 = Arbitrary::arbitrary(u)?; [INFO] [stdout] 3315 | | parse_quote!(#data) }, [INFO] [stdout] 3316 | | { let data: String = Arbitrary::arbitrary(u)?; [INFO] [stdout] ... | [INFO] [stdout] 3322 | | parse_quote!(#data) }, [INFO] [stdout] 3323 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3313:5 [INFO] [stdout] | [INFO] [stdout] 3313 | / lazy_choose!(u, { [INFO] [stdout] 3314 | | { let data: u32 = Arbitrary::arbitrary(u)?; [INFO] [stdout] 3315 | | parse_quote!(#data) }, [INFO] [stdout] 3316 | | { let data: String = Arbitrary::arbitrary(u)?; [INFO] [stdout] ... | [INFO] [stdout] 3322 | | parse_quote!(#data) }, [INFO] [stdout] 3323 | | }) [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3340:9 [INFO] [stdout] | [INFO] [stdout] 3340 | / guarded_lazy_choose!(u, { [INFO] [stdout] 3341 | | true => GenericParam::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3342 | | true => GenericParam::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3343 | | !ctx.regard_semantics => GenericParam::Const(c_arbitrary(ctx, u)?) [INFO] [stdout] 3344 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3340:9 [INFO] [stdout] | [INFO] [stdout] 3340 | / guarded_lazy_choose!(u, { [INFO] [stdout] 3341 | | true => GenericParam::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3342 | | true => GenericParam::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3343 | | !ctx.regard_semantics => GenericParam::Const(c_arbitrary(ctx, u)?) [INFO] [stdout] 3344 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3350:61 [INFO] [stdout] | [INFO] [stdout] 3350 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________________________________________- [INFO] [stdout] 3351 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3352 | | true => iter::empty::().collect() [INFO] [stdout] 3353 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3350:61 [INFO] [stdout] | [INFO] [stdout] 3350 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _____________________________________________________________- [INFO] [stdout] 3351 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3352 | | true => iter::empty::().collect() [INFO] [stdout] 3353 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3354:25 [INFO] [stdout] | [INFO] [stdout] 3354 | let r#default = guarded_lazy_choose!(u, { [INFO] [stdout] | _________________________- [INFO] [stdout] 3355 | | !ctx.regard_semantics => Some(c_arbitrary(ctx, u)?), [INFO] [stdout] 3356 | | true => None [INFO] [stdout] 3357 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3354:25 [INFO] [stdout] | [INFO] [stdout] 3354 | let r#default = guarded_lazy_choose!(u, { [INFO] [stdout] | _________________________- [INFO] [stdout] 3355 | | !ctx.regard_semantics => Some(c_arbitrary(ctx, u)?), [INFO] [stdout] 3356 | | true => None [INFO] [stdout] 3357 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3372:55 [INFO] [stdout] | [INFO] [stdout] 3372 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________- [INFO] [stdout] 3373 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3374 | | true => iter::empty::().collect() [INFO] [stdout] 3375 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3372:55 [INFO] [stdout] | [INFO] [stdout] 3372 | let bounds: Punctuated = guarded_lazy_choose!(u, { [INFO] [stdout] | _______________________________________________________- [INFO] [stdout] 3373 | | !ctx.regard_semantics => c_arbitrary(ctx, u)?, [INFO] [stdout] 3374 | | true => iter::empty::().collect() [INFO] [stdout] 3375 | | })?; [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3421:12 [INFO] [stdout] | [INFO] [stdout] 3421 | arguments: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________- [INFO] [stdout] 3422 | | true => PathArguments::None, [INFO] [stdout] 3423 | | !ctx.no_generics => PathArguments::AngleBracketed(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3427 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3421:12 [INFO] [stdout] | [INFO] [stdout] 3421 | arguments: guarded_lazy_choose!(u, { [INFO] [stdout] | ____________- [INFO] [stdout] 3422 | | true => PathArguments::None, [INFO] [stdout] 3423 | | !ctx.no_generics => PathArguments::AngleBracketed(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3427 | | })? [INFO] [stdout] | |______________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3451:43 [INFO] [stdout] | [INFO] [stdout] 3451 | GenericArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 3452 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 3453 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 3454 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3451:43 [INFO] [stdout] | [INFO] [stdout] 3451 | GenericArgument::Const(is_const!(ctx, lazy_choose!(u, { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 3452 | | Expr::Path(c_arbitrary(ctx, u)?), [INFO] [stdout] 3453 | | Expr::Lit(c_arbitrary(ctx, u)?), [INFO] [stdout] 3454 | | Expr::Block(no_block_labels!(ctx, c_arbitrary(ctx, u)?)) [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | std::mem::drop(clause); [INFO] [stdout] | ^^^^^^^^^^^^^^^------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `i32` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3446:1 [INFO] [stdout] | [INFO] [stdout] 3446 | / lazy_choose!(u, { [INFO] [stdout] 3447 | | GenericArgument::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3448 | | GenericArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3449 | | GenericArgument::Binding(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] 3456 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 86 - std::mem::drop(clause); [INFO] [stdout] 86 + let _ = clause; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/choose.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | std::mem::drop(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `usize` [INFO] [stdout] | [INFO] [stdout] ::: src/syn_arbitrary.rs:3446:1 [INFO] [stdout] | [INFO] [stdout] 3446 | / lazy_choose!(u, { [INFO] [stdout] 3447 | | GenericArgument::Lifetime(c_arbitrary(ctx, u)?), [INFO] [stdout] 3448 | | GenericArgument::Type(c_arbitrary(ctx, u)?), [INFO] [stdout] 3449 | | GenericArgument::Binding(c_arbitrary(ctx, u)?), [INFO] [stdout] ... | [INFO] [stdout] 3455 | | })?)), [INFO] [stdout] 3456 | | }) [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `guarded_lazy_choose` which comes from the expansion of the macro `lazy_choose` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 87 - std::mem::drop(i); [INFO] [stdout] 87 + let _ = i; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generate_program.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return Ok(ast); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return Ok(ast); [INFO] [stdout] 34 + Ok(ast) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generate_program.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return Ok(ast); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return Ok(ast); [INFO] [stdout] 34 + Ok(ast) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generate_program.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return handler.join().expect("Error executing thread"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return handler.join().expect("Error executing thread"); [INFO] [stdout] 44 + handler.join().expect("Error executing thread") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/generate_program.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return handler.join().expect("Error executing thread"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return handler.join().expect("Error executing thread"); [INFO] [stdout] 44 + handler.join().expect("Error executing thread") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:99:41 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn c_arbitrary_iter<'a, 'b, 'c, 'd, El: 'd , Ctx: 'd>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 104 | El: ContextArbitrary<'a, Ctx>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:109:55 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn c_arbitrary_iter_with<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 115 | F: FnMut(&mut Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:128:63 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn c_arbitrary_iter_with_non_mut<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 134 | F: FnMut(&Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/semantics.rs:804:25 [INFO] [stdout] | [INFO] [stdout] 804 | const INDIRECT_TYPES: [&'static [StringWrapper]; 4] = [ [INFO] [stdout] | -^^^^^^^---------------- help: consider removing `'static`: `&[StringWrapper]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:139:13 [INFO] [stdout] | [INFO] [stdout] 139 | make_alias!(Result::Ok : [Ok]), [INFO] [stdout] | ------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: `#[warn(clippy::double_parens)]` on by default [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | make_alias!(Result::Err : [Err]), [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | make_alias!(Option::Some : [Some]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | make_alias!(Option::None : [None]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/ty_macros.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | pub static TUPLE_NAMES: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | ((crate::parse_path!($name), Rc::new(Variable::new( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | (!) => (crate::semantics::Type { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | crate::parse_args!([$(,$lts)*,Lifetime(stringify!($lt).into())],[$(,$tys)*];$($arg)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | crate::parse_generics!([$(,$lts)*,stringify!($lt).into()],[$(,$tys)*];$($arg)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | crate::semantics::TraitDescription { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:219:11 [INFO] [stdout] | [INFO] [stdout] 219 | = crate::parse_generics!([],[]$($args)*); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:229:9 [INFO] [stdout] | [INFO] [stdout] 229 | crate::parse_constraints!($(,$exprs)*, crate::parse_constraint!($name$([$($args)*])?); $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | crate::semantics::Constraint { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:248:10 [INFO] [stdout] | [INFO] [stdout] 248 | (crate::parse_path!($name), crate::semantics::Kind { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:288:20 [INFO] [stdout] | [INFO] [stdout] 288 | let name = crate::parse_path!($name); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:302:9 [INFO] [stdout] | [INFO] [stdout] 302 | crate::parse_implementors!($(,$exprs)*; {}[] : #($name$({$($gen)*})?$([$($args)*])?), $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/ty_macros.rs:324:26 [INFO] [stdout] | [INFO] [stdout] 324 | pub static GEN_STRING: [&'static str; 12] = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:329:10 [INFO] [stdout] | [INFO] [stdout] 329 | (crate::make_methods!(#($name$([$($type_args)*])?){$($methods)*})); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | crate::parse_methods!($(,$expr)*; $name$({$($gen)*})?($($args)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:376:36 [INFO] [stdout] | [INFO] [stdout] 376 | (self, $($args:tt)*) => ((Some(crate::semantics::VarHandling::Own), crate::parse_types!(;$($args)*))); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:387:10 [INFO] [stdout] | [INFO] [stdout] 387 | (crate::parse_types!($(,$tys)*;#($name$({$($gen)*})?$([$($type_args)*])?), $($rest)*)); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:395:10 [INFO] [stdout] | [INFO] [stdout] 395 | (crate::parse_path!($name), ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | crate::parse_structs!($(,$structs)*, ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:428:35 [INFO] [stdout] | [INFO] [stdout] 428 | (vec![StringWrapper::from(crate::ty_macros::TUPLE_NAMES[len-1])], ( [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | crate::parse_unnamed_fields!($(,$fields)*; #($ty$({$($gen)*})?$([$($arg)*])?), $($rest)*) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/ty_macros.rs:510:10 [INFO] [stdout] | [INFO] [stdout] 510 | (crate::parse_path!($name), Rc::new(Macro { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::make_type` [INFO] [stdout] --> src/syn_arbitrary.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::make_type; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:99:41 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn c_arbitrary_iter<'a, 'b, 'c, 'd, El: 'd , Ctx: 'd>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 104 | El: ContextArbitrary<'a, Ctx>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:109:55 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn c_arbitrary_iter_with<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 115 | F: FnMut(&mut Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/context_arbitrary.rs:128:63 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn c_arbitrary_iter_with_non_mut<'a, 'b, 'c, 'd, El, Ctx, F: 'd>( [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 134 | F: FnMut(&Ctx, &mut Unstructured<'a>) -> Result [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/semantics.rs:804:25 [INFO] [stdout] | [INFO] [stdout] 804 | const INDIRECT_TYPES: [&'static [StringWrapper]; 4] = [ [INFO] [stdout] | -^^^^^^^---------------- help: consider removing `'static`: `&[StringWrapper]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/branching.rs:130:42 [INFO] [stdout] | [INFO] [stdout] 130 | Some(std::cell::RefCell::new(crate::branching::Branches::new())) [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:139:13 [INFO] [stdout] | [INFO] [stdout] 139 | make_alias!(Result::Ok : [Ok]), [INFO] [stdout] | ------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: `#[warn(clippy::double_parens)]` on by default [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | make_alias!(Result::Err : [Err]), [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | make_alias!(Option::Some : [Some]), [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stdout] = note: this warning originates in the macro `make_alias` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses [INFO] [stdout] --> src/ty_macros.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | ((crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove them: `(crate::parse_path!($name), vec![$(crate::parse_path!($alias)),*])` [INFO] [stdout] | [INFO] [stdout] ::: src/scopes.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | make_alias!(Option::None : [None]), [INFO] [stdout] | ---------------------------------- in this macro invocation [WARN] too many lines in the log, truncating it