[INFO] updating cached repository eqrion/cbindgen [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/eqrion/cbindgen [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/eqrion/cbindgen" "work/ex/clippy-test-run/sources/stable/gh/eqrion/cbindgen"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/eqrion/cbindgen'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/eqrion/cbindgen" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/eqrion/cbindgen"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/eqrion/cbindgen'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d021772346ddf5db311dcf1e001427a1123305cd [INFO] sha for GitHub repo eqrion/cbindgen: d021772346ddf5db311dcf1e001427a1123305cd [INFO] validating manifest of eqrion/cbindgen 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 eqrion/cbindgen 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 eqrion/cbindgen [INFO] finished frobbing eqrion/cbindgen [INFO] frobbed toml for eqrion/cbindgen written to work/ex/clippy-test-run/sources/stable/gh/eqrion/cbindgen/Cargo.toml [INFO] started frobbing eqrion/cbindgen [INFO] finished frobbing eqrion/cbindgen [INFO] frobbed toml for eqrion/cbindgen written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/eqrion/cbindgen/Cargo.toml [INFO] crate eqrion/cbindgen has a lockfile. skipping [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 eqrion/cbindgen against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/eqrion/cbindgen:/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] b05d26286baf96ccfde2278e4796d25a985bf01163d76397ee8d5ccf430058ce [INFO] running `"docker" "start" "-a" "b05d26286baf96ccfde2278e4796d25a985bf01163d76397ee8d5ccf430058ce"` [INFO] [stderr] Compiling serde v1.0.64 [INFO] [stderr] Checking proc-macro2 v0.4.4 [INFO] [stderr] Checking tempfile v3.0.3 [INFO] [stderr] Compiling syn v0.13.11 [INFO] [stderr] Checking quote v0.6.3 [INFO] [stderr] Checking syn v0.14.1 [INFO] [stderr] Compiling serde_derive v1.0.58 [INFO] [stderr] Checking toml v0.4.6 [INFO] [stderr] Checking serde_json v1.0.19 [INFO] [stderr] Checking cbindgen v0.6.7 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bindgen/bindings.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/bindgen/bindings.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | globals: globals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `globals` [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/bindgen/bindings.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | constants: constants, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constants` [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/bindgen/bindings.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | items: items, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [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/bindgen/bindings.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | functions: functions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `functions` [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/bindgen/cargo/cargo.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | binding_crate_name: binding_crate_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `binding_crate_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/bindgen/cargo/cargo.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | lock: lock, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lock` [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/bindgen/cargo/cargo.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | metadata: metadata, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata` [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/bindgen/cargo/cargo.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | clean: clean, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `clean` [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/bindgen/ir/annotation.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | annotations: annotations, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `annotations` [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/bindgen/library.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/bindgen/library.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | constants: constants, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constants` [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/bindgen/library.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | globals: globals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `globals` [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/bindgen/library.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | enums: enums, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `enums` [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/bindgen/library.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | structs: structs, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `structs` [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/bindgen/library.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | unions: unions, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `unions` [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/bindgen/library.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | opaque_items: opaque_items, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `opaque_items` [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/bindgen/library.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | typedefs: typedefs, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `typedefs` [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/bindgen/library.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | functions: functions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `functions` [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/bindgen/parser.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | parse_deps: parse_deps, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_deps` [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/bindgen/writer.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [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/bindgen/writer.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/bindgen/writer.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | write!(self.out, "\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/bindgen/bindings.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/bindgen/bindings.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | globals: globals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `globals` [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/bindgen/bindings.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | constants: constants, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constants` [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/bindgen/bindings.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | items: items, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [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/bindgen/bindings.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | functions: functions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `functions` [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/bindgen/cargo/cargo.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | binding_crate_name: binding_crate_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `binding_crate_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/bindgen/cargo/cargo.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | lock: lock, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lock` [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/bindgen/cargo/cargo.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | metadata: metadata, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata` [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/bindgen/cargo/cargo.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | clean: clean, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `clean` [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/bindgen/ir/annotation.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | annotations: annotations, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `annotations` [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/bindgen/library.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/bindgen/library.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | constants: constants, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constants` [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/bindgen/library.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | globals: globals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `globals` [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/bindgen/library.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | enums: enums, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `enums` [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/bindgen/library.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | structs: structs, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `structs` [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/bindgen/library.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | unions: unions, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `unions` [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/bindgen/library.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | opaque_items: opaque_items, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `opaque_items` [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/bindgen/library.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | typedefs: typedefs, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `typedefs` [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/bindgen/library.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | functions: functions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `functions` [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/bindgen/parser.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | parse_deps: parse_deps, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_deps` [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/bindgen/writer.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [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/bindgen/writer.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/bindgen/writer.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | write!(self.out, "\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: module has the same name as its containing module [INFO] [stderr] --> src/bindgen/cargo/mod.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | mod cargo; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bindgen/config.rs:22:21 [INFO] [stderr] | [INFO] [stderr] 22 | pub const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [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: unneeded return statement [INFO] [stderr] --> src/bindgen/ir/cfg.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | return DefineKey::Boolean(key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `DefineKey::Boolean(key)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/bindgen/ir/constant.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | name: _, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Struct { export_name, fields, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/bindgen/ir/constant.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | name: _, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Struct { ref mut export_name, fields, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:536:16 [INFO] [stderr] | [INFO] [stderr] 536 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 537 | | if let Some(prim) = size { [INFO] [stderr] 538 | | write!(out, "enum class {} : {}", enum_name, prim); [INFO] [stderr] 539 | | } else { [INFO] [stderr] 540 | | write!(out, "enum class {}", enum_name); [INFO] [stderr] 541 | | } [INFO] [stderr] 542 | | } [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] 536 | } else if let Some(prim) = size { [INFO] [stderr] 537 | write!(out, "enum class {} : {}", enum_name, prim); [INFO] [stderr] 538 | } else { [INFO] [stderr] 539 | write!(out, "enum class {}", enum_name); [INFO] [stderr] 540 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/function.rs:152:20 [INFO] [stderr] | [INFO] [stderr] 152 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 153 | | if let Some(ref prefix) = prefix { [INFO] [stderr] 154 | | write!(out, "{}", prefix); [INFO] [stderr] 155 | | out.write(" "); [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 152 | } else if let Some(ref prefix) = prefix { [INFO] [stderr] 153 | write!(out, "{}", prefix); [INFO] [stderr] 154 | out.write(" "); [INFO] [stderr] 155 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/function.rs:183:20 [INFO] [stderr] | [INFO] [stderr] 183 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 184 | | if let Some(ref prefix) = prefix { [INFO] [stderr] 185 | | write!(out, "{}", prefix); [INFO] [stderr] 186 | | out.new_line(); [INFO] [stderr] 187 | | } [INFO] [stderr] 188 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 183 | } else if let Some(ref prefix) = prefix { [INFO] [stderr] 184 | write!(out, "{}", prefix); [INFO] [stderr] 185 | out.new_line(); [INFO] [stderr] 186 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | / if !self.0.is_empty() { [INFO] [stderr] 43 | | if config.language == Language::Cxx { [INFO] [stderr] 44 | | out.write("template<"); [INFO] [stderr] 45 | | for (i, item) in self.0.iter().enumerate() { [INFO] [stderr] ... | [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 42 | if !self.0.is_empty() && config.language == Language::Cxx { [INFO] [stderr] 43 | out.write("template<"); [INFO] [stderr] 44 | for (i, item) in self.0.iter().enumerate() { [INFO] [stderr] 45 | if i != 0 { [INFO] [stderr] 46 | out.write(", "); [INFO] [stderr] 47 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/global.rs:112:16 [INFO] [stderr] | [INFO] [stderr] 112 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 113 | | if !self.mutable { [INFO] [stderr] 114 | | out.write("const "); [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 112 | } else if !self.mutable { [INFO] [stderr] 113 | out.write("const "); [INFO] [stderr] 114 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bindgen/ir/ty.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | return Ok(Some(converted)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(converted))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bindgen/parser.rs:20:20 [INFO] [stderr] | [INFO] [stderr] 20 | const STD_CRATES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'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/bindgen/parser.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | const STD_CRATES: &'static [&'static str] = &[ [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: unneeded return statement [INFO] [stderr] --> src/bindgen/parser.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | return !STD_CRATES.contains(&pkg_name.as_ref()) && !self.exclude.contains(&pkg_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `!STD_CRATES.contains(&pkg_name.as_ref()) && !self.exclude.contains(&pkg_name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bindgen/reserved.rs:8:29 [INFO] [stderr] | [INFO] [stderr] 8 | const RESERVED_KEYWORDS: &[&'static str] = &[ [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: unneeded return statement [INFO] [stderr] --> src/bindgen/utilities.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | &syn::Item::Fn(ref item) => (|$i: &syn::ItemFn| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | &syn::Item::ForeignMod(ref item) => (|$i: &syn::ItemForeignMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | &syn::Item::Impl(ref item) => (|$i: &syn::ItemImpl| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | &syn::Item::Macro(ref item) => (|$i: &syn::ItemMacro| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | &syn::Item::Macro2(ref item) => (|$i: &syn::ItemMacro2| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | &syn::Item::Mod(ref item) => (|$i: &syn::ItemMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | &syn::Item::Static(ref item) => (|$i: &syn::ItemStatic| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:79:45 [INFO] [stderr] | [INFO] [stderr] 79 | &syn::Item::Struct(ref item) => (|$i: &syn::ItemStruct| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:80:44 [INFO] [stderr] | [INFO] [stderr] 80 | &syn::Item::Trait(ref item) => (|$i: &syn::ItemTrait| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:81:43 [INFO] [stderr] | [INFO] [stderr] 81 | &syn::Item::Type(ref item) => (|$i: &syn::ItemType| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:82:44 [INFO] [stderr] | [INFO] [stderr] 82 | &syn::Item::Union(ref item) => (|$i: &syn::ItemUnion| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:83:42 [INFO] [stderr] | [INFO] [stderr] 83 | &syn::Item::Use(ref item) => (|$i: &syn::ItemUse| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] | ^^^^^^^^^ help: Try doing something like: : `)` [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | &syn::Item::Fn(ref item) => (|$i: &syn::ItemFn| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | &syn::Item::ForeignMod(ref item) => (|$i: &syn::ItemForeignMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | &syn::Item::Impl(ref item) => (|$i: &syn::ItemImpl| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | &syn::Item::Macro(ref item) => (|$i: &syn::ItemMacro| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | &syn::Item::Macro2(ref item) => (|$i: &syn::ItemMacro2| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | &syn::Item::Mod(ref item) => (|$i: &syn::ItemMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | &syn::Item::Static(ref item) => (|$i: &syn::ItemStatic| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:79:45 [INFO] [stderr] | [INFO] [stderr] 79 | &syn::Item::Struct(ref item) => (|$i: &syn::ItemStruct| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:80:44 [INFO] [stderr] | [INFO] [stderr] 80 | &syn::Item::Trait(ref item) => (|$i: &syn::ItemTrait| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:81:43 [INFO] [stderr] | [INFO] [stderr] 81 | &syn::Item::Type(ref item) => (|$i: &syn::ItemType| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:82:44 [INFO] [stderr] | [INFO] [stderr] 82 | &syn::Item::Union(ref item) => (|$i: &syn::ItemUnion| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:83:42 [INFO] [stderr] | [INFO] [stderr] 83 | &syn::Item::Use(ref item) => (|$i: &syn::ItemUse| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] | ^^^^^^^^^ help: Try doing something like: : `)` [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | &syn::Item::Fn(ref item) => (|$i: &syn::ItemFn| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | &syn::Item::ForeignMod(ref item) => (|$i: &syn::ItemForeignMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | &syn::Item::Impl(ref item) => (|$i: &syn::ItemImpl| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | &syn::Item::Macro(ref item) => (|$i: &syn::ItemMacro| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | &syn::Item::Macro2(ref item) => (|$i: &syn::ItemMacro2| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | &syn::Item::Mod(ref item) => (|$i: &syn::ItemMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | &syn::Item::Static(ref item) => (|$i: &syn::ItemStatic| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:79:45 [INFO] [stderr] | [INFO] [stderr] 79 | &syn::Item::Struct(ref item) => (|$i: &syn::ItemStruct| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:80:44 [INFO] [stderr] | [INFO] [stderr] 80 | &syn::Item::Trait(ref item) => (|$i: &syn::ItemTrait| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:81:43 [INFO] [stderr] | [INFO] [stderr] 81 | &syn::Item::Type(ref item) => (|$i: &syn::ItemType| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:82:44 [INFO] [stderr] | [INFO] [stderr] 82 | &syn::Item::Union(ref item) => (|$i: &syn::ItemUnion| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:83:42 [INFO] [stderr] | [INFO] [stderr] 83 | &syn::Item::Use(ref item) => (|$i: &syn::ItemUse| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] | ^^^^^^^^^ help: Try doing something like: : `)` [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/bindgen/cargo/mod.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | mod cargo; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bindgen/config.rs:22:21 [INFO] [stderr] | [INFO] [stderr] 22 | pub const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [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: unneeded return statement [INFO] [stderr] --> src/bindgen/ir/cfg.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | return DefineKey::Boolean(key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `DefineKey::Boolean(key)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/bindgen/ir/constant.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | name: _, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Struct { export_name, fields, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/bindgen/ir/constant.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | name: _, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Struct { ref mut export_name, fields, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:536:16 [INFO] [stderr] | [INFO] [stderr] 536 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 537 | | if let Some(prim) = size { [INFO] [stderr] 538 | | write!(out, "enum class {} : {}", enum_name, prim); [INFO] [stderr] 539 | | } else { [INFO] [stderr] 540 | | write!(out, "enum class {}", enum_name); [INFO] [stderr] 541 | | } [INFO] [stderr] 542 | | } [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] 536 | } else if let Some(prim) = size { [INFO] [stderr] 537 | write!(out, "enum class {} : {}", enum_name, prim); [INFO] [stderr] 538 | } else { [INFO] [stderr] 539 | write!(out, "enum class {}", enum_name); [INFO] [stderr] 540 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/function.rs:152:20 [INFO] [stderr] | [INFO] [stderr] 152 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 153 | | if let Some(ref prefix) = prefix { [INFO] [stderr] 154 | | write!(out, "{}", prefix); [INFO] [stderr] 155 | | out.write(" "); [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 152 | } else if let Some(ref prefix) = prefix { [INFO] [stderr] 153 | write!(out, "{}", prefix); [INFO] [stderr] 154 | out.write(" "); [INFO] [stderr] 155 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/function.rs:183:20 [INFO] [stderr] | [INFO] [stderr] 183 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 184 | | if let Some(ref prefix) = prefix { [INFO] [stderr] 185 | | write!(out, "{}", prefix); [INFO] [stderr] 186 | | out.new_line(); [INFO] [stderr] 187 | | } [INFO] [stderr] 188 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 183 | } else if let Some(ref prefix) = prefix { [INFO] [stderr] 184 | write!(out, "{}", prefix); [INFO] [stderr] 185 | out.new_line(); [INFO] [stderr] 186 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | / if !self.0.is_empty() { [INFO] [stderr] 43 | | if config.language == Language::Cxx { [INFO] [stderr] 44 | | out.write("template<"); [INFO] [stderr] 45 | | for (i, item) in self.0.iter().enumerate() { [INFO] [stderr] ... | [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 42 | if !self.0.is_empty() && config.language == Language::Cxx { [INFO] [stderr] 43 | out.write("template<"); [INFO] [stderr] 44 | for (i, item) in self.0.iter().enumerate() { [INFO] [stderr] 45 | if i != 0 { [INFO] [stderr] 46 | out.write(", "); [INFO] [stderr] 47 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bindgen/ir/global.rs:112:16 [INFO] [stderr] | [INFO] [stderr] 112 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 113 | | if !self.mutable { [INFO] [stderr] 114 | | out.write("const "); [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 112 | } else if !self.mutable { [INFO] [stderr] 113 | out.write("const "); [INFO] [stderr] 114 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bindgen/ir/ty.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | return Ok(Some(converted)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(converted))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bindgen/parser.rs:20:20 [INFO] [stderr] | [INFO] [stderr] 20 | const STD_CRATES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'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/bindgen/parser.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | const STD_CRATES: &'static [&'static str] = &[ [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: unneeded return statement [INFO] [stderr] --> src/bindgen/parser.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | return !STD_CRATES.contains(&pkg_name.as_ref()) && !self.exclude.contains(&pkg_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `!STD_CRATES.contains(&pkg_name.as_ref()) && !self.exclude.contains(&pkg_name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bindgen/reserved.rs:8:29 [INFO] [stderr] | [INFO] [stderr] 8 | const RESERVED_KEYWORDS: &[&'static str] = &[ [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: unneeded return statement [INFO] [stderr] --> src/bindgen/utilities.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | &syn::Item::Fn(ref item) => (|$i: &syn::ItemFn| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | &syn::Item::ForeignMod(ref item) => (|$i: &syn::ItemForeignMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | &syn::Item::Impl(ref item) => (|$i: &syn::ItemImpl| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | &syn::Item::Macro(ref item) => (|$i: &syn::ItemMacro| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | &syn::Item::Macro2(ref item) => (|$i: &syn::ItemMacro2| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | &syn::Item::Mod(ref item) => (|$i: &syn::ItemMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | &syn::Item::Static(ref item) => (|$i: &syn::ItemStatic| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:79:45 [INFO] [stderr] | [INFO] [stderr] 79 | &syn::Item::Struct(ref item) => (|$i: &syn::ItemStruct| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:80:44 [INFO] [stderr] | [INFO] [stderr] 80 | &syn::Item::Trait(ref item) => (|$i: &syn::ItemTrait| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:81:43 [INFO] [stderr] | [INFO] [stderr] 81 | &syn::Item::Type(ref item) => (|$i: &syn::ItemType| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:82:44 [INFO] [stderr] | [INFO] [stderr] 82 | &syn::Item::Union(ref item) => (|$i: &syn::ItemUnion| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:83:42 [INFO] [stderr] | [INFO] [stderr] 83 | &syn::Item::Use(ref item) => (|$i: &syn::ItemUse| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] | ^^^^^^^^^ help: Try doing something like: : `)` [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | &syn::Item::Fn(ref item) => (|$i: &syn::ItemFn| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | &syn::Item::ForeignMod(ref item) => (|$i: &syn::ItemForeignMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | &syn::Item::Impl(ref item) => (|$i: &syn::ItemImpl| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | &syn::Item::Macro(ref item) => (|$i: &syn::ItemMacro| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | &syn::Item::Macro2(ref item) => (|$i: &syn::ItemMacro2| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | &syn::Item::Mod(ref item) => (|$i: &syn::ItemMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | &syn::Item::Static(ref item) => (|$i: &syn::ItemStatic| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:79:45 [INFO] [stderr] | [INFO] [stderr] 79 | &syn::Item::Struct(ref item) => (|$i: &syn::ItemStruct| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:80:44 [INFO] [stderr] | [INFO] [stderr] 80 | &syn::Item::Trait(ref item) => (|$i: &syn::ItemTrait| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:81:43 [INFO] [stderr] | [INFO] [stderr] 81 | &syn::Item::Type(ref item) => (|$i: &syn::ItemType| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:82:44 [INFO] [stderr] | [INFO] [stderr] 82 | &syn::Item::Union(ref item) => (|$i: &syn::ItemUnion| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:83:42 [INFO] [stderr] | [INFO] [stderr] 83 | &syn::Item::Use(ref item) => (|$i: &syn::ItemUse| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] | ^^^^^^^^^ help: Try doing something like: : `)` [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | &syn::Item::Fn(ref item) => (|$i: &syn::ItemFn| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | &syn::Item::ForeignMod(ref item) => (|$i: &syn::ItemForeignMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | &syn::Item::Impl(ref item) => (|$i: &syn::ItemImpl| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | &syn::Item::Macro(ref item) => (|$i: &syn::ItemMacro| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | &syn::Item::Macro2(ref item) => (|$i: &syn::ItemMacro2| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | &syn::Item::Mod(ref item) => (|$i: &syn::ItemMod| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:78:45 [INFO] [stderr] | [INFO] [stderr] 78 | &syn::Item::Static(ref item) => (|$i: &syn::ItemStatic| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:79:45 [INFO] [stderr] | [INFO] [stderr] 79 | &syn::Item::Struct(ref item) => (|$i: &syn::ItemStruct| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:80:44 [INFO] [stderr] | [INFO] [stderr] 80 | &syn::Item::Trait(ref item) => (|$i: &syn::ItemTrait| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:81:43 [INFO] [stderr] | [INFO] [stderr] 81 | &syn::Item::Type(ref item) => (|$i: &syn::ItemType| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:82:44 [INFO] [stderr] | [INFO] [stderr] 82 | &syn::Item::Union(ref item) => (|$i: &syn::ItemUnion| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:83:42 [INFO] [stderr] | [INFO] [stderr] 83 | &syn::Item::Use(ref item) => (|$i: &syn::ItemUse| $a)(item), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/bindgen/utilities.rs:84:40 [INFO] [stderr] | [INFO] [stderr] 84 | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] | ^^^^^^^^^ help: Try doing something like: : `)` [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/bindings.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | / match item { [INFO] [stderr] 153 | | &ItemContainer::Constant(..) => unreachable!(), [INFO] [stderr] 154 | | &ItemContainer::Static(..) => unreachable!(), [INFO] [stderr] 155 | | &ItemContainer::Enum(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] ... | [INFO] [stderr] 159 | | &ItemContainer::Typedef(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] 160 | | } [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] 152 | match *item { [INFO] [stderr] 153 | ItemContainer::Constant(..) => unreachable!(), [INFO] [stderr] 154 | ItemContainer::Static(..) => unreachable!(), [INFO] [stderr] 155 | ItemContainer::Enum(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] 156 | ItemContainer::Struct(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] 157 | ItemContainer::Union(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::builder::Builder` [INFO] [stderr] --> src/bindgen/builder.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Builder { [INFO] [stderr] 27 | | Builder { [INFO] [stderr] 28 | | config: Config::default(), [INFO] [stderr] 29 | | srcs: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 34 | | } [INFO] [stderr] 35 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 16 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | / if self.lock.is_none() { [INFO] [stderr] 113 | | return None; [INFO] [stderr] 114 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.lock?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | / if let &Some(ref root) = &lock.root { [INFO] [stderr] 122 | | if root.name == package.name && root.version == package.version { [INFO] [stderr] 123 | | if let Some(ref deps) = root.dependencies { [INFO] [stderr] 124 | | for dep in deps { [INFO] [stderr] ... | [INFO] [stderr] 136 | | } [INFO] [stderr] 137 | | } [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] 121 | if let Some(ref root) = lock.root { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:127:55 [INFO] [stderr] | [INFO] [stderr] 127 | if name == dependency_name || name == &replaced_name { [INFO] [stderr] | ^^^^^^^^-------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `replaced_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | / if let &Some(ref lock_packages) = &lock.package { [INFO] [stderr] 140 | | for lock_package in lock_packages { [INFO] [stderr] 141 | | if lock_package.name == package.name && lock_package.version == package.version { [INFO] [stderr] 142 | | if let Some(ref deps) = lock_package.dependencies { [INFO] [stderr] ... | [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [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] 139 | if let Some(ref lock_packages) = lock.package { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:146:59 [INFO] [stderr] | [INFO] [stderr] 146 | if name == dependency_name || name == &replaced_name { [INFO] [stderr] | ^^^^^^^^-------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `replaced_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cargo/cargo_expand.rs:90:8 [INFO] [stderr] | [INFO] [stderr] 90 | if src.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `src.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &CDeclarator::Ptr(..) => true, [INFO] [stderr] 25 | | &CDeclarator::Func(..) => true, [INFO] [stderr] 26 | | _ => false, [INFO] [stderr] 27 | | } [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] 23 | match *self { [INFO] [stderr] 24 | CDeclarator::Ptr(..) => true, [INFO] [stderr] 25 | CDeclarator::Func(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | / match t { [INFO] [stderr] 74 | | &Type::Path(ref generic) => { [INFO] [stderr] 75 | | if is_const { [INFO] [stderr] 76 | | assert!( [INFO] [stderr] ... | [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | } [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] 73 | match *t { [INFO] [stderr] 74 | Type::Path(ref generic) => { [INFO] [stderr] 75 | if is_const { [INFO] [stderr] 76 | assert!( [INFO] [stderr] 77 | self.type_qualifers.len() == 0, [INFO] [stderr] 78 | "error generating cdecl for {:?}", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | self.type_qualifers.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_qualifers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | self.type_name.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | self.type_generic_args.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_generic_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:101:25 [INFO] [stderr] | [INFO] [stderr] 101 | self.type_qualifers.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_qualifers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | self.type_name.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:148:12 [INFO] [stderr] | [INFO] [stderr] 148 | if self.type_qualifers.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.type_qualifers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | / match declarator { [INFO] [stderr] 176 | | &CDeclarator::Ptr(ref is_const) => { [INFO] [stderr] 177 | | if *is_const { [INFO] [stderr] 178 | | out.write("*const "); [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [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] 175 | match *declarator { [INFO] [stderr] 176 | CDeclarator::Ptr(ref is_const) => { [INFO] [stderr] 177 | if *is_const { [INFO] [stderr] 178 | out.write("*const "); [INFO] [stderr] 179 | } else { [INFO] [stderr] 180 | out.write("*"); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bindgen/cdecl.rs:205:38 [INFO] [stderr] | [INFO] [stderr] 205 | while let Some(declarator) = iter.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for declarator in iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:206:13 [INFO] [stderr] | [INFO] [stderr] 206 | / match declarator { [INFO] [stderr] 207 | | &CDeclarator::Ptr(..) => { [INFO] [stderr] 208 | | last_was_pointer = true; [INFO] [stderr] 209 | | } [INFO] [stderr] ... | [INFO] [stderr] 257 | | } [INFO] [stderr] 258 | | } [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] 206 | match *declarator { [INFO] [stderr] 207 | CDeclarator::Ptr(..) => { [INFO] [stderr] 208 | last_was_pointer = true; [INFO] [stderr] 209 | } [INFO] [stderr] 210 | CDeclarator::Array(ref constant) => { [INFO] [stderr] 211 | if last_was_pointer { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/bindgen/cdecl.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | &CDecl::from_func(f, layout_vertical).write(out, Some(f.path().name()), void_prototype); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `CDecl::from_func(f, layout_vertical).write(out, Some(f.path().name()), void_prototype);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/bindgen/cdecl.rs:273:5 [INFO] [stderr] | [INFO] [stderr] 273 | &CDecl::from_type(t).write(out, Some(ident), false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `CDecl::from_type(t).write(out, Some(ident), false);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/bindgen/cdecl.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | &CDecl::from_type(t).write(out, None, false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `CDecl::from_type(t).write(out, None, false);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/config.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | / match self { [INFO] [stderr] 113 | | &Style::Both => true, [INFO] [stderr] 114 | | &Style::Tag => true, [INFO] [stderr] 115 | | &Style::Type => false, [INFO] [stderr] 116 | | } [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] 112 | match *self { [INFO] [stderr] 113 | Style::Both => true, [INFO] [stderr] 114 | Style::Tag => true, [INFO] [stderr] 115 | Style::Type => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/config.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | / match self { [INFO] [stderr] 121 | | &Style::Both => true, [INFO] [stderr] 122 | | &Style::Tag => false, [INFO] [stderr] 123 | | &Style::Type => true, [INFO] [stderr] 124 | | } [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] 120 | match *self { [INFO] [stderr] 121 | Style::Both => true, [INFO] [stderr] 122 | Style::Tag => false, [INFO] [stderr] 123 | Style::Type => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bindgen/declarationtyperesolver.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn to_str(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/declarationtyperesolver.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / match self { [INFO] [stderr] 25 | | &DeclarationType::Struct => "struct", [INFO] [stderr] 26 | | &DeclarationType::Enum => "enum", [INFO] [stderr] 27 | | &DeclarationType::Union => "union", [INFO] [stderr] 28 | | } [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] 24 | match *self { [INFO] [stderr] 25 | DeclarationType::Struct => "struct", [INFO] [stderr] 26 | DeclarationType::Enum => "enum", [INFO] [stderr] 27 | DeclarationType::Union => "union", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::declarationtyperesolver::DeclarationTypeResolver` [INFO] [stderr] --> src/bindgen/declarationtyperesolver.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn new() -> DeclarationTypeResolver { [INFO] [stderr] 34 | | DeclarationTypeResolver { [INFO] [stderr] 35 | | structs: HashSet::new(), [INFO] [stderr] 36 | | enums: HashSet::new(), [INFO] [stderr] 37 | | unions: HashSet::new(), [INFO] [stderr] 38 | | } [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::dependencies::Dependencies` [INFO] [stderr] --> src/bindgen/dependencies.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new() -> Dependencies { [INFO] [stderr] 18 | | Dependencies { [INFO] [stderr] 19 | | order: Vec::new(), [INFO] [stderr] 20 | | items: HashSet::new(), [INFO] [stderr] 21 | | } [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/error.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | / match self { [INFO] [stderr] 31 | | &Error::CargoMetadata(ref path, ref error) => write!( [INFO] [stderr] 32 | | f, [INFO] [stderr] 33 | | "Couldn't execute `cargo metadata` with manifest {:?}: {:?}", [INFO] [stderr] ... | [INFO] [stderr] 71 | | ), [INFO] [stderr] 72 | | } [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] 30 | match *self { [INFO] [stderr] 31 | Error::CargoMetadata(ref path, ref error) => write!( [INFO] [stderr] 32 | f, [INFO] [stderr] 33 | "Couldn't execute `cargo metadata` with manifest {:?}: {:?}", [INFO] [stderr] 34 | path, error [INFO] [stderr] 35 | ), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::ir::annotation::AnnotationSet` [INFO] [stderr] --> src/bindgen/ir/annotation.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / pub fn new() -> AnnotationSet { [INFO] [stderr] 39 | | AnnotationSet { [INFO] [stderr] 40 | | annotations: HashMap::new(), [INFO] [stderr] 41 | | } [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 33 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/annotation.rs:83:53 [INFO] [stderr] | [INFO] [stderr] 83 | let parts: Vec<&str> = annotation.split("=").map(|x| x.trim()).collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/annotation.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | if value.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `value.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/bindgen/ir/annotation.rs:130:39 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn atom(&self, name: &str) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/cfg.rs:22:25 [INFO] [stderr] | [INFO] [stderr] 22 | if key.contains("=") { [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/cfg.rs:23:47 [INFO] [stderr] | [INFO] [stderr] 23 | let mut splits = key.trim().split("="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/cfg.rs:89:12 [INFO] [stderr] | [INFO] [stderr] 89 | if cfgs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `cfgs.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [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/bindgen/ir/cfg.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | / match attr.interpret_meta() { [INFO] [stderr] 116 | | Some(syn::Meta::List(syn::MetaList { ident, nested, .. })) => { [INFO] [stderr] 117 | | if ident != "cfg" || nested.len() != 1 { [INFO] [stderr] 118 | | continue; [INFO] [stderr] ... | [INFO] [stderr] 125 | | _ => {} [INFO] [stderr] 126 | | } [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] 115 | if let Some(syn::Meta::List(syn::MetaList { ident, nested, .. })) = attr.interpret_meta() { [INFO] [stderr] 116 | if ident != "cfg" || nested.len() != 1 { [INFO] [stderr] 117 | continue; [INFO] [stderr] 118 | } [INFO] [stderr] 119 | [INFO] [stderr] 120 | if let Some(config) = Cfg::load_single(nested.first().unwrap().value()) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | / match item { [INFO] [stderr] 138 | | &syn::NestedMeta::Meta(syn::Meta::Word(ref ident)) => { [INFO] [stderr] 139 | | Some(Cfg::Boolean(format!("{}", ident))) [INFO] [stderr] 140 | | } [INFO] [stderr] ... | [INFO] [stderr] 180 | | _ => None, [INFO] [stderr] 181 | | } [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] 137 | match *item { [INFO] [stderr] 138 | syn::NestedMeta::Meta(syn::Meta::Word(ref ident)) => { [INFO] [stderr] 139 | Some(Cfg::Boolean(format!("{}", ident))) [INFO] [stderr] 140 | } [INFO] [stderr] 141 | syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue { [INFO] [stderr] 142 | ref ident, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:145:20 [INFO] [stderr] | [INFO] [stderr] 145 | })) => match lit { [INFO] [stderr] | ____________________^ [INFO] [stderr] 146 | | &syn::Lit::Str(ref value) => Some(Cfg::Named(format!("{}", ident), value.value())), [INFO] [stderr] 147 | | _ => None, [INFO] [stderr] 148 | | }, [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] 145 | })) => match *lit { [INFO] [stderr] 146 | syn::Lit::Str(ref value) => Some(Cfg::Named(format!("{}", ident), value.value())), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:306:9 [INFO] [stderr] | [INFO] [stderr] 306 | / match self { [INFO] [stderr] 307 | | &Condition::Define(ref define) => { [INFO] [stderr] 308 | | out.write("defined("); [INFO] [stderr] 309 | | write!(out, "{}", define); [INFO] [stderr] ... | [INFO] [stderr] 335 | | } [INFO] [stderr] 336 | | } [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] 306 | match *self { [INFO] [stderr] 307 | Condition::Define(ref define) => { [INFO] [stderr] 308 | out.write("defined("); [INFO] [stderr] 309 | write!(out, "{}", define); [INFO] [stderr] 310 | out.write(")"); [INFO] [stderr] 311 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | / if let &Some(ref cfg) = self { [INFO] [stderr] 348 | | out.write("#if "); [INFO] [stderr] 349 | | cfg.write(config, out); [INFO] [stderr] 350 | | out.new_line(); [INFO] [stderr] 351 | | } [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] 347 | if let Some(ref cfg) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/constant.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match expr { [INFO] [stderr] 70 | | &syn::Expr::Lit(syn::ExprLit { [INFO] [stderr] 71 | | lit: syn::Lit::Str(ref value), [INFO] [stderr] 72 | | .. [INFO] [stderr] ... | [INFO] [stderr] 136 | | _ => Err("Unsupported literal expression.".to_owned()), [INFO] [stderr] 137 | | } [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] 69 | match *expr { [INFO] [stderr] 70 | syn::Expr::Lit(syn::ExprLit { [INFO] [stderr] 71 | lit: syn::Lit::Str(ref value), [INFO] [stderr] 72 | .. [INFO] [stderr] 73 | }) => Ok(Literal::Expr(format!("u8\"{}\"", value.value()))), [INFO] [stderr] 74 | syn::Expr::Lit(syn::ExprLit { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/documentation.rs:45:55 [INFO] [stderr] | [INFO] [stderr] 45 | comment.trim_left_matches(" ").trim_right() [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/documentation.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | if line.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:301:5 [INFO] [stderr] | [INFO] [stderr] 301 | / pub fn new( [INFO] [stderr] 302 | | path: Path, [INFO] [stderr] 303 | | generic_params: GenericParams, [INFO] [stderr] 304 | | repr: Repr, [INFO] [stderr] ... | [INFO] [stderr] 322 | | } [INFO] [stderr] 323 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:417:25 [INFO] [stderr] | [INFO] [stderr] 417 | variant.discriminant.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `variant.discriminant` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:466:13 [INFO] [stderr] | [INFO] [stderr] 466 | self.repr.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.repr` [INFO] [stderr] | [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: this boolean expression can be simplified [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:533:16 [INFO] [stderr] | [INFO] [stderr] 533 | if !size.is_none() || config.style.generate_tag() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `size.is_some() || config.style.generate_tag()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 43 [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:490:5 [INFO] [stderr] | [INFO] [stderr] 490 | / fn write(&self, config: &Config, out: &mut SourceWriter) { [INFO] [stderr] 491 | | let size = self.repr.ty.map(|ty| match ty { [INFO] [stderr] 492 | | ReprType::USize => "uintptr_t", [INFO] [stderr] 493 | | ReprType::U32 => "uint32_t", [INFO] [stderr] ... | [INFO] [stderr] 787 | | condition.write_after(config, out); [INFO] [stderr] 788 | | } [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/bindgen/ir/function.rs:219:9 [INFO] [stderr] | [INFO] [stderr] 219 | / match self { [INFO] [stderr] 220 | | &syn::FnArg::Captured(syn::ArgCaptured { [INFO] [stderr] 221 | | pat: syn::Pat::Ident(syn::PatIdent { ref ident, .. }), [INFO] [stderr] 222 | | ref ty, [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => Err("Parameter has an unsupported type.".to_owned()), [INFO] [stderr] 232 | | } [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] 219 | match *self { [INFO] [stderr] 220 | syn::FnArg::Captured(syn::ArgCaptured { [INFO] [stderr] 221 | pat: syn::Pat::Ident(syn::PatIdent { ref ident, .. }), [INFO] [stderr] 222 | ref ty, [INFO] [stderr] 223 | .. [INFO] [stderr] 224 | }) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:21:33 [INFO] [stderr] | [INFO] [stderr] 21 | .filter_map(|x| match x { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 22 | | &syn::GenericParam::Type(syn::TypeParam { ref ident, .. }) => { [INFO] [stderr] 23 | | Some(Path::new(ident.to_string())) [INFO] [stderr] 24 | | } [INFO] [stderr] 25 | | _ => None, [INFO] [stderr] 26 | | }) [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] 21 | .filter_map(|x| match *x { [INFO] [stderr] 22 | syn::GenericParam::Type(syn::TypeParam { ref ident, .. }) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | path.segments.len() > 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.segments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:126:24 [INFO] [stderr] | [INFO] [stderr] 126 | let generics = match &last_segment.arguments { [INFO] [stderr] | ________________________^ [INFO] [stderr] 127 | | &syn::PathArguments::AngleBracketed(syn::AngleBracketedGenericArguments { [INFO] [stderr] 128 | | ref args, [INFO] [stderr] 129 | | .. [INFO] [stderr] ... | [INFO] [stderr] 138 | | _ => Vec::new(), [INFO] [stderr] 139 | | }; [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] 126 | let generics = match last_segment.arguments { [INFO] [stderr] 127 | syn::PathArguments::AngleBracketed(syn::AngleBracketedGenericArguments { [INFO] [stderr] 128 | ref args, [INFO] [stderr] 129 | .. [INFO] [stderr] 130 | }) => args.iter().try_skip_map(|x| match *x { [INFO] [stderr] 131 | &syn::GenericArgument::Type(ref x) => Type::load(x), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:130:48 [INFO] [stderr] | [INFO] [stderr] 130 | }) => args.iter().try_skip_map(|x| match *x { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 131 | | &syn::GenericArgument::Type(ref x) => Type::load(x), [INFO] [stderr] 132 | | &syn::GenericArgument::Lifetime(_) => Ok(None), [INFO] [stderr] 133 | | _ => Err(format!("can't handle generic argument {:?}", x)), [INFO] [stderr] 134 | | })?, [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] 130 | }) => args.iter().try_skip_map(|x| match *(*x) { [INFO] [stderr] 131 | syn::GenericArgument::Type(ref x) => Type::load(x), [INFO] [stderr] 132 | syn::GenericArgument::Lifetime(_) => Ok(None), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &ItemContainer::Constant(ref x) => x, [INFO] [stderr] 60 | | &ItemContainer::Static(ref x) => x, [INFO] [stderr] 61 | | &ItemContainer::OpaqueItem(ref x) => x, [INFO] [stderr] ... | [INFO] [stderr] 65 | | &ItemContainer::Typedef(ref x) => x, [INFO] [stderr] 66 | | } [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] 58 | match *self { [INFO] [stderr] 59 | ItemContainer::Constant(ref x) => x, [INFO] [stderr] 60 | ItemContainer::Static(ref x) => x, [INFO] [stderr] 61 | ItemContainer::OpaqueItem(ref x) => x, [INFO] [stderr] 62 | ItemContainer::Struct(ref x) => x, [INFO] [stderr] 63 | ItemContainer::Union(ref x) => x, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::ir::item::ItemMap` [INFO] [stderr] --> src/bindgen/ir/item.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / pub fn new() -> ItemMap { [INFO] [stderr] 83 | | ItemMap { [INFO] [stderr] 84 | | data: BTreeMap::new(), [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 77 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | / match container { [INFO] [stderr] 133 | | &ItemValue::Cfg(ref items) => result.extend_from_slice(items), [INFO] [stderr] 134 | | &ItemValue::Single(ref item) => { [INFO] [stderr] 135 | | result.push(item.clone()); [INFO] [stderr] 136 | | } [INFO] [stderr] 137 | | } [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] 132 | match *container { [INFO] [stderr] 133 | ItemValue::Cfg(ref items) => result.extend_from_slice(items), [INFO] [stderr] 134 | ItemValue::Single(ref item) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/item.rs:164:24 [INFO] [stderr] | [INFO] [stderr] 164 | if new_items.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!new_items.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | / match container { [INFO] [stderr] 183 | | &ItemValue::Cfg(ref items) => { [INFO] [stderr] 184 | | for item in items { [INFO] [stderr] 185 | | callback(item); [INFO] [stderr] ... | [INFO] [stderr] 188 | | &ItemValue::Single(ref item) => callback(item), [INFO] [stderr] 189 | | } [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] 182 | match *container { [INFO] [stderr] 183 | ItemValue::Cfg(ref items) => { [INFO] [stderr] 184 | for item in items { [INFO] [stderr] 185 | callback(item); [INFO] [stderr] 186 | } [INFO] [stderr] 187 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | / match container { [INFO] [stderr] 199 | | &mut ItemValue::Cfg(ref mut items) => { [INFO] [stderr] 200 | | for item in items { [INFO] [stderr] 201 | | callback(item); [INFO] [stderr] ... | [INFO] [stderr] 204 | | &mut ItemValue::Single(ref mut item) => callback(item), [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 *container { [INFO] [stderr] 199 | ItemValue::Cfg(ref mut items) => { [INFO] [stderr] 200 | for item in items { [INFO] [stderr] 201 | callback(item); [INFO] [stderr] 202 | } [INFO] [stderr] 203 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bindgen/ir/opaque.rs:42:40 [INFO] [stderr] | [INFO] [stderr] 42 | AnnotationSet::load(attrs).unwrap_or(AnnotationSet::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| AnnotationSet::new())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/ir/structure.rs:57:38 [INFO] [stderr] | [INFO] [stderr] 57 | let (fields, tuple_struct) = match &item.fields { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 58 | | &syn::Fields::Unit => (Vec::new(), false), [INFO] [stderr] 59 | | &syn::Fields::Named(ref fields) => { [INFO] [stderr] 60 | | let out = fields [INFO] [stderr] ... | [INFO] [stderr] 76 | | } [INFO] [stderr] 77 | | }; [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] 57 | let (fields, tuple_struct) = match item.fields { [INFO] [stderr] 58 | syn::Fields::Unit => (Vec::new(), false), [INFO] [stderr] 59 | syn::Fields::Named(ref fields) => { [INFO] [stderr] 60 | let out = fields [INFO] [stderr] 61 | .named [INFO] [stderr] 62 | .iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/bindgen/ir/structure.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn new( [INFO] [stderr] 97 | | path: Path, [INFO] [stderr] 98 | | generic_params: GenericParams, [INFO] [stderr] 99 | | fields: Vec<(String, Type, Documentation)>, [INFO] [stderr] ... | [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/bindgen/ir/structure.rs:503:14 [INFO] [stderr] | [INFO] [stderr] 503 | .ok_or(format!("field is missing identifier"))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("field is missing identifier"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bindgen/ir/structure.rs:503:20 [INFO] [stderr] | [INFO] [stderr] 503 | .ok_or(format!("field is missing identifier"))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"field is missing identifier".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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / match self { [INFO] [stderr] 91 | | &PrimitiveType::Void => "c_void", [INFO] [stderr] 92 | | &PrimitiveType::Char => "c_char", [INFO] [stderr] 93 | | &PrimitiveType::SChar => "c_schar", [INFO] [stderr] ... | [INFO] [stderr] 118 | | &PrimitiveType::PtrDiffT => "ptrdiff_t", [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] 90 | match *self { [INFO] [stderr] 91 | PrimitiveType::Void => "c_void", [INFO] [stderr] 92 | PrimitiveType::Char => "c_char", [INFO] [stderr] 93 | PrimitiveType::SChar => "c_schar", [INFO] [stderr] 94 | PrimitiveType::UChar => "c_uchar", [INFO] [stderr] 95 | PrimitiveType::Short => "c_short", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match self { [INFO] [stderr] 124 | | &PrimitiveType::Void => "void", [INFO] [stderr] 125 | | &PrimitiveType::Bool => "bool", [INFO] [stderr] 126 | | &PrimitiveType::Char => "char", [INFO] [stderr] ... | [INFO] [stderr] 151 | | &PrimitiveType::PtrDiffT => "ptrdiff_t", [INFO] [stderr] 152 | | } [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] 123 | match *self { [INFO] [stderr] 124 | PrimitiveType::Void => "void", [INFO] [stderr] 125 | PrimitiveType::Bool => "bool", [INFO] [stderr] 126 | PrimitiveType::Char => "char", [INFO] [stderr] 127 | PrimitiveType::WChar => "wchar_t", [INFO] [stderr] 128 | PrimitiveType::SChar => "signed char", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | / match self { [INFO] [stderr] 157 | | &PrimitiveType::Bool => false, [INFO] [stderr] 158 | | _ => true, [INFO] [stderr] 159 | | } [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] 156 | match *self { [INFO] [stderr] 157 | PrimitiveType::Bool => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:206:25 [INFO] [stderr] | [INFO] [stderr] 206 | let converted = match ty { [INFO] [stderr] | _________________________^ [INFO] [stderr] 207 | | &syn::Type::Reference(ref reference) => { [INFO] [stderr] 208 | | let converted = Type::load(&reference.elem)?; [INFO] [stderr] 209 | | [INFO] [stderr] ... | [INFO] [stderr] 333 | | _ => return Err("Unsupported type.".to_owned()), [INFO] [stderr] 334 | | }; [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] 206 | let converted = match *ty { [INFO] [stderr] 207 | syn::Type::Reference(ref reference) => { [INFO] [stderr] 208 | let converted = Type::load(&reference.elem)?; [INFO] [stderr] 209 | [INFO] [stderr] 210 | let converted = match converted { [INFO] [stderr] 211 | Some(converted) => converted, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:249:24 [INFO] [stderr] | [INFO] [stderr] 249 | if generic_path.generics().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!generic_path.generics().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:328:20 [INFO] [stderr] | [INFO] [stderr] 328 | if tuple.elems.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tuple.elems.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:340:9 [INFO] [stderr] | [INFO] [stderr] 340 | / match self { [INFO] [stderr] 341 | | &Type::Primitive(..) => true, [INFO] [stderr] 342 | | &Type::ConstPtr(ref x) => match x.as_ref() { [INFO] [stderr] 343 | | &Type::Primitive(..) => true, [INFO] [stderr] ... | [INFO] [stderr] 346 | | _ => false, [INFO] [stderr] 347 | | } [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] 340 | match *self { [INFO] [stderr] 341 | Type::Primitive(..) => true, [INFO] [stderr] 342 | Type::ConstPtr(ref x) => match x.as_ref() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:342:39 [INFO] [stderr] | [INFO] [stderr] 342 | &Type::ConstPtr(ref x) => match x.as_ref() { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 343 | | &Type::Primitive(..) => true, [INFO] [stderr] 344 | | _ => false, [INFO] [stderr] 345 | | }, [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] 342 | &Type::ConstPtr(ref x) => match *x.as_ref() { [INFO] [stderr] 343 | Type::Primitive(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | / match self { [INFO] [stderr] 352 | | &Type::Ptr(..) => true, [INFO] [stderr] 353 | | &Type::ConstPtr(..) => true, [INFO] [stderr] 354 | | &Type::FuncPtr(..) => true, [INFO] [stderr] 355 | | _ => false, [INFO] [stderr] 356 | | } [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] 351 | match *self { [INFO] [stderr] 352 | Type::Ptr(..) => true, [INFO] [stderr] 353 | Type::ConstPtr(..) => true, [INFO] [stderr] 354 | Type::FuncPtr(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:389:13 [INFO] [stderr] | [INFO] [stderr] 389 | / match current { [INFO] [stderr] 390 | | &Type::ConstPtr(ref ty) => current = ty, [INFO] [stderr] 391 | | &Type::Ptr(ref ty) => current = ty, [INFO] [stderr] 392 | | &Type::Path(ref generic) => { [INFO] [stderr] ... | [INFO] [stderr] 403 | | } [INFO] [stderr] 404 | | }; [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] 389 | match *current { [INFO] [stderr] 390 | Type::ConstPtr(ref ty) => current = ty, [INFO] [stderr] 391 | Type::Ptr(ref ty) => current = ty, [INFO] [stderr] 392 | Type::Path(ref generic) => { [INFO] [stderr] 393 | return Some(generic.path().clone()); [INFO] [stderr] 394 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:409:9 [INFO] [stderr] | [INFO] [stderr] 409 | / match self { [INFO] [stderr] 410 | | &Type::ConstPtr(ref ty) => Type::ConstPtr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 411 | | &Type::Ptr(ref ty) => Type::Ptr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 412 | | &Type::Path(ref generic_path) => { [INFO] [stderr] ... | [INFO] [stderr] 439 | | ), [INFO] [stderr] 440 | | } [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] 409 | match *self { [INFO] [stderr] 410 | Type::ConstPtr(ref ty) => Type::ConstPtr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 411 | Type::Ptr(ref ty) => Type::Ptr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 412 | Type::Path(ref generic_path) => { [INFO] [stderr] 413 | for &(param, value) in mappings { [INFO] [stderr] 414 | if generic_path.path() == param { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:449:9 [INFO] [stderr] | [INFO] [stderr] 449 | / match self { [INFO] [stderr] 450 | | &Type::ConstPtr(ref ty) => { [INFO] [stderr] 451 | | ty.add_dependencies_ignoring_generics(generic_params, library, out); [INFO] [stderr] 452 | | } [INFO] [stderr] ... | [INFO] [stderr] 491 | | } [INFO] [stderr] 492 | | } [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] 449 | match *self { [INFO] [stderr] 450 | Type::ConstPtr(ref ty) => { [INFO] [stderr] 451 | ty.add_dependencies_ignoring_generics(generic_params, library, out); [INFO] [stderr] 452 | } [INFO] [stderr] 453 | Type::Ptr(ref ty) => { [INFO] [stderr] 454 | ty.add_dependencies_ignoring_generics(generic_params, library, out); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | / match self { [INFO] [stderr] 501 | | &Type::ConstPtr(ref ty) => { [INFO] [stderr] 502 | | ty.add_monomorphs(library, out); [INFO] [stderr] 503 | | } [INFO] [stderr] ... | [INFO] [stderr] 528 | | } [INFO] [stderr] 529 | | } [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] 500 | match *self { [INFO] [stderr] 501 | Type::ConstPtr(ref ty) => { [INFO] [stderr] 502 | ty.add_monomorphs(library, out); [INFO] [stderr] 503 | } [INFO] [stderr] 504 | Type::Ptr(ref ty) => { [INFO] [stderr] 505 | ty.add_monomorphs(library, out); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:508:20 [INFO] [stderr] | [INFO] [stderr] 508 | if generic.generics().len() == 0 || out.contains(&generic) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `generic.generics().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:533:9 [INFO] [stderr] | [INFO] [stderr] 533 | / match self { [INFO] [stderr] 534 | | &mut Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 535 | | ty.rename_for_config(config, generic_params); [INFO] [stderr] 536 | | } [INFO] [stderr] ... | [INFO] [stderr] 553 | | } [INFO] [stderr] 554 | | } [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] 533 | match *self { [INFO] [stderr] 534 | Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 535 | ty.rename_for_config(config, generic_params); [INFO] [stderr] 536 | } [INFO] [stderr] 537 | Type::Ptr(ref mut ty) => { [INFO] [stderr] 538 | ty.rename_for_config(config, generic_params); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:558:9 [INFO] [stderr] | [INFO] [stderr] 558 | / match self { [INFO] [stderr] 559 | | &mut Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 560 | | ty.resolve_declaration_types(resolver); [INFO] [stderr] 561 | | } [INFO] [stderr] ... | [INFO] [stderr] 577 | | } [INFO] [stderr] 578 | | } [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] 558 | match *self { [INFO] [stderr] 559 | Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 560 | ty.resolve_declaration_types(resolver); [INFO] [stderr] 561 | } [INFO] [stderr] 562 | Type::Ptr(ref mut ty) => { [INFO] [stderr] 563 | ty.resolve_declaration_types(resolver); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:582:9 [INFO] [stderr] | [INFO] [stderr] 582 | / match self { [INFO] [stderr] 583 | | &mut Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 584 | | ty.mangle_paths(monomorphs); [INFO] [stderr] 585 | | } [INFO] [stderr] ... | [INFO] [stderr] 613 | | } [INFO] [stderr] 614 | | } [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] 582 | match *self { [INFO] [stderr] 583 | Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 584 | ty.mangle_paths(monomorphs); [INFO] [stderr] 585 | } [INFO] [stderr] 586 | Type::Ptr(ref mut ty) => { [INFO] [stderr] 587 | ty.mangle_paths(monomorphs); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:590:20 [INFO] [stderr] | [INFO] [stderr] 590 | if generic_path.generics().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `generic_path.generics().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:618:9 [INFO] [stderr] | [INFO] [stderr] 618 | / match self { [INFO] [stderr] 619 | | &Type::ConstPtr(..) => true, [INFO] [stderr] 620 | | &Type::Ptr(..) => true, [INFO] [stderr] 621 | | &Type::Path(..) => true, [INFO] [stderr] ... | [INFO] [stderr] 624 | | &Type::FuncPtr(..) => false, [INFO] [stderr] 625 | | } [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] 618 | match *self { [INFO] [stderr] 619 | Type::ConstPtr(..) => true, [INFO] [stderr] 620 | Type::Ptr(..) => true, [INFO] [stderr] 621 | Type::Path(..) => true, [INFO] [stderr] 622 | Type::Primitive(ref p) => p.can_cmp_order(), [INFO] [stderr] 623 | Type::Array(..) => false, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:629:9 [INFO] [stderr] | [INFO] [stderr] 629 | / match self { [INFO] [stderr] 630 | | &Type::ConstPtr(..) => true, [INFO] [stderr] 631 | | &Type::Ptr(..) => true, [INFO] [stderr] 632 | | &Type::Path(..) => true, [INFO] [stderr] ... | [INFO] [stderr] 635 | | &Type::FuncPtr(..) => true, [INFO] [stderr] 636 | | } [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] 629 | match *self { [INFO] [stderr] 630 | Type::ConstPtr(..) => true, [INFO] [stderr] 631 | Type::Ptr(..) => true, [INFO] [stderr] 632 | Type::Path(..) => true, [INFO] [stderr] 633 | Type::Primitive(ref p) => p.can_cmp_eq(), [INFO] [stderr] 634 | Type::Array(..) => false, [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/bindgen/ir/typedef.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | / match self.aliased.get_root_path() { [INFO] [stderr] 81 | | Some(alias_path) => { [INFO] [stderr] 82 | | if out.contains_key(&alias_path) { [INFO] [stderr] 83 | | warn!( [INFO] [stderr] ... | [INFO] [stderr] 93 | | None => {} [INFO] [stderr] 94 | | } [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] 80 | if let Some(alias_path) = self.aliased.get_root_path() { [INFO] [stderr] 81 | if out.contains_key(&alias_path) { [INFO] [stderr] 82 | warn!( [INFO] [stderr] 83 | "Multiple typedef's with annotations for {}. Ignoring annotations from {}.", [INFO] [stderr] 84 | alias_path, self.path [INFO] [stderr] 85 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/bindgen/library.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new( [INFO] [stderr] 33 | | config: Config, [INFO] [stderr] 34 | | constants: ItemMap, [INFO] [stderr] 35 | | globals: ItemMap, [INFO] [stderr] ... | [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/mangle.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match ty { [INFO] [stderr] 36 | | &Type::Path(ref generic) => { [INFO] [stderr] 37 | | mangled.push_str(&internal_mangle_name( [INFO] [stderr] 38 | | generic.export_name(), [INFO] [stderr] ... | [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | } [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] 35 | match *ty { [INFO] [stderr] 36 | Type::Path(ref generic) => { [INFO] [stderr] 37 | mangled.push_str(&internal_mangle_name( [INFO] [stderr] 38 | generic.export_name(), [INFO] [stderr] 39 | generic.generics(), [INFO] [stderr] 40 | last_in_parent && is_last, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/bindings.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | / match item { [INFO] [stderr] 153 | | &ItemContainer::Constant(..) => unreachable!(), [INFO] [stderr] 154 | | &ItemContainer::Static(..) => unreachable!(), [INFO] [stderr] 155 | | &ItemContainer::Enum(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] ... | [INFO] [stderr] 159 | | &ItemContainer::Typedef(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] 160 | | } [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] 152 | match *item { [INFO] [stderr] 153 | ItemContainer::Constant(..) => unreachable!(), [INFO] [stderr] 154 | ItemContainer::Static(..) => unreachable!(), [INFO] [stderr] 155 | ItemContainer::Enum(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] 156 | ItemContainer::Struct(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] 157 | ItemContainer::Union(ref x) => x.write(&self.config, &mut out), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::builder::Builder` [INFO] [stderr] --> src/bindgen/builder.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Builder { [INFO] [stderr] 27 | | Builder { [INFO] [stderr] 28 | | config: Config::default(), [INFO] [stderr] 29 | | srcs: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 34 | | } [INFO] [stderr] 35 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 16 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/bindgen/parser.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | / pub(crate) fn parse_lib( [INFO] [stderr] 67 | | lib: Cargo, [INFO] [stderr] 68 | | parse_deps: bool, [INFO] [stderr] 69 | | include: &Option>, [INFO] [stderr] ... | [INFO] [stderr] 95 | | Ok(context.out) [INFO] [stderr] 96 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bindgen/parser.rs:121:49 [INFO] [stderr] | [INFO] [stderr] 121 | fn should_parse_dependency(&self, pkg_name: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/bindgen/parser.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | self.cache_expanded_crate.get(&pkg.name).unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.cache_expanded_crate[&pkg.name]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/parser.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | / match item { [INFO] [stderr] 214 | | &syn::Item::Mod(ref item) => { [INFO] [stderr] 215 | | let cfg = Cfg::load(&item.attrs); [INFO] [stderr] 216 | | if let &Some(ref cfg) = &cfg { [INFO] [stderr] ... | [INFO] [stderr] 265 | | _ => {} [INFO] [stderr] 266 | | } [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] 213 | match *item { [INFO] [stderr] 214 | syn::Item::Mod(ref item) => { [INFO] [stderr] 215 | let cfg = Cfg::load(&item.attrs); [INFO] [stderr] 216 | if let &Some(ref cfg) = &cfg { [INFO] [stderr] 217 | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 218 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:216:21 [INFO] [stderr] | [INFO] [stderr] 216 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 217 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 218 | | } [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] 216 | if let Some(ref cfg) = cfg { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:234:21 [INFO] [stderr] | [INFO] [stderr] 234 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 235 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 236 | | } [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] 234 | if let Some(ref cfg) = cfg { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/bindgen/parser.rs:297:13 [INFO] [stderr] | [INFO] [stderr] 297 | self.cache_src.get(&owned_mod_path).unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.cache_src[&owned_mod_path]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/parser.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | / match item { [INFO] [stderr] 323 | | &syn::Item::Mod(ref item) => { [INFO] [stderr] 324 | | let next_mod_name = item.ident.to_string(); [INFO] [stderr] 325 | | [INFO] [stderr] ... | [INFO] [stderr] 416 | | _ => {} [INFO] [stderr] 417 | | } [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] 322 | match *item { [INFO] [stderr] 323 | syn::Item::Mod(ref item) => { [INFO] [stderr] 324 | let next_mod_name = item.ident.to_string(); [INFO] [stderr] 325 | [INFO] [stderr] 326 | let cfg = Cfg::load(&item.attrs); [INFO] [stderr] 327 | if let &Some(ref cfg) = &cfg { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 328 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 329 | | } [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] 327 | if let Some(ref cfg) = cfg { [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/bindgen/parser.rs:349:33 [INFO] [stderr] | [INFO] [stderr] 349 | / match attr.interpret_meta() { [INFO] [stderr] 350 | | Some(syn::Meta::NameValue(syn::MetaNameValue { [INFO] [stderr] 351 | | ident, [INFO] [stderr] 352 | | lit, [INFO] [stderr] ... | [INFO] [stderr] 362 | | _ => (), [INFO] [stderr] 363 | | } [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] 349 | if let Some(syn::Meta::NameValue(syn::MetaNameValue { [INFO] [stderr] 350 | ident, [INFO] [stderr] 351 | lit, [INFO] [stderr] 352 | .. [INFO] [stderr] 353 | })) = attr.interpret_meta() { match lit { [INFO] [stderr] 354 | syn::Lit::Str(ref path) if ident == "path" => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:385:21 [INFO] [stderr] | [INFO] [stderr] 385 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 386 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 387 | | } [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] 385 | if let Some(ref cfg) = cfg { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | / if self.lock.is_none() { [INFO] [stderr] 113 | | return None; [INFO] [stderr] 114 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.lock?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | / if let &Some(ref root) = &lock.root { [INFO] [stderr] 122 | | if root.name == package.name && root.version == package.version { [INFO] [stderr] 123 | | if let Some(ref deps) = root.dependencies { [INFO] [stderr] 124 | | for dep in deps { [INFO] [stderr] ... | [INFO] [stderr] 136 | | } [INFO] [stderr] 137 | | } [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] 121 | if let Some(ref root) = lock.root { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:127:55 [INFO] [stderr] | [INFO] [stderr] 127 | if name == dependency_name || name == &replaced_name { [INFO] [stderr] | ^^^^^^^^-------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `replaced_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | / if let &Some(ref lock_packages) = &lock.package { [INFO] [stderr] 140 | | for lock_package in lock_packages { [INFO] [stderr] 141 | | if lock_package.name == package.name && lock_package.version == package.version { [INFO] [stderr] 142 | | if let Some(ref deps) = lock_package.dependencies { [INFO] [stderr] ... | [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [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] 139 | if let Some(ref lock_packages) = lock.package { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/bindgen/cargo/cargo.rs:146:59 [INFO] [stderr] | [INFO] [stderr] 146 | if name == dependency_name || name == &replaced_name { [INFO] [stderr] | ^^^^^^^^-------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `replaced_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bindgen/parser.rs:453:73 [INFO] [stderr] | [INFO] [stderr] 453 | let generic_params: Vec<_> = generic_params.into_iter().map(|s| Path::new(s)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Path::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cargo/cargo_expand.rs:90:8 [INFO] [stderr] | [INFO] [stderr] 90 | if src.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `src.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bindgen/parser.rs:558:13 [INFO] [stderr] | [INFO] [stderr] 558 | / match foreign_item { [INFO] [stderr] 559 | | &syn::ForeignItem::Fn(ref function) => { [INFO] [stderr] 560 | | if crate_name != binding_crate_name { [INFO] [stderr] 561 | | info!( [INFO] [stderr] ... | [INFO] [stderr] 582 | | _ => {} [INFO] [stderr] 583 | | } [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] 558 | if let &syn::ForeignItem::Fn(ref function) = foreign_item { [INFO] [stderr] 559 | if crate_name != binding_crate_name { [INFO] [stderr] 560 | info!( [INFO] [stderr] 561 | "Skip {}::{} - (fn's outside of the binding crate are not used).", [INFO] [stderr] 562 | crate_name, &function.ident [INFO] [stderr] 563 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/parser.rs:558:13 [INFO] [stderr] | [INFO] [stderr] 558 | / match foreign_item { [INFO] [stderr] 559 | | &syn::ForeignItem::Fn(ref function) => { [INFO] [stderr] 560 | | if crate_name != binding_crate_name { [INFO] [stderr] 561 | | info!( [INFO] [stderr] ... | [INFO] [stderr] 582 | | _ => {} [INFO] [stderr] 583 | | } [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] 558 | match *foreign_item { [INFO] [stderr] 559 | syn::ForeignItem::Fn(ref function) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bindgen/rename.rs:55:33 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn apply_to_pascal_case(&self, text: &str, context: IdentifierType) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/rename.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if text.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `text.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/rename.rs:124:21 [INFO] [stderr] | [INFO] [stderr] 124 | / if let &RenameRule::QualifiedScreamingSnakeCase = self { [INFO] [stderr] 125 | | result.push_str( [INFO] [stderr] 126 | | &RenameRule::ScreamingSnakeCase [INFO] [stderr] 127 | | .apply_to_pascal_case(e.path().name(), IdentifierType::Enum), [INFO] [stderr] 128 | | ); [INFO] [stderr] 129 | | result.push_str("_"); [INFO] [stderr] 130 | | } [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] 124 | if let RenameRule::QualifiedScreamingSnakeCase = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bindgen/rename.rs:141:32 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn apply_to_snake_case(&self, mut text: &str, context: IdentifierType) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/rename.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | if text.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `text.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/rename.rs:205:21 [INFO] [stderr] | [INFO] [stderr] 205 | / if let &RenameRule::QualifiedScreamingSnakeCase = self { [INFO] [stderr] 206 | | result.push_str( [INFO] [stderr] 207 | | &RenameRule::ScreamingSnakeCase [INFO] [stderr] 208 | | .apply_to_snake_case(e.path().name(), IdentifierType::Enum), [INFO] [stderr] 209 | | ); [INFO] [stderr] 210 | | result.push_str("_"); [INFO] [stderr] 211 | | } [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] 205 | if let RenameRule::QualifiedScreamingSnakeCase = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/bindgen/reserved.rs:85:12 [INFO] [stderr] | [INFO] [stderr] 85 | if let Ok(_) = (RESERVED_KEYWORDS).binary_search(&rust_identifier.as_ref()) { [INFO] [stderr] | _____- ^^^^^ [INFO] [stderr] 86 | | rust_identifier.push('_'); [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____- help: try this: `if (RESERVED_KEYWORDS).binary_search(&rust_identifier.as_ref()).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: this loop could be written as a `for` loop [INFO] [stderr] --> src/bindgen/utilities.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | while let Some(item) = self.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for item in self { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / if let &Some(ref x) = x { [INFO] [stderr] 34 | | return Some(x); [INFO] [stderr] 35 | | } [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] 33 | if let Some(ref x) = *x { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match $s { [INFO] [stderr] 69 | | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] 70 | | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] 71 | | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] ... | [INFO] [stderr] 84 | | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match $s { [INFO] [stderr] 69 | | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] 70 | | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] 71 | | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] ... | [INFO] [stderr] 84 | | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match $s { [INFO] [stderr] 69 | | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] 70 | | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] 71 | | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] ... | [INFO] [stderr] 84 | | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &CDeclarator::Ptr(..) => true, [INFO] [stderr] 25 | | &CDeclarator::Func(..) => true, [INFO] [stderr] 26 | | _ => false, [INFO] [stderr] 27 | | } [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] 23 | match *self { [INFO] [stderr] 24 | CDeclarator::Ptr(..) => true, [INFO] [stderr] 25 | CDeclarator::Func(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | / match t { [INFO] [stderr] 74 | | &Type::Path(ref generic) => { [INFO] [stderr] 75 | | if is_const { [INFO] [stderr] 76 | | assert!( [INFO] [stderr] ... | [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | } [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] 73 | match *t { [INFO] [stderr] 74 | Type::Path(ref generic) => { [INFO] [stderr] 75 | if is_const { [INFO] [stderr] 76 | assert!( [INFO] [stderr] 77 | self.type_qualifers.len() == 0, [INFO] [stderr] 78 | "error generating cdecl for {:?}", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | self.type_qualifers.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_qualifers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | self.type_name.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | self.type_generic_args.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_generic_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:101:25 [INFO] [stderr] | [INFO] [stderr] 101 | self.type_qualifers.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_qualifers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | self.type_name.len() == 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.type_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | / if let &Some(ref abi) = self { [INFO] [stderr] 216 | | if let Some(ref lit_string) = abi.name { [INFO] [stderr] 217 | | return lit_string.value() == String::from("C"); [INFO] [stderr] 218 | | } [INFO] [stderr] 219 | | } [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] 215 | if let Some(ref abi) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bindgen/utilities.rs:217:46 [INFO] [stderr] | [INFO] [stderr] 217 | return lit_string.value() == String::from("C"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `"C"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | / if let &Some(ref abi) = self { [INFO] [stderr] 224 | | abi.name.is_none() [INFO] [stderr] 225 | | } else { [INFO] [stderr] 226 | | false [INFO] [stderr] 227 | | } [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] 223 | if let Some(ref abi) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bindgen/utilities.rs:234:35 [INFO] [stderr] | [INFO] [stderr] 234 | lit_string.value() == String::from("C") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `"C"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/cdecl.rs:148:12 [INFO] [stderr] | [INFO] [stderr] 148 | if self.type_qualifers.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.type_qualifers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | / match declarator { [INFO] [stderr] 176 | | &CDeclarator::Ptr(ref is_const) => { [INFO] [stderr] 177 | | if *is_const { [INFO] [stderr] 178 | | out.write("*const "); [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [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] 175 | match *declarator { [INFO] [stderr] 176 | CDeclarator::Ptr(ref is_const) => { [INFO] [stderr] 177 | if *is_const { [INFO] [stderr] 178 | out.write("*const "); [INFO] [stderr] 179 | } else { [INFO] [stderr] 180 | out.write("*"); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bindgen/cdecl.rs:205:38 [INFO] [stderr] | [INFO] [stderr] 205 | while let Some(declarator) = iter.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for declarator in iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/cdecl.rs:206:13 [INFO] [stderr] | [INFO] [stderr] 206 | / match declarator { [INFO] [stderr] 207 | | &CDeclarator::Ptr(..) => { [INFO] [stderr] 208 | | last_was_pointer = true; [INFO] [stderr] 209 | | } [INFO] [stderr] ... | [INFO] [stderr] 257 | | } [INFO] [stderr] 258 | | } [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] 206 | match *declarator { [INFO] [stderr] 207 | CDeclarator::Ptr(..) => { [INFO] [stderr] 208 | last_was_pointer = true; [INFO] [stderr] 209 | } [INFO] [stderr] 210 | CDeclarator::Array(ref constant) => { [INFO] [stderr] 211 | if last_was_pointer { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/bindgen/cdecl.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | &CDecl::from_func(f, layout_vertical).write(out, Some(f.path().name()), void_prototype); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `CDecl::from_func(f, layout_vertical).write(out, Some(f.path().name()), void_prototype);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/bindgen/cdecl.rs:273:5 [INFO] [stderr] | [INFO] [stderr] 273 | &CDecl::from_type(t).write(out, Some(ident), false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `CDecl::from_type(t).write(out, Some(ident), false);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/bindgen/cdecl.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | &CDecl::from_type(t).write(out, None, false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `CDecl::from_type(t).write(out, None, false);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] error: useless lint attribute [INFO] [stderr] --> src/bindgen/mod.rs:57:1 [INFO] [stderr] | [INFO] [stderr] 57 | #[allow(unused)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![allow(unused)]` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::useless_attribute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_attribute [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/config.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | / match self { [INFO] [stderr] 113 | | &Style::Both => true, [INFO] [stderr] 114 | | &Style::Tag => true, [INFO] [stderr] 115 | | &Style::Type => false, [INFO] [stderr] 116 | | } [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] 112 | match *self { [INFO] [stderr] 113 | Style::Both => true, [INFO] [stderr] 114 | Style::Tag => true, [INFO] [stderr] 115 | Style::Type => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/config.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | / match self { [INFO] [stderr] 121 | | &Style::Both => true, [INFO] [stderr] 122 | | &Style::Tag => false, [INFO] [stderr] 123 | | &Style::Type => true, [INFO] [stderr] 124 | | } [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] 120 | match *self { [INFO] [stderr] 121 | Style::Both => true, [INFO] [stderr] 122 | Style::Tag => false, [INFO] [stderr] 123 | Style::Type => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `cbindgen`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bindgen/declarationtyperesolver.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn to_str(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/declarationtyperesolver.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / match self { [INFO] [stderr] 25 | | &DeclarationType::Struct => "struct", [INFO] [stderr] 26 | | &DeclarationType::Enum => "enum", [INFO] [stderr] 27 | | &DeclarationType::Union => "union", [INFO] [stderr] 28 | | } [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] 24 | match *self { [INFO] [stderr] 25 | DeclarationType::Struct => "struct", [INFO] [stderr] 26 | DeclarationType::Enum => "enum", [INFO] [stderr] 27 | DeclarationType::Union => "union", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::declarationtyperesolver::DeclarationTypeResolver` [INFO] [stderr] --> src/bindgen/declarationtyperesolver.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn new() -> DeclarationTypeResolver { [INFO] [stderr] 34 | | DeclarationTypeResolver { [INFO] [stderr] 35 | | structs: HashSet::new(), [INFO] [stderr] 36 | | enums: HashSet::new(), [INFO] [stderr] 37 | | unions: HashSet::new(), [INFO] [stderr] 38 | | } [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::dependencies::Dependencies` [INFO] [stderr] --> src/bindgen/dependencies.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new() -> Dependencies { [INFO] [stderr] 18 | | Dependencies { [INFO] [stderr] 19 | | order: Vec::new(), [INFO] [stderr] 20 | | items: HashSet::new(), [INFO] [stderr] 21 | | } [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/error.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | / match self { [INFO] [stderr] 31 | | &Error::CargoMetadata(ref path, ref error) => write!( [INFO] [stderr] 32 | | f, [INFO] [stderr] 33 | | "Couldn't execute `cargo metadata` with manifest {:?}: {:?}", [INFO] [stderr] ... | [INFO] [stderr] 71 | | ), [INFO] [stderr] 72 | | } [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] 30 | match *self { [INFO] [stderr] 31 | Error::CargoMetadata(ref path, ref error) => write!( [INFO] [stderr] 32 | f, [INFO] [stderr] 33 | "Couldn't execute `cargo metadata` with manifest {:?}: {:?}", [INFO] [stderr] 34 | path, error [INFO] [stderr] 35 | ), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::ir::annotation::AnnotationSet` [INFO] [stderr] --> src/bindgen/ir/annotation.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / pub fn new() -> AnnotationSet { [INFO] [stderr] 39 | | AnnotationSet { [INFO] [stderr] 40 | | annotations: HashMap::new(), [INFO] [stderr] 41 | | } [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 33 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/annotation.rs:83:53 [INFO] [stderr] | [INFO] [stderr] 83 | let parts: Vec<&str> = annotation.split("=").map(|x| x.trim()).collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/annotation.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | if value.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `value.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/bindgen/ir/annotation.rs:130:39 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn atom(&self, name: &str) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/cfg.rs:22:25 [INFO] [stderr] | [INFO] [stderr] 22 | if key.contains("=") { [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/cfg.rs:23:47 [INFO] [stderr] | [INFO] [stderr] 23 | let mut splits = key.trim().split("="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/cfg.rs:89:12 [INFO] [stderr] | [INFO] [stderr] 89 | if cfgs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `cfgs.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [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/bindgen/ir/cfg.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | / match attr.interpret_meta() { [INFO] [stderr] 116 | | Some(syn::Meta::List(syn::MetaList { ident, nested, .. })) => { [INFO] [stderr] 117 | | if ident != "cfg" || nested.len() != 1 { [INFO] [stderr] 118 | | continue; [INFO] [stderr] ... | [INFO] [stderr] 125 | | _ => {} [INFO] [stderr] 126 | | } [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] 115 | if let Some(syn::Meta::List(syn::MetaList { ident, nested, .. })) = attr.interpret_meta() { [INFO] [stderr] 116 | if ident != "cfg" || nested.len() != 1 { [INFO] [stderr] 117 | continue; [INFO] [stderr] 118 | } [INFO] [stderr] 119 | [INFO] [stderr] 120 | if let Some(config) = Cfg::load_single(nested.first().unwrap().value()) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | / match item { [INFO] [stderr] 138 | | &syn::NestedMeta::Meta(syn::Meta::Word(ref ident)) => { [INFO] [stderr] 139 | | Some(Cfg::Boolean(format!("{}", ident))) [INFO] [stderr] 140 | | } [INFO] [stderr] ... | [INFO] [stderr] 180 | | _ => None, [INFO] [stderr] 181 | | } [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] 137 | match *item { [INFO] [stderr] 138 | syn::NestedMeta::Meta(syn::Meta::Word(ref ident)) => { [INFO] [stderr] 139 | Some(Cfg::Boolean(format!("{}", ident))) [INFO] [stderr] 140 | } [INFO] [stderr] 141 | syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue { [INFO] [stderr] 142 | ref ident, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:145:20 [INFO] [stderr] | [INFO] [stderr] 145 | })) => match lit { [INFO] [stderr] | ____________________^ [INFO] [stderr] 146 | | &syn::Lit::Str(ref value) => Some(Cfg::Named(format!("{}", ident), value.value())), [INFO] [stderr] 147 | | _ => None, [INFO] [stderr] 148 | | }, [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] 145 | })) => match *lit { [INFO] [stderr] 146 | syn::Lit::Str(ref value) => Some(Cfg::Named(format!("{}", ident), value.value())), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:306:9 [INFO] [stderr] | [INFO] [stderr] 306 | / match self { [INFO] [stderr] 307 | | &Condition::Define(ref define) => { [INFO] [stderr] 308 | | out.write("defined("); [INFO] [stderr] 309 | | write!(out, "{}", define); [INFO] [stderr] ... | [INFO] [stderr] 335 | | } [INFO] [stderr] 336 | | } [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] 306 | match *self { [INFO] [stderr] 307 | Condition::Define(ref define) => { [INFO] [stderr] 308 | out.write("defined("); [INFO] [stderr] 309 | write!(out, "{}", define); [INFO] [stderr] 310 | out.write(")"); [INFO] [stderr] 311 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/cfg.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | / if let &Some(ref cfg) = self { [INFO] [stderr] 348 | | out.write("#if "); [INFO] [stderr] 349 | | cfg.write(config, out); [INFO] [stderr] 350 | | out.new_line(); [INFO] [stderr] 351 | | } [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] 347 | if let Some(ref cfg) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/constant.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match expr { [INFO] [stderr] 70 | | &syn::Expr::Lit(syn::ExprLit { [INFO] [stderr] 71 | | lit: syn::Lit::Str(ref value), [INFO] [stderr] 72 | | .. [INFO] [stderr] ... | [INFO] [stderr] 136 | | _ => Err("Unsupported literal expression.".to_owned()), [INFO] [stderr] 137 | | } [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] 69 | match *expr { [INFO] [stderr] 70 | syn::Expr::Lit(syn::ExprLit { [INFO] [stderr] 71 | lit: syn::Lit::Str(ref value), [INFO] [stderr] 72 | .. [INFO] [stderr] 73 | }) => Ok(Literal::Expr(format!("u8\"{}\"", value.value()))), [INFO] [stderr] 74 | syn::Expr::Lit(syn::ExprLit { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bindgen/ir/documentation.rs:45:55 [INFO] [stderr] | [INFO] [stderr] 45 | comment.trim_left_matches(" ").trim_right() [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/documentation.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | if line.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:301:5 [INFO] [stderr] | [INFO] [stderr] 301 | / pub fn new( [INFO] [stderr] 302 | | path: Path, [INFO] [stderr] 303 | | generic_params: GenericParams, [INFO] [stderr] 304 | | repr: Repr, [INFO] [stderr] ... | [INFO] [stderr] 322 | | } [INFO] [stderr] 323 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:417:25 [INFO] [stderr] | [INFO] [stderr] 417 | variant.discriminant.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `variant.discriminant` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:466:13 [INFO] [stderr] | [INFO] [stderr] 466 | self.repr.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.repr` [INFO] [stderr] | [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: this boolean expression can be simplified [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:533:16 [INFO] [stderr] | [INFO] [stderr] 533 | if !size.is_none() || config.style.generate_tag() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `size.is_some() || config.style.generate_tag()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 43 [INFO] [stderr] --> src/bindgen/ir/enumeration.rs:490:5 [INFO] [stderr] | [INFO] [stderr] 490 | / fn write(&self, config: &Config, out: &mut SourceWriter) { [INFO] [stderr] 491 | | let size = self.repr.ty.map(|ty| match ty { [INFO] [stderr] 492 | | ReprType::USize => "uintptr_t", [INFO] [stderr] 493 | | ReprType::U32 => "uint32_t", [INFO] [stderr] ... | [INFO] [stderr] 787 | | condition.write_after(config, out); [INFO] [stderr] 788 | | } [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/bindgen/ir/function.rs:219:9 [INFO] [stderr] | [INFO] [stderr] 219 | / match self { [INFO] [stderr] 220 | | &syn::FnArg::Captured(syn::ArgCaptured { [INFO] [stderr] 221 | | pat: syn::Pat::Ident(syn::PatIdent { ref ident, .. }), [INFO] [stderr] 222 | | ref ty, [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => Err("Parameter has an unsupported type.".to_owned()), [INFO] [stderr] 232 | | } [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] 219 | match *self { [INFO] [stderr] 220 | syn::FnArg::Captured(syn::ArgCaptured { [INFO] [stderr] 221 | pat: syn::Pat::Ident(syn::PatIdent { ref ident, .. }), [INFO] [stderr] 222 | ref ty, [INFO] [stderr] 223 | .. [INFO] [stderr] 224 | }) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:21:33 [INFO] [stderr] | [INFO] [stderr] 21 | .filter_map(|x| match x { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 22 | | &syn::GenericParam::Type(syn::TypeParam { ref ident, .. }) => { [INFO] [stderr] 23 | | Some(Path::new(ident.to_string())) [INFO] [stderr] 24 | | } [INFO] [stderr] 25 | | _ => None, [INFO] [stderr] 26 | | }) [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] 21 | .filter_map(|x| match *x { [INFO] [stderr] 22 | syn::GenericParam::Type(syn::TypeParam { ref ident, .. }) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | path.segments.len() > 0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.segments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:126:24 [INFO] [stderr] | [INFO] [stderr] 126 | let generics = match &last_segment.arguments { [INFO] [stderr] | ________________________^ [INFO] [stderr] 127 | | &syn::PathArguments::AngleBracketed(syn::AngleBracketedGenericArguments { [INFO] [stderr] 128 | | ref args, [INFO] [stderr] 129 | | .. [INFO] [stderr] ... | [INFO] [stderr] 138 | | _ => Vec::new(), [INFO] [stderr] 139 | | }; [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] 126 | let generics = match last_segment.arguments { [INFO] [stderr] 127 | syn::PathArguments::AngleBracketed(syn::AngleBracketedGenericArguments { [INFO] [stderr] 128 | ref args, [INFO] [stderr] 129 | .. [INFO] [stderr] 130 | }) => args.iter().try_skip_map(|x| match *x { [INFO] [stderr] 131 | &syn::GenericArgument::Type(ref x) => Type::load(x), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/generic_path.rs:130:48 [INFO] [stderr] | [INFO] [stderr] 130 | }) => args.iter().try_skip_map(|x| match *x { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 131 | | &syn::GenericArgument::Type(ref x) => Type::load(x), [INFO] [stderr] 132 | | &syn::GenericArgument::Lifetime(_) => Ok(None), [INFO] [stderr] 133 | | _ => Err(format!("can't handle generic argument {:?}", x)), [INFO] [stderr] 134 | | })?, [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] 130 | }) => args.iter().try_skip_map(|x| match *(*x) { [INFO] [stderr] 131 | syn::GenericArgument::Type(ref x) => Type::load(x), [INFO] [stderr] 132 | syn::GenericArgument::Lifetime(_) => Ok(None), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &ItemContainer::Constant(ref x) => x, [INFO] [stderr] 60 | | &ItemContainer::Static(ref x) => x, [INFO] [stderr] 61 | | &ItemContainer::OpaqueItem(ref x) => x, [INFO] [stderr] ... | [INFO] [stderr] 65 | | &ItemContainer::Typedef(ref x) => x, [INFO] [stderr] 66 | | } [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] 58 | match *self { [INFO] [stderr] 59 | ItemContainer::Constant(ref x) => x, [INFO] [stderr] 60 | ItemContainer::Static(ref x) => x, [INFO] [stderr] 61 | ItemContainer::OpaqueItem(ref x) => x, [INFO] [stderr] 62 | ItemContainer::Struct(ref x) => x, [INFO] [stderr] 63 | ItemContainer::Union(ref x) => x, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bindgen::ir::item::ItemMap` [INFO] [stderr] --> src/bindgen/ir/item.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / pub fn new() -> ItemMap { [INFO] [stderr] 83 | | ItemMap { [INFO] [stderr] 84 | | data: BTreeMap::new(), [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 77 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | / match container { [INFO] [stderr] 133 | | &ItemValue::Cfg(ref items) => result.extend_from_slice(items), [INFO] [stderr] 134 | | &ItemValue::Single(ref item) => { [INFO] [stderr] 135 | | result.push(item.clone()); [INFO] [stderr] 136 | | } [INFO] [stderr] 137 | | } [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] 132 | match *container { [INFO] [stderr] 133 | ItemValue::Cfg(ref items) => result.extend_from_slice(items), [INFO] [stderr] 134 | ItemValue::Single(ref item) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/item.rs:164:24 [INFO] [stderr] | [INFO] [stderr] 164 | if new_items.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!new_items.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | / match container { [INFO] [stderr] 183 | | &ItemValue::Cfg(ref items) => { [INFO] [stderr] 184 | | for item in items { [INFO] [stderr] 185 | | callback(item); [INFO] [stderr] ... | [INFO] [stderr] 188 | | &ItemValue::Single(ref item) => callback(item), [INFO] [stderr] 189 | | } [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] 182 | match *container { [INFO] [stderr] 183 | ItemValue::Cfg(ref items) => { [INFO] [stderr] 184 | for item in items { [INFO] [stderr] 185 | callback(item); [INFO] [stderr] 186 | } [INFO] [stderr] 187 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/item.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | / match container { [INFO] [stderr] 199 | | &mut ItemValue::Cfg(ref mut items) => { [INFO] [stderr] 200 | | for item in items { [INFO] [stderr] 201 | | callback(item); [INFO] [stderr] ... | [INFO] [stderr] 204 | | &mut ItemValue::Single(ref mut item) => callback(item), [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 *container { [INFO] [stderr] 199 | ItemValue::Cfg(ref mut items) => { [INFO] [stderr] 200 | for item in items { [INFO] [stderr] 201 | callback(item); [INFO] [stderr] 202 | } [INFO] [stderr] 203 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bindgen/ir/opaque.rs:42:40 [INFO] [stderr] | [INFO] [stderr] 42 | AnnotationSet::load(attrs).unwrap_or(AnnotationSet::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| AnnotationSet::new())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/ir/structure.rs:57:38 [INFO] [stderr] | [INFO] [stderr] 57 | let (fields, tuple_struct) = match &item.fields { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 58 | | &syn::Fields::Unit => (Vec::new(), false), [INFO] [stderr] 59 | | &syn::Fields::Named(ref fields) => { [INFO] [stderr] 60 | | let out = fields [INFO] [stderr] ... | [INFO] [stderr] 76 | | } [INFO] [stderr] 77 | | }; [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] 57 | let (fields, tuple_struct) = match item.fields { [INFO] [stderr] 58 | syn::Fields::Unit => (Vec::new(), false), [INFO] [stderr] 59 | syn::Fields::Named(ref fields) => { [INFO] [stderr] 60 | let out = fields [INFO] [stderr] 61 | .named [INFO] [stderr] 62 | .iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/bindgen/ir/structure.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn new( [INFO] [stderr] 97 | | path: Path, [INFO] [stderr] 98 | | generic_params: GenericParams, [INFO] [stderr] 99 | | fields: Vec<(String, Type, Documentation)>, [INFO] [stderr] ... | [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/bindgen/ir/structure.rs:503:14 [INFO] [stderr] | [INFO] [stderr] 503 | .ok_or(format!("field is missing identifier"))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("field is missing identifier"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bindgen/ir/structure.rs:503:20 [INFO] [stderr] | [INFO] [stderr] 503 | .ok_or(format!("field is missing identifier"))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"field is missing identifier".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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / match self { [INFO] [stderr] 91 | | &PrimitiveType::Void => "c_void", [INFO] [stderr] 92 | | &PrimitiveType::Char => "c_char", [INFO] [stderr] 93 | | &PrimitiveType::SChar => "c_schar", [INFO] [stderr] ... | [INFO] [stderr] 118 | | &PrimitiveType::PtrDiffT => "ptrdiff_t", [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] 90 | match *self { [INFO] [stderr] 91 | PrimitiveType::Void => "c_void", [INFO] [stderr] 92 | PrimitiveType::Char => "c_char", [INFO] [stderr] 93 | PrimitiveType::SChar => "c_schar", [INFO] [stderr] 94 | PrimitiveType::UChar => "c_uchar", [INFO] [stderr] 95 | PrimitiveType::Short => "c_short", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match self { [INFO] [stderr] 124 | | &PrimitiveType::Void => "void", [INFO] [stderr] 125 | | &PrimitiveType::Bool => "bool", [INFO] [stderr] 126 | | &PrimitiveType::Char => "char", [INFO] [stderr] ... | [INFO] [stderr] 151 | | &PrimitiveType::PtrDiffT => "ptrdiff_t", [INFO] [stderr] 152 | | } [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] 123 | match *self { [INFO] [stderr] 124 | PrimitiveType::Void => "void", [INFO] [stderr] 125 | PrimitiveType::Bool => "bool", [INFO] [stderr] 126 | PrimitiveType::Char => "char", [INFO] [stderr] 127 | PrimitiveType::WChar => "wchar_t", [INFO] [stderr] 128 | PrimitiveType::SChar => "signed char", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | / match self { [INFO] [stderr] 157 | | &PrimitiveType::Bool => false, [INFO] [stderr] 158 | | _ => true, [INFO] [stderr] 159 | | } [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] 156 | match *self { [INFO] [stderr] 157 | PrimitiveType::Bool => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:206:25 [INFO] [stderr] | [INFO] [stderr] 206 | let converted = match ty { [INFO] [stderr] | _________________________^ [INFO] [stderr] 207 | | &syn::Type::Reference(ref reference) => { [INFO] [stderr] 208 | | let converted = Type::load(&reference.elem)?; [INFO] [stderr] 209 | | [INFO] [stderr] ... | [INFO] [stderr] 333 | | _ => return Err("Unsupported type.".to_owned()), [INFO] [stderr] 334 | | }; [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] 206 | let converted = match *ty { [INFO] [stderr] 207 | syn::Type::Reference(ref reference) => { [INFO] [stderr] 208 | let converted = Type::load(&reference.elem)?; [INFO] [stderr] 209 | [INFO] [stderr] 210 | let converted = match converted { [INFO] [stderr] 211 | Some(converted) => converted, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:249:24 [INFO] [stderr] | [INFO] [stderr] 249 | if generic_path.generics().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!generic_path.generics().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:328:20 [INFO] [stderr] | [INFO] [stderr] 328 | if tuple.elems.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tuple.elems.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:340:9 [INFO] [stderr] | [INFO] [stderr] 340 | / match self { [INFO] [stderr] 341 | | &Type::Primitive(..) => true, [INFO] [stderr] 342 | | &Type::ConstPtr(ref x) => match x.as_ref() { [INFO] [stderr] 343 | | &Type::Primitive(..) => true, [INFO] [stderr] ... | [INFO] [stderr] 346 | | _ => false, [INFO] [stderr] 347 | | } [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] 340 | match *self { [INFO] [stderr] 341 | Type::Primitive(..) => true, [INFO] [stderr] 342 | Type::ConstPtr(ref x) => match x.as_ref() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:342:39 [INFO] [stderr] | [INFO] [stderr] 342 | &Type::ConstPtr(ref x) => match x.as_ref() { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 343 | | &Type::Primitive(..) => true, [INFO] [stderr] 344 | | _ => false, [INFO] [stderr] 345 | | }, [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] 342 | &Type::ConstPtr(ref x) => match *x.as_ref() { [INFO] [stderr] 343 | Type::Primitive(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | / match self { [INFO] [stderr] 352 | | &Type::Ptr(..) => true, [INFO] [stderr] 353 | | &Type::ConstPtr(..) => true, [INFO] [stderr] 354 | | &Type::FuncPtr(..) => true, [INFO] [stderr] 355 | | _ => false, [INFO] [stderr] 356 | | } [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] 351 | match *self { [INFO] [stderr] 352 | Type::Ptr(..) => true, [INFO] [stderr] 353 | Type::ConstPtr(..) => true, [INFO] [stderr] 354 | Type::FuncPtr(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:389:13 [INFO] [stderr] | [INFO] [stderr] 389 | / match current { [INFO] [stderr] 390 | | &Type::ConstPtr(ref ty) => current = ty, [INFO] [stderr] 391 | | &Type::Ptr(ref ty) => current = ty, [INFO] [stderr] 392 | | &Type::Path(ref generic) => { [INFO] [stderr] ... | [INFO] [stderr] 403 | | } [INFO] [stderr] 404 | | }; [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] 389 | match *current { [INFO] [stderr] 390 | Type::ConstPtr(ref ty) => current = ty, [INFO] [stderr] 391 | Type::Ptr(ref ty) => current = ty, [INFO] [stderr] 392 | Type::Path(ref generic) => { [INFO] [stderr] 393 | return Some(generic.path().clone()); [INFO] [stderr] 394 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:409:9 [INFO] [stderr] | [INFO] [stderr] 409 | / match self { [INFO] [stderr] 410 | | &Type::ConstPtr(ref ty) => Type::ConstPtr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 411 | | &Type::Ptr(ref ty) => Type::Ptr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 412 | | &Type::Path(ref generic_path) => { [INFO] [stderr] ... | [INFO] [stderr] 439 | | ), [INFO] [stderr] 440 | | } [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] 409 | match *self { [INFO] [stderr] 410 | Type::ConstPtr(ref ty) => Type::ConstPtr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 411 | Type::Ptr(ref ty) => Type::Ptr(Box::new(ty.specialize(mappings))), [INFO] [stderr] 412 | Type::Path(ref generic_path) => { [INFO] [stderr] 413 | for &(param, value) in mappings { [INFO] [stderr] 414 | if generic_path.path() == param { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:449:9 [INFO] [stderr] | [INFO] [stderr] 449 | / match self { [INFO] [stderr] 450 | | &Type::ConstPtr(ref ty) => { [INFO] [stderr] 451 | | ty.add_dependencies_ignoring_generics(generic_params, library, out); [INFO] [stderr] 452 | | } [INFO] [stderr] ... | [INFO] [stderr] 491 | | } [INFO] [stderr] 492 | | } [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] 449 | match *self { [INFO] [stderr] 450 | Type::ConstPtr(ref ty) => { [INFO] [stderr] 451 | ty.add_dependencies_ignoring_generics(generic_params, library, out); [INFO] [stderr] 452 | } [INFO] [stderr] 453 | Type::Ptr(ref ty) => { [INFO] [stderr] 454 | ty.add_dependencies_ignoring_generics(generic_params, library, out); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | / match self { [INFO] [stderr] 501 | | &Type::ConstPtr(ref ty) => { [INFO] [stderr] 502 | | ty.add_monomorphs(library, out); [INFO] [stderr] 503 | | } [INFO] [stderr] ... | [INFO] [stderr] 528 | | } [INFO] [stderr] 529 | | } [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] 500 | match *self { [INFO] [stderr] 501 | Type::ConstPtr(ref ty) => { [INFO] [stderr] 502 | ty.add_monomorphs(library, out); [INFO] [stderr] 503 | } [INFO] [stderr] 504 | Type::Ptr(ref ty) => { [INFO] [stderr] 505 | ty.add_monomorphs(library, out); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:508:20 [INFO] [stderr] | [INFO] [stderr] 508 | if generic.generics().len() == 0 || out.contains(&generic) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `generic.generics().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:533:9 [INFO] [stderr] | [INFO] [stderr] 533 | / match self { [INFO] [stderr] 534 | | &mut Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 535 | | ty.rename_for_config(config, generic_params); [INFO] [stderr] 536 | | } [INFO] [stderr] ... | [INFO] [stderr] 553 | | } [INFO] [stderr] 554 | | } [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] 533 | match *self { [INFO] [stderr] 534 | Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 535 | ty.rename_for_config(config, generic_params); [INFO] [stderr] 536 | } [INFO] [stderr] 537 | Type::Ptr(ref mut ty) => { [INFO] [stderr] 538 | ty.rename_for_config(config, generic_params); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:558:9 [INFO] [stderr] | [INFO] [stderr] 558 | / match self { [INFO] [stderr] 559 | | &mut Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 560 | | ty.resolve_declaration_types(resolver); [INFO] [stderr] 561 | | } [INFO] [stderr] ... | [INFO] [stderr] 577 | | } [INFO] [stderr] 578 | | } [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] 558 | match *self { [INFO] [stderr] 559 | Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 560 | ty.resolve_declaration_types(resolver); [INFO] [stderr] 561 | } [INFO] [stderr] 562 | Type::Ptr(ref mut ty) => { [INFO] [stderr] 563 | ty.resolve_declaration_types(resolver); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:582:9 [INFO] [stderr] | [INFO] [stderr] 582 | / match self { [INFO] [stderr] 583 | | &mut Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 584 | | ty.mangle_paths(monomorphs); [INFO] [stderr] 585 | | } [INFO] [stderr] ... | [INFO] [stderr] 613 | | } [INFO] [stderr] 614 | | } [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] 582 | match *self { [INFO] [stderr] 583 | Type::ConstPtr(ref mut ty) => { [INFO] [stderr] 584 | ty.mangle_paths(monomorphs); [INFO] [stderr] 585 | } [INFO] [stderr] 586 | Type::Ptr(ref mut ty) => { [INFO] [stderr] 587 | ty.mangle_paths(monomorphs); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/ir/ty.rs:590:20 [INFO] [stderr] | [INFO] [stderr] 590 | if generic_path.generics().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `generic_path.generics().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:618:9 [INFO] [stderr] | [INFO] [stderr] 618 | / match self { [INFO] [stderr] 619 | | &Type::ConstPtr(..) => true, [INFO] [stderr] 620 | | &Type::Ptr(..) => true, [INFO] [stderr] 621 | | &Type::Path(..) => true, [INFO] [stderr] ... | [INFO] [stderr] 624 | | &Type::FuncPtr(..) => false, [INFO] [stderr] 625 | | } [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] 618 | match *self { [INFO] [stderr] 619 | Type::ConstPtr(..) => true, [INFO] [stderr] 620 | Type::Ptr(..) => true, [INFO] [stderr] 621 | Type::Path(..) => true, [INFO] [stderr] 622 | Type::Primitive(ref p) => p.can_cmp_order(), [INFO] [stderr] 623 | Type::Array(..) => false, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/ir/ty.rs:629:9 [INFO] [stderr] | [INFO] [stderr] 629 | / match self { [INFO] [stderr] 630 | | &Type::ConstPtr(..) => true, [INFO] [stderr] 631 | | &Type::Ptr(..) => true, [INFO] [stderr] 632 | | &Type::Path(..) => true, [INFO] [stderr] ... | [INFO] [stderr] 635 | | &Type::FuncPtr(..) => true, [INFO] [stderr] 636 | | } [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] 629 | match *self { [INFO] [stderr] 630 | Type::ConstPtr(..) => true, [INFO] [stderr] 631 | Type::Ptr(..) => true, [INFO] [stderr] 632 | Type::Path(..) => true, [INFO] [stderr] 633 | Type::Primitive(ref p) => p.can_cmp_eq(), [INFO] [stderr] 634 | Type::Array(..) => false, [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/bindgen/ir/typedef.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | / match self.aliased.get_root_path() { [INFO] [stderr] 81 | | Some(alias_path) => { [INFO] [stderr] 82 | | if out.contains_key(&alias_path) { [INFO] [stderr] 83 | | warn!( [INFO] [stderr] ... | [INFO] [stderr] 93 | | None => {} [INFO] [stderr] 94 | | } [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] 80 | if let Some(alias_path) = self.aliased.get_root_path() { [INFO] [stderr] 81 | if out.contains_key(&alias_path) { [INFO] [stderr] 82 | warn!( [INFO] [stderr] 83 | "Multiple typedef's with annotations for {}. Ignoring annotations from {}.", [INFO] [stderr] 84 | alias_path, self.path [INFO] [stderr] 85 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/bindgen/library.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new( [INFO] [stderr] 33 | | config: Config, [INFO] [stderr] 34 | | constants: ItemMap, [INFO] [stderr] 35 | | globals: ItemMap, [INFO] [stderr] ... | [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/mangle.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match ty { [INFO] [stderr] 36 | | &Type::Path(ref generic) => { [INFO] [stderr] 37 | | mangled.push_str(&internal_mangle_name( [INFO] [stderr] 38 | | generic.export_name(), [INFO] [stderr] ... | [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | } [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] 35 | match *ty { [INFO] [stderr] 36 | Type::Path(ref generic) => { [INFO] [stderr] 37 | mangled.push_str(&internal_mangle_name( [INFO] [stderr] 38 | generic.export_name(), [INFO] [stderr] 39 | generic.generics(), [INFO] [stderr] 40 | last_in_parent && is_last, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/bindgen/mangle.rs:69:28 [INFO] [stderr] | [INFO] [stderr] 69 | generic_path(path, &vec![]) [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/bindgen/mangle.rs:80:40 [INFO] [stderr] | [INFO] [stderr] 80 | mangle_path(&Path::new("Foo"), &vec![float()]), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[float()]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/bindgen/mangle.rs:86:40 [INFO] [stderr] | [INFO] [stderr] 86 | mangle_path(&Path::new("Foo"), &vec![generic_path("Bar", &[float()])]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[generic_path("Bar", &[float()])]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/bindgen/parser.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | / pub(crate) fn parse_lib( [INFO] [stderr] 67 | | lib: Cargo, [INFO] [stderr] 68 | | parse_deps: bool, [INFO] [stderr] 69 | | include: &Option>, [INFO] [stderr] ... | [INFO] [stderr] 95 | | Ok(context.out) [INFO] [stderr] 96 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bindgen/parser.rs:121:49 [INFO] [stderr] | [INFO] [stderr] 121 | fn should_parse_dependency(&self, pkg_name: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/bindgen/parser.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | self.cache_expanded_crate.get(&pkg.name).unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.cache_expanded_crate[&pkg.name]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/parser.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | / match item { [INFO] [stderr] 214 | | &syn::Item::Mod(ref item) => { [INFO] [stderr] 215 | | let cfg = Cfg::load(&item.attrs); [INFO] [stderr] 216 | | if let &Some(ref cfg) = &cfg { [INFO] [stderr] ... | [INFO] [stderr] 265 | | _ => {} [INFO] [stderr] 266 | | } [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] 213 | match *item { [INFO] [stderr] 214 | syn::Item::Mod(ref item) => { [INFO] [stderr] 215 | let cfg = Cfg::load(&item.attrs); [INFO] [stderr] 216 | if let &Some(ref cfg) = &cfg { [INFO] [stderr] 217 | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 218 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:216:21 [INFO] [stderr] | [INFO] [stderr] 216 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 217 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 218 | | } [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] 216 | if let Some(ref cfg) = cfg { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:234:21 [INFO] [stderr] | [INFO] [stderr] 234 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 235 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 236 | | } [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] 234 | if let Some(ref cfg) = cfg { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/bindgen/parser.rs:297:13 [INFO] [stderr] | [INFO] [stderr] 297 | self.cache_src.get(&owned_mod_path).unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.cache_src[&owned_mod_path]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/parser.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | / match item { [INFO] [stderr] 323 | | &syn::Item::Mod(ref item) => { [INFO] [stderr] 324 | | let next_mod_name = item.ident.to_string(); [INFO] [stderr] 325 | | [INFO] [stderr] ... | [INFO] [stderr] 416 | | _ => {} [INFO] [stderr] 417 | | } [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] 322 | match *item { [INFO] [stderr] 323 | syn::Item::Mod(ref item) => { [INFO] [stderr] 324 | let next_mod_name = item.ident.to_string(); [INFO] [stderr] 325 | [INFO] [stderr] 326 | let cfg = Cfg::load(&item.attrs); [INFO] [stderr] 327 | if let &Some(ref cfg) = &cfg { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 328 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 329 | | } [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] 327 | if let Some(ref cfg) = cfg { [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/bindgen/parser.rs:349:33 [INFO] [stderr] | [INFO] [stderr] 349 | / match attr.interpret_meta() { [INFO] [stderr] 350 | | Some(syn::Meta::NameValue(syn::MetaNameValue { [INFO] [stderr] 351 | | ident, [INFO] [stderr] 352 | | lit, [INFO] [stderr] ... | [INFO] [stderr] 362 | | _ => (), [INFO] [stderr] 363 | | } [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] 349 | if let Some(syn::Meta::NameValue(syn::MetaNameValue { [INFO] [stderr] 350 | ident, [INFO] [stderr] 351 | lit, [INFO] [stderr] 352 | .. [INFO] [stderr] 353 | })) = attr.interpret_meta() { match lit { [INFO] [stderr] 354 | syn::Lit::Str(ref path) if ident == "path" => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/bindgen/parser.rs:385:21 [INFO] [stderr] | [INFO] [stderr] 385 | / if let &Some(ref cfg) = &cfg { [INFO] [stderr] 386 | | self.cfg_stack.push(cfg.clone()); [INFO] [stderr] 387 | | } [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] 385 | if let Some(ref cfg) = cfg { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bindgen/parser.rs:453:73 [INFO] [stderr] | [INFO] [stderr] 453 | let generic_params: Vec<_> = generic_params.into_iter().map(|s| Path::new(s)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Path::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bindgen/parser.rs:558:13 [INFO] [stderr] | [INFO] [stderr] 558 | / match foreign_item { [INFO] [stderr] 559 | | &syn::ForeignItem::Fn(ref function) => { [INFO] [stderr] 560 | | if crate_name != binding_crate_name { [INFO] [stderr] 561 | | info!( [INFO] [stderr] ... | [INFO] [stderr] 582 | | _ => {} [INFO] [stderr] 583 | | } [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] 558 | if let &syn::ForeignItem::Fn(ref function) = foreign_item { [INFO] [stderr] 559 | if crate_name != binding_crate_name { [INFO] [stderr] 560 | info!( [INFO] [stderr] 561 | "Skip {}::{} - (fn's outside of the binding crate are not used).", [INFO] [stderr] 562 | crate_name, &function.ident [INFO] [stderr] 563 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/parser.rs:558:13 [INFO] [stderr] | [INFO] [stderr] 558 | / match foreign_item { [INFO] [stderr] 559 | | &syn::ForeignItem::Fn(ref function) => { [INFO] [stderr] 560 | | if crate_name != binding_crate_name { [INFO] [stderr] 561 | | info!( [INFO] [stderr] ... | [INFO] [stderr] 582 | | _ => {} [INFO] [stderr] 583 | | } [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] 558 | match *foreign_item { [INFO] [stderr] 559 | syn::ForeignItem::Fn(ref function) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bindgen/rename.rs:55:33 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn apply_to_pascal_case(&self, text: &str, context: IdentifierType) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/rename.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if text.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `text.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/rename.rs:124:21 [INFO] [stderr] | [INFO] [stderr] 124 | / if let &RenameRule::QualifiedScreamingSnakeCase = self { [INFO] [stderr] 125 | | result.push_str( [INFO] [stderr] 126 | | &RenameRule::ScreamingSnakeCase [INFO] [stderr] 127 | | .apply_to_pascal_case(e.path().name(), IdentifierType::Enum), [INFO] [stderr] 128 | | ); [INFO] [stderr] 129 | | result.push_str("_"); [INFO] [stderr] 130 | | } [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] 124 | if let RenameRule::QualifiedScreamingSnakeCase = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bindgen/rename.rs:141:32 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn apply_to_snake_case(&self, mut text: &str, context: IdentifierType) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bindgen/rename.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | if text.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `text.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/rename.rs:205:21 [INFO] [stderr] | [INFO] [stderr] 205 | / if let &RenameRule::QualifiedScreamingSnakeCase = self { [INFO] [stderr] 206 | | result.push_str( [INFO] [stderr] 207 | | &RenameRule::ScreamingSnakeCase [INFO] [stderr] 208 | | .apply_to_snake_case(e.path().name(), IdentifierType::Enum), [INFO] [stderr] 209 | | ); [INFO] [stderr] 210 | | result.push_str("_"); [INFO] [stderr] 211 | | } [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] 205 | if let RenameRule::QualifiedScreamingSnakeCase = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/bindgen/reserved.rs:85:12 [INFO] [stderr] | [INFO] [stderr] 85 | if let Ok(_) = (RESERVED_KEYWORDS).binary_search(&rust_identifier.as_ref()) { [INFO] [stderr] | _____- ^^^^^ [INFO] [stderr] 86 | | rust_identifier.push('_'); [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____- help: try this: `if (RESERVED_KEYWORDS).binary_search(&rust_identifier.as_ref()).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: this loop could be written as a `for` loop [INFO] [stderr] --> src/bindgen/utilities.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | while let Some(item) = self.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for item in self { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / if let &Some(ref x) = x { [INFO] [stderr] 34 | | return Some(x); [INFO] [stderr] 35 | | } [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] 33 | if let Some(ref x) = *x { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match $s { [INFO] [stderr] 69 | | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] 70 | | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] 71 | | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] ... | [INFO] [stderr] 84 | | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 91 | / syn_item_match_helper!(self => [INFO] [stderr] 92 | | has_attrs: |item| { item.has_attr_word(name) }, [INFO] [stderr] 93 | | otherwise: || { false } [INFO] [stderr] 94 | | ) [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#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match $s { [INFO] [stderr] 69 | | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] 70 | | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] 71 | | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] ... | [INFO] [stderr] 84 | | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 98 | / syn_item_match_helper!(self => [INFO] [stderr] 99 | | has_attrs: |item| { item.has_attr_list(name, args) }, [INFO] [stderr] 100 | | otherwise: || { false } [INFO] [stderr] 101 | | ) [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#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match $s { [INFO] [stderr] 69 | | &syn::Item::Const(ref item) => (|$i: &syn::ItemConst| $a)(item), [INFO] [stderr] 70 | | &syn::Item::Enum(ref item) => (|$i: &syn::ItemEnum| $a)(item), [INFO] [stderr] 71 | | &syn::Item::ExternCrate(ref item) => (|$i: &syn::ItemExternCrate| $a)(item), [INFO] [stderr] ... | [INFO] [stderr] 84 | | &syn::Item::Verbatim(_) => (|| $b)(), [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 105 | / syn_item_match_helper!(self => [INFO] [stderr] 106 | | has_attrs: |item| { item.has_attr_name_value(name, value) }, [INFO] [stderr] 107 | | otherwise: || { false } [INFO] [stderr] 108 | | ) [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#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | / if let &Some(ref abi) = self { [INFO] [stderr] 216 | | if let Some(ref lit_string) = abi.name { [INFO] [stderr] 217 | | return lit_string.value() == String::from("C"); [INFO] [stderr] 218 | | } [INFO] [stderr] 219 | | } [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] 215 | if let Some(ref abi) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bindgen/utilities.rs:217:46 [INFO] [stderr] | [INFO] [stderr] 217 | return lit_string.value() == String::from("C"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `"C"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bindgen/utilities.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | / if let &Some(ref abi) = self { [INFO] [stderr] 224 | | abi.name.is_none() [INFO] [stderr] 225 | | } else { [INFO] [stderr] 226 | | false [INFO] [stderr] 227 | | } [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] 223 | if let Some(ref abi) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/bindgen/utilities.rs:234:35 [INFO] [stderr] | [INFO] [stderr] 234 | lit_string.value() == String::from("C") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `"C"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] error: useless lint attribute [INFO] [stderr] --> src/bindgen/mod.rs:57:1 [INFO] [stderr] | [INFO] [stderr] 57 | #[allow(unused)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![allow(unused)]` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::useless_attribute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_attribute [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `cbindgen`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b05d26286baf96ccfde2278e4796d25a985bf01163d76397ee8d5ccf430058ce"` [INFO] running `"docker" "rm" "-f" "b05d26286baf96ccfde2278e4796d25a985bf01163d76397ee8d5ccf430058ce"` [INFO] [stdout] b05d26286baf96ccfde2278e4796d25a985bf01163d76397ee8d5ccf430058ce