[INFO] crate ozone 0.1.0 is already in cache [INFO] extracting crate ozone 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/ozone/0.1.0 [INFO] extracting crate ozone 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ozone/0.1.0 [INFO] validating manifest of ozone-0.1.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of ozone-0.1.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing ozone-0.1.0 [INFO] finished frobbing ozone-0.1.0 [INFO] frobbed toml for ozone-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/ozone/0.1.0/Cargo.toml [INFO] started frobbing ozone-0.1.0 [INFO] finished frobbing ozone-0.1.0 [INFO] frobbed toml for ozone-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ozone/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting ozone-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ozone/0.1.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 60b0c10c70042b5cd754762dd48f01d513945ca7c84dd9b4b1c29bb2dacd58f1 [INFO] running `"docker" "start" "-a" "60b0c10c70042b5cd754762dd48f01d513945ca7c84dd9b4b1c29bb2dacd58f1"` [INFO] [stderr] Checking ozone v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/set.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | Self { map: map } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/set.rs:28:19 [INFO] [stderr] | [INFO] [stderr] 28 | Ok(Self { map: map }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/set.rs:39:16 [INFO] [stderr] | [INFO] [stderr] 39 | Self { map: map } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/set.rs:46:19 [INFO] [stderr] | [INFO] [stderr] 46 | Ok(Self { map: map }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/map.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/map.rs:194:13 [INFO] [stderr] | [INFO] [stderr] 194 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/map.rs:389:34 [INFO] [stderr] | [INFO] [stderr] 389 | self.buffer[ix] = Elem { key: key, value: val, hash: hash }; [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/map.rs:389:56 [INFO] [stderr] | [INFO] [stderr] 389 | self.buffer[ix] = Elem { key: key, value: val, hash: hash }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/table/mod.rs:151:33 [INFO] [stderr] | [INFO] [stderr] 151 | let mut db = Database { buffer: buffer, size: 8 }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/table/mod.rs:168:33 [INFO] [stderr] | [INFO] [stderr] 168 | let mut db = Database { buffer: buffer, size: 8 }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/set.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | Self { map: map } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/set.rs:28:19 [INFO] [stderr] | [INFO] [stderr] 28 | Ok(Self { map: map }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/set.rs:39:16 [INFO] [stderr] | [INFO] [stderr] 39 | Self { map: map } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/set.rs:46:19 [INFO] [stderr] | [INFO] [stderr] 46 | Ok(Self { map: map }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `map` [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/map.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/map.rs:194:13 [INFO] [stderr] | [INFO] [stderr] 194 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/map.rs:389:34 [INFO] [stderr] | [INFO] [stderr] 389 | self.buffer[ix] = Elem { key: key, value: val, hash: hash }; [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/map.rs:389:56 [INFO] [stderr] | [INFO] [stderr] 389 | self.buffer[ix] = Elem { key: key, value: val, hash: hash }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/table/mod.rs:151:33 [INFO] [stderr] | [INFO] [stderr] 151 | let mut db = Database { buffer: buffer, size: 8 }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/table/mod.rs:168:33 [INFO] [stderr] | [INFO] [stderr] 168 | let mut db = Database { buffer: buffer, size: 8 }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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: long literal lacking separators [INFO] [stderr] --> src/map.rs:97:27 [INFO] [stderr] | [INFO] [stderr] 97 | self.elem.hash |= 0x8000000000000000u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000u64` [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: long literal lacking separators [INFO] [stderr] --> src/map.rs:123:27 [INFO] [stderr] | [INFO] [stderr] 123 | self.elem.hash |= 0x8000000000000000u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/map.rs:252:27 [INFO] [stderr] | [INFO] [stderr] 252 | *elem_hash |= 0x8000000000000000u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/map.rs:311:17 [INFO] [stderr] | [INFO] [stderr] 311 | hash &= 0x7FFFFFFFFFFFFFFFu64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x7FFF_FFFF_FFFF_FFFFu64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AnonymousBuffer`, `Buffer`, `FileBuffer` [INFO] [stderr] --> src/table/btree.rs:3:14 [INFO] [stderr] | [INFO] [stderr] 3 | use buffer::{Buffer, AnonymousBuffer, FileBuffer}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Page` [INFO] [stderr] --> src/table/btree.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use table::{Page}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Rng`, `StdRng` [INFO] [stderr] --> src/table/btree.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | use rand::{Rng, StdRng}; [INFO] [stderr] | ^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/table/btree.rs:1001:13 [INFO] [stderr] | [INFO] [stderr] 1001 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypeId` [INFO] [stderr] --> src/table/mod.rs:21:21 [INFO] [stderr] | [INFO] [stderr] 21 | use std::any::{Any, TypeId}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:80:16 [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 01, // Metadata page: global variables [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 1, // Metadata page: global variables [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 0o1, // Metadata page: global variables [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 02, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 2, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 0o2, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 03, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 3, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 0o3, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 04, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 4, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 0o4, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 05, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 5, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 0o5, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 06, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 6, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 0o6, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/map.rs:97:27 [INFO] [stderr] | [INFO] [stderr] 97 | self.elem.hash |= 0x8000000000000000u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000u64` [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: long literal lacking separators [INFO] [stderr] --> src/map.rs:123:27 [INFO] [stderr] | [INFO] [stderr] 123 | self.elem.hash |= 0x8000000000000000u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/map.rs:252:27 [INFO] [stderr] | [INFO] [stderr] 252 | *elem_hash |= 0x8000000000000000u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x8000_0000_0000_0000u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/map.rs:311:17 [INFO] [stderr] | [INFO] [stderr] 311 | hash &= 0x7FFFFFFFFFFFFFFFu64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x7FFF_FFFF_FFFF_FFFFu64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Buffer`, `FileBuffer` [INFO] [stderr] --> src/table/btree.rs:3:14 [INFO] [stderr] | [INFO] [stderr] 3 | use buffer::{Buffer, AnonymousBuffer, FileBuffer}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/table/btree.rs:1001:13 [INFO] [stderr] | [INFO] [stderr] 1001 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/table/btree.rs:1259:16 [INFO] [stderr] | [INFO] [stderr] 1259 | inp.extend((1..151)); [INFO] [stderr] | ^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/table/btree.rs:1259:16 [INFO] [stderr] | [INFO] [stderr] 1259 | inp.extend((1..151)); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/table/btree.rs:1260:16 [INFO] [stderr] | [INFO] [stderr] 1260 | out.extend((1..151)); [INFO] [stderr] | ^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/table/btree.rs:1260:16 [INFO] [stderr] | [INFO] [stderr] 1260 | out.extend((1..151)); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unused import: `TypeId` [INFO] [stderr] --> src/table/mod.rs:21:21 [INFO] [stderr] | [INFO] [stderr] 21 | use std::any::{Any, TypeId}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:80:16 [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 01, // Metadata page: global variables [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 1, // Metadata page: global variables [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 0o1, // Metadata page: global variables [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 02, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 2, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 0o2, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 03, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 3, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 0o3, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 04, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 4, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 0o4, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 05, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 5, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 0o5, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/table/mod.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 06, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 6, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 0o6, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:250:57 [INFO] [stderr] | [INFO] [stderr] 250 | c = (self.meta.as_meta().start as *const _).offset(*Self::nth_ptr(c, i)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(tyvar_behind_raw_pointer)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:319:64 [INFO] [stderr] | [INFO] [stderr] 319 | Some(&*(self.meta.as_meta().start as *const _).offset(*Self::nth_ptr(c, i))) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:338:65 [INFO] [stderr] | [INFO] [stderr] 338 | Some(&mut*(self.meta.as_meta().start as *mut _).offset(*Self::nth_ptr(c, i))) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1034:110 [INFO] [stderr] | [INFO] [stderr] 1034 | self.find_block(key).and_then(|ref x| Some(&x.as_bucket().values[0] as *const _)).and_then(|x| x.as_ref()) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1057:98 [INFO] [stderr] | [INFO] [stderr] 1057 | btree.meta.as_meta_mut().start = (&mut btree.meta.as_meta_mut() as *mut _ as *mut _).offset(0); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1058:61 [INFO] [stderr] | [INFO] [stderr] 1058 | btree.meta.as_meta_mut().end = (data as *mut _).offset(1) as *mut _; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1067:74 [INFO] [stderr] | [INFO] [stderr] 1067 | btree.meta.as_meta_mut().start = (&mut btree.meta as *mut _).offset(0); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1069:61 [INFO] [stderr] | [INFO] [stderr] 1069 | btree.meta.as_meta_mut().end = (data as *mut _).offset(1) as *mut _; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:250:57 [INFO] [stderr] | [INFO] [stderr] 250 | c = (self.meta.as_meta().start as *const _).offset(*Self::nth_ptr(c, i)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(tyvar_behind_raw_pointer)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:319:64 [INFO] [stderr] | [INFO] [stderr] 319 | Some(&*(self.meta.as_meta().start as *const _).offset(*Self::nth_ptr(c, i))) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:338:65 [INFO] [stderr] | [INFO] [stderr] 338 | Some(&mut*(self.meta.as_meta().start as *mut _).offset(*Self::nth_ptr(c, i))) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/table/btree.rs:239:17 [INFO] [stderr] | [INFO] [stderr] 239 | let mut i = 0usize; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/table/btree.rs:259:17 [INFO] [stderr] | [INFO] [stderr] 259 | let mut i = 0usize; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:712:13 [INFO] [stderr] | [INFO] [stderr] 712 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:768:13 [INFO] [stderr] | [INFO] [stderr] 768 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:775:13 [INFO] [stderr] | [INFO] [stderr] 775 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:780:13 [INFO] [stderr] | [INFO] [stderr] 780 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:797:13 [INFO] [stderr] | [INFO] [stderr] 797 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:854:13 [INFO] [stderr] | [INFO] [stderr] 854 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:881:13 [INFO] [stderr] | [INFO] [stderr] 881 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:886:13 [INFO] [stderr] | [INFO] [stderr] 886 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:894:13 [INFO] [stderr] | [INFO] [stderr] 894 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:950:13 [INFO] [stderr] | [INFO] [stderr] 950 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vec` [INFO] [stderr] --> src/table/mod.rs:409:41 [INFO] [stderr] | [INFO] [stderr] 409 | Entry::Data(ref vec) => mem::size_of_val(value), [INFO] [stderr] | ^^^ help: consider using `_vec` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry` [INFO] [stderr] --> src/table/mod.rs:410:42 [INFO] [stderr] | [INFO] [stderr] 410 | Entry::Entry(ref entry) => mem::size_of::<(usize, usize)>() [INFO] [stderr] | ^^^^^ help: consider using `_entry` instead [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1034:110 [INFO] [stderr] | [INFO] [stderr] 1034 | self.find_block(key).and_then(|ref x| Some(&x.as_bucket().values[0] as *const _)).and_then(|x| x.as_ref()) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1057:98 [INFO] [stderr] | [INFO] [stderr] 1057 | btree.meta.as_meta_mut().start = (&mut btree.meta.as_meta_mut() as *mut _ as *mut _).offset(0); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1058:61 [INFO] [stderr] | [INFO] [stderr] 1058 | btree.meta.as_meta_mut().end = (data as *mut _).offset(1) as *mut _; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1067:74 [INFO] [stderr] | [INFO] [stderr] 1067 | btree.meta.as_meta_mut().start = (&mut btree.meta as *mut _).offset(0); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/table/btree.rs:1069:61 [INFO] [stderr] | [INFO] [stderr] 1069 | btree.meta.as_meta_mut().end = (data as *mut _).offset(1) as *mut _; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:311:21 [INFO] [stderr] | [INFO] [stderr] 311 | if let Some(mut c) = self.find_leaf(key) { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:330:21 [INFO] [stderr] | [INFO] [stderr] 330 | if let Some(mut c) = self.find_leaf_mut(key) { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | let mut pivot = temp_keys[split]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:903:17 [INFO] [stderr] | [INFO] [stderr] 903 | let mut next_smallest = if Self::num_keys(n) == 0 { [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/buffer.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | let mut slice_from: &mut[u8] = unsafe { old_map.as_mut_slice() }; [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/table/btree.rs:1088:9 [INFO] [stderr] | [INFO] [stderr] 1088 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_unsafe)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `average_probe_count` [INFO] [stderr] --> src/map.rs:452:5 [INFO] [stderr] | [INFO] [stderr] 452 | fn average_probe_count(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ORDER` [INFO] [stderr] --> src/table/btree.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | const ORDER: usize = 3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Free` [INFO] [stderr] --> src/table/btree.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct Free { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Node` [INFO] [stderr] --> src/table/btree.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | / pub struct Node [INFO] [stderr] 16 | | where K: PartialOrd + Copy + Sized + fmt::Debug, [INFO] [stderr] 17 | | { [INFO] [stderr] 18 | | leaf: bool, [INFO] [stderr] ... | [INFO] [stderr] 22 | | parent: Option, [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Bucket` [INFO] [stderr] --> src/table/btree.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | / pub struct Bucket [INFO] [stderr] 27 | | where V: Copy + Sized + fmt::Debug, [INFO] [stderr] 28 | | { [INFO] [stderr] 29 | | values: [V; 1] [INFO] [stderr] 30 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Meta` [INFO] [stderr] --> src/table/btree.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | / struct Meta [INFO] [stderr] 34 | | where K: PartialOrd + Copy + Sized + fmt::Debug, [INFO] [stderr] 35 | | V: Copy + Sized + fmt::Debug, [INFO] [stderr] 36 | | { [INFO] [stderr] ... | [INFO] [stderr] 40 | | root: isize, [INFO] [stderr] 41 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Block` [INFO] [stderr] --> src/table/btree.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | / enum Block [INFO] [stderr] 45 | | where K: PartialOrd + Copy + Sized + fmt::Debug, [INFO] [stderr] 46 | | V: Copy + Sized + fmt::Debug, [INFO] [stderr] 47 | | { [INFO] [stderr] ... | [INFO] [stderr] 51 | | Meta(Meta), [INFO] [stderr] 52 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_free` [INFO] [stderr] --> src/table/btree.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | fn as_free(&self) -> &Free { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_free_mut` [INFO] [stderr] --> src/table/btree.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | fn as_free_mut(&mut self) -> &mut Free { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_node` [INFO] [stderr] --> src/table/btree.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | fn as_node(&self) -> &Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_node_mut` [INFO] [stderr] --> src/table/btree.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | fn as_node_mut(&mut self) -> &mut Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_bucket` [INFO] [stderr] --> src/table/btree.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | fn as_bucket(&self) -> &Bucket { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_bucket_mut` [INFO] [stderr] --> src/table/btree.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | fn as_bucket_mut(&mut self) -> &mut Bucket { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_meta` [INFO] [stderr] --> src/table/btree.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | fn as_meta(&self) -> &Meta { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_meta_mut` [INFO] [stderr] --> src/table/btree.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | fn as_meta_mut(&mut self) -> &mut Meta { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BTree` [INFO] [stderr] --> src/table/btree.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / pub struct BTree [INFO] [stderr] 132 | | where K: PartialOrd + Copy + Sized + fmt::Debug, [INFO] [stderr] 133 | | V: Copy + Sized + fmt::Debug, [INFO] [stderr] 134 | | { [INFO] [stderr] 135 | | meta: Block, [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_leaf` [INFO] [stderr] --> src/table/btree.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | unsafe fn is_leaf(node: *const Block) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parent` [INFO] [stderr] --> src/table/btree.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | unsafe fn parent(node: *const Block) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parent_mut` [INFO] [stderr] --> src/table/btree.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | unsafe fn parent_mut(node: *mut Block) -> *mut Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `num_keys` [INFO] [stderr] --> src/table/btree.rs:179:5 [INFO] [stderr] | [INFO] [stderr] 179 | unsafe fn num_keys(node: *const Block) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `num_keys_mut` [INFO] [stderr] --> src/table/btree.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | unsafe fn num_keys_mut(node: *mut Block) -> *mut u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `nth_key` [INFO] [stderr] --> src/table/btree.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | unsafe fn nth_key(node: *const Block, n: usize) -> *const K { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `nth_key_mut` [INFO] [stderr] --> src/table/btree.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | unsafe fn nth_key_mut(node: *mut Block, n: usize) -> *mut K { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `nth_ptr` [INFO] [stderr] --> src/table/btree.rs:219:5 [INFO] [stderr] | [INFO] [stderr] 219 | unsafe fn nth_ptr(node: *const Block, n: usize) -> *const isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `nth_ptr_mut` [INFO] [stderr] --> src/table/btree.rs:229:5 [INFO] [stderr] | [INFO] [stderr] 229 | unsafe fn nth_ptr_mut(node: *mut Block, n: usize) -> *mut isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_leaf` [INFO] [stderr] --> src/table/btree.rs:238:5 [INFO] [stderr] | [INFO] [stderr] 238 | unsafe fn find_leaf(&self, key: &K) -> Option<*const Block> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_leaf_mut` [INFO] [stderr] --> src/table/btree.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | unsafe fn find_leaf_mut(&mut self, key: &K) -> Option<*mut Block> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `range_find_blocks` [INFO] [stderr] --> src/table/btree.rs:278:5 [INFO] [stderr] | [INFO] [stderr] 278 | unsafe fn range_find_blocks<'a>(&self, key_start: &K, key_end: &K) -> Vec<(&K, &'a Block)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_block` [INFO] [stderr] --> src/table/btree.rs:309:5 [INFO] [stderr] | [INFO] [stderr] 309 | unsafe fn find_block<'a>(&self, key: &K) -> Option<&'a Block> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_block_mut` [INFO] [stderr] --> src/table/btree.rs:328:5 [INFO] [stderr] | [INFO] [stderr] 328 | unsafe fn find_block_mut<'a>(&mut self, key: &K) -> Option<&'a mut Block> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `cut` [INFO] [stderr] --> src/table/btree.rs:348:5 [INFO] [stderr] | [INFO] [stderr] 348 | fn cut(length: usize) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `offset_to` [INFO] [stderr] --> src/table/btree.rs:357:5 [INFO] [stderr] | [INFO] [stderr] 357 | fn offset_to(from: *const Block, to: *const Block) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_node` [INFO] [stderr] --> src/table/btree.rs:361:5 [INFO] [stderr] | [INFO] [stderr] 361 | unsafe fn make_node(&mut self) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_leaf` [INFO] [stderr] --> src/table/btree.rs:380:5 [INFO] [stderr] | [INFO] [stderr] 380 | unsafe fn make_leaf(&mut self) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `make_bucket` [INFO] [stderr] --> src/table/btree.rs:399:5 [INFO] [stderr] | [INFO] [stderr] 399 | unsafe fn make_bucket(&mut self) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_left_index` [INFO] [stderr] --> src/table/btree.rs:414:5 [INFO] [stderr] | [INFO] [stderr] 414 | unsafe fn get_left_index(&self, parent: *const Block, left: *const Block) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `insert_into_leaf` [INFO] [stderr] --> src/table/btree.rs:422:5 [INFO] [stderr] | [INFO] [stderr] 422 | unsafe fn insert_into_leaf(&mut self, leaf: *mut Block, key: K, value: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `split_and_insert_into_leaf` [INFO] [stderr] --> src/table/btree.rs:444:5 [INFO] [stderr] | [INFO] [stderr] 444 | unsafe fn split_and_insert_into_leaf(&mut self, leaf: *mut Block, key: K, value: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `insert_into_node` [INFO] [stderr] --> src/table/btree.rs:512:5 [INFO] [stderr] | [INFO] [stderr] 512 | unsafe fn insert_into_node(&mut self, n: *mut Block, left_index: usize, key: K, right: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `split_and_insert_into_node` [INFO] [stderr] --> src/table/btree.rs:529:5 [INFO] [stderr] | [INFO] [stderr] 529 | unsafe fn split_and_insert_into_node(&mut self, old_node: *mut Block, left_index: usize, key: K, right: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `insert_into_parent` [INFO] [stderr] --> src/table/btree.rs:590:5 [INFO] [stderr] | [INFO] [stderr] 590 | unsafe fn insert_into_parent(&mut self, left: *mut Block, key: K, right: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `insert_into_new_root` [INFO] [stderr] --> src/table/btree.rs:606:5 [INFO] [stderr] | [INFO] [stderr] 606 | unsafe fn insert_into_new_root(&mut self, left: *mut Block, key: K, right: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `start_new_tree` [INFO] [stderr] --> src/table/btree.rs:627:5 [INFO] [stderr] | [INFO] [stderr] 627 | unsafe fn start_new_tree(&mut self, key: K, value: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_neighbour_index` [INFO] [stderr] --> src/table/btree.rs:639:5 [INFO] [stderr] | [INFO] [stderr] 639 | unsafe fn get_neighbour_index(&self, n: *mut Block) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `remove_entry_from_node` [INFO] [stderr] --> src/table/btree.rs:650:5 [INFO] [stderr] | [INFO] [stderr] 650 | unsafe fn remove_entry_from_node(&mut self, n: *mut Block, key: &K, value: *mut Block) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `adjust_root` [INFO] [stderr] --> src/table/btree.rs:695:5 [INFO] [stderr] | [INFO] [stderr] 695 | unsafe fn adjust_root(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `merge_nodes` [INFO] [stderr] --> src/table/btree.rs:711:5 [INFO] [stderr] | [INFO] [stderr] 711 | unsafe fn merge_nodes(&mut self, mut n: *mut Block, mut neighbour: *mut Block, neighbour_index: Option, pivot: *const K) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `redistribute_nodes` [INFO] [stderr] --> src/table/btree.rs:779:5 [INFO] [stderr] | [INFO] [stderr] 779 | unsafe fn redistribute_nodes(&mut self, n: *mut Block, neighbour: *mut Block, neighbour_index: Option, pivot_index: usize, pivot: *const K) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `delete_entry` [INFO] [stderr] --> src/table/btree.rs:885:5 [INFO] [stderr] | [INFO] [stderr] 885 | unsafe fn delete_entry(&mut self, n: *mut Block, key: &K, value: *mut Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pop_front` [INFO] [stderr] --> src/table/btree.rs:954:5 [INFO] [stderr] | [INFO] [stderr] 954 | pub fn pop_front(&mut self) -> Option<(K, V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pop_back` [INFO] [stderr] --> src/table/btree.rs:972:5 [INFO] [stderr] | [INFO] [stderr] 972 | pub fn pop_back(&mut self) -> Option<(K, V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `delete` [INFO] [stderr] --> src/table/btree.rs:990:5 [INFO] [stderr] | [INFO] [stderr] 990 | pub fn delete(&mut self, key: &K) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `insert` [INFO] [stderr] --> src/table/btree.rs:1005:5 [INFO] [stderr] | [INFO] [stderr] 1005 | pub fn insert(&mut self, key: K, value: V) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/table/btree.rs:1032:5 [INFO] [stderr] | [INFO] [stderr] 1032 | pub fn find(&self, key: &K) -> Option<&V> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `range_find` [INFO] [stderr] --> src/table/btree.rs:1038:5 [INFO] [stderr] | [INFO] [stderr] 1038 | pub fn range_find(&self, key_start: &K, key_end: &K) -> Vec<(&K, &V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_empty` [INFO] [stderr] --> src/table/btree.rs:1044:5 [INFO] [stderr] | [INFO] [stderr] 1044 | pub fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_full` [INFO] [stderr] --> src/table/btree.rs:1048:5 [INFO] [stderr] | [INFO] [stderr] 1048 | pub fn is_full(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load_from` [INFO] [stderr] --> src/table/btree.rs:1054:5 [INFO] [stderr] | [INFO] [stderr] 1054 | pub fn load_from<'a, T>(data: &mut T) -> &'a mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create_from` [INFO] [stderr] --> src/table/btree.rs:1063:5 [INFO] [stderr] | [INFO] [stderr] 1063 | pub fn create_from(data: &mut T) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_SIZE` [INFO] [stderr] --> src/table/mod.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | pub const PAGE_SIZE: usize = 4095; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `STRING_SIZE` [INFO] [stderr] --> src/table/mod.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub const STRING_SIZE: usize = 256; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_USED` [INFO] [stderr] --> src/table/mod.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub const PAGE_USED: u8 = !0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_AVAIL` [INFO] [stderr] --> src/table/mod.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub const PAGE_AVAIL: u8 = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_FREE` [INFO] [stderr] --> src/table/mod.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub const PAGE_FREE: u8 = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Unallocated` [INFO] [stderr] --> src/table/mod.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | Unallocated = 00, // Free page: uninitialised data [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Metadata` [INFO] [stderr] --> src/table/mod.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 01, // Metadata page: global variables [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `PageTrunk` [INFO] [stderr] --> src/table/mod.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 02, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Directory` [INFO] [stderr] --> src/table/mod.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 03, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndexRoot` [INFO] [stderr] --> src/table/mod.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 04, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndexLeaf` [INFO] [stderr] --> src/table/mod.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 05, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `RowData` [INFO] [stderr] --> src/table/mod.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 06, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Page` [INFO] [stderr] --> src/table/mod.rs:106:1 [INFO] [stderr] | [INFO] [stderr] 106 | pub struct Page { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `MetadataPage` [INFO] [stderr] --> src/table/mod.rs:111:1 [INFO] [stderr] | [INFO] [stderr] 111 | struct MetadataPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BPlusTreePage` [INFO] [stderr] --> src/table/mod.rs:115:1 [INFO] [stderr] | [INFO] [stderr] 115 | struct BPlusTreePage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ArrayListPage` [INFO] [stderr] --> src/table/mod.rs:120:1 [INFO] [stderr] | [INFO] [stderr] 120 | struct ArrayListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `FreeListPage` [INFO] [stderr] --> src/table/mod.rs:125:1 [INFO] [stderr] | [INFO] [stderr] 125 | struct FreeListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Database` [INFO] [stderr] --> src/table/mod.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / pub struct Database [INFO] [stderr] 132 | | where B: Buffer [INFO] [stderr] 133 | | { [INFO] [stderr] 134 | | buffer: B, [INFO] [stderr] 135 | | size: usize, [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Table` [INFO] [stderr] --> src/table/mod.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | Table, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Index` [INFO] [stderr] --> src/table/mod.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | Index, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/table/mod.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | pub fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `try_new` [INFO] [stderr] --> src/table/mod.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn try_new() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/table/mod.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | / pub fn new

(path: P) -> Self [INFO] [stderr] 159 | | where P: AsRef + Clone [INFO] [stderr] 160 | | { [INFO] [stderr] 161 | | Self::try_new(path).unwrap() [INFO] [stderr] 162 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `try_new` [INFO] [stderr] --> src/table/mod.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / pub fn try_new

(path: P) -> Result [INFO] [stderr] 165 | | where P: AsRef + Clone [INFO] [stderr] 166 | | { [INFO] [stderr] 167 | | let buffer = FileBuffer::try_new(path, 8 * mem::size_of::())?; [INFO] [stderr] ... | [INFO] [stderr] 170 | | Ok(db) [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `metadata` [INFO] [stderr] --> src/table/mod.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | fn metadata(&self) -> &'static MetadataPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `metadata_mut` [INFO] [stderr] --> src/table/mod.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | fn metadata_mut(&mut self) -> &'static mut MetadataPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `arraylist` [INFO] [stderr] --> src/table/mod.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | fn arraylist(&self, page_ix: usize, pagetype: PageType) -> &'static ArrayListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `arraylist_mut` [INFO] [stderr] --> src/table/mod.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | fn arraylist_mut(&mut self, page_ix: usize, pagetype: PageType) -> &'static mut ArrayListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist` [INFO] [stderr] --> src/table/mod.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | fn freelist(&self, page_ix: usize, pagetype: PageType) -> &'static FreeListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_mut` [INFO] [stderr] --> src/table/mod.rs:207:5 [INFO] [stderr] | [INFO] [stderr] 207 | fn freelist_mut(&mut self, page_ix: usize, pagetype: PageType) -> &'static mut FreeListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bplustree` [INFO] [stderr] --> src/table/mod.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | fn bplustree(&self, page_ix: usize, pagetype: PageType) -> &'static BPlusTreePage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bplustree_mut` [INFO] [stderr] --> src/table/mod.rs:219:5 [INFO] [stderr] | [INFO] [stderr] 219 | fn bplustree_mut(&mut self, page_ix: usize, pagetype: PageType) -> &'static mut BPlusTreePage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `init` [INFO] [stderr] --> src/table/mod.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 225 | fn init(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert` [INFO] [stderr] --> src/table/mod.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | fn freelist_insert(&mut self, data: &Entry) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert_into_page` [INFO] [stderr] --> src/table/mod.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | fn freelist_insert_into_page(&mut self, page_ix: usize, data: &Entry) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert_row` [INFO] [stderr] --> src/table/mod.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn freelist_insert_row(&mut self, entry: &Vec) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert_row_into_page` [INFO] [stderr] --> src/table/mod.rs:337:5 [INFO] [stderr] | [INFO] [stderr] 337 | fn freelist_insert_row_into_page(&mut self, page_ix: usize, entry: &Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create_page` [INFO] [stderr] --> src/table/mod.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | fn create_page(&mut self, pagetype: PageType) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Entry` [INFO] [stderr] --> src/table/mod.rs:391:1 [INFO] [stderr] | [INFO] [stderr] 391 | pub enum Entry { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/table/mod.rs:397:5 [INFO] [stderr] | [INFO] [stderr] 397 | pub fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/table/mod.rs:401:5 [INFO] [stderr] | [INFO] [stderr] 401 | fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/table/mod.rs:418:5 [INFO] [stderr] | [INFO] [stderr] 418 | / pub fn from(value: &T) -> Self [INFO] [stderr] 419 | | where T: Copy + Any [INFO] [stderr] 420 | | { [INFO] [stderr] 421 | | Entry::Data(Entry::bytes(value)) [INFO] [stderr] 422 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bytes` [INFO] [stderr] --> src/table/mod.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | / pub fn bytes(value: &T) -> Vec [INFO] [stderr] 425 | | where T: Copy + Any [INFO] [stderr] 426 | | { [INFO] [stderr] 427 | | let mut array = Vec::new(); [INFO] [stderr] ... | [INFO] [stderr] 435 | | array [INFO] [stderr] 436 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `set::HashSet>>` [INFO] [stderr] --> src/set.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> Self { [INFO] [stderr] 22 | | let map = HashMap::>>::new(); [INFO] [stderr] 23 | | Self { map: map } [INFO] [stderr] 24 | | } [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] 18 | impl Default for set::HashSet>> { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/set.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / pub fn iter<'a>(&'a self) -> Iter<'a, T, B> { [INFO] [stderr] 55 | | Iter { iter: self.map.iter() } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `map::HashMap` [INFO] [stderr] --> src/map.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / pub fn new() -> Self { [INFO] [stderr] 157 | | Self::try_new().unwrap() [INFO] [stderr] 158 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 152 | impl Default for map::HashMap { [INFO] [stderr] 153 | fn default() -> Self { [INFO] [stderr] 154 | Self::new() [INFO] [stderr] 155 | } [INFO] [stderr] 156 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/map.rs:283:5 [INFO] [stderr] | [INFO] [stderr] 283 | / pub fn iter<'a>(&'a self) -> Iter<'a, K, V, B> { [INFO] [stderr] 284 | | Iter { map: &self, ix: 0 } [INFO] [stderr] 285 | | } [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/map.rs:287:5 [INFO] [stderr] | [INFO] [stderr] 287 | / pub fn keys<'a>(&'a self) -> Keys<'a, K, V, B> { [INFO] [stderr] 288 | | Keys { map: &self, ix: 0 } [INFO] [stderr] 289 | | } [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/map.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | / pub fn values<'a>(&'a self) -> Values<'a, K, V, B> { [INFO] [stderr] 292 | | Values { map: &self, ix: 0 } [INFO] [stderr] 293 | | } [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: the loop variable `i` is only used to index `old_buffer`. [INFO] [stderr] --> src/map.rs:373:18 [INFO] [stderr] | [INFO] [stderr] 373 | for i in 0..old_capacity { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 373 | for in old_buffer.iter_mut().take(old_capacity) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/map.rs:441:73 [INFO] [stderr] | [INFO] [stderr] 441 | } else if dist > self.probe_distance(elem_hash, pos as u64) { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 442 | | return None; [INFO] [stderr] 443 | | } else if elem_hash == hash && self.buffer[pos].key == *key { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/map.rs:439:31 [INFO] [stderr] | [INFO] [stderr] 439 | if elem_hash == 0 { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 440 | | return None; [INFO] [stderr] 441 | | } else if dist > self.probe_distance(elem_hash, pos as u64) { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/map.rs:484:21 [INFO] [stderr] | [INFO] [stderr] 484 | let ref entry = self.map.buffer[self.ix]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let entry = &self.map.buffer[self.ix];` [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: value assigned to `i` is never read [INFO] [stderr] --> src/table/btree.rs:239:17 [INFO] [stderr] | [INFO] [stderr] 239 | let mut i = 0usize; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/table/btree.rs:259:17 [INFO] [stderr] | [INFO] [stderr] 259 | let mut i = 0usize; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/map.rs:514:21 [INFO] [stderr] | [INFO] [stderr] 514 | let ref entry = self.map.buffer[self.ix]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let entry = &self.map.buffer[self.ix];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/map.rs:544:21 [INFO] [stderr] | [INFO] [stderr] 544 | let ref entry = self.map.buffer[self.ix]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let entry = &self.map.buffer[self.ix];` [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: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:712:13 [INFO] [stderr] | [INFO] [stderr] 712 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:768:13 [INFO] [stderr] | [INFO] [stderr] 768 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:775:13 [INFO] [stderr] | [INFO] [stderr] 775 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:780:13 [INFO] [stderr] | [INFO] [stderr] 780 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:797:13 [INFO] [stderr] | [INFO] [stderr] 797 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:854:13 [INFO] [stderr] | [INFO] [stderr] 854 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:881:13 [INFO] [stderr] | [INFO] [stderr] 881 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:886:13 [INFO] [stderr] | [INFO] [stderr] 886 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:894:13 [INFO] [stderr] | [INFO] [stderr] 894 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/table/btree.rs:950:13 [INFO] [stderr] | [INFO] [stderr] 950 | for i in 0..Self::offset_to(self.meta.as_meta().start, self.meta.as_meta().end) { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vec` [INFO] [stderr] --> src/table/mod.rs:409:41 [INFO] [stderr] | [INFO] [stderr] 409 | Entry::Data(ref vec) => mem::size_of_val(value), [INFO] [stderr] | ^^^ help: consider using `_vec` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry` [INFO] [stderr] --> src/table/mod.rs:410:42 [INFO] [stderr] | [INFO] [stderr] 410 | Entry::Entry(ref entry) => mem::size_of::<(usize, usize)>() [INFO] [stderr] | ^^^^^ help: consider using `_entry` instead [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/table/btree.rs:515:46 [INFO] [stderr] | [INFO] [stderr] 515 | let k_new = Self::nth_key_mut(n, i + 0); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:533:18 [INFO] [stderr] | [INFO] [stderr] 533 | for t in (0..(nk + 1)).zip((0..).filter(|&x| x != left_index + 1)) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `(0..=nk)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:581:18 [INFO] [stderr] | [INFO] [stderr] 581 | for i in 0..(Self::num_keys(new_node) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(new_node) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:641:18 [INFO] [stderr] | [INFO] [stderr] 641 | for i in 0..(Self::num_keys(nparent) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(nparent) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:666:18 [INFO] [stderr] | [INFO] [stderr] 666 | for i in 0..(Self::num_keys(n) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(n) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping `n` and `neighbour` manually [INFO] [stderr] --> src/table/btree.rs:715:13 [INFO] [stderr] | [INFO] [stderr] 715 | / let tmp = n; [INFO] [stderr] 716 | | n = neighbour; [INFO] [stderr] 717 | | neighbour = tmp; [INFO] [stderr] | |___________________________^ help: try: `std::mem::swap(&mut n, &mut neighbour)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = note: or maybe you should use `std::mem::replace`? [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:747:22 [INFO] [stderr] | [INFO] [stderr] 747 | for i in 0..(Self::num_keys(neighbour) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(neighbour) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:789:22 [INFO] [stderr] | [INFO] [stderr] 789 | for i in (1..(nk + 1)).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `(1..=nk)` [INFO] [stderr] | [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: this boolean expression contains a logic bug [INFO] [stderr] --> src/table/btree.rs:1012:23 [INFO] [stderr] | [INFO] [stderr] 1012 | } else if true || self.find_block(&key).is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: it would look like the following: `true` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::logic_bug)] on by default [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/table/btree.rs:1012:31 [INFO] [stderr] | [INFO] [stderr] 1012 | } else if true || self.find_block(&key).is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8; 4095]` to a more-strictly-aligned pointer (`*const table::FreeListPage`) [INFO] [stderr] --> src/table/mod.rs:204:20 [INFO] [stderr] | [INFO] [stderr] 204 | unsafe { &*(&freelist_page.data as *const _ as *const FreeListPage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut [u8; 4095]` to a more-strictly-aligned pointer (`*mut table::FreeListPage`) [INFO] [stderr] --> src/table/mod.rs:210:23 [INFO] [stderr] | [INFO] [stderr] 210 | unsafe { &mut*(&mut freelist_page.data as *mut _ as *mut FreeListPage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8; 4095]` to a more-strictly-aligned pointer (`*const table::BPlusTreePage`) [INFO] [stderr] --> src/table/mod.rs:216:20 [INFO] [stderr] | [INFO] [stderr] 216 | unsafe { &*(&bplustree_page.data as *const _ as *const BPlusTreePage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut [u8; 4095]` to a more-strictly-aligned pointer (`*mut table::BPlusTreePage`) [INFO] [stderr] --> src/table/mod.rs:222:23 [INFO] [stderr] | [INFO] [stderr] 222 | unsafe { &mut*(&mut bplustree_page.data as *mut _ as *mut BPlusTreePage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/table/mod.rs:278:13 [INFO] [stderr] | [INFO] [stderr] 278 | let ref data = Entry::Data(match *data { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 278 | let data = &Entry::Data(match *data { [INFO] [stderr] 279 | Entry::Data(ref vec) => vec.to_vec(), [INFO] [stderr] 280 | Entry::Entry(ref vec) => vec.iter().map(|x| self.freelist_insert(x)) [INFO] [stderr] 281 | .fold(Vec::new(), |mut v, x| { v.extend(Entry::bytes(&x)); v }) [INFO] [stderr] 282 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/table/mod.rs:300:17 [INFO] [stderr] | [INFO] [stderr] 300 | let ref length = mem::size_of_val(data); [INFO] [stderr] | ----^^^^^^^^^^-------------------------- help: try: `let length = &mem::size_of_val(data);` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:321:46 [INFO] [stderr] | [INFO] [stderr] 321 | fn freelist_insert_row(&mut self, entry: &Vec) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Entry]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:337:72 [INFO] [stderr] | [INFO] [stderr] 337 | fn freelist_insert_row_into_page(&mut self, page_ix: usize, entry: &Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Entry]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/table/mod.rs:345:21 [INFO] [stderr] | [INFO] [stderr] 345 | let ref length = mem::size_of_val(value); [INFO] [stderr] | ----^^^^^^^^^^--------------------------- help: try: `let length = &mem::size_of_val(value);` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/buffer.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | slice_to.write(slice_from)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ozone`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:311:21 [INFO] [stderr] | [INFO] [stderr] 311 | if let Some(mut c) = self.find_leaf(key) { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:330:21 [INFO] [stderr] | [INFO] [stderr] 330 | if let Some(mut c) = self.find_leaf_mut(key) { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | let mut pivot = temp_keys[split]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/table/btree.rs:903:17 [INFO] [stderr] | [INFO] [stderr] 903 | let mut next_smallest = if Self::num_keys(n) == 0 { [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/buffer.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | let mut slice_from: &mut[u8] = unsafe { old_map.as_mut_slice() }; [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/table/btree.rs:1088:9 [INFO] [stderr] | [INFO] [stderr] 1088 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_unsafe)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `average_probe_count` [INFO] [stderr] --> src/map.rs:452:5 [INFO] [stderr] | [INFO] [stderr] 452 | fn average_probe_count(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_free_mut` [INFO] [stderr] --> src/table/btree.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | fn as_free_mut(&mut self) -> &mut Free { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_node` [INFO] [stderr] --> src/table/btree.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | fn as_node(&self) -> &Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_node_mut` [INFO] [stderr] --> src/table/btree.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | fn as_node_mut(&mut self) -> &mut Node { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pop_front` [INFO] [stderr] --> src/table/btree.rs:954:5 [INFO] [stderr] | [INFO] [stderr] 954 | pub fn pop_front(&mut self) -> Option<(K, V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pop_back` [INFO] [stderr] --> src/table/btree.rs:972:5 [INFO] [stderr] | [INFO] [stderr] 972 | pub fn pop_back(&mut self) -> Option<(K, V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `load_from` [INFO] [stderr] --> src/table/btree.rs:1054:5 [INFO] [stderr] | [INFO] [stderr] 1054 | pub fn load_from<'a, T>(data: &mut T) -> &'a mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `STRING_SIZE` [INFO] [stderr] --> src/table/mod.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub const STRING_SIZE: usize = 256; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_USED` [INFO] [stderr] --> src/table/mod.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub const PAGE_USED: u8 = !0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_AVAIL` [INFO] [stderr] --> src/table/mod.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub const PAGE_AVAIL: u8 = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PAGE_FREE` [INFO] [stderr] --> src/table/mod.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub const PAGE_FREE: u8 = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Unallocated` [INFO] [stderr] --> src/table/mod.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | Unallocated = 00, // Free page: uninitialised data [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Metadata` [INFO] [stderr] --> src/table/mod.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | Metadata = 01, // Metadata page: global variables [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `PageTrunk` [INFO] [stderr] --> src/table/mod.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | PageTrunk = 02, // Page data array: ArrayList(cursor) [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Directory` [INFO] [stderr] --> src/table/mod.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | Directory = 03, // Table directory: BPlusTree(tblname, pageidx) -> ColumnDirectory [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndexRoot` [INFO] [stderr] --> src/table/mod.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | IndexRoot = 04, // Leaf pages tree: BPlusTree(keyval, pageidx) -> IndexLeaf [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndexLeaf` [INFO] [stderr] --> src/table/mod.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | IndexLeaf = 05, // Index data tree: BPlusTree(keyval, (pageidx,offset)) -> FreeListPage [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `RowData` [INFO] [stderr] --> src/table/mod.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | RowData = 06, // Row values: FreeList<(size(V1),..,size(VN),V1,..,VN)> [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `data` [INFO] [stderr] --> src/table/mod.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | data: [u8; PAGE_SIZE], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `typeid` [INFO] [stderr] --> src/table/mod.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | typeid: PageType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `MetadataPage` [INFO] [stderr] --> src/table/mod.rs:111:1 [INFO] [stderr] | [INFO] [stderr] 111 | struct MetadataPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BPlusTreePage` [INFO] [stderr] --> src/table/mod.rs:115:1 [INFO] [stderr] | [INFO] [stderr] 115 | struct BPlusTreePage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ArrayListPage` [INFO] [stderr] --> src/table/mod.rs:120:1 [INFO] [stderr] | [INFO] [stderr] 120 | struct ArrayListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `FreeListPage` [INFO] [stderr] --> src/table/mod.rs:125:1 [INFO] [stderr] | [INFO] [stderr] 125 | struct FreeListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Database` [INFO] [stderr] --> src/table/mod.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / pub struct Database [INFO] [stderr] 132 | | where B: Buffer [INFO] [stderr] 133 | | { [INFO] [stderr] 134 | | buffer: B, [INFO] [stderr] 135 | | size: usize, [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Table` [INFO] [stderr] --> src/table/mod.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | Table, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Index` [INFO] [stderr] --> src/table/mod.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | Index, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/table/mod.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | pub fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `try_new` [INFO] [stderr] --> src/table/mod.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn try_new() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/table/mod.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | / pub fn new

(path: P) -> Self [INFO] [stderr] 159 | | where P: AsRef + Clone [INFO] [stderr] 160 | | { [INFO] [stderr] 161 | | Self::try_new(path).unwrap() [INFO] [stderr] 162 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `try_new` [INFO] [stderr] --> src/table/mod.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / pub fn try_new

(path: P) -> Result [INFO] [stderr] 165 | | where P: AsRef + Clone [INFO] [stderr] 166 | | { [INFO] [stderr] 167 | | let buffer = FileBuffer::try_new(path, 8 * mem::size_of::())?; [INFO] [stderr] ... | [INFO] [stderr] 170 | | Ok(db) [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `metadata` [INFO] [stderr] --> src/table/mod.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | fn metadata(&self) -> &'static MetadataPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `metadata_mut` [INFO] [stderr] --> src/table/mod.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | fn metadata_mut(&mut self) -> &'static mut MetadataPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `arraylist` [INFO] [stderr] --> src/table/mod.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | fn arraylist(&self, page_ix: usize, pagetype: PageType) -> &'static ArrayListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `arraylist_mut` [INFO] [stderr] --> src/table/mod.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | fn arraylist_mut(&mut self, page_ix: usize, pagetype: PageType) -> &'static mut ArrayListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist` [INFO] [stderr] --> src/table/mod.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | fn freelist(&self, page_ix: usize, pagetype: PageType) -> &'static FreeListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_mut` [INFO] [stderr] --> src/table/mod.rs:207:5 [INFO] [stderr] | [INFO] [stderr] 207 | fn freelist_mut(&mut self, page_ix: usize, pagetype: PageType) -> &'static mut FreeListPage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bplustree` [INFO] [stderr] --> src/table/mod.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | fn bplustree(&self, page_ix: usize, pagetype: PageType) -> &'static BPlusTreePage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bplustree_mut` [INFO] [stderr] --> src/table/mod.rs:219:5 [INFO] [stderr] | [INFO] [stderr] 219 | fn bplustree_mut(&mut self, page_ix: usize, pagetype: PageType) -> &'static mut BPlusTreePage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `init` [INFO] [stderr] --> src/table/mod.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 225 | fn init(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert` [INFO] [stderr] --> src/table/mod.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | fn freelist_insert(&mut self, data: &Entry) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert_into_page` [INFO] [stderr] --> src/table/mod.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | fn freelist_insert_into_page(&mut self, page_ix: usize, data: &Entry) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert_row` [INFO] [stderr] --> src/table/mod.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn freelist_insert_row(&mut self, entry: &Vec) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `freelist_insert_row_into_page` [INFO] [stderr] --> src/table/mod.rs:337:5 [INFO] [stderr] | [INFO] [stderr] 337 | fn freelist_insert_row_into_page(&mut self, page_ix: usize, entry: &Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create_page` [INFO] [stderr] --> src/table/mod.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | fn create_page(&mut self, pagetype: PageType) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Entry` [INFO] [stderr] --> src/table/mod.rs:391:1 [INFO] [stderr] | [INFO] [stderr] 391 | pub enum Entry { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/table/mod.rs:397:5 [INFO] [stderr] | [INFO] [stderr] 397 | pub fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/table/mod.rs:401:5 [INFO] [stderr] | [INFO] [stderr] 401 | fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/table/mod.rs:418:5 [INFO] [stderr] | [INFO] [stderr] 418 | / pub fn from(value: &T) -> Self [INFO] [stderr] 419 | | where T: Copy + Any [INFO] [stderr] 420 | | { [INFO] [stderr] 421 | | Entry::Data(Entry::bytes(value)) [INFO] [stderr] 422 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `bytes` [INFO] [stderr] --> src/table/mod.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | / pub fn bytes(value: &T) -> Vec [INFO] [stderr] 425 | | where T: Copy + Any [INFO] [stderr] 426 | | { [INFO] [stderr] 427 | | let mut array = Vec::new(); [INFO] [stderr] ... | [INFO] [stderr] 435 | | array [INFO] [stderr] 436 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `set::HashSet>>` [INFO] [stderr] --> src/set.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> Self { [INFO] [stderr] 22 | | let map = HashMap::>>::new(); [INFO] [stderr] 23 | | Self { map: map } [INFO] [stderr] 24 | | } [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] 18 | impl Default for set::HashSet>> { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/set.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / pub fn iter<'a>(&'a self) -> Iter<'a, T, B> { [INFO] [stderr] 55 | | Iter { iter: self.map.iter() } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `map::HashMap` [INFO] [stderr] --> src/map.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / pub fn new() -> Self { [INFO] [stderr] 157 | | Self::try_new().unwrap() [INFO] [stderr] 158 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 152 | impl Default for map::HashMap { [INFO] [stderr] 153 | fn default() -> Self { [INFO] [stderr] 154 | Self::new() [INFO] [stderr] 155 | } [INFO] [stderr] 156 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/map.rs:283:5 [INFO] [stderr] | [INFO] [stderr] 283 | / pub fn iter<'a>(&'a self) -> Iter<'a, K, V, B> { [INFO] [stderr] 284 | | Iter { map: &self, ix: 0 } [INFO] [stderr] 285 | | } [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/map.rs:287:5 [INFO] [stderr] | [INFO] [stderr] 287 | / pub fn keys<'a>(&'a self) -> Keys<'a, K, V, B> { [INFO] [stderr] 288 | | Keys { map: &self, ix: 0 } [INFO] [stderr] 289 | | } [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/map.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | / pub fn values<'a>(&'a self) -> Values<'a, K, V, B> { [INFO] [stderr] 292 | | Values { map: &self, ix: 0 } [INFO] [stderr] 293 | | } [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: the loop variable `i` is only used to index `old_buffer`. [INFO] [stderr] --> src/map.rs:373:18 [INFO] [stderr] | [INFO] [stderr] 373 | for i in 0..old_capacity { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 373 | for in old_buffer.iter_mut().take(old_capacity) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/map.rs:441:73 [INFO] [stderr] | [INFO] [stderr] 441 | } else if dist > self.probe_distance(elem_hash, pos as u64) { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 442 | | return None; [INFO] [stderr] 443 | | } else if elem_hash == hash && self.buffer[pos].key == *key { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/map.rs:439:31 [INFO] [stderr] | [INFO] [stderr] 439 | if elem_hash == 0 { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 440 | | return None; [INFO] [stderr] 441 | | } else if dist > self.probe_distance(elem_hash, pos as u64) { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/map.rs:484:21 [INFO] [stderr] | [INFO] [stderr] 484 | let ref entry = self.map.buffer[self.ix]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let entry = &self.map.buffer[self.ix];` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/map.rs:514:21 [INFO] [stderr] | [INFO] [stderr] 514 | let ref entry = self.map.buffer[self.ix]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let entry = &self.map.buffer[self.ix];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/map.rs:544:21 [INFO] [stderr] | [INFO] [stderr] 544 | let ref entry = self.map.buffer[self.ix]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let entry = &self.map.buffer[self.ix];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/table/btree.rs:515:46 [INFO] [stderr] | [INFO] [stderr] 515 | let k_new = Self::nth_key_mut(n, i + 0); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:533:18 [INFO] [stderr] | [INFO] [stderr] 533 | for t in (0..(nk + 1)).zip((0..).filter(|&x| x != left_index + 1)) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `(0..=nk)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:581:18 [INFO] [stderr] | [INFO] [stderr] 581 | for i in 0..(Self::num_keys(new_node) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(new_node) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:641:18 [INFO] [stderr] | [INFO] [stderr] 641 | for i in 0..(Self::num_keys(nparent) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(nparent) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:666:18 [INFO] [stderr] | [INFO] [stderr] 666 | for i in 0..(Self::num_keys(n) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(n) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping `n` and `neighbour` manually [INFO] [stderr] --> src/table/btree.rs:715:13 [INFO] [stderr] | [INFO] [stderr] 715 | / let tmp = n; [INFO] [stderr] 716 | | n = neighbour; [INFO] [stderr] 717 | | neighbour = tmp; [INFO] [stderr] | |___________________________^ help: try: `std::mem::swap(&mut n, &mut neighbour)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = note: or maybe you should use `std::mem::replace`? [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:747:22 [INFO] [stderr] | [INFO] [stderr] 747 | for i in 0..(Self::num_keys(neighbour) as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=Self::num_keys(neighbour) as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/table/btree.rs:789:22 [INFO] [stderr] | [INFO] [stderr] 789 | for i in (1..(nk + 1)).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `(1..=nk)` [INFO] [stderr] | [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: this boolean expression contains a logic bug [INFO] [stderr] --> src/table/btree.rs:1012:23 [INFO] [stderr] | [INFO] [stderr] 1012 | } else if true || self.find_block(&key).is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: it would look like the following: `true` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::logic_bug)] on by default [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/table/btree.rs:1012:31 [INFO] [stderr] | [INFO] [stderr] 1012 | } else if true || self.find_block(&key).is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/table/btree.rs:1190:14 [INFO] [stderr] | [INFO] [stderr] 1190 | for x in vec![8,7,9,6,10,5,11,4,12,3,13,2,14,1,15] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: literal out of range for u8 [INFO] [stderr] --> src/table/btree.rs:1226:23 [INFO] [stderr] | [INFO] [stderr] 1226 | let mut inp = (1..301).collect::>(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(overflowing_literals)] on by default [INFO] [stderr] [INFO] [stderr] warning: literal out of range for u8 [INFO] [stderr] --> src/table/btree.rs:1227:23 [INFO] [stderr] | [INFO] [stderr] 1227 | let mut out = (1..301).collect::>(); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8; 4095]` to a more-strictly-aligned pointer (`*const table::FreeListPage`) [INFO] [stderr] --> src/table/mod.rs:204:20 [INFO] [stderr] | [INFO] [stderr] 204 | unsafe { &*(&freelist_page.data as *const _ as *const FreeListPage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut [u8; 4095]` to a more-strictly-aligned pointer (`*mut table::FreeListPage`) [INFO] [stderr] --> src/table/mod.rs:210:23 [INFO] [stderr] | [INFO] [stderr] 210 | unsafe { &mut*(&mut freelist_page.data as *mut _ as *mut FreeListPage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8; 4095]` to a more-strictly-aligned pointer (`*const table::BPlusTreePage`) [INFO] [stderr] --> src/table/mod.rs:216:20 [INFO] [stderr] | [INFO] [stderr] 216 | unsafe { &*(&bplustree_page.data as *const _ as *const BPlusTreePage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut [u8; 4095]` to a more-strictly-aligned pointer (`*mut table::BPlusTreePage`) [INFO] [stderr] --> src/table/mod.rs:222:23 [INFO] [stderr] | [INFO] [stderr] 222 | unsafe { &mut*(&mut bplustree_page.data as *mut _ as *mut BPlusTreePage) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/table/mod.rs:278:13 [INFO] [stderr] | [INFO] [stderr] 278 | let ref data = Entry::Data(match *data { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 278 | let data = &Entry::Data(match *data { [INFO] [stderr] 279 | Entry::Data(ref vec) => vec.to_vec(), [INFO] [stderr] 280 | Entry::Entry(ref vec) => vec.iter().map(|x| self.freelist_insert(x)) [INFO] [stderr] 281 | .fold(Vec::new(), |mut v, x| { v.extend(Entry::bytes(&x)); v }) [INFO] [stderr] 282 | }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/table/mod.rs:300:17 [INFO] [stderr] | [INFO] [stderr] 300 | let ref length = mem::size_of_val(data); [INFO] [stderr] | ----^^^^^^^^^^-------------------------- help: try: `let length = &mem::size_of_val(data);` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:321:46 [INFO] [stderr] | [INFO] [stderr] 321 | fn freelist_insert_row(&mut self, entry: &Vec) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Entry]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:337:72 [INFO] [stderr] | [INFO] [stderr] 337 | fn freelist_insert_row_into_page(&mut self, page_ix: usize, entry: &Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Entry]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/table/mod.rs:345:21 [INFO] [stderr] | [INFO] [stderr] 345 | let ref length = mem::size_of_val(value); [INFO] [stderr] | ----^^^^^^^^^^--------------------------- help: try: `let length = &mem::size_of_val(value);` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/buffer.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | slice_to.write(slice_from)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/buffer.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | slice.write(b"hello world").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ozone`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "60b0c10c70042b5cd754762dd48f01d513945ca7c84dd9b4b1c29bb2dacd58f1"` [INFO] running `"docker" "rm" "-f" "60b0c10c70042b5cd754762dd48f01d513945ca7c84dd9b4b1c29bb2dacd58f1"` [INFO] [stdout] 60b0c10c70042b5cd754762dd48f01d513945ca7c84dd9b4b1c29bb2dacd58f1