[INFO] crate pwasm-abi-derive 0.2.0 is already in cache [INFO] extracting crate pwasm-abi-derive 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/pwasm-abi-derive/0.2.0 [INFO] extracting crate pwasm-abi-derive 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/pwasm-abi-derive/0.2.0 [INFO] validating manifest of pwasm-abi-derive-0.2.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of pwasm-abi-derive-0.2.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing pwasm-abi-derive-0.2.0 [INFO] finished frobbing pwasm-abi-derive-0.2.0 [INFO] frobbed toml for pwasm-abi-derive-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/pwasm-abi-derive/0.2.0/Cargo.toml [INFO] started frobbing pwasm-abi-derive-0.2.0 [INFO] finished frobbing pwasm-abi-derive-0.2.0 [INFO] frobbed toml for pwasm-abi-derive-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/pwasm-abi-derive/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting pwasm-abi-derive-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/pwasm-abi-derive/0.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 4b3754f11e2fe200b8c5a7f7713e3ca45b944eb145d12f6d36d725531ee5106b [INFO] running `"docker" "start" "-a" "4b3754f11e2fe200b8c5a7f7713e3ca45b944eb145d12f6d36d725531ee5106b"` [INFO] [stderr] Checking static_assertions v0.2.5 [INFO] [stderr] Checking syn v0.15.26 [INFO] [stderr] Checking fixed-hash v0.3.0 [INFO] [stderr] Checking pwasm-abi-derive v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:173:3 [INFO] [stderr] | [INFO] [stderr] 173 | method_sig: method_sig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `method_sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:174:3 [INFO] [stderr] | [INFO] [stderr] 174 | canonical: canonical, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `canonical` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:175:3 [INFO] [stderr] | [INFO] [stderr] 175 | hash: hash, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:176:3 [INFO] [stderr] | [INFO] [stderr] 176 | return_types: return_types, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `return_types` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:177:3 [INFO] [stderr] | [INFO] [stderr] 177 | is_constant: is_constant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:178:3 [INFO] [stderr] | [INFO] [stderr] 178 | is_payable: is_payable, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_payable` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:202:4 [INFO] [stderr] | [INFO] [stderr] 202 | canonical: canonical, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `canonical` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:203:4 [INFO] [stderr] | [INFO] [stderr] 203 | indexed: indexed, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `indexed` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:205:4 [INFO] [stderr] | [INFO] [stderr] 205 | method_sig: method_sig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `method_sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utils.rs:35:3 [INFO] [stderr] | [INFO] [stderr] 35 | method_sig: method_sig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `method_sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | arguments: arguments, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arguments` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:173:3 [INFO] [stderr] | [INFO] [stderr] 173 | method_sig: method_sig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `method_sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:174:3 [INFO] [stderr] | [INFO] [stderr] 174 | canonical: canonical, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `canonical` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:175:3 [INFO] [stderr] | [INFO] [stderr] 175 | hash: hash, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:176:3 [INFO] [stderr] | [INFO] [stderr] 176 | return_types: return_types, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `return_types` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:177:3 [INFO] [stderr] | [INFO] [stderr] 177 | is_constant: is_constant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:178:3 [INFO] [stderr] | [INFO] [stderr] 178 | is_payable: is_payable, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_payable` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:202:4 [INFO] [stderr] | [INFO] [stderr] 202 | canonical: canonical, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `canonical` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:203:4 [INFO] [stderr] | [INFO] [stderr] 203 | indexed: indexed, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `indexed` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/items.rs:205:4 [INFO] [stderr] | [INFO] [stderr] 205 | method_sig: method_sig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `method_sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utils.rs:35:3 [INFO] [stderr] | [INFO] [stderr] 35 | method_sig: method_sig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `method_sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/items.rs:118:39 [INFO] [stderr] | [INFO] [stderr] 118 | item.name().map_or(false, |ident| ident.to_string() == "constructor") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `*ident` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/items.rs:221:6 [INFO] [stderr] | [INFO] [stderr] 221 | !(method_trait_item.sig.ident.to_string() == "constructor" && constant), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*method_trait_item.sig.ident` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/items.rs:261:40 [INFO] [stderr] | [INFO] [stderr] 261 | syn::Lit::Int(syn::LitInt::new(*b as u64, syn::IntSuffix::U8, Span::call_site() )) [INFO] [stderr] | ^^^^^^^^^ help: try: `u64::from(*b)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/utils.rs:135:16 [INFO] [stderr] | [INFO] [stderr] 135 | if "u8" == type_path.path.segments.last().unwrap().value().ident.to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*type_path.path.segments.last().unwrap().value().ident` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/json.rs:86:53 [INFO] [stderr] | [INFO] [stderr] 86 | path::PathBuf::from(env::var("CARGO_TARGET_DIR").unwrap_or(".".to_owned())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| ".".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/json.rs:89:39 [INFO] [stderr] | [INFO] [stderr] 89 | fs::create_dir_all(&target).map_err(|err| JsonError::failed_to_create_dir(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `JsonError::failed_to_create_dir` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/json.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | fs::File::create(target).map_err(|err| JsonError::failed_to_create_json_file(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `JsonError::failed_to_create_json_file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/json.rs:100:12 [INFO] [stderr] | [INFO] [stderr] 100 | .map_err(|err| JsonError::failed_to_write_json_abi_file(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `JsonError::failed_to_write_json_abi_file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:46:6 [INFO] [stderr] | [INFO] [stderr] 46 | if attr_args.len() == 0 || attr_args.len() > 2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `attr_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:50:59 [INFO] [stderr] | [INFO] [stderr] 50 | if let syn::NestedMeta::Meta(syn::Meta::Word(ident)) = attr_args.get(0).unwrap() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&attr_args[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:161:47 [INFO] [stderr] | [INFO] [stderr] 161 | let mod_name = format!("pwasm_abi_impl_{}", &intf.name().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 161 | let mod_name = format!("pwasm_abi_impl_{}", &&(*intf.name()).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 161 | let mod_name = format!("pwasm_abi_impl_{}", &&str::clone(intf.name())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:193:47 [INFO] [stderr] | [INFO] [stderr] 193 | let mod_name = format!("pwasm_abi_impl_{}", &intf.name().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 193 | let mod_name = format!("pwasm_abi_impl_{}", &&(*intf.name()).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 193 | let mod_name = format!("pwasm_abi_impl_{}", &&str::clone(intf.name())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:235:23 [INFO] [stderr] | [INFO] [stderr] 235 | syn::LitInt::new(signature.hash as u64, syn::IntSuffix::U32, Span::call_site())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(signature.hash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:368:23 [INFO] [stderr] | [INFO] [stderr] 368 | syn::LitInt::new(signature.hash as u64, syn::IntSuffix::U32, Span::call_site())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(signature.hash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/items.rs:118:39 [INFO] [stderr] | [INFO] [stderr] 118 | item.name().map_or(false, |ident| ident.to_string() == "constructor") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `*ident` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/items.rs:221:6 [INFO] [stderr] | [INFO] [stderr] 221 | !(method_trait_item.sig.ident.to_string() == "constructor" && constant), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*method_trait_item.sig.ident` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/items.rs:261:40 [INFO] [stderr] | [INFO] [stderr] 261 | syn::Lit::Int(syn::LitInt::new(*b as u64, syn::IntSuffix::U8, Span::call_site() )) [INFO] [stderr] | ^^^^^^^^^ help: try: `u64::from(*b)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: Could not compile `pwasm-abi-derive`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/utils.rs:135:16 [INFO] [stderr] | [INFO] [stderr] 135 | if "u8" == type_path.path.segments.last().unwrap().value().ident.to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*type_path.path.segments.last().unwrap().value().ident` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/json.rs:86:53 [INFO] [stderr] | [INFO] [stderr] 86 | path::PathBuf::from(env::var("CARGO_TARGET_DIR").unwrap_or(".".to_owned())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| ".".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/json.rs:89:39 [INFO] [stderr] | [INFO] [stderr] 89 | fs::create_dir_all(&target).map_err(|err| JsonError::failed_to_create_dir(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `JsonError::failed_to_create_dir` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/json.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | fs::File::create(target).map_err(|err| JsonError::failed_to_create_json_file(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `JsonError::failed_to_create_json_file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/json.rs:100:12 [INFO] [stderr] | [INFO] [stderr] 100 | .map_err(|err| JsonError::failed_to_write_json_abi_file(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `JsonError::failed_to_write_json_abi_file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:46:6 [INFO] [stderr] | [INFO] [stderr] 46 | if attr_args.len() == 0 || attr_args.len() > 2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `attr_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:50:59 [INFO] [stderr] | [INFO] [stderr] 50 | if let syn::NestedMeta::Meta(syn::Meta::Word(ident)) = attr_args.get(0).unwrap() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&attr_args[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:161:47 [INFO] [stderr] | [INFO] [stderr] 161 | let mod_name = format!("pwasm_abi_impl_{}", &intf.name().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 161 | let mod_name = format!("pwasm_abi_impl_{}", &&(*intf.name()).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 161 | let mod_name = format!("pwasm_abi_impl_{}", &&str::clone(intf.name())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:193:47 [INFO] [stderr] | [INFO] [stderr] 193 | let mod_name = format!("pwasm_abi_impl_{}", &intf.name().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 193 | let mod_name = format!("pwasm_abi_impl_{}", &&(*intf.name()).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 193 | let mod_name = format!("pwasm_abi_impl_{}", &&str::clone(intf.name())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:235:23 [INFO] [stderr] | [INFO] [stderr] 235 | syn::LitInt::new(signature.hash as u64, syn::IntSuffix::U32, Span::call_site())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(signature.hash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:368:23 [INFO] [stderr] | [INFO] [stderr] 368 | syn::LitInt::new(signature.hash as u64, syn::IntSuffix::U32, Span::call_site())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(signature.hash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `pwasm-abi-derive`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4b3754f11e2fe200b8c5a7f7713e3ca45b944eb145d12f6d36d725531ee5106b"` [INFO] running `"docker" "rm" "-f" "4b3754f11e2fe200b8c5a7f7713e3ca45b944eb145d12f6d36d725531ee5106b"` [INFO] [stdout] 4b3754f11e2fe200b8c5a7f7713e3ca45b944eb145d12f6d36d725531ee5106b