[INFO] crate lmdb-rs 0.7.6 is already in cache [INFO] extracting crate lmdb-rs 0.7.6 into work/ex/clippy-test-run/sources/stable/reg/lmdb-rs/0.7.6 [INFO] extracting crate lmdb-rs 0.7.6 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/lmdb-rs/0.7.6 [INFO] validating manifest of lmdb-rs-0.7.6 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 lmdb-rs-0.7.6 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 lmdb-rs-0.7.6 [INFO] removed path dependency liblmdb-sys from lmdb-rs-0.7.6 [INFO] finished frobbing lmdb-rs-0.7.6 [INFO] frobbed toml for lmdb-rs-0.7.6 written to work/ex/clippy-test-run/sources/stable/reg/lmdb-rs/0.7.6/Cargo.toml [INFO] started frobbing lmdb-rs-0.7.6 [INFO] removed path dependency liblmdb-sys from lmdb-rs-0.7.6 [INFO] finished frobbing lmdb-rs-0.7.6 [INFO] frobbed toml for lmdb-rs-0.7.6 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/lmdb-rs/0.7.6/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting lmdb-rs-0.7.6 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/lmdb-rs/0.7.6:/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] 91ad68134bbe0149b7006fe9f191a609caf3113a0ce62c741bf1b1dfce2f58c6 [INFO] running `"docker" "start" "-a" "91ad68134bbe0149b7006fe9f191a609caf3113a0ce62c741bf1b1dfce2f58c6"` [INFO] [stderr] Compiling liblmdb-sys v0.2.2 [INFO] [stderr] Checking lmdb-rs v0.7.6 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core.rs:400:20 [INFO] [stderr] | [INFO] [stderr] 400 | Database { handle: handle, txn: txn } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/core.rs:400:36 [INFO] [stderr] | [INFO] [stderr] 400 | Database { handle: handle, txn: txn } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `txn` [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/core.rs:724:13 [INFO] [stderr] | [INFO] [stderr] 724 | is_readonly: is_readonly, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_readonly` [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/core.rs:898:34 [INFO] [stderr] | [INFO] [stderr] 898 | Ok(DbHandle {handle: db, flags: flags}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/core.rs:904:34 [INFO] [stderr] | [INFO] [stderr] 904 | Ok(DbHandle {handle: db, flags: flags}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/core.rs:986:13 [INFO] [stderr] | [INFO] [stderr] 986 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/core.rs:988:13 [INFO] [stderr] | [INFO] [stderr] 988 | env: env, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `env` [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/core.rs:1311:13 [INFO] [stderr] | [INFO] [stderr] 1311 | txn: txn, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `txn` [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/core.rs:1312:13 [INFO] [stderr] | [INFO] [stderr] 1312 | db: db, [INFO] [stderr] | ^^^^^^ help: replace it with: `db` [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/core.rs:1652:13 [INFO] [stderr] | [INFO] [stderr] 1652 | inner: inner, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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/core.rs:1653:13 [INFO] [stderr] | [INFO] [stderr] 1653 | has_data: has_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `has_data` [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/core.rs:1654:13 [INFO] [stderr] | [INFO] [stderr] 1654 | cursor: cursor, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cursor` [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/core.rs:1704:13 [INFO] [stderr] | [INFO] [stderr] 1704 | end_inclusive: end_inclusive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_inclusive` [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/core.rs:400:20 [INFO] [stderr] | [INFO] [stderr] 400 | Database { handle: handle, txn: txn } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/core.rs:400:36 [INFO] [stderr] | [INFO] [stderr] 400 | Database { handle: handle, txn: txn } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `txn` [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/core.rs:724:13 [INFO] [stderr] | [INFO] [stderr] 724 | is_readonly: is_readonly, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_readonly` [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/core.rs:898:34 [INFO] [stderr] | [INFO] [stderr] 898 | Ok(DbHandle {handle: db, flags: flags}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/core.rs:904:34 [INFO] [stderr] | [INFO] [stderr] 904 | Ok(DbHandle {handle: db, flags: flags}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/core.rs:986:13 [INFO] [stderr] | [INFO] [stderr] 986 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/core.rs:988:13 [INFO] [stderr] | [INFO] [stderr] 988 | env: env, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `env` [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/core.rs:1311:13 [INFO] [stderr] | [INFO] [stderr] 1311 | txn: txn, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `txn` [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/core.rs:1312:13 [INFO] [stderr] | [INFO] [stderr] 1312 | db: db, [INFO] [stderr] | ^^^^^^ help: replace it with: `db` [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/core.rs:1652:13 [INFO] [stderr] | [INFO] [stderr] 1652 | inner: inner, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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/core.rs:1653:13 [INFO] [stderr] | [INFO] [stderr] 1653 | has_data: has_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `has_data` [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/core.rs:1654:13 [INFO] [stderr] | [INFO] [stderr] 1654 | cursor: cursor, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cursor` [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/core.rs:1704:13 [INFO] [stderr] | [INFO] [stderr] 1704 | end_inclusive: end_inclusive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_inclusive` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/core.rs:100:1 [INFO] [stderr] | [INFO] [stderr] 100 | / macro_rules! assert_state_not { [INFO] [stderr] 101 | | ($log:ident, $cur:expr, $exp:expr) => [INFO] [stderr] 102 | | ({ [INFO] [stderr] 103 | | let c = $cur; [INFO] [stderr] ... | [INFO] [stderr] 110 | | }}) [INFO] [stderr] 111 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/core.rs:100:1 [INFO] [stderr] | [INFO] [stderr] 100 | / macro_rules! assert_state_not { [INFO] [stderr] 101 | | ($log:ident, $cur:expr, $exp:expr) => [INFO] [stderr] 102 | | ({ [INFO] [stderr] 103 | | let c = $cur; [INFO] [stderr] ... | [INFO] [stderr] 110 | | }}) [INFO] [stderr] 111 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tests.rs:242:29 [INFO] [stderr] | [INFO] [stderr] 242 | assert!(env.set_mapsize(0x100000usize).is_ok(), "Couldn't resize map"); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0x0010_0000usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | / match self { [INFO] [stderr] 149 | | &NotFound | &KeyExists | &TxnFull | [INFO] [stderr] 150 | | &CursorFull | &PageFull | &Corrupted | [INFO] [stderr] 151 | | &Panic | &InvalidPath | &CacheError => write!(fmt, "{}", self.description()), [INFO] [stderr] 152 | | &StateError(ref msg) => write!(fmt, "{}", msg), [INFO] [stderr] 153 | | &Other(code, ref msg) => write!(fmt, "{}: {}", code, msg) [INFO] [stderr] 154 | | } [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] 148 | match *self { [INFO] [stderr] 149 | NotFound | KeyExists | TxnFull | [INFO] [stderr] 150 | CursorFull | PageFull | Corrupted | [INFO] [stderr] 151 | Panic | InvalidPath | CacheError => write!(fmt, "{}", self.description()), [INFO] [stderr] 152 | StateError(ref msg) => write!(fmt, "{}", msg), [INFO] [stderr] 153 | Other(code, ref msg) => write!(fmt, "{}: {}", code, msg) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | / match self { [INFO] [stderr] 161 | | &NotFound => "not found", [INFO] [stderr] 162 | | &KeyExists => "key exists", [INFO] [stderr] 163 | | &TxnFull => "txn full", [INFO] [stderr] ... | [INFO] [stderr] 171 | | &Other(_, _) => "other error", [INFO] [stderr] 172 | | } [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] 160 | match *self { [INFO] [stderr] 161 | NotFound => "not found", [INFO] [stderr] 162 | KeyExists => "key exists", [INFO] [stderr] 163 | TxnFull => "txn full", [INFO] [stderr] 164 | CursorFull => "cursor full", [INFO] [stderr] 165 | PageFull => "page full", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `core::EnvBuilder` [INFO] [stderr] --> src/core.rs:566:5 [INFO] [stderr] | [INFO] [stderr] 566 | / pub fn new() -> EnvBuilder { [INFO] [stderr] 567 | | EnvBuilder { [INFO] [stderr] 568 | | flags: EnvCreateFlags::empty(), [INFO] [stderr] 569 | | max_readers: None, [INFO] [stderr] ... | [INFO] [stderr] 573 | | } [INFO] [stderr] 574 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 565 | impl Default for core::EnvBuilder { [INFO] [stderr] 566 | fn default() -> Self { [INFO] [stderr] 567 | Self::new() [INFO] [stderr] 568 | } [INFO] [stderr] 569 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/core.rs:614:49 [INFO] [stderr] | [INFO] [stderr] 614 | let p_env: *mut *mut ffi::MDB_env = std::mem::transmute(&env); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&env as *const *mut ffi::MDB_env as *mut *mut ffi::MDB_env` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/core.rs:615:13 [INFO] [stderr] | [INFO] [stderr] 615 | let _ = try_mdb!(ffi::mdb_env_create(p_env)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/core.rs:634:13 [INFO] [stderr] | [INFO] [stderr] 634 | let _ = try!(EnvBuilder::check_path(&path, self.flags)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`*mut ffi::MDB_env`) to itself [INFO] [stderr] --> src/core.rs:645:31 [INFO] [stderr] | [INFO] [stderr] 645 | ffi::mdb_env_open(mem::transmute(env), c_path.as_ref().as_ptr(), self.flags.bits(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/core.rs:649:9 [INFO] [stderr] | [INFO] [stderr] 649 | drop(self); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type core::EnvBuilder [INFO] [stderr] --> src/core.rs:649:14 [INFO] [stderr] | [INFO] [stderr] 649 | drop(self); [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`*mut ffi::MDB_env`) to itself [INFO] [stderr] --> src/core.rs:655:45 [INFO] [stderr] | [INFO] [stderr] 655 | unsafe { ffi::mdb_env_close(mem::transmute(env)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/core.rs:682:40 [INFO] [stderr] | [INFO] [stderr] 682 | fs::create_dir_all(path.as_ref().clone()).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 682 | fs::create_dir_all(&(*path.as_ref()).clone()).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 682 | fs::create_dir_all(&std::path::Path::clone(path.as_ref())).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/core.rs:700:16 [INFO] [stderr] | [INFO] [stderr] 700 | if self.0 != ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/core.rs:716:5 [INFO] [stderr] | [INFO] [stderr] 716 | / pub fn new() -> EnvBuilder { [INFO] [stderr] 717 | | EnvBuilder::new() [INFO] [stderr] 718 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core.rs:854:21 [INFO] [stderr] | [INFO] [stderr] 854 | let ref cell = *guard; [INFO] [stderr] | ----^^^^^^^^---------- help: try: `let cell = &(*guard);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/core.rs:868:35 [INFO] [stderr] | [INFO] [stderr] 868 | let opt_name = if db_name.len() > 0 {Some(db_name)} else {None}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!db_name.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core.rs:916:21 [INFO] [stderr] | [INFO] [stderr] 916 | let ref cell = *guard; [INFO] [stderr] | ----^^^^^^^^---------- help: try: `let cell = &(*guard);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1350:21 [INFO] [stderr] | [INFO] [stderr] 1350 | pub fn to_first(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1355:20 [INFO] [stderr] | [INFO] [stderr] 1355 | pub fn to_last(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1360:38 [INFO] [stderr] | [INFO] [stderr] 1360 | pub fn to_key<'k, K: ToMdbValue>(&mut self, key: &'k K) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1366:42 [INFO] [stderr] | [INFO] [stderr] 1366 | pub fn to_gte_key<'k, K: ToMdbValue>(&mut self, key: &'k K) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1373:26 [INFO] [stderr] | [INFO] [stderr] 1373 | pub fn to_item(&mut self, key: &K, value: & V) -> MdbResult<()> where K: ToMdbValue, V: ToMdbValue { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1378:30 [INFO] [stderr] | [INFO] [stderr] 1378 | pub fn to_gte_item(&mut self, key: &K, value: & V) -> MdbResult<()> where K: ToMdbValue, V: ToMdbValue { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1384:24 [INFO] [stderr] | [INFO] [stderr] 1384 | pub fn to_next_key(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1389:25 [INFO] [stderr] | [INFO] [stderr] 1389 | pub fn to_next_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1395:24 [INFO] [stderr] | [INFO] [stderr] 1395 | pub fn to_prev_key(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1400:25 [INFO] [stderr] | [INFO] [stderr] 1400 | pub fn to_prev_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1405:26 [INFO] [stderr] | [INFO] [stderr] 1405 | pub fn to_first_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1410:25 [INFO] [stderr] | [INFO] [stderr] 1410 | pub fn to_last_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/core.rs:1448:63 [INFO] [stderr] | [INFO] [stderr] 1448 | ffi::mdb_cmp(self.txn.handle, self.db, &mut kval, mem::transmute(other)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `other as *const core::MdbValue<'_> as *mut ffi::MDB_val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/core.rs:1867:27 [INFO] [stderr] | [INFO] [stderr] 1867 | MdbValue::new(mem::transmute(data), mem::size_of::()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `data as *const T as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | fn to_mdb_value<'a>(&'a self) -> MdbValue<'a>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 39 | | unsafe { [INFO] [stderr] 40 | | MdbValue::new(std::mem::transmute(self.as_ptr()), self.len()) [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | MdbValue::new(std::mem::transmute(self.as_ptr()), self.len()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:49:27 [INFO] [stderr] | [INFO] [stderr] 49 | MdbValue::new(std::mem::transmute(t.as_ptr()), t.len()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / fn to_mdb_value<'b>(&'b self) -> MdbValue<'b> { [INFO] [stderr] 56 | | unsafe { [INFO] [stderr] 57 | | MdbValue::new(mem::transmute(self.as_ptr()), [INFO] [stderr] 58 | | self.len()) [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:57:27 [INFO] [stderr] | [INFO] [stderr] 57 | MdbValue::new(mem::transmute(self.as_ptr()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / fn to_mdb_value<'b>(&'b self) -> MdbValue<'b> { [INFO] [stderr] 65 | | unsafe { [INFO] [stderr] 66 | | MdbValue::new(std::mem::transmute(self.as_ptr()), [INFO] [stderr] 67 | | self.len()) [INFO] [stderr] 68 | | } [INFO] [stderr] 69 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:66:27 [INFO] [stderr] | [INFO] [stderr] 66 | MdbValue::new(std::mem::transmute(self.as_ptr()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 74 | | unsafe { [INFO] [stderr] 75 | | MdbValue::from_raw(self) [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / fn to_mdb_value<'b>(&'b self) -> MdbValue<'b> { [INFO] [stderr] 82 | | *self [INFO] [stderr] 83 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:90:23 [INFO] [stderr] | [INFO] [stderr] 90 | let ptr = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *const u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:100:23 [INFO] [stderr] | [INFO] [stderr] 100 | let ptr = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *const u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/traits.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | std::mem::transmute(slice::from_raw_parts(value.get_ref(), value.get_size())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(slice::from_raw_parts(value.get_ref(), value.get_size()) as *const [libc::c_void] as *const str)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/traits.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | std::mem::transmute(slice::from_raw_parts(value.get_ref(), value.get_size())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(slice::from_raw_parts(value.get_ref(), value.get_size()) as *const [libc::c_void] as *const [u8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 147 | mdb_for_primitive!(u8); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u8` [INFO] [stderr] ... [INFO] [stderr] 147 | mdb_for_primitive!(u8); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 148 | mdb_for_primitive!(i8); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i8` [INFO] [stderr] ... [INFO] [stderr] 148 | mdb_for_primitive!(i8); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 149 | mdb_for_primitive!(u16); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u16` [INFO] [stderr] ... [INFO] [stderr] 149 | mdb_for_primitive!(u16); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 150 | mdb_for_primitive!(i16); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i16` [INFO] [stderr] ... [INFO] [stderr] 150 | mdb_for_primitive!(i16); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 151 | mdb_for_primitive!(u32); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u32` [INFO] [stderr] ... [INFO] [stderr] 151 | mdb_for_primitive!(u32); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 152 | mdb_for_primitive!(i32); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i32` [INFO] [stderr] ... [INFO] [stderr] 152 | mdb_for_primitive!(i32); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 153 | mdb_for_primitive!(u64); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u64` [INFO] [stderr] ... [INFO] [stderr] 153 | mdb_for_primitive!(u64); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 154 | mdb_for_primitive!(i64); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i64` [INFO] [stderr] ... [INFO] [stderr] 154 | mdb_for_primitive!(i64); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 155 | mdb_for_primitive!(f32); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut f32` [INFO] [stderr] ... [INFO] [stderr] 155 | mdb_for_primitive!(f32); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 156 | mdb_for_primitive!(f64); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut f64` [INFO] [stderr] ... [INFO] [stderr] 156 | mdb_for_primitive!(f64); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 157 | mdb_for_primitive!(bool); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut bool` [INFO] [stderr] ... [INFO] [stderr] 157 | mdb_for_primitive!(bool); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `lmdb-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | / match self { [INFO] [stderr] 149 | | &NotFound | &KeyExists | &TxnFull | [INFO] [stderr] 150 | | &CursorFull | &PageFull | &Corrupted | [INFO] [stderr] 151 | | &Panic | &InvalidPath | &CacheError => write!(fmt, "{}", self.description()), [INFO] [stderr] 152 | | &StateError(ref msg) => write!(fmt, "{}", msg), [INFO] [stderr] 153 | | &Other(code, ref msg) => write!(fmt, "{}: {}", code, msg) [INFO] [stderr] 154 | | } [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] 148 | match *self { [INFO] [stderr] 149 | NotFound | KeyExists | TxnFull | [INFO] [stderr] 150 | CursorFull | PageFull | Corrupted | [INFO] [stderr] 151 | Panic | InvalidPath | CacheError => write!(fmt, "{}", self.description()), [INFO] [stderr] 152 | StateError(ref msg) => write!(fmt, "{}", msg), [INFO] [stderr] 153 | Other(code, ref msg) => write!(fmt, "{}: {}", code, msg) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | / match self { [INFO] [stderr] 161 | | &NotFound => "not found", [INFO] [stderr] 162 | | &KeyExists => "key exists", [INFO] [stderr] 163 | | &TxnFull => "txn full", [INFO] [stderr] ... | [INFO] [stderr] 171 | | &Other(_, _) => "other error", [INFO] [stderr] 172 | | } [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] 160 | match *self { [INFO] [stderr] 161 | NotFound => "not found", [INFO] [stderr] 162 | KeyExists => "key exists", [INFO] [stderr] 163 | TxnFull => "txn full", [INFO] [stderr] 164 | CursorFull => "cursor full", [INFO] [stderr] 165 | PageFull => "page full", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `core::EnvBuilder` [INFO] [stderr] --> src/core.rs:566:5 [INFO] [stderr] | [INFO] [stderr] 566 | / pub fn new() -> EnvBuilder { [INFO] [stderr] 567 | | EnvBuilder { [INFO] [stderr] 568 | | flags: EnvCreateFlags::empty(), [INFO] [stderr] 569 | | max_readers: None, [INFO] [stderr] ... | [INFO] [stderr] 573 | | } [INFO] [stderr] 574 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 565 | impl Default for core::EnvBuilder { [INFO] [stderr] 566 | fn default() -> Self { [INFO] [stderr] 567 | Self::new() [INFO] [stderr] 568 | } [INFO] [stderr] 569 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/core.rs:614:49 [INFO] [stderr] | [INFO] [stderr] 614 | let p_env: *mut *mut ffi::MDB_env = std::mem::transmute(&env); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&env as *const *mut ffi::MDB_env as *mut *mut ffi::MDB_env` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/core.rs:615:13 [INFO] [stderr] | [INFO] [stderr] 615 | let _ = try_mdb!(ffi::mdb_env_create(p_env)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/core.rs:634:13 [INFO] [stderr] | [INFO] [stderr] 634 | let _ = try!(EnvBuilder::check_path(&path, self.flags)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`*mut ffi::MDB_env`) to itself [INFO] [stderr] --> src/core.rs:645:31 [INFO] [stderr] | [INFO] [stderr] 645 | ffi::mdb_env_open(mem::transmute(env), c_path.as_ref().as_ptr(), self.flags.bits(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/core.rs:649:9 [INFO] [stderr] | [INFO] [stderr] 649 | drop(self); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type core::EnvBuilder [INFO] [stderr] --> src/core.rs:649:14 [INFO] [stderr] | [INFO] [stderr] 649 | drop(self); [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`*mut ffi::MDB_env`) to itself [INFO] [stderr] --> src/core.rs:655:45 [INFO] [stderr] | [INFO] [stderr] 655 | unsafe { ffi::mdb_env_close(mem::transmute(env)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/core.rs:682:40 [INFO] [stderr] | [INFO] [stderr] 682 | fs::create_dir_all(path.as_ref().clone()).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 682 | fs::create_dir_all(&(*path.as_ref()).clone()).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 682 | fs::create_dir_all(&std::path::Path::clone(path.as_ref())).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/core.rs:700:16 [INFO] [stderr] | [INFO] [stderr] 700 | if self.0 != ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/core.rs:716:5 [INFO] [stderr] | [INFO] [stderr] 716 | / pub fn new() -> EnvBuilder { [INFO] [stderr] 717 | | EnvBuilder::new() [INFO] [stderr] 718 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core.rs:854:21 [INFO] [stderr] | [INFO] [stderr] 854 | let ref cell = *guard; [INFO] [stderr] | ----^^^^^^^^---------- help: try: `let cell = &(*guard);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/core.rs:868:35 [INFO] [stderr] | [INFO] [stderr] 868 | let opt_name = if db_name.len() > 0 {Some(db_name)} else {None}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!db_name.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/core.rs:916:21 [INFO] [stderr] | [INFO] [stderr] 916 | let ref cell = *guard; [INFO] [stderr] | ----^^^^^^^^---------- help: try: `let cell = &(*guard);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1350:21 [INFO] [stderr] | [INFO] [stderr] 1350 | pub fn to_first(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1355:20 [INFO] [stderr] | [INFO] [stderr] 1355 | pub fn to_last(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1360:38 [INFO] [stderr] | [INFO] [stderr] 1360 | pub fn to_key<'k, K: ToMdbValue>(&mut self, key: &'k K) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1366:42 [INFO] [stderr] | [INFO] [stderr] 1366 | pub fn to_gte_key<'k, K: ToMdbValue>(&mut self, key: &'k K) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1373:26 [INFO] [stderr] | [INFO] [stderr] 1373 | pub fn to_item(&mut self, key: &K, value: & V) -> MdbResult<()> where K: ToMdbValue, V: ToMdbValue { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1378:30 [INFO] [stderr] | [INFO] [stderr] 1378 | pub fn to_gte_item(&mut self, key: &K, value: & V) -> MdbResult<()> where K: ToMdbValue, V: ToMdbValue { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1384:24 [INFO] [stderr] | [INFO] [stderr] 1384 | pub fn to_next_key(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1389:25 [INFO] [stderr] | [INFO] [stderr] 1389 | pub fn to_next_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1395:24 [INFO] [stderr] | [INFO] [stderr] 1395 | pub fn to_prev_key(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1400:25 [INFO] [stderr] | [INFO] [stderr] 1400 | pub fn to_prev_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1405:26 [INFO] [stderr] | [INFO] [stderr] 1405 | pub fn to_first_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/core.rs:1410:25 [INFO] [stderr] | [INFO] [stderr] 1410 | pub fn to_last_item(&mut self) -> MdbResult<()> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/core.rs:1448:63 [INFO] [stderr] | [INFO] [stderr] 1448 | ffi::mdb_cmp(self.txn.handle, self.db, &mut kval, mem::transmute(other)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `other as *const core::MdbValue<'_> as *mut ffi::MDB_val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/core.rs:1867:27 [INFO] [stderr] | [INFO] [stderr] 1867 | MdbValue::new(mem::transmute(data), mem::size_of::()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `data as *const T as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | fn to_mdb_value<'a>(&'a self) -> MdbValue<'a>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 39 | | unsafe { [INFO] [stderr] 40 | | MdbValue::new(std::mem::transmute(self.as_ptr()), self.len()) [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | MdbValue::new(std::mem::transmute(self.as_ptr()), self.len()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:49:27 [INFO] [stderr] | [INFO] [stderr] 49 | MdbValue::new(std::mem::transmute(t.as_ptr()), t.len()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / fn to_mdb_value<'b>(&'b self) -> MdbValue<'b> { [INFO] [stderr] 56 | | unsafe { [INFO] [stderr] 57 | | MdbValue::new(mem::transmute(self.as_ptr()), [INFO] [stderr] 58 | | self.len()) [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:57:27 [INFO] [stderr] | [INFO] [stderr] 57 | MdbValue::new(mem::transmute(self.as_ptr()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / fn to_mdb_value<'b>(&'b self) -> MdbValue<'b> { [INFO] [stderr] 65 | | unsafe { [INFO] [stderr] 66 | | MdbValue::new(std::mem::transmute(self.as_ptr()), [INFO] [stderr] 67 | | self.len()) [INFO] [stderr] 68 | | } [INFO] [stderr] 69 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:66:27 [INFO] [stderr] | [INFO] [stderr] 66 | MdbValue::new(std::mem::transmute(self.as_ptr()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_ptr() as *const libc::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 74 | | unsafe { [INFO] [stderr] 75 | | MdbValue::from_raw(self) [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / fn to_mdb_value<'b>(&'b self) -> MdbValue<'b> { [INFO] [stderr] 82 | | *self [INFO] [stderr] 83 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:90:23 [INFO] [stderr] | [INFO] [stderr] 90 | let ptr = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *const u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:100:23 [INFO] [stderr] | [INFO] [stderr] 100 | let ptr = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *const u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/traits.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | std::mem::transmute(slice::from_raw_parts(value.get_ref(), value.get_size())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(slice::from_raw_parts(value.get_ref(), value.get_size()) as *const [libc::c_void] as *const str)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/traits.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | std::mem::transmute(slice::from_raw_parts(value.get_ref(), value.get_size())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(slice::from_raw_parts(value.get_ref(), value.get_size()) as *const [libc::c_void] as *const [u8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 147 | mdb_for_primitive!(u8); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u8` [INFO] [stderr] ... [INFO] [stderr] 147 | mdb_for_primitive!(u8); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 148 | mdb_for_primitive!(i8); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i8` [INFO] [stderr] ... [INFO] [stderr] 148 | mdb_for_primitive!(i8); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 149 | mdb_for_primitive!(u16); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u16` [INFO] [stderr] ... [INFO] [stderr] 149 | mdb_for_primitive!(u16); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 150 | mdb_for_primitive!(i16); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i16` [INFO] [stderr] ... [INFO] [stderr] 150 | mdb_for_primitive!(i16); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 151 | mdb_for_primitive!(u32); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u32` [INFO] [stderr] ... [INFO] [stderr] 151 | mdb_for_primitive!(u32); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 152 | mdb_for_primitive!(i32); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i32` [INFO] [stderr] ... [INFO] [stderr] 152 | mdb_for_primitive!(i32); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 153 | mdb_for_primitive!(u64); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut u64` [INFO] [stderr] ... [INFO] [stderr] 153 | mdb_for_primitive!(u64); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 154 | mdb_for_primitive!(i64); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut i64` [INFO] [stderr] ... [INFO] [stderr] 154 | mdb_for_primitive!(i64); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 155 | mdb_for_primitive!(f32); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut f32` [INFO] [stderr] ... [INFO] [stderr] 155 | mdb_for_primitive!(f32); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 156 | mdb_for_primitive!(f64); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut f64` [INFO] [stderr] ... [INFO] [stderr] 156 | mdb_for_primitive!(f64); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/traits.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | / fn to_mdb_value<'a>(&'a self) -> MdbValue<'a> { [INFO] [stderr] 131 | | MdbValue::new_from_sized(self) [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 157 | mdb_for_primitive!(bool); [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#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/traits.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | let t: *mut $t = mem::transmute(value.get_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `value.get_ref() as *mut bool` [INFO] [stderr] ... [INFO] [stderr] 157 | mdb_for_primitive!(bool); [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#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/tests.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | Err(_) => panic!("unexpected db error"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tests.rs:382:17 [INFO] [stderr] | [INFO] [stderr] 382 | fn as_slices(v: &Vec) -> Vec<&str> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tests.rs:653:33 [INFO] [stderr] | [INFO] [stderr] 653 | assert_eq!(res, &values[start_idx.. end_idx + 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `start_idx..=end_idx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `lmdb-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "91ad68134bbe0149b7006fe9f191a609caf3113a0ce62c741bf1b1dfce2f58c6"` [INFO] running `"docker" "rm" "-f" "91ad68134bbe0149b7006fe9f191a609caf3113a0ce62c741bf1b1dfce2f58c6"` [INFO] [stdout] 91ad68134bbe0149b7006fe9f191a609caf3113a0ce62c741bf1b1dfce2f58c6