[INFO] updating cached repository zhxiaogg/rdb [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zhxiaogg/rdb [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zhxiaogg/rdb" "work/ex/clippy-test-run/sources/stable/gh/zhxiaogg/rdb"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/zhxiaogg/rdb'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zhxiaogg/rdb" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zhxiaogg/rdb"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zhxiaogg/rdb'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 16fbc288c87c630c1843b2ea6e14f07f00ba0345 [INFO] sha for GitHub repo zhxiaogg/rdb: 16fbc288c87c630c1843b2ea6e14f07f00ba0345 [INFO] validating manifest of zhxiaogg/rdb 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 zhxiaogg/rdb 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 zhxiaogg/rdb [INFO] finished frobbing zhxiaogg/rdb [INFO] frobbed toml for zhxiaogg/rdb written to work/ex/clippy-test-run/sources/stable/gh/zhxiaogg/rdb/Cargo.toml [INFO] started frobbing zhxiaogg/rdb [INFO] finished frobbing zhxiaogg/rdb [INFO] frobbed toml for zhxiaogg/rdb written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zhxiaogg/rdb/Cargo.toml [INFO] crate zhxiaogg/rdb has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting zhxiaogg/rdb against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zhxiaogg/rdb:/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 -Dclippy::into_iter_on_array" "-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] 751e589373b26d1138ad3cd123a02ea940d01788919c30c2af02f6208b097f1d [INFO] running `"docker" "start" "-a" "751e589373b26d1138ad3cd123a02ea940d01788919c30c2af02f6208b097f1d"` [INFO] [stderr] Checking libc v0.2.34 [INFO] [stderr] Checking byteorder v1.1.0 [INFO] [stderr] Checking log v0.3.8 [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking nom v3.2.1 [INFO] [stderr] Checking rdb v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/table/mod.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/table/mod.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | username: username, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [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:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | email: email, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `email` [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:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | tree: tree, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tree` [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:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | tree: tree, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tree` [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:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | page_index: page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_index` [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:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | cell_index: cell_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cell_index` [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:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | tree: tree, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tree` [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:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | key: key, [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/pager.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | num_pages: num_pages, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_pages` [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/pager.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | db_option: db_option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `db_option` [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/btree.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | page_size: page_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_size` [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/btree.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | page_index: page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_index` [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/btree.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | cell_index: cell_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cell_index` [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/btree.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | left_page: left_page, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `left_page` [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/btree.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | right_page: right_page, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `right_page` [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/btree.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | left_page_index: left_page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `left_page_index` [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/btree.rs:199:13 [INFO] [stderr] | [INFO] [stderr] 199 | right_page_index: right_page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `right_page_index` [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/btree.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | split_position: split_position, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `split_position` [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/btree.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 201 | pager: pager, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pager` [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/btree.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | pager: pager, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pager` [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/btree.rs:340:13 [INFO] [stderr] | [INFO] [stderr] 340 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vm/mod.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | codes: codes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `codes` [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/vm/mod.rs:96:25 [INFO] [stderr] | [INFO] [stderr] 96 | username: username, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [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/vm/mod.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | email: email, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `email` [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/main.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | page_size: page_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_size` [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:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/table/mod.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | username: username, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [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:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | email: email, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `email` [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:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | tree: tree, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tree` [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:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | tree: tree, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tree` [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:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | page_index: page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_index` [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:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | cell_index: cell_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cell_index` [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:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | tree: tree, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tree` [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:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | key: key, [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/pager.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | num_pages: num_pages, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_pages` [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/pager.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | db_option: db_option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `db_option` [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/btree.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | page_size: page_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_size` [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/btree.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | page_index: page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_index` [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/btree.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | cell_index: cell_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cell_index` [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/btree.rs:196:13 [INFO] [stderr] | [INFO] [stderr] 196 | left_page: left_page, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `left_page` [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/btree.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | right_page: right_page, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `right_page` [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/btree.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | left_page_index: left_page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `left_page_index` [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/btree.rs:199:13 [INFO] [stderr] | [INFO] [stderr] 199 | right_page_index: right_page_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `right_page_index` [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/btree.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | split_position: split_position, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `split_position` [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/btree.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 201 | pager: pager, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pager` [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/btree.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | pager: pager, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pager` [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/btree.rs:340:13 [INFO] [stderr] | [INFO] [stderr] 340 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vm/mod.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | codes: codes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `codes` [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/vm/mod.rs:96:25 [INFO] [stderr] | [INFO] [stderr] 96 | username: username, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [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/vm/mod.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | email: email, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `email` [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/main.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | page_size: page_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `page_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [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/mod.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | return String::from_utf8(bytes).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from_utf8(bytes).unwrap()` [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: unneeded return statement [INFO] [stderr] --> src/table/mod.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | / return Table { [INFO] [stderr] 85 | | tree: tree, [INFO] [stderr] 86 | | schema: Schema::new(), [INFO] [stderr] 87 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 84 | Table { [INFO] [stderr] 85 | tree: tree, [INFO] [stderr] 86 | schema: Schema::new(), [INFO] [stderr] 87 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/btree.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | return self.get_internal_page_split_result(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_internal_page_split_result()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/btree.rs:771:9 [INFO] [stderr] | [INFO] [stderr] 771 | return index; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `sql::SQLType` [INFO] [stderr] --> src/vm/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use sql::SQLType; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::codegen::OpCode` [INFO] [stderr] --> src/vm/row_buf.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use super::codegen::OpCode; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [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/mod.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | return String::from_utf8(bytes).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from_utf8(bytes).unwrap()` [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: unneeded return statement [INFO] [stderr] --> src/table/mod.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | / return Table { [INFO] [stderr] 85 | | tree: tree, [INFO] [stderr] 86 | | schema: Schema::new(), [INFO] [stderr] 87 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 84 | Table { [INFO] [stderr] 85 | tree: tree, [INFO] [stderr] 86 | schema: Schema::new(), [INFO] [stderr] 87 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/btree.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | return self.get_internal_page_split_result(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_internal_page_split_result()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/btree.rs:771:9 [INFO] [stderr] | [INFO] [stderr] 771 | return index; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `sql::SQLType` [INFO] [stderr] --> src/vm/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use sql::SQLType; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::codegen::OpCode` [INFO] [stderr] --> src/vm/row_buf.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use super::codegen::OpCode; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vm/mod.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vm/mod.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `IResult` [INFO] [stderr] --> src/sql/mod.rs:5:25 [INFO] [stderr] | [INFO] [stderr] 5 | use nom::{alphanumeric, IResult}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IResult` [INFO] [stderr] --> src/sql/operands.rs:9:32 [INFO] [stderr] | [INFO] [stderr] 9 | use nom::{alphanumeric, digit, IResult}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `table` [INFO] [stderr] --> src/vm/codegen.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | ref table, [INFO] [stderr] | ^^^^^ help: try ignoring the field: `table: _` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `str` [INFO] [stderr] --> src/vm/codegen.rs:75:30 [INFO] [stderr] | [INFO] [stderr] 75 | &Operand::String(ref str) => Some(SQLType::String), [INFO] [stderr] | ^^^ help: consider using `_str` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `column` [INFO] [stderr] --> src/vm/codegen.rs:92:30 [INFO] [stderr] | [INFO] [stderr] 92 | &Operand::Column(ref column) => panic!("not implemented"), [INFO] [stderr] | ^^^^^^ help: consider using `_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `table` [INFO] [stderr] --> src/vm/codegen.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | ref table, [INFO] [stderr] | ^^^^^ help: try ignoring the field: `table: _` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `str` [INFO] [stderr] --> src/vm/codegen.rs:75:30 [INFO] [stderr] | [INFO] [stderr] 75 | &Operand::String(ref str) => Some(SQLType::String), [INFO] [stderr] | ^^^ help: consider using `_str` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `column` [INFO] [stderr] --> src/vm/codegen.rs:92:30 [INFO] [stderr] | [INFO] [stderr] 92 | &Operand::Column(ref column) => panic!("not implemented"), [INFO] [stderr] | ^^^^^^ help: consider using `_column` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/vm/row_buf.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Exit` [INFO] [stderr] --> src/vm/codegen.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | Exit(ErrCode), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/table/schema.rs:17:43 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn get_column_type(&self, column: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/table/schema.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | self.columns.get(column).map(|t| t.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.get(column).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/table/schema.rs:18:42 [INFO] [stderr] | [INFO] [stderr] 18 | self.columns.get(column).map(|t| t.clone()) [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*t` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:24:25 [INFO] [stderr] | [INFO] [stderr] 24 | fn deserialize(buf: &Vec, pos: usize) -> Row { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | fn read_string(buf: &Vec, pos: usize, length: usize) -> String { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/pager.rs:26:48 [INFO] [stderr] | [INFO] [stderr] 26 | fn wrap_slice(&mut self, from: usize, buf: &Vec); [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/pager.rs:37:25 [INFO] [stderr] | [INFO] [stderr] 37 | let slice = self.index(Range { [INFO] [stderr] | _________________________^ [INFO] [stderr] 38 | | start: from, [INFO] [stderr] 39 | | end: from + len, [INFO] [stderr] 40 | | }).clone(); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 37 | let slice = &(*self.index(Range { [INFO] [stderr] 38 | start: from, [INFO] [stderr] 39 | end: from + len, [INFO] [stderr] 40 | })).clone(); [INFO] [stderr] | [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 37 | let slice = &[u8]::clone(self.index(Range { [INFO] [stderr] 38 | start: from, [INFO] [stderr] 39 | end: from + len, [INFO] [stderr] 40 | })); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in vec.enumerate()` or similar iterators [INFO] [stderr] --> src/pager.rs:44:18 [INFO] [stderr] | [INFO] [stderr] 44 | for b in vec { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in buf.enumerate()` or similar iterators [INFO] [stderr] --> src/pager.rs:52:18 [INFO] [stderr] | [INFO] [stderr] 52 | for b in buf { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/pager.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | file.read(header_buf.as_mut_slice()).unwrap(); [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 read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/pager.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | file.read(buf.as_mut_slice()).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] warning: method is never used: `reset` [INFO] [stderr] --> src/vm/row_buf.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Exit` [INFO] [stderr] --> src/vm/codegen.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | Exit(ErrCode), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/table/schema.rs:17:43 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn get_column_type(&self, column: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/table/schema.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | self.columns.get(column).map(|t| t.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.get(column).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/table/schema.rs:18:42 [INFO] [stderr] | [INFO] [stderr] 18 | self.columns.get(column).map(|t| t.clone()) [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*t` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:24:25 [INFO] [stderr] | [INFO] [stderr] 24 | fn deserialize(buf: &Vec, pos: usize) -> Row { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/table/mod.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | fn read_string(buf: &Vec, pos: usize, length: usize) -> String { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/btree.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | / fn new( [INFO] [stderr] 184 | | original_page: &'a mut Page, [INFO] [stderr] 185 | | original_page_index: usize, [INFO] [stderr] 186 | | left_page: Option<&'a mut Page>, [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | / match cell_index > self.split_position { [INFO] [stderr] 207 | | true => self.right_page, [INFO] [stderr] 208 | | false => match self.left_page { [INFO] [stderr] 209 | | Some(ref mut page) => page, [INFO] [stderr] 210 | | None => self.original, [INFO] [stderr] 211 | | }, [INFO] [stderr] 212 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 206 | if cell_index > self.split_position { self.right_page } else { match self.left_page { [INFO] [stderr] 207 | Some(ref mut page) => page, [INFO] [stderr] 208 | None => self.original, [INFO] [stderr] 209 | } } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | / match cell_index > self.split_position { [INFO] [stderr] 217 | | true => self.right_page_index, [INFO] [stderr] 218 | | false => self.left_page_index, [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if cell_index > self.split_position { self.right_page_index } else { self.left_page_index }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | / match cell_index > self.split_position { [INFO] [stderr] 224 | | true => cell_index - self.split_position - 1, [INFO] [stderr] 225 | | false => cell_index, [INFO] [stderr] 226 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if cell_index > self.split_position { cell_index - self.split_position - 1 } else { cell_index }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/pager.rs:26:48 [INFO] [stderr] | [INFO] [stderr] 26 | fn wrap_slice(&mut self, from: usize, buf: &Vec); [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/pager.rs:37:25 [INFO] [stderr] | [INFO] [stderr] 37 | let slice = self.index(Range { [INFO] [stderr] | _________________________^ [INFO] [stderr] 38 | | start: from, [INFO] [stderr] 39 | | end: from + len, [INFO] [stderr] 40 | | }).clone(); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 37 | let slice = &(*self.index(Range { [INFO] [stderr] 38 | start: from, [INFO] [stderr] 39 | end: from + len, [INFO] [stderr] 40 | })).clone(); [INFO] [stderr] | [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 37 | let slice = &[u8]::clone(self.index(Range { [INFO] [stderr] 38 | start: from, [INFO] [stderr] 39 | end: from + len, [INFO] [stderr] 40 | })); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in vec.enumerate()` or similar iterators [INFO] [stderr] --> src/pager.rs:44:18 [INFO] [stderr] | [INFO] [stderr] 44 | for b in vec { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in buf.enumerate()` or similar iterators [INFO] [stderr] --> src/pager.rs:52:18 [INFO] [stderr] | [INFO] [stderr] 52 | for b in buf { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/btree.rs:288:18 [INFO] [stderr] | [INFO] [stderr] 288 | for j in (0..num_cells + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `(0..=num_cells)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:289:38 [INFO] [stderr] | [INFO] [stderr] 289 | let mut new_cell_index = match inserted { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 290 | | true => j, [INFO] [stderr] 291 | | false => j + 1, [INFO] [stderr] 292 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if inserted { j } else { j + 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/pager.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | file.read(header_buf.as_mut_slice()).unwrap(); [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 read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/pager.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | file.read(buf.as_mut_slice()).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] warning: an inclusive range would be more readable [INFO] [stderr] --> src/btree.rs:590:30 [INFO] [stderr] | [INFO] [stderr] 590 | for index in 0..num_keys + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=num_keys` [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 function has too many arguments (8/7) [INFO] [stderr] --> src/btree.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | / fn new( [INFO] [stderr] 184 | | original_page: &'a mut Page, [INFO] [stderr] 185 | | original_page_index: usize, [INFO] [stderr] 186 | | left_page: Option<&'a mut Page>, [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | / match cell_index > self.split_position { [INFO] [stderr] 207 | | true => self.right_page, [INFO] [stderr] 208 | | false => match self.left_page { [INFO] [stderr] 209 | | Some(ref mut page) => page, [INFO] [stderr] 210 | | None => self.original, [INFO] [stderr] 211 | | }, [INFO] [stderr] 212 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 206 | if cell_index > self.split_position { self.right_page } else { match self.left_page { [INFO] [stderr] 207 | Some(ref mut page) => page, [INFO] [stderr] 208 | None => self.original, [INFO] [stderr] 209 | } } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | / match cell_index > self.split_position { [INFO] [stderr] 217 | | true => self.right_page_index, [INFO] [stderr] 218 | | false => self.left_page_index, [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if cell_index > self.split_position { self.right_page_index } else { self.left_page_index }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | / match cell_index > self.split_position { [INFO] [stderr] 224 | | true => cell_index - self.split_position - 1, [INFO] [stderr] 225 | | false => cell_index, [INFO] [stderr] 226 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if cell_index > self.split_position { cell_index - self.split_position - 1 } else { cell_index }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/btree.rs:288:18 [INFO] [stderr] | [INFO] [stderr] 288 | for j in (0..num_cells + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `(0..=num_cells)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/btree.rs:289:38 [INFO] [stderr] | [INFO] [stderr] 289 | let mut new_cell_index = match inserted { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 290 | | true => j, [INFO] [stderr] 291 | | false => j + 1, [INFO] [stderr] 292 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if inserted { j } else { j + 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/vm/row_buf.rs:109:24 [INFO] [stderr] | [INFO] [stderr] 109 | let mut line = format!("("); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using .to_string(): `"(".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/codegen.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / match sql { [INFO] [stderr] 33 | | &ParsedSQL::Select { [INFO] [stderr] 34 | | ref table, [INFO] [stderr] 35 | | ref operands, [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *sql { [INFO] [stderr] 33 | ParsedSQL::Select { [INFO] [stderr] 34 | ref table, [INFO] [stderr] 35 | ref operands, [INFO] [stderr] 36 | } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/codegen.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / match op { [INFO] [stderr] 64 | | &Operand::Integer(_) => Some(SQLType::Integer), [INFO] [stderr] 65 | | &Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 66 | | let type_op1 = type_of(op1, schema); [INFO] [stderr] ... | [INFO] [stderr] 76 | | &Operand::Column(ref column) => schema.get_column_type(column), [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 63 | match *op { [INFO] [stderr] 64 | Operand::Integer(_) => Some(SQLType::Integer), [INFO] [stderr] 65 | Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 66 | let type_op1 = type_of(op1, schema); [INFO] [stderr] 67 | if type_op1 == type_of(op2, schema) { [INFO] [stderr] 68 | type_op1 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/codegen.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / match op { [INFO] [stderr] 82 | | &Operand::Integer(v) => op_codes.push(OpCode::LoadInt(v)), [INFO] [stderr] 83 | | &Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 84 | | translate_operand_to_code(op_codes, op1); [INFO] [stderr] ... | [INFO] [stderr] 92 | | &Operand::Column(ref column) => panic!("not implemented"), [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 81 | match *op { [INFO] [stderr] 82 | Operand::Integer(v) => op_codes.push(OpCode::LoadInt(v)), [INFO] [stderr] 83 | Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 84 | translate_operand_to_code(op_codes, op1); [INFO] [stderr] 85 | translate_operand_to_code(op_codes, op2); [INFO] [stderr] 86 | op_codes.push(OpCode::Add) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/btree.rs:590:30 [INFO] [stderr] | [INFO] [stderr] 590 | for index in 0..num_keys + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=num_keys` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/mod.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | / match code { [INFO] [stderr] 157 | | &OpCode::LoadInt(i) => self.stack.push(i), [INFO] [stderr] 158 | | &OpCode::Add => { [INFO] [stderr] 159 | | if let (Some(v1), Some(v2)) = (self.stack.pop(), self.stack.pop()) { [INFO] [stderr] ... | [INFO] [stderr] 207 | | } [INFO] [stderr] 208 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 156 | match *code { [INFO] [stderr] 157 | OpCode::LoadInt(i) => self.stack.push(i), [INFO] [stderr] 158 | OpCode::Add => { [INFO] [stderr] 159 | if let (Some(v1), Some(v2)) = (self.stack.pop(), self.stack.pop()) { [INFO] [stderr] 160 | self.stack.push(v1 + v2); [INFO] [stderr] 161 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/vm/mod.rs:205:48 [INFO] [stderr] | [INFO] [stderr] 205 | result = ExecResult::Error(format!("not implemented op code.")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"not implemented op code.".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/sql/operands.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | map!(_parse_signed_i64, |v| Operand::Integer(v))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Operand::Integer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/vm/row_buf.rs:109:24 [INFO] [stderr] | [INFO] [stderr] 109 | let mut line = format!("("); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using .to_string(): `"(".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/codegen.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / match sql { [INFO] [stderr] 33 | | &ParsedSQL::Select { [INFO] [stderr] 34 | | ref table, [INFO] [stderr] 35 | | ref operands, [INFO] [stderr] ... | [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *sql { [INFO] [stderr] 33 | ParsedSQL::Select { [INFO] [stderr] 34 | ref table, [INFO] [stderr] 35 | ref operands, [INFO] [stderr] 36 | } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/codegen.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / match op { [INFO] [stderr] 64 | | &Operand::Integer(_) => Some(SQLType::Integer), [INFO] [stderr] 65 | | &Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 66 | | let type_op1 = type_of(op1, schema); [INFO] [stderr] ... | [INFO] [stderr] 76 | | &Operand::Column(ref column) => schema.get_column_type(column), [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 63 | match *op { [INFO] [stderr] 64 | Operand::Integer(_) => Some(SQLType::Integer), [INFO] [stderr] 65 | Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 66 | let type_op1 = type_of(op1, schema); [INFO] [stderr] 67 | if type_op1 == type_of(op2, schema) { [INFO] [stderr] 68 | type_op1 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/codegen.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / match op { [INFO] [stderr] 82 | | &Operand::Integer(v) => op_codes.push(OpCode::LoadInt(v)), [INFO] [stderr] 83 | | &Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 84 | | translate_operand_to_code(op_codes, op1); [INFO] [stderr] ... | [INFO] [stderr] 92 | | &Operand::Column(ref column) => panic!("not implemented"), [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 81 | match *op { [INFO] [stderr] 82 | Operand::Integer(v) => op_codes.push(OpCode::LoadInt(v)), [INFO] [stderr] 83 | Operand::Add(ref op1, ref op2) => { [INFO] [stderr] 84 | translate_operand_to_code(op_codes, op1); [INFO] [stderr] 85 | translate_operand_to_code(op_codes, op2); [INFO] [stderr] 86 | op_codes.push(OpCode::Add) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/mod.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | / match code { [INFO] [stderr] 157 | | &OpCode::LoadInt(i) => self.stack.push(i), [INFO] [stderr] 158 | | &OpCode::Add => { [INFO] [stderr] 159 | | if let (Some(v1), Some(v2)) = (self.stack.pop(), self.stack.pop()) { [INFO] [stderr] ... | [INFO] [stderr] 207 | | } [INFO] [stderr] 208 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 156 | match *code { [INFO] [stderr] 157 | OpCode::LoadInt(i) => self.stack.push(i), [INFO] [stderr] 158 | OpCode::Add => { [INFO] [stderr] 159 | if let (Some(v1), Some(v2)) = (self.stack.pop(), self.stack.pop()) { [INFO] [stderr] 160 | self.stack.push(v1 + v2); [INFO] [stderr] 161 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/vm/mod.rs:205:48 [INFO] [stderr] | [INFO] [stderr] 205 | result = ExecResult::Error(format!("not implemented op code.")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"not implemented op code.".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:40:37 [INFO] [stderr] | [INFO] [stderr] 40 | if input_buffer.starts_with(".") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:66:14 [INFO] [stderr] | [INFO] [stderr] 66 | .expect(&format!("invalid value for {}", ENV_PAGE_SIZE)) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("invalid value for {}", ENV_PAGE_SIZE))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/sql/operands.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | map!(_parse_signed_i64, |v| Operand::Integer(v))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Operand::Integer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: Could not compile `rdb`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:40:37 [INFO] [stderr] | [INFO] [stderr] 40 | if input_buffer.starts_with(".") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:66:14 [INFO] [stderr] | [INFO] [stderr] 66 | .expect(&format!("invalid value for {}", ENV_PAGE_SIZE)) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("invalid value for {}", ENV_PAGE_SIZE))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rdb`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "751e589373b26d1138ad3cd123a02ea940d01788919c30c2af02f6208b097f1d"` [INFO] running `"docker" "rm" "-f" "751e589373b26d1138ad3cd123a02ea940d01788919c30c2af02f6208b097f1d"` [INFO] [stdout] 751e589373b26d1138ad3cd123a02ea940d01788919c30c2af02f6208b097f1d