[INFO] crate protobuf-codegen 2.2.0 is already in cache [INFO] extracting crate protobuf-codegen 2.2.0 into work/ex/clippy-test-run/sources/stable/reg/protobuf-codegen/2.2.0 [INFO] extracting crate protobuf-codegen 2.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/protobuf-codegen/2.2.0 [INFO] validating manifest of protobuf-codegen-2.2.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of protobuf-codegen-2.2.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing protobuf-codegen-2.2.0 [INFO] finished frobbing protobuf-codegen-2.2.0 [INFO] frobbed toml for protobuf-codegen-2.2.0 written to work/ex/clippy-test-run/sources/stable/reg/protobuf-codegen/2.2.0/Cargo.toml [INFO] started frobbing protobuf-codegen-2.2.0 [INFO] finished frobbing protobuf-codegen-2.2.0 [INFO] frobbed toml for protobuf-codegen-2.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/protobuf-codegen/2.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting protobuf-codegen-2.2.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/protobuf-codegen/2.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] fdb99dec8db86629893b55b05bb8dc7b24d71513a7662912d1e1f3db6b706980 [INFO] running `"docker" "start" "-a" "fdb99dec8db86629893b55b05bb8dc7b24d71513a7662912d1e1f3db6b706980"` [INFO] [stderr] Compiling protobuf v2.2.0 [INFO] [stderr] Checking protobuf-codegen v2.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/message.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/message.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | root_scope: root_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/message.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/enums.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | enum_with_scope: enum_with_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `enum_with_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rust_types_values.rs:325:13 [INFO] [stderr] | [INFO] [stderr] 325 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:436:21 [INFO] [stderr] | [INFO] [stderr] 436 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:465:13 [INFO] [stderr] | [INFO] [stderr] 465 | root_scope: root_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:470:13 [INFO] [stderr] | [INFO] [stderr] 470 | enum_default_value: enum_default_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `enum_default_value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:472:13 [INFO] [stderr] | [INFO] [stderr] 472 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:473:13 [INFO] [stderr] | [INFO] [stderr] 473 | expose_field: expose_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expose_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:474:13 [INFO] [stderr] | [INFO] [stderr] 474 | generate_accessors: generate_accessors, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `generate_accessors` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:800:21 [INFO] [stderr] | [INFO] [stderr] 800 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:844:21 [INFO] [stderr] | [INFO] [stderr] 844 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:873:21 [INFO] [stderr] | [INFO] [stderr] 873 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:874:21 [INFO] [stderr] | [INFO] [stderr] 874 | type_params: type_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `type_params` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extensions.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extensions.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | root_scope: root_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extensions.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | field: field, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | elem: elem, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `elem` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | boxed: boxed, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `boxed` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | oneof: oneof, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `oneof` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | oneof: oneof, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `oneof` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/code_writer.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | writer: writer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `writer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/lib.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | write!(s, "\\n").unwrap(); [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: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:165:34 [INFO] [stderr] | [INFO] [stderr] 165 | let root_scope = RootScope { file_descriptors: file_descriptors }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `file_descriptors` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/message.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/message.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | root_scope: root_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/message.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/enums.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | enum_with_scope: enum_with_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `enum_with_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rust_types_values.rs:325:13 [INFO] [stderr] | [INFO] [stderr] 325 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:436:21 [INFO] [stderr] | [INFO] [stderr] 436 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:465:13 [INFO] [stderr] | [INFO] [stderr] 465 | root_scope: root_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:470:13 [INFO] [stderr] | [INFO] [stderr] 470 | enum_default_value: enum_default_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `enum_default_value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:472:13 [INFO] [stderr] | [INFO] [stderr] 472 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:473:13 [INFO] [stderr] | [INFO] [stderr] 473 | expose_field: expose_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expose_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:474:13 [INFO] [stderr] | [INFO] [stderr] 474 | generate_accessors: generate_accessors, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `generate_accessors` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:800:21 [INFO] [stderr] | [INFO] [stderr] 800 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:844:21 [INFO] [stderr] | [INFO] [stderr] 844 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:873:21 [INFO] [stderr] | [INFO] [stderr] 873 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field.rs:874:21 [INFO] [stderr] | [INFO] [stderr] 874 | type_params: type_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `type_params` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extensions.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extensions.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | root_scope: root_scope, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extensions.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | field: field, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | elem: elem, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `elem` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | boxed: boxed, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `boxed` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | oneof: oneof, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `oneof` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/oneof.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | oneof: oneof, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `oneof` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/code_writer.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | writer: writer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `writer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/lib.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | write!(s, "\\n").unwrap(); [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: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:165:34 [INFO] [stderr] | [INFO] [stderr] 165 | let root_scope = RootScope { file_descriptors: file_descriptors }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `file_descriptors` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_types_values::type_name_to_rust_relative` [INFO] [stderr] --> src/enums.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use rust_types_values::type_name_to_rust_relative; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/rust_types_values.rs:445:12 [INFO] [stderr] | [INFO] [stderr] 445 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 446 | | if subm { [INFO] [stderr] 447 | | format!("super::super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 448 | | } else { [INFO] [stderr] 449 | | format!("super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 450 | | } [INFO] [stderr] 451 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 445 | } else if subm { [INFO] [stderr] 446 | format!("super::super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 447 | } else { [INFO] [stderr] 448 | format!("super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 449 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `rust_types_values::type_name_to_rust_relative` [INFO] [stderr] --> src/enums.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use rust_types_values::type_name_to_rust_relative; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/rust_types_values.rs:445:12 [INFO] [stderr] | [INFO] [stderr] 445 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 446 | | if subm { [INFO] [stderr] 447 | | format!("super::super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 448 | | } else { [INFO] [stderr] 449 | | format!("super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 450 | | } [INFO] [stderr] 451 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 445 | } else if subm { [INFO] [stderr] 446 | format!("super::super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 447 | } else { [INFO] [stderr] 448 | format!("super::{}", message_or_enum.rust_fq_name()) [INFO] [stderr] 449 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method is never used: `supports_derive_partial_eq` [INFO] [stderr] --> src/message.rs:381:5 [INFO] [stderr] | [INFO] [stderr] 381 | fn supports_derive_partial_eq(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/message.rs:115:29 [INFO] [stderr] | [INFO] [stderr] 115 | let ref field = variant.field; [INFO] [stderr] | ----^^^^^^^^^----------------- help: try: `let field = &variant.field;` [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] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:217:19 [INFO] [stderr] | [INFO] [stderr] 217 | w.def_fn(&format!("merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()>"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()>".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: useless use of `format!` [INFO] [stderr] --> src/message.rs:219:31 [INFO] [stderr] | [INFO] [stderr] 219 | w.write_line(&format!("let (field_number, wire_type) = is.read_tag_unpack()?;")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"let (field_number, wire_type) = is.read_tag_unpack()?;".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:260:19 [INFO] [stderr] | [INFO] [stderr] 260 | w.def_fn(&format!("descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:264:35 [INFO] [stderr] | [INFO] [stderr] 264 | w.write_line(&format!("let fields = ::std::vec::Vec::new();")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"let fields = ::std::vec::Vec::new();".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:266:35 [INFO] [stderr] | [INFO] [stderr] 266 | w.write_line(&format!("let mut fields = ::std::vec::Vec::new();")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"let mut fields = ::std::vec::Vec::new();".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:284:19 [INFO] [stderr] | [INFO] [stderr] 284 | w.def_fn(&format!("is_initialized(&self) -> bool"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"is_initialized(&self) -> bool".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/message.rs:427:31 [INFO] [stderr] | [INFO] [stderr] 427 | let vis = match self.expose_oneof() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 428 | | true => Visibility::Public, [INFO] [stderr] 429 | | false => Visibility::Default, [INFO] [stderr] 430 | | }; [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if self.expose_oneof() { Visibility::Public } else { Visibility::Default }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/enums.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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/enums.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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/enums.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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/enums.rs:198:35 [INFO] [stderr] | [INFO] [stderr] 198 | w.write_line(&format!("_ => ::std::option::Option::None")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"_ => ::std::option::Option::None".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/enums.rs:203:23 [INFO] [stderr] | [INFO] [stderr] 203 | w.def_fn(&format!("values() -> &'static [Self]"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"values() -> &'static [Self]".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/enums.rs:216:27 [INFO] [stderr] | [INFO] [stderr] 216 | w.def_fn(&format!("enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor".to_string()` [INFO] [stderr] | [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/enums.rs:218:29 [INFO] [stderr] | [INFO] [stderr] 218 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/rust_types_values.rs:228:24 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn into_target(&self, target: &RustType, v: &str) -> String { [INFO] [stderr] | ^^^^^ [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: use of `expect` followed by a function call [INFO] [stderr] --> src/rust_types_values.rs:230:14 [INFO] [stderr] | [INFO] [stderr] 230 | .expect(&format!("failed to convert {:?} into {:?}", self, target)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("failed to convert {:?} into {:?}", self))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:235:43 [INFO] [stderr] | [INFO] [stderr] 235 | (x, y) if x == y => return Ok(format!("{}", v)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `v.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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/rust_types_values.rs:282:9 [INFO] [stderr] | [INFO] [stderr] 282 | / if let &RustType::Ref(ref s) = self { [INFO] [stderr] 283 | | if let Ok(conv) = s.try_into_target(target, v) { [INFO] [stderr] 284 | | return Ok(conv); [INFO] [stderr] 285 | | } [INFO] [stderr] 286 | | } [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] 282 | if let RustType::Ref(ref s) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/rust_types_values.rs:339:22 [INFO] [stderr] | [INFO] [stderr] 339 | pub fn into_type(&self, target: RustType) -> RustValueTyped { [INFO] [stderr] | ^^^^^ [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: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | format!("{}", message_or_enum.rust_name()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `message_or_enum.rust_name().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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/rust_types_values.rs:482:9 [INFO] [stderr] | [INFO] [stderr] 482 | / match self { [INFO] [stderr] 483 | | &ProtobufTypeGen::Primitive(t, PrimitiveTypeVariant::Default) => { [INFO] [stderr] 484 | | format!( [INFO] [stderr] 485 | | "::protobuf::types::ProtobufType{}", [INFO] [stderr] ... | [INFO] [stderr] 503 | | } [INFO] [stderr] 504 | | } [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] 482 | match *self { [INFO] [stderr] 483 | ProtobufTypeGen::Primitive(t, PrimitiveTypeVariant::Default) => { [INFO] [stderr] 484 | format!( [INFO] [stderr] 485 | "::protobuf::types::ProtobufType{}", [INFO] [stderr] 486 | capitalize(protobuf_name(t)) [INFO] [stderr] 487 | ) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:492:18 [INFO] [stderr] | [INFO] [stderr] 492 | ) => format!("::protobuf::types::ProtobufTypeCarllercheBytes"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"::protobuf::types::ProtobufTypeCarllercheBytes".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:496:18 [INFO] [stderr] | [INFO] [stderr] 496 | ) => format!("::protobuf::types::ProtobufTypeCarllercheChars"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"::protobuf::types::ProtobufTypeCarllercheChars".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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/field.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | / fn field_type_protobuf_name<'a>(field: &'a FieldDescriptorProto) -> &'a str { [INFO] [stderr] 97 | | if field.has_type_name() { [INFO] [stderr] 98 | | field.get_type_name() [INFO] [stderr] 99 | | } else { [INFO] [stderr] 100 | | type_protobuf_name(field.get_field_type()) [INFO] [stderr] 101 | | } [INFO] [stderr] 102 | | } [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/field.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | / match self { [INFO] [stderr] 199 | | &FieldKind::Singular(ref s) => &s.elem, [INFO] [stderr] 200 | | &FieldKind::Repeated(ref r) => &r.elem, [INFO] [stderr] 201 | | &FieldKind::Oneof(ref o) => &o.elem, [INFO] [stderr] ... | [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [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] 198 | match *self { [INFO] [stderr] 199 | FieldKind::Singular(ref s) => &s.elem, [INFO] [stderr] 200 | FieldKind::Repeated(ref r) => &r.elem, [INFO] [stderr] 201 | FieldKind::Oneof(ref o) => &o.elem, [INFO] [stderr] 202 | FieldKind::Map(..) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method is never used: `supports_derive_partial_eq` [INFO] [stderr] --> src/message.rs:381:5 [INFO] [stderr] | [INFO] [stderr] 381 | fn supports_derive_partial_eq(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | / match self { [INFO] [stderr] 277 | | &FieldElem::Primitive(_, v) => v, [INFO] [stderr] 278 | | _ => PrimitiveTypeVariant::Default, [INFO] [stderr] 279 | | } [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] 276 | match *self { [INFO] [stderr] 277 | FieldElem::Primitive(_, v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/message.rs:115:29 [INFO] [stderr] | [INFO] [stderr] 115 | let ref field = variant.field; [INFO] [stderr] | ----^^^^^^^^^----------------- help: try: `let field = &variant.field;` [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] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:217:19 [INFO] [stderr] | [INFO] [stderr] 217 | w.def_fn(&format!("merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()>"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()>".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: useless use of `format!` [INFO] [stderr] --> src/message.rs:219:31 [INFO] [stderr] | [INFO] [stderr] 219 | w.write_line(&format!("let (field_number, wire_type) = is.read_tag_unpack()?;")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"let (field_number, wire_type) = is.read_tag_unpack()?;".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/field.rs:630:17 [INFO] [stderr] | [INFO] [stderr] 630 | / match elem.is_copy() { [INFO] [stderr] 631 | | true => elem.rust_storage_type(), [INFO] [stderr] 632 | | false => elem.rust_storage_type().ref_type(), [INFO] [stderr] 633 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if elem.is_copy() { elem.rust_storage_type() } else { elem.rust_storage_type().ref_type() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:260:19 [INFO] [stderr] | [INFO] [stderr] 260 | w.def_fn(&format!("descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:264:35 [INFO] [stderr] | [INFO] [stderr] 264 | w.write_line(&format!("let fields = ::std::vec::Vec::new();")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"let fields = ::std::vec::Vec::new();".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:266:35 [INFO] [stderr] | [INFO] [stderr] 266 | w.write_line(&format!("let mut fields = ::std::vec::Vec::new();")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"let mut fields = ::std::vec::Vec::new();".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/message.rs:284:19 [INFO] [stderr] | [INFO] [stderr] 284 | w.def_fn(&format!("is_initialized(&self) -> bool"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"is_initialized(&self) -> bool".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/field.rs:680:14 [INFO] [stderr] | [INFO] [stderr] 680 | .expect(&format!("failed to parse float: {:?}", proto_default)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("failed to parse float: {:?}", proto_default))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/field.rs:717:57 [INFO] [stderr] | [INFO] [stderr] 717 | FieldDescriptorProto_Type::TYPE_BOOL => format!("{}", proto_default), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `proto_default.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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 match on a boolean expression [INFO] [stderr] --> src/message.rs:427:31 [INFO] [stderr] | [INFO] [stderr] 427 | let vis = match self.expose_oneof() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 428 | | true => Visibility::Public, [INFO] [stderr] 429 | | false => Visibility::Default, [INFO] [stderr] 430 | | }; [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if self.expose_oneof() { Visibility::Public } else { Visibility::Default }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:816:17 [INFO] [stderr] | [INFO] [stderr] 816 | / if let &FieldElem::Message(ref name, ..) = elem { [INFO] [stderr] 817 | | // TODO: old style, needed because of default instance [INFO] [stderr] 818 | | [INFO] [stderr] 819 | | AccessorFn { [INFO] [stderr] ... | [INFO] [stderr] 829 | | } [INFO] [stderr] 830 | | } [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] 816 | if let FieldElem::Message(ref name, ..) = *elem { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:864:17 [INFO] [stderr] | [INFO] [stderr] 864 | / match elem { [INFO] [stderr] 865 | | &FieldElem::Message(ref name, ..) | [INFO] [stderr] 866 | | &FieldElem::Enum(ref name, ..) => { [INFO] [stderr] 867 | | type_params.push(name.to_owned()); [INFO] [stderr] 868 | | } [INFO] [stderr] 869 | | _ => (), [INFO] [stderr] 870 | | } [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] 864 | match *elem { [INFO] [stderr] 865 | FieldElem::Message(ref name, ..) | [INFO] [stderr] 866 | FieldElem::Enum(ref name, ..) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/enums.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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/enums.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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/enums.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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/enums.rs:198:35 [INFO] [stderr] | [INFO] [stderr] 198 | w.write_line(&format!("_ => ::std::option::Option::None")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"_ => ::std::option::Option::None".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/enums.rs:203:23 [INFO] [stderr] | [INFO] [stderr] 203 | w.def_fn(&format!("values() -> &'static [Self]"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"values() -> &'static [Self]".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/enums.rs:216:27 [INFO] [stderr] | [INFO] [stderr] 216 | w.def_fn(&format!("enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor"), |w| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor".to_string()` [INFO] [stderr] | [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/enums.rs:218:29 [INFO] [stderr] | [INFO] [stderr] 218 | let ref type_name = self.type_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let type_name = &self.type_name;` [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 match on a boolean expression [INFO] [stderr] --> src/field.rs:1044:34 [INFO] [stderr] | [INFO] [stderr] 1044 | let ref_prefix = match elem.rust_storage_type().is_copy() { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 1045 | | true => "", [INFO] [stderr] 1046 | | false => "ref ", [INFO] [stderr] 1047 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if elem.rust_storage_type().is_copy() { "" } else { "ref " }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:1140:9 [INFO] [stderr] | [INFO] [stderr] 1140 | / match self.singular() { [INFO] [stderr] 1141 | | &SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1142 | | self.write_self_field_assign(w, &full_storage_type.wrap_value(value)); [INFO] [stderr] 1143 | | } [INFO] [stderr] ... | [INFO] [stderr] 1146 | | } [INFO] [stderr] 1147 | | } [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] 1140 | match *self.singular() { [INFO] [stderr] 1141 | SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1142 | self.write_self_field_assign(w, &full_storage_type.wrap_value(value)); [INFO] [stderr] 1143 | } [INFO] [stderr] 1144 | SingularField { flag: SingularFieldFlag::WithoutFlag, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/rust_types_values.rs:228:24 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn into_target(&self, target: &RustType, v: &str) -> String { [INFO] [stderr] | ^^^^^ [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: use of `expect` followed by a function call [INFO] [stderr] --> src/rust_types_values.rs:230:14 [INFO] [stderr] | [INFO] [stderr] 230 | .expect(&format!("failed to convert {:?} into {:?}", self, target)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("failed to convert {:?} into {:?}", self))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/field.rs:1561:17 [INFO] [stderr] | [INFO] [stderr] 1561 | let ref field_type_name = self.elem().rust_storage_type(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^----------------------------------- help: try: `let field_type_name = &self.elem().rust_storage_type();` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:1570:13 [INFO] [stderr] | [INFO] [stderr] 1570 | / match self.singular() { [INFO] [stderr] 1571 | | &SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1572 | | if get_xxx_return_type.is_ref() { [INFO] [stderr] 1573 | | let as_option = self.self_field_as_option(); [INFO] [stderr] ... | [INFO] [stderr] 1594 | | } [INFO] [stderr] 1595 | | } [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] 1570 | match *self.singular() { [INFO] [stderr] 1571 | SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1572 | if get_xxx_return_type.is_ref() { [INFO] [stderr] 1573 | let as_option = self.self_field_as_option(); [INFO] [stderr] 1574 | w.match_expr(&as_option.value, |w| { [INFO] [stderr] 1575 | let v_type = as_option.rust_type.elem_type(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/field.rs:1694:13 [INFO] [stderr] | [INFO] [stderr] 1694 | let ref name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^------------------ help: try: `let name = &self.rust_name;` [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/rust_types_values.rs:235:43 [INFO] [stderr] | [INFO] [stderr] 235 | (x, y) if x == y => return Ok(format!("{}", v)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `v.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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/rust_types_values.rs:282:9 [INFO] [stderr] | [INFO] [stderr] 282 | / if let &RustType::Ref(ref s) = self { [INFO] [stderr] 283 | | if let Ok(conv) = s.try_into_target(target, v) { [INFO] [stderr] 284 | | return Ok(conv); [INFO] [stderr] 285 | | } [INFO] [stderr] 286 | | } [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] 282 | if let RustType::Ref(ref s) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/rust_types_values.rs:339:22 [INFO] [stderr] | [INFO] [stderr] 339 | pub fn into_type(&self, target: RustType) -> RustValueTyped { [INFO] [stderr] | ^^^^^ [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 both the expression and the patterns [INFO] [stderr] --> src/oneof.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | let boxed = if let &FieldElem::Message(ref name, ..) = &elem { [INFO] [stderr] | _____________________^ [INFO] [stderr] 34 | | if *name == oneof.message.rust_name() { [INFO] [stderr] 35 | | true [INFO] [stderr] 36 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 40 | | false [INFO] [stderr] 41 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 33 | let boxed = if let FieldElem::Message(ref name, ..) = elem { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/oneof.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / if *name == oneof.message.rust_name() { [INFO] [stderr] 35 | | true [INFO] [stderr] 36 | | } else { [INFO] [stderr] 37 | | false [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `*name == oneof.message.rust_name()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/oneof.rs:141:22 [INFO] [stderr] | [INFO] [stderr] 141 | .expect(&format!("field not found by name: {}", v.field.get_name())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("field not found by name: {}", v.field.get_name()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/oneof.rs:136:29 [INFO] [stderr] | [INFO] [stderr] 136 | let field = self.message [INFO] [stderr] | _____________________________^ [INFO] [stderr] 137 | | .fields [INFO] [stderr] 138 | | .iter() [INFO] [stderr] 139 | | .filter(|f| f.proto_field.name() == v.field.get_name()) [INFO] [stderr] 140 | | .next() [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|f| f.proto_field.name() == v.field.get_name()).next()` with `find(|f| f.proto_field.name() == v.field.get_name())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | format!("{}", message_or_enum.rust_name()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `message_or_enum.rust_name().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/float.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | format!("{}", PROTOBUF_INF) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `PROTOBUF_INF.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: strict comparison of f32 or f64 [INFO] [stderr] --> src/float.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | if i as f64 == f { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(i as f64 - f).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/float.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | if i as f64 == f { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rust_types_values.rs:482:9 [INFO] [stderr] | [INFO] [stderr] 482 | / match self { [INFO] [stderr] 483 | | &ProtobufTypeGen::Primitive(t, PrimitiveTypeVariant::Default) => { [INFO] [stderr] 484 | | format!( [INFO] [stderr] 485 | | "::protobuf::types::ProtobufType{}", [INFO] [stderr] ... | [INFO] [stderr] 503 | | } [INFO] [stderr] 504 | | } [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] 482 | match *self { [INFO] [stderr] 483 | ProtobufTypeGen::Primitive(t, PrimitiveTypeVariant::Default) => { [INFO] [stderr] 484 | format!( [INFO] [stderr] 485 | "::protobuf::types::ProtobufType{}", [INFO] [stderr] 486 | capitalize(protobuf_name(t)) [INFO] [stderr] 487 | ) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:492:18 [INFO] [stderr] | [INFO] [stderr] 492 | ) => format!("::protobuf::types::ProtobufTypeCarllercheBytes"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"::protobuf::types::ProtobufTypeCarllercheBytes".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/rust_types_values.rs:496:18 [INFO] [stderr] | [INFO] [stderr] 496 | ) => format!("::protobuf::types::ProtobufTypeCarllercheChars"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"::protobuf::types::ProtobufTypeCarllercheChars".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/code_writer.rs:76:25 [INFO] [stderr] | [INFO] [stderr] 76 | self.write_line(format!("unimplemented!();")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"unimplemented!();".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/code_writer.rs:126:27 [INFO] [stderr] | [INFO] [stderr] 126 | w.write_line(&format!("}})")); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"}})".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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/field.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | / fn field_type_protobuf_name<'a>(field: &'a FieldDescriptorProto) -> &'a str { [INFO] [stderr] 97 | | if field.has_type_name() { [INFO] [stderr] 98 | | field.get_type_name() [INFO] [stderr] 99 | | } else { [INFO] [stderr] 100 | | type_protobuf_name(field.get_field_type()) [INFO] [stderr] 101 | | } [INFO] [stderr] 102 | | } [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/field.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | / match self { [INFO] [stderr] 199 | | &FieldKind::Singular(ref s) => &s.elem, [INFO] [stderr] 200 | | &FieldKind::Repeated(ref r) => &r.elem, [INFO] [stderr] 201 | | &FieldKind::Oneof(ref o) => &o.elem, [INFO] [stderr] ... | [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [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] 198 | match *self { [INFO] [stderr] 199 | FieldKind::Singular(ref s) => &s.elem, [INFO] [stderr] 200 | FieldKind::Repeated(ref r) => &r.elem, [INFO] [stderr] 201 | FieldKind::Oneof(ref o) => &o.elem, [INFO] [stderr] 202 | FieldKind::Map(..) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:174:50 [INFO] [stderr] | [INFO] [stderr] 174 | let file = files_map.get(&file_name[..]).expect(&format!( [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 175 | | "file not found in file descriptors: {:?}, files: {:?}", [INFO] [stderr] 176 | | file_name, [INFO] [stderr] 177 | | all_file_names [INFO] [stderr] 178 | | )); [INFO] [stderr] | |__________^ help: try this: `unwrap_or_else(|| panic!("file not found in file descriptors: {:?}, files: {:?}", file_name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | / match self { [INFO] [stderr] 277 | | &FieldElem::Primitive(_, v) => v, [INFO] [stderr] 278 | | _ => PrimitiveTypeVariant::Default, [INFO] [stderr] 279 | | } [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] 276 | match *self { [INFO] [stderr] 277 | FieldElem::Primitive(_, v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: Could not compile `protobuf-codegen`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/field.rs:630:17 [INFO] [stderr] | [INFO] [stderr] 630 | / match elem.is_copy() { [INFO] [stderr] 631 | | true => elem.rust_storage_type(), [INFO] [stderr] 632 | | false => elem.rust_storage_type().ref_type(), [INFO] [stderr] 633 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if elem.is_copy() { elem.rust_storage_type() } else { elem.rust_storage_type().ref_type() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/field.rs:680:14 [INFO] [stderr] | [INFO] [stderr] 680 | .expect(&format!("failed to parse float: {:?}", proto_default)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("failed to parse float: {:?}", proto_default))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/field.rs:717:57 [INFO] [stderr] | [INFO] [stderr] 717 | FieldDescriptorProto_Type::TYPE_BOOL => format!("{}", proto_default), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `proto_default.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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/field.rs:816:17 [INFO] [stderr] | [INFO] [stderr] 816 | / if let &FieldElem::Message(ref name, ..) = elem { [INFO] [stderr] 817 | | // TODO: old style, needed because of default instance [INFO] [stderr] 818 | | [INFO] [stderr] 819 | | AccessorFn { [INFO] [stderr] ... | [INFO] [stderr] 829 | | } [INFO] [stderr] 830 | | } [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] 816 | if let FieldElem::Message(ref name, ..) = *elem { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:864:17 [INFO] [stderr] | [INFO] [stderr] 864 | / match elem { [INFO] [stderr] 865 | | &FieldElem::Message(ref name, ..) | [INFO] [stderr] 866 | | &FieldElem::Enum(ref name, ..) => { [INFO] [stderr] 867 | | type_params.push(name.to_owned()); [INFO] [stderr] 868 | | } [INFO] [stderr] 869 | | _ => (), [INFO] [stderr] 870 | | } [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] 864 | match *elem { [INFO] [stderr] 865 | FieldElem::Message(ref name, ..) | [INFO] [stderr] 866 | FieldElem::Enum(ref name, ..) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/field.rs:1044:34 [INFO] [stderr] | [INFO] [stderr] 1044 | let ref_prefix = match elem.rust_storage_type().is_copy() { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 1045 | | true => "", [INFO] [stderr] 1046 | | false => "ref ", [INFO] [stderr] 1047 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if elem.rust_storage_type().is_copy() { "" } else { "ref " }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:1140:9 [INFO] [stderr] | [INFO] [stderr] 1140 | / match self.singular() { [INFO] [stderr] 1141 | | &SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1142 | | self.write_self_field_assign(w, &full_storage_type.wrap_value(value)); [INFO] [stderr] 1143 | | } [INFO] [stderr] ... | [INFO] [stderr] 1146 | | } [INFO] [stderr] 1147 | | } [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] 1140 | match *self.singular() { [INFO] [stderr] 1141 | SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1142 | self.write_self_field_assign(w, &full_storage_type.wrap_value(value)); [INFO] [stderr] 1143 | } [INFO] [stderr] 1144 | SingularField { flag: SingularFieldFlag::WithoutFlag, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/field.rs:1561:17 [INFO] [stderr] | [INFO] [stderr] 1561 | let ref field_type_name = self.elem().rust_storage_type(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^----------------------------------- help: try: `let field_type_name = &self.elem().rust_storage_type();` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/field.rs:1570:13 [INFO] [stderr] | [INFO] [stderr] 1570 | / match self.singular() { [INFO] [stderr] 1571 | | &SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1572 | | if get_xxx_return_type.is_ref() { [INFO] [stderr] 1573 | | let as_option = self.self_field_as_option(); [INFO] [stderr] ... | [INFO] [stderr] 1594 | | } [INFO] [stderr] 1595 | | } [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] 1570 | match *self.singular() { [INFO] [stderr] 1571 | SingularField { flag: SingularFieldFlag::WithFlag { .. }, .. } => { [INFO] [stderr] 1572 | if get_xxx_return_type.is_ref() { [INFO] [stderr] 1573 | let as_option = self.self_field_as_option(); [INFO] [stderr] 1574 | w.match_expr(&as_option.value, |w| { [INFO] [stderr] 1575 | let v_type = as_option.rust_type.elem_type(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/field.rs:1694:13 [INFO] [stderr] | [INFO] [stderr] 1694 | let ref name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^------------------ help: try: `let name = &self.rust_name;` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/oneof.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | let boxed = if let &FieldElem::Message(ref name, ..) = &elem { [INFO] [stderr] | _____________________^ [INFO] [stderr] 34 | | if *name == oneof.message.rust_name() { [INFO] [stderr] 35 | | true [INFO] [stderr] 36 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 40 | | false [INFO] [stderr] 41 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 33 | let boxed = if let FieldElem::Message(ref name, ..) = elem { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/oneof.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / if *name == oneof.message.rust_name() { [INFO] [stderr] 35 | | true [INFO] [stderr] 36 | | } else { [INFO] [stderr] 37 | | false [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____________^ help: you can reduce it to: `*name == oneof.message.rust_name()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/oneof.rs:141:22 [INFO] [stderr] | [INFO] [stderr] 141 | .expect(&format!("field not found by name: {}", v.field.get_name())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("field not found by name: {}", v.field.get_name()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/oneof.rs:136:29 [INFO] [stderr] | [INFO] [stderr] 136 | let field = self.message [INFO] [stderr] | _____________________________^ [INFO] [stderr] 137 | | .fields [INFO] [stderr] 138 | | .iter() [INFO] [stderr] 139 | | .filter(|f| f.proto_field.name() == v.field.get_name()) [INFO] [stderr] 140 | | .next() [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|f| f.proto_field.name() == v.field.get_name()).next()` with `find(|f| f.proto_field.name() == v.field.get_name())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/float.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | format!("{}", PROTOBUF_INF) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `PROTOBUF_INF.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: strict comparison of f32 or f64 [INFO] [stderr] --> src/float.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | if i as f64 == f { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(i as f64 - f).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/float.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | if i as f64 == f { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/code_writer.rs:76:25 [INFO] [stderr] | [INFO] [stderr] 76 | self.write_line(format!("unimplemented!();")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"unimplemented!();".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/code_writer.rs:126:27 [INFO] [stderr] | [INFO] [stderr] 126 | w.write_line(&format!("}})")); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"}})".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:174:50 [INFO] [stderr] | [INFO] [stderr] 174 | let file = files_map.get(&file_name[..]).expect(&format!( [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 175 | | "file not found in file descriptors: {:?}, files: {:?}", [INFO] [stderr] 176 | | file_name, [INFO] [stderr] 177 | | all_file_names [INFO] [stderr] 178 | | )); [INFO] [stderr] | |__________^ help: try this: `unwrap_or_else(|| panic!("file not found in file descriptors: {:?}, files: {:?}", file_name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `protobuf-codegen`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "fdb99dec8db86629893b55b05bb8dc7b24d71513a7662912d1e1f3db6b706980"` [INFO] running `"docker" "rm" "-f" "fdb99dec8db86629893b55b05bb8dc7b24d71513a7662912d1e1f3db6b706980"` [INFO] [stdout] fdb99dec8db86629893b55b05bb8dc7b24d71513a7662912d1e1f3db6b706980