[INFO] cloning repository https://github.com/owolabioromidayo/yugodb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/owolabioromidayo/yugodb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fowolabioromidayo%2Fyugodb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fowolabioromidayo%2Fyugodb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2332628a4fc5560f1aaceac1bc38ef5eaa930839
[INFO] checking owolabioromidayo/yugodb against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fowolabioromidayo%2Fyugodb" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/owolabioromidayo/yugodb
[INFO] finished tweaking git repo https://github.com/owolabioromidayo/yugodb
[INFO] tweaked toml for git repo https://github.com/owolabioromidayo/yugodb written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/owolabioromidayo/yugodb on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/owolabioromidayo/yugodb already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 13 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.25.1
[INFO] [stderr]       Adding adler2 v2.0.1
[INFO] [stderr]       Adding backtrace v0.3.76
[INFO] [stderr]       Adding dhat v0.3.3
[INFO] [stderr]       Adding gimli v0.32.3
[INFO] [stderr]     Updating libc v0.2.153 -> v0.2.186
[INFO] [stderr]       Adding miniz_oxide v0.8.9
[INFO] [stderr]       Adding mintex v0.1.4
[INFO] [stderr]       Adding object v0.37.3
[INFO] [stderr]       Adding rustc-demangle v0.1.27
[INFO] [stderr]       Adding rustc-hash v1.1.0
[INFO] [stderr]       Adding thousands v0.2.0
[INFO] [stderr]       Adding windows-link v0.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 094f3c324f06f8778a5ce10ff9e1cc66f32cb4d107638f0a30cd41586156f716
[INFO] running `Command { std: "docker" "start" "-a" "094f3c324f06f8778a5ce10ff9e1cc66f32cb4d107638f0a30cd41586156f716", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "094f3c324f06f8778a5ce10ff9e1cc66f32cb4d107638f0a30cd41586156f716", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "094f3c324f06f8778a5ce10ff9e1cc66f32cb4d107638f0a30cd41586156f716", kill_on_drop: false }`
[INFO] [stdout] 094f3c324f06f8778a5ce10ff9e1cc66f32cb4d107638f0a30cd41586156f716
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 29b2c2fdd3e64fdd34a0c849532eab694453c0d18cd6f2350de768f18f8cf58f
[INFO] running `Command { std: "docker" "start" "-a" "29b2c2fdd3e64fdd34a0c849532eab694453c0d18cd6f2350de768f18f8cf58f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde v1.0.198
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling serde_json v1.0.116
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]    Compiling rust_decimal v1.35.0
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking indexmap v2.2.6
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling arrayvec v0.7.4
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]     Checking getrandom v0.2.14
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking either v1.12.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking mintex v0.1.4
[INFO] [stderr]     Checking thousands v0.2.0
[INFO] [stderr]    Compiling rust_decimal_macros v1.34.2
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.198
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking serde_bytes v0.11.14
[INFO] [stderr]     Checking uuid v1.8.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking dhat v0.3.3
[INFO] [stderr]     Checking bson v2.10.0
[INFO] [stderr]     Checking binyugodb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]   --> src/pager.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::{Deref, DerefMut};
[INFO] [stdout]    |                ^^^^^  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/btree.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::{Error, Result};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/table.rs:706:36
[INFO] [stdout]     |
[INFO] [stdout] 706 | ...                   if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout]     |                          ^                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 706 -                                 if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout] 706 +                                 if page_id == &(*page).borrow_mut().index {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/table.rs:1182:36
[INFO] [stdout]      |
[INFO] [stdout] 1182 | ...                   if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout]      |                          ^                                      ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1182 -                                 if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout] 1182 +                                 if page_id == &(*page).borrow_mut().index {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal_macros::dec`
[INFO] [stdout]  --> src/record.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rust_decimal_macros::dec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bson` and `bson`
[INFO] [stdout]   --> src/record.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | use bson::{bson, Bson};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lang/tokenizer.rs:269:15
[INFO] [stdout]     |
[INFO] [stdout] 269 |         while (true) {
[INFO] [stdout]     |               ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 269 -         while (true) {
[INFO] [stdout] 269 +         while true  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/lang/tokenizer.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 |         while (true) {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lang::tokenizer::*`
[INFO] [stdout]  --> src/lang/parser.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::lang::tokenizer::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal_macros::dec`
[INFO] [stdout]  --> src/lang/parser.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rust_decimal_macros::dec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lang/parser.rs:223:16
[INFO] [stdout]     |
[INFO] [stdout] 223 |             if (field_name == "id") {
[INFO] [stdout]     |                ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 223 -             if (field_name == "id") {
[INFO] [stdout] 223 +             if field_name == "id"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lang/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::database::Database`
[INFO] [stdout]  --> src/lang/typechecker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::database::Database; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::*`
[INFO] [stdout]  --> src/lang/typechecker.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lang::types::*`
[INFO] [stdout]  --> src/lang/typechecker.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::lang::types::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lang/typechecker.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::time_it`
[INFO] [stdout]   --> src/lang/interpreter.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::time_it;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]   --> src/lang/interpreter.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use colored::* ;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/lang/interpreter.rs:733:55
[INFO] [stdout]     |
[INFO] [stdout] 733 | ...                   return Err(Error::Unknown(("not a dbms call".to_string())));
[INFO] [stdout]     |                                                 ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 733 -                             return Err(Error::Unknown(("not a dbms call".to_string())));
[INFO] [stdout] 733 +                             return Err(Error::Unknown("not a dbms call".to_string() ));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/lang/interpreter.rs:742:41
[INFO] [stdout]     |
[INFO] [stdout] 742 | ...                   ("unresolvable argument error".to_string()),
[INFO] [stdout]     |                       ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 742 -                                         ("unresolvable argument error".to_string()),
[INFO] [stdout] 742 +                                         "unresolvable argument error".to_string() ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/lang/interpreter.rs:1512:44
[INFO] [stdout]      |
[INFO] [stdout] 1512 | ...                   if (x.len() == 0) {
[INFO] [stdout]      |                          ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1512 -                                         if (x.len() == 0) {
[INFO] [stdout] 1512 +                                         if x.len() == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/lang/interpreter.rs:1523:44
[INFO] [stdout]      |
[INFO] [stdout] 1523 | ...                   if (x.len() == 0) {
[INFO] [stdout]      |                          ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1523 -                                         if (x.len() == 0) {
[INFO] [stdout] 1523 +                                         if x.len() == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/lang/interpreter.rs:1534:44
[INFO] [stdout]      |
[INFO] [stdout] 1534 | ...                   if (x.len() == 0) {
[INFO] [stdout]      |                          ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1534 -                                         if (x.len() == 0) {
[INFO] [stdout] 1534 +                                         if x.len() == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/record_iterator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::*`
[INFO] [stdout]  --> src/record_iterator.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pager::*`
[INFO] [stdout]  --> src/record_iterator.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::pager::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::table::*`
[INFO] [stdout]  --> src/record_iterator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::table::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/record_iterator.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/record_iterator.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |         if (self.progress >= predicate.limit.unwrap() - predicate.offset.unwrap()) {
[INFO] [stdout]     |            ^                                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 146 -         if (self.progress >= predicate.limit.unwrap() - predicate.offset.unwrap()) {
[INFO] [stdout] 146 +         if self.progress >= predicate.limit.unwrap() - predicate.offset.unwrap()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::record::*`
[INFO] [stdout]  --> src/schema.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::record::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]   --> src/pager.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::{Deref, DerefMut};
[INFO] [stdout]    |                ^^^^^  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/btree.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::{Error, Result};
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/table.rs:706:36
[INFO] [stdout]     |
[INFO] [stdout] 706 | ...                   if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout]     |                          ^                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 706 -                                 if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout] 706 +                                 if page_id == &(*page).borrow_mut().index {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/table.rs:1182:36
[INFO] [stdout]      |
[INFO] [stdout] 1182 | ...                   if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout]      |                          ^                                      ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1182 -                                 if (page_id == &(*page).borrow_mut().index) {
[INFO] [stdout] 1182 +                                 if page_id == &(*page).borrow_mut().index {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bson` and `bson`
[INFO] [stdout]   --> src/record.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | use bson::{bson, Bson};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lang/tokenizer.rs:269:15
[INFO] [stdout]     |
[INFO] [stdout] 269 |         while (true) {
[INFO] [stdout]     |               ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 269 -         while (true) {
[INFO] [stdout] 269 +         while true  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/lang/tokenizer.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 |         while (true) {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal_macros::dec`
[INFO] [stdout]  --> src/lang/parser.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rust_decimal_macros::dec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lang/parser.rs:223:16
[INFO] [stdout]     |
[INFO] [stdout] 223 |             if (field_name == "id") {
[INFO] [stdout]     |                ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 223 -             if (field_name == "id") {
[INFO] [stdout] 223 +             if field_name == "id"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lang/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::database::Database`
[INFO] [stdout]  --> src/lang/typechecker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::database::Database; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::*`
[INFO] [stdout]  --> src/lang/typechecker.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lang::types::*`
[INFO] [stdout]  --> src/lang/typechecker.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::lang::types::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lang/typechecker.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::time_it`
[INFO] [stdout]   --> src/lang/interpreter.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::time_it;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]   --> src/lang/interpreter.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use colored::* ;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/lang/interpreter.rs:733:55
[INFO] [stdout]     |
[INFO] [stdout] 733 | ...                   return Err(Error::Unknown(("not a dbms call".to_string())));
[INFO] [stdout]     |                                                 ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 733 -                             return Err(Error::Unknown(("not a dbms call".to_string())));
[INFO] [stdout] 733 +                             return Err(Error::Unknown("not a dbms call".to_string() ));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/lang/interpreter.rs:742:41
[INFO] [stdout]     |
[INFO] [stdout] 742 | ...                   ("unresolvable argument error".to_string()),
[INFO] [stdout]     |                       ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 742 -                                         ("unresolvable argument error".to_string()),
[INFO] [stdout] 742 +                                         "unresolvable argument error".to_string() ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/lang/interpreter.rs:1512:44
[INFO] [stdout]      |
[INFO] [stdout] 1512 | ...                   if (x.len() == 0) {
[INFO] [stdout]      |                          ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1512 -                                         if (x.len() == 0) {
[INFO] [stdout] 1512 +                                         if x.len() == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/lang/interpreter.rs:1523:44
[INFO] [stdout]      |
[INFO] [stdout] 1523 | ...                   if (x.len() == 0) {
[INFO] [stdout]      |                          ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1523 -                                         if (x.len() == 0) {
[INFO] [stdout] 1523 +                                         if x.len() == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/lang/interpreter.rs:1534:44
[INFO] [stdout]      |
[INFO] [stdout] 1534 | ...                   if (x.len() == 0) {
[INFO] [stdout]      |                          ^            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1534 -                                         if (x.len() == 0) {
[INFO] [stdout] 1534 +                                         if x.len() == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/record_iterator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::*`
[INFO] [stdout]  --> src/record_iterator.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pager::*`
[INFO] [stdout]  --> src/record_iterator.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::pager::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::table::*`
[INFO] [stdout]  --> src/record_iterator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::table::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/record_iterator.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/record_iterator.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |         if (self.progress >= predicate.limit.unwrap() - predicate.offset.unwrap()) {
[INFO] [stdout]     |            ^                                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 146 -         if (self.progress >= predicate.limit.unwrap() - predicate.offset.unwrap()) {
[INFO] [stdout] 146 +         if self.progress >= predicate.limit.unwrap() - predicate.offset.unwrap()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::record::*`
[INFO] [stdout]  --> src/schema.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::record::*; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/btree.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         for i in 0..32 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/btree.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |         for (id, k) in self.children.iter().enumerate() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/record.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 |         if let a = self.fields.get(key).unwrap() {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/record.rs:92:38
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 DocumentValue::Array(x) => None,
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/record.rs:93:39
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 DocumentValue::Object(x) => None,
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/record.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |             Err(err) => return Err(Error::SerializationError),
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/record.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             Err(err) => return Err(Error::SerializationError),
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/record.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |             Err(err) => return Err(Error::SerializationError),
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nullable`
[INFO] [stdout]    --> src/record.rs:308:25
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let (dtype, nullable) = schema.get(name).unwrap();
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/record.rs:525:21
[INFO] [stdout]     |
[INFO] [stdout] 525 |                 Err(x) => return Ok(Self { records }),
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/record.rs:727:29
[INFO] [stdout]     |
[INFO] [stdout] 727 |     pub fn get_value(&self, key: &str) -> &RelationalValue {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/btree.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         for i in 0..32 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]    --> src/record.rs:733:24
[INFO] [stdout]     |
[INFO] [stdout] 733 |     pub fn deserialize(bytes: &[u8], schema: &RelationalSchema) -> Result<Self> {
[INFO] [stdout]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/record.rs:733:38
[INFO] [stdout]     |
[INFO] [stdout] 733 |     pub fn deserialize(bytes: &[u8], schema: &RelationalSchema) -> Result<Self> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/record.rs:737:29
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn serialize(&self, schema: &RelationalSchema) -> Vec<u8> {
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/btree.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |         for (id, k) in self.children.iter().enumerate() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/lang/interpreter.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 Expr::Attribute(y) => {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lang/interpreter.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let mut right = self.evaluate_lower(&expr.right)?;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/lang/interpreter.rs:301:28
[INFO] [stdout]     |
[INFO] [stdout] 301 |     fn visit_assign(&self, expr: &Assign) -> Result<IterClosure> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/lang/interpreter.rs:308:30
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn visit_variable(&self, expr: &Variable) -> Result<IterClosure> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lang/interpreter.rs:397:25
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     let mut pred = self.generate_predicate(&expr.methods, &expr.arguments)?;
[INFO] [stdout]     |                         ----^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lang/interpreter.rs:399:25
[INFO] [stdout]     |
[INFO] [stdout] 399 |                     let mut k_static = Box::leak(Box::new(k.clone()));
[INFO] [stdout]     |                         ----^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]    --> src/lang/interpreter.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |             tok => {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `db_name` is never read
[INFO] [stdout]    --> src/lang/interpreter.rs:367:27
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let mut db_name = String::new();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 377 |                     db_name = tokens[1].clone();
[INFO] [stdout]     |                     ------- `db_name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `table_name` is never read
[INFO] [stdout]    --> src/lang/interpreter.rs:368:30
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let mut table_name = String::new();
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 378 |                     table_name = tokens[2].clone();
[INFO] [stdout]     |                     ---------- `table_name` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lang/interpreter.rs:529:58
[INFO] [stdout]     |
[INFO] [stdout] 529 | ...                   (Records::RelationalRows(x), Records::DocumentRows(y)) => {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lang/interpreter.rs:529:84
[INFO] [stdout]     |
[INFO] [stdout] 529 | ...                   (Records::RelationalRows(x), Records::DocumentRows(y)) => {
[INFO] [stdout]     |                                                                          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lang/interpreter.rs:533:58
[INFO] [stdout]     |
[INFO] [stdout] 533 | ...                   (Records::RelationalRows(x), Records::RelationalRows(y)) => {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lang/interpreter.rs:533:86
[INFO] [stdout]     |
[INFO] [stdout] 533 | ...                   (Records::RelationalRows(x), Records::RelationalRows(y)) => {
[INFO] [stdout]     |                                                                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/lang/interpreter.rs:563:36
[INFO] [stdout]     |
[INFO] [stdout] 563 |     fn visit_print_stmt(&mut self, stmt: &PrintStmt) -> () {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/lang/interpreter.rs:575:34
[INFO] [stdout]     |
[INFO] [stdout] 575 |     fn visit_var_stmt(&mut self, stmt: &VarStmt) -> () {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1104:41
[INFO] [stdout]      |
[INFO] [stdout] 1104 | ...                   _ =>{
[INFO] [stdout]      |                       ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1104:41
[INFO] [stdout]      |
[INFO] [stdout] 1077 | ...                   TableType::Document => {
[INFO] [stdout]      |                       ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1088 | ...                   TableType::Relational =>{
[INFO] [stdout]      |                       --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1104 | ...                   _ =>{
[INFO] [stdout]      |                       ^ collectively making this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1161:41
[INFO] [stdout]      |
[INFO] [stdout] 1161 | ...                   _ =>{
[INFO] [stdout]      |                       ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1161:41
[INFO] [stdout]      |
[INFO] [stdout] 1154 | ...                   TableType::Document => { 
[INFO] [stdout]      |                       ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1158 | ...                   TableType::Relational => {
[INFO] [stdout]      |                       --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1161 | ...                   _ =>{
[INFO] [stdout]      |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1228:41
[INFO] [stdout]      |
[INFO] [stdout] 1228 | ...                   _ =>{
[INFO] [stdout]      |                       ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1228:41
[INFO] [stdout]      |
[INFO] [stdout] 1221 | ...                   TableType::Document => { 
[INFO] [stdout]      |                       ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1225 | ...                   TableType::Relational => {
[INFO] [stdout]      |                       --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1228 | ...                   _ =>{
[INFO] [stdout]      |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lang/interpreter.rs:740:37
[INFO] [stdout]     |
[INFO] [stdout] 740 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]     --> src/lang/interpreter.rs:1323:21
[INFO] [stdout]      |
[INFO] [stdout] 1323 |                     tok => {
[INFO] [stdout]      |                     ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `record_ids` is never read
[INFO] [stdout]     --> src/lang/interpreter.rs:1210:58
[INFO] [stdout]      |
[INFO] [stdout] 1210 | ...                   let mut record_ids = Vec::new() ;
[INFO] [stdout]      |                                            ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1215 | ...                           record_ids =  records.into_iter().map(|i| i as usize).collect();
[INFO] [stdout]      |                               ---------- `record_ids` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1399:25
[INFO] [stdout]      |
[INFO] [stdout] 1399 |                         _ => {
[INFO] [stdout]      |                         ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1399:25
[INFO] [stdout]      |
[INFO] [stdout] 1384 |                         NodeData::Source(x) => {
[INFO] [stdout]      |                         ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1387 |                         NodeData::Join(x) => {
[INFO] [stdout]      |                         ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1391 |                         NodeData::Projection(x) => {
[INFO] [stdout]      |                         ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1396 |                         NodeData::Variable(x) => {
[INFO] [stdout]      |                         --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1399 |                         _ => {
[INFO] [stdout]      |                         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]     --> src/lang/interpreter.rs:1396:44
[INFO] [stdout]      |
[INFO] [stdout] 1396 |                         NodeData::Variable(x) => {
[INFO] [stdout]      |                                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/record_iterator.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut n = RecordIterator {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `taken` is never read
[INFO] [stdout]   --> src/pager.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Page {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     taken: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Page` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/pager.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl FileInfo {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 115 |     fn new() -> FileInfo {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_page` is never used
[INFO] [stdout]    --> src/pager.rs:328:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl Pager {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn delete_page(&mut self, page: Page) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_page` is never used
[INFO] [stdout]    --> src/pager.rs:405:8
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl PageCache {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 405 |     fn has_page(&mut self, page_index: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FromResidual` is never used
[INFO] [stdout]  --> src/error.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | trait FromResidual<R> {
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_node` is never read
[INFO] [stdout]   --> src/btree.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct BPTreeLeafNode<T: PartialEq, U> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 44 |     values: HashMap<T, U>,
[INFO] [stdout] 45 |     next_node: Option<Box<BPTreeLeafNode<T, U>>>, //  LList
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BPTreeLeafNode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `PredicateClosure` is never constructed
[INFO] [stdout]   --> src/lang/interpreter.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct PredicateClosure {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `eval` is never read
[INFO] [stdout]   --> src/lang/interpreter.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct PredicateClosure {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 93 |     // what happens if its only one record, we create another func, this seems brittle
[INFO] [stdout] 94 |     eval: Box<dyn Fn(&Record, &Record) -> bool>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `binyugodb` (lib) due to 1 previous error; 76 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/record.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 |         if let a = self.fields.get(key).unwrap() {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/record.rs:92:38
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 DocumentValue::Array(x) => None,
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/record.rs:93:39
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 DocumentValue::Object(x) => None,
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/record.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |             Err(err) => return Err(Error::SerializationError),
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/record.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             Err(err) => return Err(Error::SerializationError),
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/record.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |             Err(err) => return Err(Error::SerializationError),
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nullable`
[INFO] [stdout]    --> src/record.rs:308:25
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let (dtype, nullable) = schema.get(name).unwrap();
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/record.rs:525:21
[INFO] [stdout]     |
[INFO] [stdout] 525 |                 Err(x) => return Ok(Self { records }),
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/record.rs:727:29
[INFO] [stdout]     |
[INFO] [stdout] 727 |     pub fn get_value(&self, key: &str) -> &RelationalValue {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]    --> src/record.rs:733:24
[INFO] [stdout]     |
[INFO] [stdout] 733 |     pub fn deserialize(bytes: &[u8], schema: &RelationalSchema) -> Result<Self> {
[INFO] [stdout]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/record.rs:733:38
[INFO] [stdout]     |
[INFO] [stdout] 733 |     pub fn deserialize(bytes: &[u8], schema: &RelationalSchema) -> Result<Self> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/record.rs:737:29
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn serialize(&self, schema: &RelationalSchema) -> Vec<u8> {
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `serialized`
[INFO] [stdout]     --> src/record.rs:1107:13
[INFO] [stdout]      |
[INFO] [stdout] 1107 |         let serialized = record.serialize(&schema);
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_serialized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]    --> src/lang/parser.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |         let expected = DocumentRecord {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/lang/interpreter.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 Expr::Attribute(y) => {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lang/interpreter.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let mut right = self.evaluate_lower(&expr.right)?;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/lang/interpreter.rs:301:28
[INFO] [stdout]     |
[INFO] [stdout] 301 |     fn visit_assign(&self, expr: &Assign) -> Result<IterClosure> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/lang/interpreter.rs:308:30
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn visit_variable(&self, expr: &Variable) -> Result<IterClosure> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lang/interpreter.rs:397:25
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     let mut pred = self.generate_predicate(&expr.methods, &expr.arguments)?;
[INFO] [stdout]     |                         ----^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lang/interpreter.rs:399:25
[INFO] [stdout]     |
[INFO] [stdout] 399 |                     let mut k_static = Box::leak(Box::new(k.clone()));
[INFO] [stdout]     |                         ----^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]    --> src/lang/interpreter.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |             tok => {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `db_name` is never read
[INFO] [stdout]    --> src/lang/interpreter.rs:367:27
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let mut db_name = String::new();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 377 |                     db_name = tokens[1].clone();
[INFO] [stdout]     |                     ------- `db_name` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `table_name` is never read
[INFO] [stdout]    --> src/lang/interpreter.rs:368:30
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let mut table_name = String::new();
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 378 |                     table_name = tokens[2].clone();
[INFO] [stdout]     |                     ---------- `table_name` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lang/interpreter.rs:529:58
[INFO] [stdout]     |
[INFO] [stdout] 529 | ...                   (Records::RelationalRows(x), Records::DocumentRows(y)) => {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lang/interpreter.rs:529:84
[INFO] [stdout]     |
[INFO] [stdout] 529 | ...                   (Records::RelationalRows(x), Records::DocumentRows(y)) => {
[INFO] [stdout]     |                                                                          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lang/interpreter.rs:533:58
[INFO] [stdout]     |
[INFO] [stdout] 533 | ...                   (Records::RelationalRows(x), Records::RelationalRows(y)) => {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lang/interpreter.rs:533:86
[INFO] [stdout]     |
[INFO] [stdout] 533 | ...                   (Records::RelationalRows(x), Records::RelationalRows(y)) => {
[INFO] [stdout]     |                                                                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/lang/interpreter.rs:563:36
[INFO] [stdout]     |
[INFO] [stdout] 563 |     fn visit_print_stmt(&mut self, stmt: &PrintStmt) -> () {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/lang/interpreter.rs:575:34
[INFO] [stdout]     |
[INFO] [stdout] 575 |     fn visit_var_stmt(&mut self, stmt: &VarStmt) -> () {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1104:41
[INFO] [stdout]      |
[INFO] [stdout] 1104 | ...                   _ =>{
[INFO] [stdout]      |                       ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1104:41
[INFO] [stdout]      |
[INFO] [stdout] 1077 | ...                   TableType::Document => {
[INFO] [stdout]      |                       ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1088 | ...                   TableType::Relational =>{
[INFO] [stdout]      |                       --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1104 | ...                   _ =>{
[INFO] [stdout]      |                       ^ collectively making this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1161:41
[INFO] [stdout]      |
[INFO] [stdout] 1161 | ...                   _ =>{
[INFO] [stdout]      |                       ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1161:41
[INFO] [stdout]      |
[INFO] [stdout] 1154 | ...                   TableType::Document => { 
[INFO] [stdout]      |                       ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1158 | ...                   TableType::Relational => {
[INFO] [stdout]      |                       --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1161 | ...                   _ =>{
[INFO] [stdout]      |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1228:41
[INFO] [stdout]      |
[INFO] [stdout] 1228 | ...                   _ =>{
[INFO] [stdout]      |                       ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1228:41
[INFO] [stdout]      |
[INFO] [stdout] 1221 | ...                   TableType::Document => { 
[INFO] [stdout]      |                       ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1225 | ...                   TableType::Relational => {
[INFO] [stdout]      |                       --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1228 | ...                   _ =>{
[INFO] [stdout]      |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lang/interpreter.rs:740:37
[INFO] [stdout]     |
[INFO] [stdout] 740 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]     --> src/lang/interpreter.rs:1323:21
[INFO] [stdout]      |
[INFO] [stdout] 1323 |                     tok => {
[INFO] [stdout]      |                     ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `record_ids` is never read
[INFO] [stdout]     --> src/lang/interpreter.rs:1210:58
[INFO] [stdout]      |
[INFO] [stdout] 1210 | ...                   let mut record_ids = Vec::new() ;
[INFO] [stdout]      |                                            ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1215 | ...                           record_ids =  records.into_iter().map(|i| i as usize).collect();
[INFO] [stdout]      |                               ---------- `record_ids` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/lang/interpreter.rs:1399:25
[INFO] [stdout]      |
[INFO] [stdout] 1399 |                         _ => {
[INFO] [stdout]      |                         ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/lang/interpreter.rs:1399:25
[INFO] [stdout]      |
[INFO] [stdout] 1384 |                         NodeData::Source(x) => {
[INFO] [stdout]      |                         ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1387 |                         NodeData::Join(x) => {
[INFO] [stdout]      |                         ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1391 |                         NodeData::Projection(x) => {
[INFO] [stdout]      |                         ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1396 |                         NodeData::Variable(x) => {
[INFO] [stdout]      |                         --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1399 |                         _ => {
[INFO] [stdout]      |                         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]     --> src/lang/interpreter.rs:1396:44
[INFO] [stdout]      |
[INFO] [stdout] 1396 |                         NodeData::Variable(x) => {
[INFO] [stdout]      |                                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/record_iterator.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut n = RecordIterator {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `taken` is never read
[INFO] [stdout]   --> src/pager.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Page {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     taken: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Page` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/pager.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl FileInfo {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 115 |     fn new() -> FileInfo {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_page` is never used
[INFO] [stdout]    --> src/pager.rs:405:8
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl PageCache {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 405 |     fn has_page(&mut self, page_index: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FromResidual` is never used
[INFO] [stdout]  --> src/error.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | trait FromResidual<R> {
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_node` is never read
[INFO] [stdout]   --> src/btree.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct BPTreeLeafNode<T: PartialEq, U> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 44 |     values: HashMap<T, U>,
[INFO] [stdout] 45 |     next_node: Option<Box<BPTreeLeafNode<T, U>>>, //  LList
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BPTreeLeafNode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `PredicateClosure` is never constructed
[INFO] [stdout]   --> src/lang/interpreter.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct PredicateClosure {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `eval` is never read
[INFO] [stdout]   --> src/lang/interpreter.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct PredicateClosure {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 93 |     // what happens if its only one record, we create another func, this seems brittle
[INFO] [stdout] 94 |     eval: Box<dyn Fn(&Record, &Record) -> bool>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `binyugodb` (lib test) due to 1 previous error; 75 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "29b2c2fdd3e64fdd34a0c849532eab694453c0d18cd6f2350de768f18f8cf58f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29b2c2fdd3e64fdd34a0c849532eab694453c0d18cd6f2350de768f18f8cf58f", kill_on_drop: false }`
[INFO] [stdout] 29b2c2fdd3e64fdd34a0c849532eab694453c0d18cd6f2350de768f18f8cf58f
