[INFO] crate derive_type_level_lib 0.1.0 is already in cache [INFO] extracting crate derive_type_level_lib 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/derive_type_level_lib/0.1.0 [INFO] extracting crate derive_type_level_lib 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/derive_type_level_lib/0.1.0 [INFO] validating manifest of derive_type_level_lib-0.1.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 derive_type_level_lib-0.1.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 derive_type_level_lib-0.1.0 [INFO] finished frobbing derive_type_level_lib-0.1.0 [INFO] frobbed toml for derive_type_level_lib-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/derive_type_level_lib/0.1.0/Cargo.toml [INFO] started frobbing derive_type_level_lib-0.1.0 [INFO] finished frobbing derive_type_level_lib-0.1.0 [INFO] frobbed toml for derive_type_level_lib-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/derive_type_level_lib/0.1.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 derive_type_level_lib-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/derive_type_level_lib/0.1.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] 4ad792170921363761c1ef13c1acdc851d9479075387fdffe71927c500225002 [INFO] running `"docker" "start" "-a" "4ad792170921363761c1ef13c1acdc851d9479075387fdffe71927c500225002"` [INFO] [stderr] Compiling core_extensions v0.1.4 [INFO] [stderr] Compiling derive_type_level_lib v0.1.0 (/opt/crater/workdir) [INFO] [stderr] Checking syn v0.15.26 [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/attribute_errors/mod.rs:107:60 [INFO] [stderr] | [INFO] [stderr] 107 | writeln!(f,"\n{S}{S}\n'{}' attribute:",self.word,S="--------------------")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/attribute_errors/mod.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | write!(f,"{}\n",self.description )?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/attribute_errors/mod.rs:107:60 [INFO] [stderr] | [INFO] [stderr] 107 | writeln!(f,"\n{S}{S}\n'{}' attribute:",self.word,S="--------------------")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/attribute_errors/mod.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | write!(f,"{}\n",self.description )?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/doc_code_snippets/mod.rs:81:36 [INFO] [stderr] | [INFO] [stderr] 81 | const START_OF_MARKER:&'static str="//@codeblock-"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/doc_code_snippets/mod.rs:167:32 [INFO] [stderr] | [INFO] [stderr] 167 | const START_OF_MARKER:&'static str="//@use_codeblock:"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/doc_code_snippets/mod.rs:81:36 [INFO] [stderr] | [INFO] [stderr] 81 | const START_OF_MARKER:&'static str="//@codeblock-"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/doc_code_snippets/mod.rs:167:32 [INFO] [stderr] | [INFO] [stderr] 167 | const START_OF_MARKER:&'static str="//@use_codeblock:"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused variable: `word` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:344:17 [INFO] [stderr] | [INFO] [stderr] 344 | word =>{ [INFO] [stderr] | ^^^^ help: consider using `_word` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ident` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:355:34 [INFO] [stderr] | [INFO] [stderr] 355 | let (ident,repr)=check_repr_attr(meta); [INFO] [stderr] | ^^^^^ help: consider using `_ident` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `span` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let span=self.decls.original_name.span(); [INFO] [stderr] | ^^^^ help: consider using `_span` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `trait_ident_rep` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:115:17 [INFO] [stderr] | [INFO] [stderr] 115 | let trait_ident_rep=iter::repeat(&struct_.trait_ident); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_trait_ident_rep` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `generics_d` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | let generics_d=generics_fn(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_generics_d` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `field_names_f` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:160:17 [INFO] [stderr] | [INFO] [stderr] 160 | let field_names_f=struct_.fields.iter().map(|x|&x.assoc_type); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_field_names_f` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `original_types_b` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:165:17 [INFO] [stderr] | [INFO] [stderr] 165 | let original_types_b=struct_.fields.iter().map(|x|&x.original_ty); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_original_types_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `generics_h` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:230:25 [INFO] [stderr] | [INFO] [stderr] 230 | let generics_h=generics_fn(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_generics_h` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `original_generics_ir_a` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:302:17 [INFO] [stderr] | [INFO] [stderr] 302 | let original_generics_ir_a=orig_gens_item_decl; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_original_generics_ir_a` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `original_generics_ir_b` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:303:17 [INFO] [stderr] | [INFO] [stderr] 303 | let original_generics_ir_b=orig_gens_item_use; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_original_generics_ir_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_marker_struct_rep_b` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:525:13 [INFO] [stderr] | [INFO] [stderr] 525 | let type_marker_struct_rep_b=iter::repeat(&self.type_marker_struct); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_type_marker_struct_rep_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fields_2` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:554:13 [INFO] [stderr] | [INFO] [stderr] 554 | let fields_2=self.field_accessors.keys(); [INFO] [stderr] | ^^^^^^^^ help: consider using `_fields_2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vis_kind_submod_rep` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:566:13 [INFO] [stderr] | [INFO] [stderr] 566 | let vis_kind_submod_rep=iter::repeat(vis_kind_submod); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using `_vis_kind_submod_rep` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `trait_ident` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:656:17 [INFO] [stderr] | [INFO] [stderr] 656 | let trait_ident=&declaration.trait_ident; [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_trait_ident` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `span` [INFO] [stderr] --> src/common_tokens.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | let span=Span::call_site(); [INFO] [stderr] | ^^^^ help: consider using `_span` instead [INFO] [stderr] ... [INFO] [stderr] 73 | / declare_common_tokens!{ [INFO] [stderr] 74 | | with_new[ [INFO] [stderr] 75 | | ] [INFO] [stderr] 76 | | [INFO] [stderr] ... | [INFO] [stderr] 112 | | ] [INFO] [stderr] 113 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `word` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:344:17 [INFO] [stderr] | [INFO] [stderr] 344 | word =>{ [INFO] [stderr] | ^^^^ help: consider using `_word` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ident` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:355:34 [INFO] [stderr] | [INFO] [stderr] 355 | let (ident,repr)=check_repr_attr(meta); [INFO] [stderr] | ^^^^^ help: consider using `_ident` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `span` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let span=self.decls.original_name.span(); [INFO] [stderr] | ^^^^ help: consider using `_span` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `trait_ident_rep` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:115:17 [INFO] [stderr] | [INFO] [stderr] 115 | let trait_ident_rep=iter::repeat(&struct_.trait_ident); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_trait_ident_rep` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `generics_d` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | let generics_d=generics_fn(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_generics_d` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `field_names_f` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:160:17 [INFO] [stderr] | [INFO] [stderr] 160 | let field_names_f=struct_.fields.iter().map(|x|&x.assoc_type); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_field_names_f` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `original_types_b` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:165:17 [INFO] [stderr] | [INFO] [stderr] 165 | let original_types_b=struct_.fields.iter().map(|x|&x.original_ty); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_original_types_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `generics_h` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:230:25 [INFO] [stderr] | [INFO] [stderr] 230 | let generics_h=generics_fn(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_generics_h` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `original_generics_ir_a` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:302:17 [INFO] [stderr] | [INFO] [stderr] 302 | let original_generics_ir_a=orig_gens_item_decl; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_original_generics_ir_a` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `original_generics_ir_b` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:303:17 [INFO] [stderr] | [INFO] [stderr] 303 | let original_generics_ir_b=orig_gens_item_use; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_original_generics_ir_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `type_marker_struct_rep_b` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:525:13 [INFO] [stderr] | [INFO] [stderr] 525 | let type_marker_struct_rep_b=iter::repeat(&self.type_marker_struct); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_type_marker_struct_rep_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fields_2` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:554:13 [INFO] [stderr] | [INFO] [stderr] 554 | let fields_2=self.field_accessors.keys(); [INFO] [stderr] | ^^^^^^^^ help: consider using `_fields_2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vis_kind_submod_rep` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:566:13 [INFO] [stderr] | [INFO] [stderr] 566 | let vis_kind_submod_rep=iter::repeat(vis_kind_submod); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using `_vis_kind_submod_rep` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `trait_ident` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:656:17 [INFO] [stderr] | [INFO] [stderr] 656 | let trait_ident=&declaration.trait_ident; [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_trait_ident` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `span` [INFO] [stderr] --> src/common_tokens.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | let span=Span::call_site(); [INFO] [stderr] | ^^^^ help: consider using `_span` instead [INFO] [stderr] ... [INFO] [stderr] 73 | / declare_common_tokens!{ [INFO] [stderr] 74 | | with_new[ [INFO] [stderr] 75 | | ] [INFO] [stderr] 76 | | [INFO] [stderr] ... | [INFO] [stderr] 112 | | ] [INFO] [stderr] 113 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/typelevel/struct_declarations.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | let mut all_types=HashMap::<&'a Type,Option<&'a Type>>::new(); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/typelevel/struct_declarations.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | let mut all_types=HashMap::<&'a Type,Option<&'a Type>>::new(); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `FilteredAttrs` [INFO] [stderr] --> src/attribute_errors/mod.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub struct FilteredAttrs<'a,F>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `with_filter` [INFO] [stderr] --> src/attribute_errors/mod.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn with_filter<'a,F>(&'a self,filter:F)->FilteredAttrs<'a,F> [INFO] [stderr] 41 | | where [INFO] [stderr] 42 | | F:Fn(&str)->bool [INFO] [stderr] 43 | | { [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `chain_impl_annotations` [INFO] [stderr] --> src/attribute_detection/item_metadata.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / pub(crate) fn chain_impl_annotations<'a>( [INFO] [stderr] 55 | | &'a self, [INFO] [stderr] 56 | | other: &'a Self, [INFO] [stderr] 57 | | ) -> AnnotationTokensChain<'a> { [INFO] [stderr] ... | [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `chain_bound_tokens` [INFO] [stderr] --> src/attribute_detection/item_metadata.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | pub(crate) fn chain_bound_tokens<'a>(&'a self, other: &'a Self) -> BoundTokensChain<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update_with_nested` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | fn update_with_nested(&mut self,nested:&MyNested)->Result<(),NotUpdated>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `type_from_nested` [INFO] [stderr] --> src/attribute_detection/mod.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | / pub(crate) fn type_from_nested<'a>( [INFO] [stderr] 127 | | new_ident: &MyNested<'a>, [INFO] [stderr] 128 | | arenas: ArenasRef<'a> [INFO] [stderr] 129 | | ) -> &'a syn::Type { [INFO] [stderr] ... | [INFO] [stderr] 133 | | } [INFO] [stderr] 134 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `doc_hidden_attr` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | pub(crate) fn doc_hidden_attr(&self,common_tokens:&'a CommonTokens)->DocHiddenAttr<'a>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `struct_ident` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:853:5 [INFO] [stderr] | [INFO] [stderr] 853 | pub fn struct_ident(self)->Option<&'a Ident>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `integer_ident` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:859:5 [INFO] [stderr] | [INFO] [stderr] 859 | pub fn integer_ident(self)->Option<&'a Ident>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/attribute_errors/mod.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn with_filter<'a,F>(&'a self,filter:F)->FilteredAttrs<'a,F> [INFO] [stderr] 41 | | where [INFO] [stderr] 42 | | F:Fn(&str)->bool [INFO] [stderr] 43 | | { [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match meta { [INFO] [stderr] 36 | | &Meta::Word(ref word) => MyMeta { [INFO] [stderr] 37 | | word: word.into(), [INFO] [stderr] 38 | | value: MyNested::Word, [INFO] [stderr] ... | [INFO] [stderr] 53 | | }, [INFO] [stderr] 54 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *meta { [INFO] [stderr] 36 | Meta::Word(ref word) => MyMeta { [INFO] [stderr] 37 | word: word.into(), [INFO] [stderr] 38 | value: MyNested::Word, [INFO] [stderr] 39 | }, [INFO] [stderr] 40 | Meta::List(ref list) => MyMeta { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / match n_meta { [INFO] [stderr] 62 | | &NestedMeta::Meta(ref meta) => { [INFO] [stderr] 63 | | meta.into_with(arenas) [INFO] [stderr] 64 | | } [INFO] [stderr] ... | [INFO] [stderr] 80 | | } [INFO] [stderr] 81 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 61 | match *n_meta { [INFO] [stderr] 62 | NestedMeta::Meta(ref meta) => { [INFO] [stderr] 63 | meta.into_with(arenas) [INFO] [stderr] 64 | } [INFO] [stderr] 65 | NestedMeta::Literal(ref lit) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/attribute_detection/my_meta.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match self { [INFO] [stderr] 97 | | &mut MyNested::List(list)=>{ [INFO] [stderr] 98 | | let list=list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect(); [INFO] [stderr] 99 | | *self=MyNested::MyList(list); [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | _=>{} [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 96 | if let &mut MyNested::List(list) = self { [INFO] [stderr] 97 | let list=list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect(); [INFO] [stderr] 98 | *self=MyNested::MyList(list); [INFO] [stderr] 99 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match self { [INFO] [stderr] 97 | | &mut MyNested::List(list)=>{ [INFO] [stderr] 98 | | let list=list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect(); [INFO] [stderr] 99 | | *self=MyNested::MyList(list); [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | _=>{} [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 96 | match *self { [INFO] [stderr] 97 | MyNested::List(list)=>{ [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | / match self { [INFO] [stderr] 114 | | &MyNested::List(list)=>{ [INFO] [stderr] 115 | | Some(Cow::Owned(list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect())) [INFO] [stderr] 116 | | } [INFO] [stderr] 117 | | &MyNested::MyList(ref list)=>Some(Cow::Borrowed(list)), [INFO] [stderr] 118 | | _=>None [INFO] [stderr] 119 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 113 | match *self { [INFO] [stderr] 114 | MyNested::List(list)=>{ [INFO] [stderr] 115 | Some(Cow::Owned(list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect())) [INFO] [stderr] 116 | } [INFO] [stderr] 117 | MyNested::MyList(ref list)=>Some(Cow::Borrowed(list)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/indexable_struct.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn to_vec(self)->Vec<($enum_index,T)>{ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/attribute_detection/typelevel.rs:110:1 [INFO] [stderr] | [INFO] [stderr] 110 | / declare_reexports!{ [INFO] [stderr] 111 | | (traits ,Traits ), [INFO] [stderr] 112 | | (variants ,Variants ), [INFO] [stderr] 113 | | (discriminants,Discriminants), [INFO] [stderr] ... | [INFO] [stderr] 119 | | [INFO] [stderr] 120 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `FilteredAttrs` [INFO] [stderr] --> src/attribute_errors/mod.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub struct FilteredAttrs<'a,F>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/indexable_struct.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn to_vec(self)->Vec<($enum_index,T)>{ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/attribute_detection/typelevel.rs:182:1 [INFO] [stderr] | [INFO] [stderr] 182 | / derived_traits!{ [INFO] [stderr] 183 | | variants=[ [INFO] [stderr] 184 | | (const_eq ,ConstEq ,ImplVariant::Unspecified(&UNSPEC_NO_IMPLS) ), [INFO] [stderr] 185 | | (const_ord ,ConstOrd ,ImplVariant::Unspecified(&UNSPEC_NO_IMPLS) ), [INFO] [stderr] ... | [INFO] [stderr] 194 | | ] [INFO] [stderr] 195 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `with_filter` [INFO] [stderr] --> src/attribute_errors/mod.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn with_filter<'a,F>(&'a self,filter:F)->FilteredAttrs<'a,F> [INFO] [stderr] 41 | | where [INFO] [stderr] 42 | | F:Fn(&str)->bool [INFO] [stderr] 43 | | { [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `chain_impl_annotations` [INFO] [stderr] --> src/attribute_detection/item_metadata.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / pub(crate) fn chain_impl_annotations<'a>( [INFO] [stderr] 55 | | &'a self, [INFO] [stderr] 56 | | other: &'a Self, [INFO] [stderr] 57 | | ) -> AnnotationTokensChain<'a> { [INFO] [stderr] ... | [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `chain_bound_tokens` [INFO] [stderr] --> src/attribute_detection/item_metadata.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | pub(crate) fn chain_bound_tokens<'a>(&'a self, other: &'a Self) -> BoundTokensChain<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update_with_nested` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | fn update_with_nested(&mut self,nested:&MyNested)->Result<(),NotUpdated>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] warning: function is never used: `type_from_nested` [INFO] [stderr] --> src/attribute_detection/mod.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | / pub(crate) fn type_from_nested<'a>( [INFO] [stderr] 127 | | new_ident: &MyNested<'a>, [INFO] [stderr] 128 | | arenas: ArenasRef<'a> [INFO] [stderr] 129 | | ) -> &'a syn::Type { [INFO] [stderr] ... | [INFO] [stderr] 133 | | } [INFO] [stderr] 134 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method is never used: `doc_hidden_attr` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | pub(crate) fn doc_hidden_attr(&self,common_tokens:&'a CommonTokens)->DocHiddenAttr<'a>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `struct_ident` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:853:5 [INFO] [stderr] | [INFO] [stderr] 853 | pub fn struct_ident(self)->Option<&'a Ident>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `integer_ident` [INFO] [stderr] --> src/typelevel/struct_declarations.rs:859:5 [INFO] [stderr] | [INFO] [stderr] 859 | pub fn integer_ident(self)->Option<&'a Ident>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/attribute_detection/typelevel.rs:390:20 [INFO] [stderr] | [INFO] [stderr] 390 | if let Ok(_)=settings.attrs.update_with_meta(&nested0,arenas) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 391 | | continue; [INFO] [stderr] 392 | | } [INFO] [stderr] | |_____________- help: try this: `if settings.attrs.update_with_meta(&nested0,arenas).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/typelevel.rs:436:21 [INFO] [stderr] | [INFO] [stderr] 436 | / if let &MyNested::List(ref list) = value { [INFO] [stderr] 437 | | new_attr_nested_meta(attr, settings, &nested0.word.str, list, arenas); [INFO] [stderr] 438 | | } else { [INFO] [stderr] 439 | | panic!("\ [INFO] [stderr] ... | [INFO] [stderr] 442 | | attribute_errors::type_attrs()); [INFO] [stderr] 443 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 436 | if let MyNested::List(ref list) = *value { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/typelevel.rs:518:5 [INFO] [stderr] | [INFO] [stderr] 518 | / match value { [INFO] [stderr] 519 | | &MyNested::Word | &MyNested::Value{..} => { [INFO] [stderr] 520 | | let previous_vis=*r_visibility; [INFO] [stderr] 521 | | [INFO] [stderr] ... | [INFO] [stderr] 567 | | panic!("unsupported mynested variant here:{:#?}",value), [INFO] [stderr] 568 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/attribute_errors/mod.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn with_filter<'a,F>(&'a self,filter:F)->FilteredAttrs<'a,F> [INFO] [stderr] 41 | | where [INFO] [stderr] 42 | | F:Fn(&str)->bool [INFO] [stderr] 43 | | { [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 518 | match *value { [INFO] [stderr] 519 | MyNested::Word | MyNested::Value{..} => { [INFO] [stderr] 520 | let previous_vis=*r_visibility; [INFO] [stderr] 521 | [INFO] [stderr] 522 | *r_visibility=match value { [INFO] [stderr] 523 | &MyNested::Word=> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/typelevel.rs:522:27 [INFO] [stderr] | [INFO] [stderr] 522 | *r_visibility=match value { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 523 | | &MyNested::Word=> [INFO] [stderr] 524 | | ReExportVis::WithDeriveVis, [INFO] [stderr] 525 | | &MyNested::Value(ref val) => [INFO] [stderr] ... | [INFO] [stderr] 529 | | _=>return, [INFO] [stderr] 530 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 522 | *r_visibility=match *value { [INFO] [stderr] 523 | MyNested::Word=> [INFO] [stderr] 524 | ReExportVis::WithDeriveVis, [INFO] [stderr] 525 | MyNested::Value(ref val) => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/indexable_struct.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn to_vec(self)->Vec<($enum_index,T)>{ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/attribute_detection/mutconstvalue.rs:75:1 [INFO] [stderr] | [INFO] [stderr] 75 | / declare_indexable_struct!{ [INFO] [stderr] 76 | | enum index=ImplsIndex [INFO] [stderr] 77 | | [INFO] [stderr] 78 | | #[derive(Default)] [INFO] [stderr] ... | [INFO] [stderr] 86 | | multi_indices=[] [INFO] [stderr] 87 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match meta { [INFO] [stderr] 36 | | &Meta::Word(ref word) => MyMeta { [INFO] [stderr] 37 | | word: word.into(), [INFO] [stderr] 38 | | value: MyNested::Word, [INFO] [stderr] ... | [INFO] [stderr] 53 | | }, [INFO] [stderr] 54 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *meta { [INFO] [stderr] 36 | Meta::Word(ref word) => MyMeta { [INFO] [stderr] 37 | word: word.into(), [INFO] [stderr] 38 | value: MyNested::Word, [INFO] [stderr] 39 | }, [INFO] [stderr] 40 | Meta::List(ref list) => MyMeta { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / match n_meta { [INFO] [stderr] 62 | | &NestedMeta::Meta(ref meta) => { [INFO] [stderr] 63 | | meta.into_with(arenas) [INFO] [stderr] 64 | | } [INFO] [stderr] ... | [INFO] [stderr] 80 | | } [INFO] [stderr] 81 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 61 | match *n_meta { [INFO] [stderr] 62 | NestedMeta::Meta(ref meta) => { [INFO] [stderr] 63 | meta.into_with(arenas) [INFO] [stderr] 64 | } [INFO] [stderr] 65 | NestedMeta::Literal(ref lit) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:237:20 [INFO] [stderr] | [INFO] [stderr] 237 | if let Ok(_)=this.attrs.update_with_meta(&nested0,arenas) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 238 | | continue; [INFO] [stderr] 239 | | } [INFO] [stderr] | |_____________- help: try this: `if this.attrs.update_with_meta(&nested0,arenas).is_ok()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/attribute_detection/my_meta.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match self { [INFO] [stderr] 97 | | &mut MyNested::List(list)=>{ [INFO] [stderr] 98 | | let list=list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect(); [INFO] [stderr] 99 | | *self=MyNested::MyList(list); [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | _=>{} [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 96 | if let &mut MyNested::List(list) = self { [INFO] [stderr] 97 | let list=list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect(); [INFO] [stderr] 98 | *self=MyNested::MyList(list); [INFO] [stderr] 99 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match self { [INFO] [stderr] 97 | | &mut MyNested::List(list)=>{ [INFO] [stderr] 98 | | let list=list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect(); [INFO] [stderr] 99 | | *self=MyNested::MyList(list); [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | _=>{} [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 96 | match *self { [INFO] [stderr] 97 | MyNested::List(list)=>{ [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/my_meta.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | / match self { [INFO] [stderr] 114 | | &MyNested::List(list)=>{ [INFO] [stderr] 115 | | Some(Cow::Owned(list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect())) [INFO] [stderr] 116 | | } [INFO] [stderr] 117 | | &MyNested::MyList(ref list)=>Some(Cow::Borrowed(list)), [INFO] [stderr] 118 | | _=>None [INFO] [stderr] 119 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 113 | match *self { [INFO] [stderr] 114 | MyNested::List(list)=>{ [INFO] [stderr] 115 | Some(Cow::Owned(list.into_iter().map(|x|MyMeta::from_with(x,arenas)).collect())) [INFO] [stderr] 116 | } [INFO] [stderr] 117 | MyNested::MyList(ref list)=>Some(Cow::Borrowed(list)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:372:1 [INFO] [stderr] | [INFO] [stderr] 372 | / fn check_repr_attr<'alloc>(meta:&'alloc Meta)-> (&'alloc Ident,MainRepr) { [INFO] [stderr] 373 | | if let Meta::Word(ref ident)=*meta { [INFO] [stderr] 374 | | if ident=="C"{ [INFO] [stderr] 375 | | (ident,MainRepr::C) [INFO] [stderr] ... | [INFO] [stderr] 388 | | } [INFO] [stderr] 389 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/indexable_struct.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn to_vec(self)->Vec<($enum_index,T)>{ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/attribute_detection/typelevel.rs:110:1 [INFO] [stderr] | [INFO] [stderr] 110 | / declare_reexports!{ [INFO] [stderr] 111 | | (traits ,Traits ), [INFO] [stderr] 112 | | (variants ,Variants ), [INFO] [stderr] 113 | | (discriminants,Discriminants), [INFO] [stderr] ... | [INFO] [stderr] 119 | | [INFO] [stderr] 120 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/indexable_struct.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn to_vec(self)->Vec<($enum_index,T)>{ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/attribute_detection/typelevel.rs:182:1 [INFO] [stderr] | [INFO] [stderr] 182 | / derived_traits!{ [INFO] [stderr] 183 | | variants=[ [INFO] [stderr] 184 | | (const_eq ,ConstEq ,ImplVariant::Unspecified(&UNSPEC_NO_IMPLS) ), [INFO] [stderr] 185 | | (const_ord ,ConstOrd ,ImplVariant::Unspecified(&UNSPEC_NO_IMPLS) ), [INFO] [stderr] ... | [INFO] [stderr] 194 | | ] [INFO] [stderr] 195 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/find_type_param.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | self.into_iter().position(|tt| tt.contains_ident(ident) ).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `position(|tt| tt.contains_ident(ident)).is_some()` with `any(|tt| tt.contains_ident(ident))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/attribute_detection/typelevel.rs:390:20 [INFO] [stderr] | [INFO] [stderr] 390 | if let Ok(_)=settings.attrs.update_with_meta(&nested0,arenas) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 391 | | continue; [INFO] [stderr] 392 | | } [INFO] [stderr] | |_____________- help: try this: `if settings.attrs.update_with_meta(&nested0,arenas).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/typelevel.rs:436:21 [INFO] [stderr] | [INFO] [stderr] 436 | / if let &MyNested::List(ref list) = value { [INFO] [stderr] 437 | | new_attr_nested_meta(attr, settings, &nested0.word.str, list, arenas); [INFO] [stderr] 438 | | } else { [INFO] [stderr] 439 | | panic!("\ [INFO] [stderr] ... | [INFO] [stderr] 442 | | attribute_errors::type_attrs()); [INFO] [stderr] 443 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 436 | if let MyNested::List(ref list) = *value { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/typelevel.rs:518:5 [INFO] [stderr] | [INFO] [stderr] 518 | / match value { [INFO] [stderr] 519 | | &MyNested::Word | &MyNested::Value{..} => { [INFO] [stderr] 520 | | let previous_vis=*r_visibility; [INFO] [stderr] 521 | | [INFO] [stderr] ... | [INFO] [stderr] 567 | | panic!("unsupported mynested variant here:{:#?}",value), [INFO] [stderr] 568 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 518 | match *value { [INFO] [stderr] 519 | MyNested::Word | MyNested::Value{..} => { [INFO] [stderr] 520 | let previous_vis=*r_visibility; [INFO] [stderr] 521 | [INFO] [stderr] 522 | *r_visibility=match value { [INFO] [stderr] 523 | &MyNested::Word=> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/attribute_detection/typelevel.rs:522:27 [INFO] [stderr] | [INFO] [stderr] 522 | *r_visibility=match value { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 523 | | &MyNested::Word=> [INFO] [stderr] 524 | | ReExportVis::WithDeriveVis, [INFO] [stderr] 525 | | &MyNested::Value(ref val) => [INFO] [stderr] ... | [INFO] [stderr] 529 | | _=>return, [INFO] [stderr] 530 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 522 | *r_visibility=match *value { [INFO] [stderr] 523 | MyNested::Word=> [INFO] [stderr] 524 | ReExportVis::WithDeriveVis, [INFO] [stderr] 525 | MyNested::Value(ref val) => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/submod_visibility.rs:44:18 [INFO] [stderr] | [INFO] [stderr] 44 | let kind=match vis { [INFO] [stderr] | __________________^ [INFO] [stderr] 45 | | &Visibility::Public{..}=>{ [INFO] [stderr] 46 | | VisibilityKind::Public [INFO] [stderr] 47 | | } [INFO] [stderr] ... | [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 44 | let kind=match *vis { [INFO] [stderr] 45 | Visibility::Public{..}=>{ [INFO] [stderr] 46 | VisibilityKind::Public [INFO] [stderr] 47 | } [INFO] [stderr] 48 | Visibility::Crate{..}=>{ [INFO] [stderr] 49 | VisibilityKind::Crate [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/indexable_struct.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn to_vec(self)->Vec<($enum_index,T)>{ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/attribute_detection/mutconstvalue.rs:75:1 [INFO] [stderr] | [INFO] [stderr] 75 | / declare_indexable_struct!{ [INFO] [stderr] 76 | | enum index=ImplsIndex [INFO] [stderr] 77 | | [INFO] [stderr] 78 | | #[derive(Default)] [INFO] [stderr] ... | [INFO] [stderr] 86 | | multi_indices=[] [INFO] [stderr] 87 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:237:20 [INFO] [stderr] | [INFO] [stderr] 237 | if let Ok(_)=this.attrs.update_with_meta(&nested0,arenas) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 238 | | continue; [INFO] [stderr] 239 | | } [INFO] [stderr] | |_____________- help: try this: `if this.attrs.update_with_meta(&nested0,arenas).is_ok()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/attribute_detection/mutconstvalue.rs:372:1 [INFO] [stderr] | [INFO] [stderr] 372 | / fn check_repr_attr<'alloc>(meta:&'alloc Meta)-> (&'alloc Ident,MainRepr) { [INFO] [stderr] 373 | | if let Meta::Word(ref ident)=*meta { [INFO] [stderr] 374 | | if ident=="C"{ [INFO] [stderr] 375 | | (ident,MainRepr::C) [INFO] [stderr] ... | [INFO] [stderr] 388 | | } [INFO] [stderr] 389 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/find_type_param.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | self.into_iter().position(|tt| tt.contains_ident(ident) ).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `position(|tt| tt.contains_ident(ident)).is_some()` with `any(|tt| tt.contains_ident(ident))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / fn to_tokens(&self,tokens:&mut TokenStream){ [INFO] [stderr] 38 | | let span=self.decls.original_name.span(); [INFO] [stderr] 39 | | [INFO] [stderr] 40 | | let token=&self.decls.tokens; [INFO] [stderr] ... | [INFO] [stderr] 460 | | } [INFO] [stderr] 461 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/submod_visibility.rs:44:18 [INFO] [stderr] | [INFO] [stderr] 44 | let kind=match vis { [INFO] [stderr] | __________________^ [INFO] [stderr] 45 | | &Visibility::Public{..}=>{ [INFO] [stderr] 46 | | VisibilityKind::Public [INFO] [stderr] 47 | | } [INFO] [stderr] ... | [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 44 | let kind=match *vis { [INFO] [stderr] 45 | Visibility::Public{..}=>{ [INFO] [stderr] 46 | VisibilityKind::Public [INFO] [stderr] 47 | } [INFO] [stderr] 48 | Visibility::Crate{..}=>{ [INFO] [stderr] 49 | VisibilityKind::Crate [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:331:31 [INFO] [stderr] | [INFO] [stderr] 331 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________________^ [INFO] [stderr] 332 | | [INFO] [stderr] 333 | | impl<#generics> ConstTypeOf_ for #struct_name<#generics #priv_suffix>{ [INFO] [stderr] 334 | | type Type=#type_marker_struct; [INFO] [stderr] ... | [INFO] [stderr] 388 | | [INFO] [stderr] 389 | | }); [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:37:5 [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] 37 | / fn to_tokens(&self,tokens:&mut TokenStream){ [INFO] [stderr] 38 | | let span=self.decls.original_name.span(); [INFO] [stderr] 39 | | [INFO] [stderr] 40 | | let token=&self.decls.tokens; [INFO] [stderr] ... | [INFO] [stderr] 460 | | } [INFO] [stderr] 461 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:331:31 [INFO] [stderr] | [INFO] [stderr] 331 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________________^ [INFO] [stderr] 332 | | [INFO] [stderr] 333 | | impl<#generics> ConstTypeOf_ for #struct_name<#generics #priv_suffix>{ [INFO] [stderr] 334 | | type Type=#type_marker_struct; [INFO] [stderr] ... | [INFO] [stderr] 388 | | [INFO] [stderr] 389 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:428:20 [INFO] [stderr] | [INFO] [stderr] 428 | if let Some(_)=ir_type_ident { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 429 | | let with_runtime_docs=&struct_.with_runtime_docs; [INFO] [stderr] 430 | | [INFO] [stderr] 431 | | tokens.append_all(quote!{ [INFO] [stderr] ... | [INFO] [stderr] 456 | | }); [INFO] [stderr] 457 | | } [INFO] [stderr] | |_____________- help: try this: `if ir_type_ident.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:331:31 [INFO] [stderr] | [INFO] [stderr] 331 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________________^ [INFO] [stderr] 332 | | [INFO] [stderr] 333 | | impl<#generics> ConstTypeOf_ for #struct_name<#generics #priv_suffix>{ [INFO] [stderr] 334 | | type Type=#type_marker_struct; [INFO] [stderr] ... | [INFO] [stderr] 388 | | [INFO] [stderr] 389 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:331:31 [INFO] [stderr] | [INFO] [stderr] 331 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________________^ [INFO] [stderr] 332 | | [INFO] [stderr] 333 | | impl<#generics> ConstTypeOf_ for #struct_name<#generics #priv_suffix>{ [INFO] [stderr] 334 | | type Type=#type_marker_struct; [INFO] [stderr] ... | [INFO] [stderr] 388 | | [INFO] [stderr] 389 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/typelevel/compiletime_traits.rs:428:20 [INFO] [stderr] | [INFO] [stderr] 428 | if let Some(_)=ir_type_ident { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 429 | | let with_runtime_docs=&struct_.with_runtime_docs; [INFO] [stderr] 430 | | [INFO] [stderr] 431 | | tokens.append_all(quote!{ [INFO] [stderr] ... | [INFO] [stderr] 456 | | }); [INFO] [stderr] 457 | | } [INFO] [stderr] | |_____________- help: try this: `if ir_type_ident.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/struct_declarations.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | let ref alloc_ident=|ident:Ident|->&'a Ident{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 176 | let alloc_ident = &(|ident:Ident|->&'a Ident{ [INFO] [stderr] 177 | arenas.idents.alloc(ident) [INFO] [stderr] 178 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/struct_declarations.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let ref alloc_str=|s|->&'a str{ [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 179 | let alloc_str = &(|s|->&'a str{ [INFO] [stderr] 180 | arenas.strings.alloc(s) [INFO] [stderr] 181 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/struct_declarations.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | let ref ident_from=|ident:&str|->&'a Ident{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 182 | let ident_from = &(|ident:&str|->&'a Ident{ [INFO] [stderr] 183 | alloc_ident(Ident::new(ident,name.span())) [INFO] [stderr] 184 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/typelevel/struct_declarations.rs:217:32 [INFO] [stderr] | [INFO] [stderr] 217 | let type_marker_struct=outer_attr_sett.renames.const_type.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `outer_attr_sett.renames.const_type` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/typelevel/struct_declarations.rs:522:5 [INFO] [stderr] | [INFO] [stderr] 522 | / fn to_tokens(&self,tokens:&mut TokenStream){ [INFO] [stderr] 523 | | let type_marker_struct=&self.type_marker_struct; [INFO] [stderr] 524 | | let type_marker_struct_rep_a=iter::repeat(&self.type_marker_struct); [INFO] [stderr] 525 | | let type_marker_struct_rep_b=iter::repeat(&self.type_marker_struct); [INFO] [stderr] ... | [INFO] [stderr] 792 | | } [INFO] [stderr] 793 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/struct_declarations.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | let ref alloc_ident=|ident:Ident|->&'a Ident{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 176 | let alloc_ident = &(|ident:Ident|->&'a Ident{ [INFO] [stderr] 177 | arenas.idents.alloc(ident) [INFO] [stderr] 178 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/struct_declarations.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let ref alloc_str=|s|->&'a str{ [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 179 | let alloc_str = &(|s|->&'a str{ [INFO] [stderr] 180 | arenas.strings.alloc(s) [INFO] [stderr] 181 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/struct_declarations.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | let ref ident_from=|ident:&str|->&'a Ident{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 182 | let ident_from = &(|ident:&str|->&'a Ident{ [INFO] [stderr] 183 | alloc_ident(Ident::new(ident,name.span())) [INFO] [stderr] 184 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/typelevel/struct_declarations.rs:217:32 [INFO] [stderr] | [INFO] [stderr] 217 | let type_marker_struct=outer_attr_sett.renames.const_type.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `outer_attr_sett.renames.const_type` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/typelevel/struct_declarations.rs:522:5 [INFO] [stderr] | [INFO] [stderr] 522 | / fn to_tokens(&self,tokens:&mut TokenStream){ [INFO] [stderr] 523 | | let type_marker_struct=&self.type_marker_struct; [INFO] [stderr] 524 | | let type_marker_struct_rep_a=iter::repeat(&self.type_marker_struct); [INFO] [stderr] 525 | | let type_marker_struct_rep_b=iter::repeat(&self.type_marker_struct); [INFO] [stderr] ... | [INFO] [stderr] 792 | | } [INFO] [stderr] 793 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:736:31 [INFO] [stderr] | [INFO] [stderr] 736 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________________^ [INFO] [stderr] 737 | | [INFO] [stderr] 738 | | /// the public field accessors for the variant. [INFO] [stderr] 739 | | #vis type #pub_fields_ident=#vari_pub_fields; [INFO] [stderr] ... | [INFO] [stderr] 755 | | > [INFO] [stderr] 756 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:763:21 [INFO] [stderr] | [INFO] [stderr] 763 | / quote!{ [INFO] [stderr] 764 | | ( [INFO] [stderr] 765 | | #( [INFO] [stderr] 766 | | #(#[doc=#field_docs_a])* [INFO] [stderr] ... | [INFO] [stderr] 773 | | )*; [INFO] [stderr] 774 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:763:21 [INFO] [stderr] | [INFO] [stderr] 763 | / quote!{ [INFO] [stderr] 764 | | ( [INFO] [stderr] 765 | | #( [INFO] [stderr] 766 | | #(#[doc=#field_docs_a])* [INFO] [stderr] ... | [INFO] [stderr] 773 | | )*; [INFO] [stderr] 774 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:778:21 [INFO] [stderr] | [INFO] [stderr] 778 | / quote!{ [INFO] [stderr] 779 | | #(where [INFO] [stderr] 780 | | #has_priv_fields:__PrivTrait, [INFO] [stderr] 781 | | )* [INFO] [stderr] ... | [INFO] [stderr] 788 | | } [INFO] [stderr] 789 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:778:21 [INFO] [stderr] | [INFO] [stderr] 778 | / quote!{ [INFO] [stderr] 779 | | #(where [INFO] [stderr] 780 | | #has_priv_fields:__PrivTrait, [INFO] [stderr] 781 | | )* [INFO] [stderr] ... | [INFO] [stderr] 788 | | } [INFO] [stderr] 789 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:736:31 [INFO] [stderr] | [INFO] [stderr] 736 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________________^ [INFO] [stderr] 737 | | [INFO] [stderr] 738 | | /// the public field accessors for the variant. [INFO] [stderr] 739 | | #vis type #pub_fields_ident=#vari_pub_fields; [INFO] [stderr] ... | [INFO] [stderr] 755 | | > [INFO] [stderr] 756 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/typelevel/struct_declarations.rs:905:9 [INFO] [stderr] | [INFO] [stderr] 905 | / match fi { [INFO] [stderr] 906 | | &FieldIdent::Index(index,..)=> [INFO] [stderr] 907 | | FieldName::Index(index), [INFO] [stderr] 908 | | &FieldIdent::Named(name)=> [INFO] [stderr] 909 | | FieldName::Named(name), [INFO] [stderr] 910 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 905 | match *fi { [INFO] [stderr] 906 | FieldIdent::Index(index,..)=> [INFO] [stderr] 907 | FieldName::Index(index), [INFO] [stderr] 908 | FieldIdent::Named(name)=> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:763:21 [INFO] [stderr] | [INFO] [stderr] 763 | / quote!{ [INFO] [stderr] 764 | | ( [INFO] [stderr] 765 | | #( [INFO] [stderr] 766 | | #(#[doc=#field_docs_a])* [INFO] [stderr] ... | [INFO] [stderr] 773 | | )*; [INFO] [stderr] 774 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:763:21 [INFO] [stderr] | [INFO] [stderr] 763 | / quote!{ [INFO] [stderr] 764 | | ( [INFO] [stderr] 765 | | #( [INFO] [stderr] 766 | | #(#[doc=#field_docs_a])* [INFO] [stderr] ... | [INFO] [stderr] 773 | | )*; [INFO] [stderr] 774 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:778:21 [INFO] [stderr] | [INFO] [stderr] 778 | / quote!{ [INFO] [stderr] 779 | | #(where [INFO] [stderr] 780 | | #has_priv_fields:__PrivTrait, [INFO] [stderr] 781 | | )* [INFO] [stderr] ... | [INFO] [stderr] 788 | | } [INFO] [stderr] 789 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/typelevel/struct_declarations.rs:778:21 [INFO] [stderr] | [INFO] [stderr] 778 | / quote!{ [INFO] [stderr] 779 | | #(where [INFO] [stderr] 780 | | #has_priv_fields:__PrivTrait, [INFO] [stderr] 781 | | )* [INFO] [stderr] ... | [INFO] [stderr] 788 | | } [INFO] [stderr] 789 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/typelevel/struct_declarations.rs:905:9 [INFO] [stderr] | [INFO] [stderr] 905 | / match fi { [INFO] [stderr] 906 | | &FieldIdent::Index(index,..)=> [INFO] [stderr] 907 | | FieldName::Index(index), [INFO] [stderr] 908 | | &FieldIdent::Named(name)=> [INFO] [stderr] 909 | | FieldName::Named(name), [INFO] [stderr] 910 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 905 | match *fi { [INFO] [stderr] 906 | FieldIdent::Index(index,..)=> [INFO] [stderr] 907 | FieldName::Index(index), [INFO] [stderr] 908 | FieldIdent::Named(name)=> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let ref ds=DataStructure::new(&ast); [INFO] [stderr] | ----^^^^^^-------------------------- help: try: `let ds = &DataStructure::new(&ast);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | let ref created_module=format!("type_level_{}",name).piped(new_ident); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^------------------------------------------------ help: try: `let created_module = &format!("type_level_{}",name).piped(new_ident);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 104 | let ref attribute_detected=TLAttributes::new(&ast.attrs,&arenas); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^--------------------------------------- help: try: `let attribute_detected = &TLAttributes::new(&ast.attrs,&arenas);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | let ref vis=ds.vis; [INFO] [stderr] | ----^^^^^^^-------- help: try: `let vis = &ds.vis;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | let ref c_tokens = CommonTokens::new(); [INFO] [stderr] | ----^^^^^^^^^^^^----------------------- help: try: `let c_tokens = &CommonTokens::new();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | let ref struct_decls=StructDeclarations::new(&ds,attribute_detected,&arenas,c_tokens); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^------------------------------------------------------------------ help: try: `let struct_decls = &StructDeclarations::new(&ds,attribute_detected,&arenas,c_tokens);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | let ref field_traits=FieldTraits::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------------------- help: try: `let field_traits = &FieldTraits::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | let ref ctime_traits=CompiletimeTraits::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------------------------- help: try: `let ctime_traits = &CompiletimeTraits::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | let ref variants_mod_=VariantsMod::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^--------------------------------- help: try: `let variants_mod_ = &VariantsMod::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | let ref derived_traits_=DerivedTraits::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^----------------------------------- help: try: `let derived_traits_ = &DerivedTraits::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 38 [INFO] [stderr] --> src/mutconstvalue/mod.rs:59:1 [INFO] [stderr] | [INFO] [stderr] 59 | / pub fn derive_from_derive_input(mut ast:DeriveInput) -> TokenStream { [INFO] [stderr] 60 | | // println!("{S}{S}{S}\n{}\n",ast.ident,S="-------------------------"); [INFO] [stderr] 61 | | [INFO] [stderr] 62 | | [INFO] [stderr] ... | [INFO] [stderr] 434 | | tokens [INFO] [stderr] 435 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let ref ds=DataStructure::new(&ast); [INFO] [stderr] | ----^^^^^^-------------------------- help: try: `let ds = &DataStructure::new(&ast);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | let ref created_module=format!("type_level_{}",name).piped(new_ident); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^------------------------------------------------ help: try: `let created_module = &format!("type_level_{}",name).piped(new_ident);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 104 | let ref attribute_detected=TLAttributes::new(&ast.attrs,&arenas); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^--------------------------------------- help: try: `let attribute_detected = &TLAttributes::new(&ast.attrs,&arenas);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | let ref vis=ds.vis; [INFO] [stderr] | ----^^^^^^^-------- help: try: `let vis = &ds.vis;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | let ref c_tokens = CommonTokens::new(); [INFO] [stderr] | ----^^^^^^^^^^^^----------------------- help: try: `let c_tokens = &CommonTokens::new();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | let ref struct_decls=StructDeclarations::new(&ds,attribute_detected,&arenas,c_tokens); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^------------------------------------------------------------------ help: try: `let struct_decls = &StructDeclarations::new(&ds,attribute_detected,&arenas,c_tokens);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | let ref field_traits=FieldTraits::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------------------- help: try: `let field_traits = &FieldTraits::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | let ref ctime_traits=CompiletimeTraits::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------------------------- help: try: `let ctime_traits = &CompiletimeTraits::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | let ref variants_mod_=VariantsMod::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^--------------------------------- help: try: `let variants_mod_ = &VariantsMod::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/typelevel/mod.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | let ref derived_traits_=DerivedTraits::new(&struct_decls); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^----------------------------------- help: try: `let derived_traits_ = &DerivedTraits::new(&struct_decls);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mutconstvalue/mod.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match *generic { [INFO] [stderr] 69 | | GenericParam::Type(ref mut t_param)=>{ [INFO] [stderr] 70 | | t_param.eq_token=None; [INFO] [stderr] 71 | | t_param.default=None; [INFO] [stderr] 72 | | }, [INFO] [stderr] 73 | | _=>{} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 68 | if let GenericParam::Type(ref mut t_param) = *generic { [INFO] [stderr] 69 | t_param.eq_token=None; [INFO] [stderr] 70 | t_param.default=None; [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let ref c_tokens=CommonTokens::new(); [INFO] [stderr] | ----^^^^^^^^^^^^--------------------- help: try: `let c_tokens = &CommonTokens::new();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | let ref attrs_gcp=attrs.impls.get_const_param.impl_annotations(); [INFO] [stderr] | ----^^^^^^^^^^^^^------------------------------------------------ help: try: `let attrs_gcp = &attrs.impls.get_const_param.impl_annotations();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | let ref bounds_gcp=attrs.impls.get_const_param.bound_tokens(); [INFO] [stderr] | ----^^^^^^^^^^^^^^-------------------------------------------- help: try: `let bounds_gcp = &attrs.impls.get_const_param.bound_tokens();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | let ref attrs_cli =attrs.impls.const_layout_independent.impl_annotations(); [INFO] [stderr] | ----^^^^^^^^^^^^^---------------------------------------------------------- help: try: `let attrs_cli = &attrs.impls.const_layout_independent.impl_annotations();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | let ref bounds_cli=attrs.impls.const_layout_independent.bound_tokens(); [INFO] [stderr] | ----^^^^^^^^^^^^^^----------------------------------------------------- help: try: `let bounds_cli = &attrs.impls.const_layout_independent.bound_tokens();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | let ref attrs_type_alias=attrs.type_alias.impl_annotations(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^------------------------------------- help: try: `let attrs_type_alias = &attrs.type_alias.impl_annotations();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mutconstvalue/mod.rs:163:41 [INFO] [stderr] | [INFO] [stderr] 163 | let const_param_for_alias=new_ident(format!("__ConstParam")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"__ConstParam".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | let ref lifetimes =ast.generics.lifetimes().collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^------------------------------------------------- help: try: `let lifetimes = &ast.generics.lifetimes().collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | let ref lifetime_idents=lifetimes.iter().map(|x| &x.lifetime ).collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^------------------------------------------------------------ help: try: `let lifetime_idents = &lifetimes.iter().map(|x| &x.lifetime ).collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | let ref type_params =ast.generics.type_params().collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^------------------------------------------------- help: try: `let type_params = &ast.generics.type_params().collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | let ref type_param_idents=type_params.iter().map(|x| &x.ident ).collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^----------------------------------------------------------- help: try: `let type_param_idents = &type_params.iter().map(|x| &x.ident ).collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | let ref type_alias_ty_params=type_params.iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 177 | let type_alias_ty_params = &type_params.iter() [INFO] [stderr] 178 | .map(|x| { [INFO] [stderr] 179 | let ident=&x.ident; [INFO] [stderr] 180 | if x.ident==*const_param_ident { [INFO] [stderr] 181 | quote!( #const_param_for_alias #( = #const_param_default )* ) [INFO] [stderr] 182 | }else{ [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/mutconstvalue/mod.rs:181:17 [INFO] [stderr] | [INFO] [stderr] 181 | quote!( #const_param_for_alias #( = #const_param_default )* ) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | let ref truncated_type_params=type_param_idents.iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 188 | let truncated_type_params = &type_param_idents.iter() [INFO] [stderr] 189 | .filter(|x| **x!=const_param_ident ) [INFO] [stderr] 190 | .collect::>(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | let ref const_params=ast.generics.const_params().collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^------------------------------------------------- help: try: `let const_params = &ast.generics.const_params().collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | let ref const_param_idents=const_params.iter().map(|x| &x.ident ).collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------------------ help: try: `let const_param_idents = &const_params.iter().map(|x| &x.ident ).collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | let ref remaining_generics=quote!{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 195 | let remaining_generics = &{ [INFO] [stderr] 196 | let mut _s = $ crate :: __rt :: TokenStream :: new ( ) ; let _span = $ span ; [INFO] [stderr] 197 | quote_each_token ! ( _s _span $ ( $ tt ) * ) ; _s }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | let ref remaining_g_params=quote!{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 199 | let remaining_g_params = &{ [INFO] [stderr] 200 | let mut _s = $ crate :: __rt :: TokenStream :: new ( ) ; let _span = $ span ; [INFO] [stderr] 201 | quote_each_token ! ( _s _span $ ( $ tt ) * ) ; _s }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 38 [INFO] [stderr] --> src/mutconstvalue/mod.rs:59:1 [INFO] [stderr] | [INFO] [stderr] 59 | / pub fn derive_from_derive_input(mut ast:DeriveInput) -> TokenStream { [INFO] [stderr] 60 | | // println!("{S}{S}{S}\n{}\n",ast.ident,S="-------------------------"); [INFO] [stderr] 61 | | [INFO] [stderr] 62 | | [INFO] [stderr] ... | [INFO] [stderr] 434 | | tokens [INFO] [stderr] 435 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | let ref type_alias_gen_params=quote!{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 217 | let type_alias_gen_params = &{ [INFO] [stderr] 218 | let mut _s = $ crate :: __rt :: TokenStream :: new ( ) ; let _span = $ span ; [INFO] [stderr] 219 | quote_each_token ! ( _s _span $ ( $ tt ) * ) ; _s }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | let ref generics=ast.generics; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let generics = &ast.generics;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | let ref generic_params=generics.params; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^----------------- help: try: `let generic_params = &generics.params;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | let ref field_tys_mentioning_const={ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 229 | let field_tys_mentioning_const = &{ [INFO] [stderr] 230 | let const_finder=FindTypeParam::new(const_param_ident); [INFO] [stderr] 231 | [INFO] [stderr] 232 | field_tys.iter().cloned() [INFO] [stderr] 233 | .filter(|ty| const_finder.in_(ty) ) [INFO] [stderr] 234 | .collect::>() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/mutconstvalue/mod.rs:261:23 [INFO] [stderr] | [INFO] [stderr] 261 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________^ [INFO] [stderr] 262 | | #(#[#delegated_attrs])* [INFO] [stderr] 263 | | #(#[doc=#delegated_docs])* [INFO] [stderr] 264 | | #main_repr [INFO] [stderr] ... | [INFO] [stderr] 267 | | #ast [INFO] [stderr] 268 | | }); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mutconstvalue/mod.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match *generic { [INFO] [stderr] 69 | | GenericParam::Type(ref mut t_param)=>{ [INFO] [stderr] 70 | | t_param.eq_token=None; [INFO] [stderr] 71 | | t_param.default=None; [INFO] [stderr] 72 | | }, [INFO] [stderr] 73 | | _=>{} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 68 | if let GenericParam::Type(ref mut t_param) = *generic { [INFO] [stderr] 69 | t_param.eq_token=None; [INFO] [stderr] 70 | t_param.default=None; [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let ref c_tokens=CommonTokens::new(); [INFO] [stderr] | ----^^^^^^^^^^^^--------------------- help: try: `let c_tokens = &CommonTokens::new();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | let ref attrs_gcp=attrs.impls.get_const_param.impl_annotations(); [INFO] [stderr] | ----^^^^^^^^^^^^^------------------------------------------------ help: try: `let attrs_gcp = &attrs.impls.get_const_param.impl_annotations();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | let ref bounds_gcp=attrs.impls.get_const_param.bound_tokens(); [INFO] [stderr] | ----^^^^^^^^^^^^^^-------------------------------------------- help: try: `let bounds_gcp = &attrs.impls.get_const_param.bound_tokens();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | let ref attrs_cli =attrs.impls.const_layout_independent.impl_annotations(); [INFO] [stderr] | ----^^^^^^^^^^^^^---------------------------------------------------------- help: try: `let attrs_cli = &attrs.impls.const_layout_independent.impl_annotations();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | let ref bounds_cli=attrs.impls.const_layout_independent.bound_tokens(); [INFO] [stderr] | ----^^^^^^^^^^^^^^----------------------------------------------------- help: try: `let bounds_cli = &attrs.impls.const_layout_independent.bound_tokens();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | let ref attrs_type_alias=attrs.type_alias.impl_annotations(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^------------------------------------- help: try: `let attrs_type_alias = &attrs.type_alias.impl_annotations();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/mutconstvalue/mod.rs:163:41 [INFO] [stderr] | [INFO] [stderr] 163 | let const_param_for_alias=new_ident(format!("__ConstParam")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"__ConstParam".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | let ref lifetimes =ast.generics.lifetimes().collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^------------------------------------------------- help: try: `let lifetimes = &ast.generics.lifetimes().collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | let ref lifetime_idents=lifetimes.iter().map(|x| &x.lifetime ).collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^------------------------------------------------------------ help: try: `let lifetime_idents = &lifetimes.iter().map(|x| &x.lifetime ).collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | let ref type_params =ast.generics.type_params().collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^------------------------------------------------- help: try: `let type_params = &ast.generics.type_params().collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | let ref type_param_idents=type_params.iter().map(|x| &x.ident ).collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^----------------------------------------------------------- help: try: `let type_param_idents = &type_params.iter().map(|x| &x.ident ).collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | let ref type_alias_ty_params=type_params.iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 177 | let type_alias_ty_params = &type_params.iter() [INFO] [stderr] 178 | .map(|x| { [INFO] [stderr] 179 | let ident=&x.ident; [INFO] [stderr] 180 | if x.ident==*const_param_ident { [INFO] [stderr] 181 | quote!( #const_param_for_alias #( = #const_param_default )* ) [INFO] [stderr] 182 | }else{ [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/mutconstvalue/mod.rs:181:17 [INFO] [stderr] | [INFO] [stderr] 181 | quote!( #const_param_for_alias #( = #const_param_default )* ) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | let ref truncated_type_params=type_param_idents.iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 188 | let truncated_type_params = &type_param_idents.iter() [INFO] [stderr] 189 | .filter(|x| **x!=const_param_ident ) [INFO] [stderr] 190 | .collect::>(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | let ref const_params=ast.generics.const_params().collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^------------------------------------------------- help: try: `let const_params = &ast.generics.const_params().collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | let ref const_param_idents=const_params.iter().map(|x| &x.ident ).collect::>(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------------------ help: try: `let const_param_idents = &const_params.iter().map(|x| &x.ident ).collect::>();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | let ref remaining_generics=quote!{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 195 | let remaining_generics = &{ [INFO] [stderr] 196 | let mut _s = $ crate :: __rt :: TokenStream :: new ( ) ; let _span = $ span ; [INFO] [stderr] 197 | quote_each_token ! ( _s _span $ ( $ tt ) * ) ; _s }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | let ref remaining_g_params=quote!{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 199 | let remaining_g_params = &{ [INFO] [stderr] 200 | let mut _s = $ crate :: __rt :: TokenStream :: new ( ) ; let _span = $ span ; [INFO] [stderr] 201 | quote_each_token ! ( _s _span $ ( $ tt ) * ) ; _s }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | let ref type_alias_gen_params=quote!{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 217 | let type_alias_gen_params = &{ [INFO] [stderr] 218 | let mut _s = $ crate :: __rt :: TokenStream :: new ( ) ; let _span = $ span ; [INFO] [stderr] 219 | quote_each_token ! ( _s _span $ ( $ tt ) * ) ; _s }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | let ref generics=ast.generics; [INFO] [stderr] | ----^^^^^^^^^^^^-------------- help: try: `let generics = &ast.generics;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | let ref generic_params=generics.params; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^----------------- help: try: `let generic_params = &generics.params;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mutconstvalue/mod.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | let ref field_tys_mentioning_const={ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 229 | let field_tys_mentioning_const = &{ [INFO] [stderr] 230 | let const_finder=FindTypeParam::new(const_param_ident); [INFO] [stderr] 231 | [INFO] [stderr] 232 | field_tys.iter().cloned() [INFO] [stderr] 233 | .filter(|ty| const_finder.in_(ty) ) [INFO] [stderr] 234 | .collect::>() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `$ single`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/mutconstvalue/mod.rs:261:23 [INFO] [stderr] | [INFO] [stderr] 261 | tokens.append_all(quote!{ [INFO] [stderr] | _______________________^ [INFO] [stderr] 262 | | #(#[#delegated_attrs])* [INFO] [stderr] 263 | | #(#[doc=#delegated_docs])* [INFO] [stderr] 264 | | #main_repr [INFO] [stderr] ... | [INFO] [stderr] 267 | | #ast [INFO] [stderr] 268 | | }); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for $ first in $ single` with `if let Some($ first) = $ single` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/doc_code_snippets/mod.rs:194:35 [INFO] [stderr] | [INFO] [stderr] 194 | let lines=&code_lines[code_block.start..(code_block.end+1)]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `code_block.start..=code_block.end` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/doc_code_snippets/mod.rs:197:17 [INFO] [stderr] | [INFO] [stderr] 197 | / match line { [INFO] [stderr] 198 | | &CodeLineType::Line(code_line)if !code_line.trim().is_empty()=> [INFO] [stderr] 199 | | Some(code_line.line_indentation()), [INFO] [stderr] 200 | | _=>None, [INFO] [stderr] 201 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 197 | match *line { [INFO] [stderr] 198 | CodeLineType::Line(code_line)if !code_line.trim().is_empty()=> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 9 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `derive_type_level_lib`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/doc_code_snippets/mod.rs:194:35 [INFO] [stderr] | [INFO] [stderr] 194 | let lines=&code_lines[code_block.start..(code_block.end+1)]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `code_block.start..=code_block.end` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/doc_code_snippets/mod.rs:197:17 [INFO] [stderr] | [INFO] [stderr] 197 | / match line { [INFO] [stderr] 198 | | &CodeLineType::Line(code_line)if !code_line.trim().is_empty()=> [INFO] [stderr] 199 | | Some(code_line.line_indentation()), [INFO] [stderr] 200 | | _=>None, [INFO] [stderr] 201 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 197 | match *line { [INFO] [stderr] 198 | CodeLineType::Line(code_line)if !code_line.trim().is_empty()=> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 9 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `derive_type_level_lib`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4ad792170921363761c1ef13c1acdc851d9479075387fdffe71927c500225002"` [INFO] running `"docker" "rm" "-f" "4ad792170921363761c1ef13c1acdc851d9479075387fdffe71927c500225002"` [INFO] [stdout] 4ad792170921363761c1ef13c1acdc851d9479075387fdffe71927c500225002