[INFO] cloning repository https://github.com/plaidturtle0/plaidcsv
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/plaidturtle0/plaidcsv" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplaidturtle0%2Fplaidcsv", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplaidturtle0%2Fplaidcsv'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3a2ac09f9ba3880afbc8b7565315b4b185ec57f1
[INFO] checking plaidturtle0/plaidcsv against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplaidturtle0%2Fplaidcsv" "/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/plaidturtle0/plaidcsv
[INFO] finished tweaking git repo https://github.com/plaidturtle0/plaidcsv
[INFO] tweaked toml for git repo https://github.com/plaidturtle0/plaidcsv written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/plaidturtle0/plaidcsv on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/plaidturtle0/plaidcsv 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking plaidturtle0/plaidcsv against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplaidturtle0%2Fplaidcsv" "/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/plaidturtle0/plaidcsv
[INFO] finished tweaking git repo https://github.com/plaidturtle0/plaidcsv
[INFO] tweaked toml for git repo https://github.com/plaidturtle0/plaidcsv written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/plaidturtle0/plaidcsv on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/plaidturtle0/plaidcsv 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded aho-corasick v0.6.10
[INFO] [stderr]   Downloaded csv-core v0.1.5
[INFO] [stderr]   Downloaded uuid v0.7.2
[INFO] [stderr]   Downloaded approx v0.3.1
[INFO] [stderr]   Downloaded serde v1.0.89
[INFO] [stderr]   Downloaded regex-syntax v0.6.5
[INFO] [stderr]   Downloaded regex v1.1.2
[INFO] [stderr]   Downloaded libc v0.2.49
[INFO] [stderr]   Downloaded csv v1.0.5
[INFO] [stderr]   Downloaded sqlparser v0.3.0
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 92d2ab5c7e1059f31f89dbe94a6f83d26fd6cd9b59f29d557142a13cc180e45d
[INFO] running `Command { std: "docker" "start" "-a" "92d2ab5c7e1059f31f89dbe94a6f83d26fd6cd9b59f29d557142a13cc180e45d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92d2ab5c7e1059f31f89dbe94a6f83d26fd6cd9b59f29d557142a13cc180e45d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92d2ab5c7e1059f31f89dbe94a6f83d26fd6cd9b59f29d557142a13cc180e45d", kill_on_drop: false }`
[INFO] [stdout] 92d2ab5c7e1059f31f89dbe94a6f83d26fd6cd9b59f29d557142a13cc180e45d
[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 -Dunmustuse_in_always_ok" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c01197ab859f11cb571be9ed3e1df77812390d6c134bacb9cea3c4318769c629
[INFO] running `Command { std: "docker" "start" "-a" "c01197ab859f11cb571be9ed3e1df77812390d6c134bacb9cea3c4318769c629", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.49
[INFO] [stderr]    Compiling memchr v2.2.0
[INFO] [stderr]    Compiling num-traits v0.2.6
[INFO] [stderr]    Compiling num-integer v0.1.39
[INFO] [stderr]    Compiling serde v1.0.89
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]    Compiling regex v1.1.2
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking uuid v0.7.2
[INFO] [stderr]     Checking strsim v0.7.0
[INFO] [stderr]     Checking utf8-ranges v1.0.2
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]     Checking regex-syntax v0.6.5
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking textwrap v0.10.0
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]     Checking clap v2.32.0
[INFO] [stderr]     Checking csv-core v0.1.5
[INFO] [stderr]     Checking aho-corasick v0.6.10
[INFO] [stderr]     Checking approx v0.3.1
[INFO] [stderr]     Checking chrono v0.4.6
[INFO] [stderr]     Checking sqlparser v0.3.0
[INFO] [stderr]     Checking csv v1.0.5
[INFO] [stderr]     Checking plaidcsv v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:323:17
[INFO] [stdout]     |
[INFO] [stdout] 323 |   relation: Box<GenericView>,
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 323 |   relation: Box<dyn GenericView>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:323:17
[INFO] [stdout]     |
[INFO] [stdout] 323 |   relation: Box<GenericView>,
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 323 |   relation: Box<dyn GenericView>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |   fns: Vec<Box<AggregateFn>>,
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 330 |   fns: Vec<Box<dyn AggregateFn>>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |   fns: Vec<Box<AggregateFn>>,
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 330 |   fns: Vec<Box<dyn AggregateFn>>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:331:15
[INFO] [stdout]     |
[INFO] [stdout] 331 |   source: Box<GenericView>,
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 331 |   source: Box<dyn GenericView>,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:331:15
[INFO] [stdout]     |
[INFO] [stdout] 331 |   source: Box<GenericView>,
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 331 |   source: Box<dyn GenericView>,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:337:15
[INFO] [stdout]     |
[INFO] [stdout] 337 |   source: Box<GenericView>,
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 337 |   source: Box<dyn GenericView>,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:344:15
[INFO] [stdout]     |
[INFO] [stdout] 344 |   source: Box<GenericView>,
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 344 |   source: Box<dyn GenericView>,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:337:15
[INFO] [stdout]     |
[INFO] [stdout] 337 |   source: Box<GenericView>,
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 337 |   source: Box<dyn GenericView>,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:344:15
[INFO] [stdout]     |
[INFO] [stdout] 344 |   source: Box<GenericView>,
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 344 |   source: Box<dyn GenericView>,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 |   fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |   fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 |   fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |   fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:50:30
[INFO] [stdout]    |
[INFO] [stdout] 50 |   fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |   fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:50:30
[INFO] [stdout]    |
[INFO] [stdout] 50 |   fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |   fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:68:30
[INFO] [stdout]    |
[INFO] [stdout] 68 |   fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |   fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:68:30
[INFO] [stdout]    |
[INFO] [stdout] 68 |   fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |   fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut GenericView, writer: &mut Writer<T>) -> Result<(),Box<Error>>
[INFO] [stdout]     |                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut dyn GenericView, writer: &mut Writer<T>) -> Result<(),Box<Error>>
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut GenericView, writer: &mut Writer<T>) -> Result<(),Box<Error>>
[INFO] [stdout]     |                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut dyn GenericView, writer: &mut Writer<T>) -> Result<(),Box<Error>>
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:245:83
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut GenericView, writer: &mut Writer<T>) -> Result<(),Box<Error>>
[INFO] [stdout]     |                                                                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut GenericView, writer: &mut Writer<T>) -> Result<(),Box<dyn Error>>
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:245:83
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut GenericView, writer: &mut Writer<T>) -> Result<(),Box<Error>>
[INFO] [stdout]     |                                                                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn write_view<T>(view: &mut GenericView, writer: &mut Writer<T>) -> Result<(),Box<dyn Error>>
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:241:53
[INFO] [stdout]     |
[INFO] [stdout] 241 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>>;
[INFO] [stdout]     |                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 241 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>>;
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:241:53
[INFO] [stdout]     |
[INFO] [stdout] 241 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>>;
[INFO] [stdout]     |                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 241 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>>;
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:292:86
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>>
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>>
[INFO] [stdout]     |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:292:86
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>>
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>>
[INFO] [stdout]     |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:292:104
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>>
[INFO] [stdout]     |                                                                                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>>
[INFO] [stdout]     |                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:292:104
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>>
[INFO] [stdout]     |                                                                                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn make_reader_view<T>(mut reader: csv::Reader<T>, opts : &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>>
[INFO] [stdout]     |                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:349:62
[INFO] [stdout]     |
[INFO] [stdout] 349 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>>;
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 349 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>>;
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:349:62
[INFO] [stdout]     |
[INFO] [stdout] 349 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>>;
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 349 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>>;
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:350:43
[INFO] [stdout]     |
[INFO] [stdout] 350 |   fn output(&self) -> Result<CSVCell, Box<Error>>;
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 350 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>>;
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:350:43
[INFO] [stdout]     |
[INFO] [stdout] 350 |   fn output(&self) -> Result<CSVCell, Box<Error>>;
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 350 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>>;
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:307:53
[INFO] [stdout]     |
[INFO] [stdout] 307 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]     |                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 307 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:307:53
[INFO] [stdout]     |
[INFO] [stdout] 307 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]     |                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 307 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:271:75
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:271:93
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:284:66
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:271:75
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:284:84
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:271:93
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn make_stdin_view(available: &mut bool, opts: &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:284:66
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:284:84
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn make_file_view(path : &str, opts : &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:362:62
[INFO] [stdout]     |
[INFO] [stdout] 362 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 362 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:371:43
[INFO] [stdout]     |
[INFO] [stdout] 371 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 371 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:362:62
[INFO] [stdout]     |
[INFO] [stdout] 362 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 362 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:371:43
[INFO] [stdout]     |
[INFO] [stdout] 371 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 371 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:388:59
[INFO] [stdout]     |
[INFO] [stdout] 388 |   fn accumulate(&mut self, _: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 388 |   fn accumulate(&mut self, _: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:392:43
[INFO] [stdout]     |
[INFO] [stdout] 392 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 392 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:388:59
[INFO] [stdout]     |
[INFO] [stdout] 388 |   fn accumulate(&mut self, _: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 388 |   fn accumulate(&mut self, _: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:407:62
[INFO] [stdout]     |
[INFO] [stdout] 407 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 407 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:392:43
[INFO] [stdout]     |
[INFO] [stdout] 392 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 392 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:422:43
[INFO] [stdout]     |
[INFO] [stdout] 422 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 422 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:407:62
[INFO] [stdout]     |
[INFO] [stdout] 407 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 407 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:422:43
[INFO] [stdout]     |
[INFO] [stdout] 422 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 422 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:440:62
[INFO] [stdout]     |
[INFO] [stdout] 440 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 440 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:440:62
[INFO] [stdout]     |
[INFO] [stdout] 440 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 440 |   fn accumulate(&mut self, cell: &CSVCell) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:449:43
[INFO] [stdout]     |
[INFO] [stdout] 449 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 449 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:457:44
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn get_aggregate_fn(id:&str) -> Option<Box<AggregateFn>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn get_aggregate_fn(id:&str) -> Option<Box<dyn AggregateFn>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:449:43
[INFO] [stdout]     |
[INFO] [stdout] 449 |   fn output(&self) -> Result<CSVCell, Box<Error>> {
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 449 |   fn output(&self) -> Result<CSVCell, Box<dyn Error>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:457:44
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn get_aggregate_fn(id:&str) -> Option<Box<AggregateFn>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn get_aggregate_fn(id:&str) -> Option<Box<dyn AggregateFn>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:483:64
[INFO] [stdout]     |
[INFO] [stdout] 483 | fn is_aggregate( proj: Vec<SQLSelectItem> ) -> (Option<Vec<Box<AggregateFn>>>, Vec<SQLSelectItem>) {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 483 | fn is_aggregate( proj: Vec<SQLSelectItem> ) -> (Option<Vec<Box<dyn AggregateFn>>>, Vec<SQLSelectItem>) {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:483:64
[INFO] [stdout]     |
[INFO] [stdout] 483 | fn is_aggregate( proj: Vec<SQLSelectItem> ) -> (Option<Vec<Box<AggregateFn>>>, Vec<SQLSelectItem>) {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 483 | fn is_aggregate( proj: Vec<SQLSelectItem> ) -> (Option<Vec<Box<dyn AggregateFn>>>, Vec<SQLSelectItem>) {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:545:106
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:545:124
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:552:136
[INFO] [stdout]     |
[INFO] [stdout] 552 | ...opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 552 | fn make_statement_view(node: SQLStatement, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:552:154
[INFO] [stdout]     |
[INFO] [stdout] 552 | ...ns, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 552 | fn make_statement_view(node: SQLStatement, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:559:128
[INFO] [stdout]     |
[INFO] [stdout] 559 | ...opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 559 | fn make_query_view(node: SQLQuery, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:545:106
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:559:146
[INFO] [stdout]     |
[INFO] [stdout] 559 | ...ns, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 559 | fn make_query_view(node: SQLQuery, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:545:124
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn make_object_view(node: SQLObjectName, srcs: &HashMap<String,String>, opts: &CSVOptions) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:694:89
[INFO] [stdout]     |
[INFO] [stdout] 694 | fn eval_cmp_op(l:&CSVCell, r:&CSVCell, lt:bool, eq:bool, gt:bool) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 694 | fn eval_cmp_op(l:&CSVCell, r:&CSVCell, lt:bool, eq:bool, gt:bool) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:552:136
[INFO] [stdout]     |
[INFO] [stdout] 552 | ...opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 552 | fn make_statement_view(node: SQLStatement, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:552:154
[INFO] [stdout]     |
[INFO] [stdout] 552 | ...ns, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 552 | fn make_statement_view(node: SQLStatement, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:732:79
[INFO] [stdout]     |
[INFO] [stdout] 732 | fn eval_bin_op(l:&CSVCell, r:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 732 | fn eval_bin_op(l:&CSVCell, r:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:559:128
[INFO] [stdout]     |
[INFO] [stdout] 559 | ...opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 559 | fn make_query_view(node: SQLQuery, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<dyn GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:811:71
[INFO] [stdout]     |
[INFO] [stdout] 811 | fn eval_unary_op(exp:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 811 | fn eval_unary_op(exp:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:559:146
[INFO] [stdout]     |
[INFO] [stdout] 559 | ...ns, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<Error>> {
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 559 | fn make_query_view(node: SQLQuery, srcs: &HashMap<String,String>, opts: &CSVOptions, stdin_available: &mut bool) -> Result<Box<GenericView>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:834:85
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&dyn GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:694:89
[INFO] [stdout]     |
[INFO] [stdout] 694 | fn eval_cmp_op(l:&CSVCell, r:&CSVCell, lt:bool, eq:bool, gt:bool) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 694 | fn eval_cmp_op(l:&CSVCell, r:&CSVCell, lt:bool, eq:bool, gt:bool) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:834:121
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:867:59
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&GenericView>) -> Result<OptSelectItem, Box<Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&dyn GenericView>) -> Result<OptSelectItem, Box<Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:732:79
[INFO] [stdout]     |
[INFO] [stdout] 732 | fn eval_bin_op(l:&CSVCell, r:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 732 | fn eval_bin_op(l:&CSVCell, r:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:867:102
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&GenericView>) -> Result<OptSelectItem, Box<Error>> {
[INFO] [stdout]     |                                                                                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&GenericView>) -> Result<OptSelectItem, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:811:71
[INFO] [stdout]     |
[INFO] [stdout] 811 | fn eval_unary_op(exp:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 811 | fn eval_unary_op(exp:&CSVCell, op:&SQLOperator) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:876:57
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&GenericView>) -> Result<OptOrderByExpr, Box<Error>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&dyn GenericView>) -> Result<OptOrderByExpr, Box<Error>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:834:85
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&dyn GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:876:101
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&GenericView>) -> Result<OptOrderByExpr, Box<Error>> {
[INFO] [stdout]     |                                                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&GenericView>) -> Result<OptOrderByExpr, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:834:121
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn eval_sql_function(id:&str, args:&[CSVCell], row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:883:46
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&GenericView>) -> Result<OptNode, Box<Error>> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&dyn GenericView>) -> Result<OptNode, Box<Error>> {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:867:59
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&GenericView>) -> Result<OptSelectItem, Box<Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&dyn GenericView>) -> Result<OptSelectItem, Box<Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:883:83
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&GenericView>) -> Result<OptNode, Box<Error>> {
[INFO] [stdout]     |                                                                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&GenericView>) -> Result<OptNode, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:867:102
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&GenericView>) -> Result<OptSelectItem, Box<Error>> {
[INFO] [stdout]     |                                                                                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn optimize_select_item(node: SQLSelectItem, src: Option<&GenericView>) -> Result<OptSelectItem, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:986:71
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&dyn GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:876:57
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&GenericView>) -> Result<OptOrderByExpr, Box<Error>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&dyn GenericView>) -> Result<OptOrderByExpr, Box<Error>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:986:107
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:876:101
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&GenericView>) -> Result<OptOrderByExpr, Box<Error>> {
[INFO] [stdout]     |                                                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 876 | fn optimize_order_by(node: SQLOrderByExpr, src: Option<&GenericView>) -> Result<OptOrderByExpr, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1011:35
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                   ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut dyn GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1011:94
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                                                              ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1027:26
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<Error>>{
[INFO] [stdout]      |                          ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut dyn GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<Error>>{
[INFO] [stdout]      |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1027:93
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<Error>>{
[INFO] [stdout]      |                                                                                             ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<dyn Error>>{
[INFO] [stdout]      |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:883:46
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&GenericView>) -> Result<OptNode, Box<Error>> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&dyn GenericView>) -> Result<OptNode, Box<Error>> {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1035:53
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:883:83
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&GenericView>) -> Result<OptNode, Box<Error>> {
[INFO] [stdout]     |                                                                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn optimize_node(node: ASTNode, src: Option<&GenericView>) -> Result<OptNode, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:986:71
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&dyn GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1064:53
[INFO] [stdout]      |
[INFO] [stdout] 1064 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1064 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:986:107
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<Error>> {
[INFO] [stdout]     |                                                                                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 986 | fn eval_opt_node(node: &OptNode, row: Option<&TableRow>, src: Option<&GenericView>) -> Result<CSVCell,Box<dyn Error>> {
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1092:53
[INFO] [stdout]      |
[INFO] [stdout] 1092 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1092 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1011:35
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                   ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut dyn GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1011:94
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                                                              ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn next_where_internal(view: &mut GenericView, sel: &OptNode) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1106:53
[INFO] [stdout]      |
[INFO] [stdout] 1106 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1106 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1027:26
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<Error>>{
[INFO] [stdout]      |                          ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut dyn GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<Error>>{
[INFO] [stdout]      |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1027:93
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<Error>>{
[INFO] [stdout]      |                                                                                             ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1027 | fn next_where(view: &mut GenericView, sel: &Option<OptNode>) -> Result<Option<TableRow>,Box<dyn Error>>{
[INFO] [stdout]      |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1035:53
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1035 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1206:32
[INFO] [stdout]      |
[INFO] [stdout] 1206 | fn do_main() -> Result<(), Box<Error>>{
[INFO] [stdout]      |                                ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1206 | fn do_main() -> Result<(), Box<dyn Error>>{
[INFO] [stdout]      |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1064:53
[INFO] [stdout]      |
[INFO] [stdout] 1064 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1064 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1092:53
[INFO] [stdout]      |
[INFO] [stdout] 1092 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1092 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1106:53
[INFO] [stdout]      |
[INFO] [stdout] 1106 |   fn next(&mut self) -> Result<Option<TableRow>,Box<Error>> {
[INFO] [stdout]      |                                                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1106 |   fn next(&mut self) -> Result<Option<TableRow>,Box<dyn Error>> {
[INFO] [stdout]      |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1206:32
[INFO] [stdout]      |
[INFO] [stdout] 1206 | fn do_main() -> Result<(), Box<Error>>{
[INFO] [stdout]      |                                ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1206 | fn do_main() -> Result<(), Box<dyn Error>>{
[INFO] [stdout]      |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 |     write!(f, "{}", self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 |     write!(f, "{}", self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     write!(f, "{}", self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |     write!(f, "{}", self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     write!(f, "{}", self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |     write!(f, "{}", self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:502:25
[INFO] [stdout]     |
[INFO] [stdout] 502 |     let mut fns:Vec<Box<AggregateFn>> = Vec::new();
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 502 |     let mut fns:Vec<Box<dyn AggregateFn>> = Vec::new();
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:502:25
[INFO] [stdout]     |
[INFO] [stdout] 502 |     let mut fns:Vec<Box<AggregateFn>> = Vec::new();
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 502 |     let mut fns:Vec<Box<dyn AggregateFn>> = Vec::new();
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:604:56
[INFO] [stdout]     |
[INFO] [stdout] 604 | ...   let opt_order:Result<Vec<OptOrderByExpr>,Box<Error>> = order_expr.into_iter().map(|node| optimize_order_by(node, Some(&*src))).coll...
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 604 |           let opt_order:Result<Vec<OptOrderByExpr>,Box<dyn Error>> = order_expr.into_iter().map(|node| optimize_order_by(node, Some(&*src))).collect();
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:617:50
[INFO] [stdout]     |
[INFO] [stdout] 617 |       let opt_proj:Result<Vec<OptSelectItem>,Box<Error>> = proj.into_iter().map(|node| optimize_select_item(node, Some(&*view))).collect();
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 617 |       let opt_proj:Result<Vec<OptSelectItem>,Box<dyn Error>> = proj.into_iter().map(|node| optimize_select_item(node, Some(&*view))).collect();
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:618:21
[INFO] [stdout]     |
[INFO] [stdout] 618 |       let view: Box<GenericView> = Box::new(SelectView{
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 618 |       let view: Box<dyn GenericView> = Box::new(SelectView{
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:604:56
[INFO] [stdout]     |
[INFO] [stdout] 604 | ...   let opt_order:Result<Vec<OptOrderByExpr>,Box<Error>> = order_expr.into_iter().map(|node| optimize_order_by(node, Some(&*src))).coll...
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 604 |           let opt_order:Result<Vec<OptOrderByExpr>,Box<dyn Error>> = order_expr.into_iter().map(|node| optimize_order_by(node, Some(&*src))).collect();
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:617:50
[INFO] [stdout]     |
[INFO] [stdout] 617 |       let opt_proj:Result<Vec<OptSelectItem>,Box<Error>> = proj.into_iter().map(|node| optimize_select_item(node, Some(&*view))).collect();
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 617 |       let opt_proj:Result<Vec<OptSelectItem>,Box<dyn Error>> = proj.into_iter().map(|node| optimize_select_item(node, Some(&*view))).collect();
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:618:21
[INFO] [stdout]     |
[INFO] [stdout] 618 |       let view: Box<GenericView> = Box::new(SelectView{
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 618 |       let view: Box<dyn GenericView> = Box::new(SelectView{
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:901:43
[INFO] [stdout]     |
[INFO] [stdout] 901 |       let list : Result<Vec<OptNode>, Box<Error>> = list.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 901 |       let list : Result<Vec<OptNode>, Box<dyn Error>> = list.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:957:43
[INFO] [stdout]     |
[INFO] [stdout] 957 |       let args : Result<Vec<OptNode>, Box<Error>> = args.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 957 |       let args : Result<Vec<OptNode>, Box<dyn Error>> = args.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:964:49
[INFO] [stdout]     |
[INFO] [stdout] 964 |       let conditions : Result<Vec<OptNode>, Box<Error>> = conditions.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 964 |       let conditions : Result<Vec<OptNode>, Box<dyn Error>> = conditions.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:965:46
[INFO] [stdout]     |
[INFO] [stdout] 965 |       let results : Result<Vec<OptNode>, Box<Error>> = results.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 965 |       let results : Result<Vec<OptNode>, Box<dyn Error>> = results.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:901:43
[INFO] [stdout]     |
[INFO] [stdout] 901 |       let list : Result<Vec<OptNode>, Box<Error>> = list.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 901 |       let list : Result<Vec<OptNode>, Box<dyn Error>> = list.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:957:43
[INFO] [stdout]     |
[INFO] [stdout] 957 |       let args : Result<Vec<OptNode>, Box<Error>> = args.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 957 |       let args : Result<Vec<OptNode>, Box<dyn Error>> = args.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:964:49
[INFO] [stdout]     |
[INFO] [stdout] 964 |       let conditions : Result<Vec<OptNode>, Box<Error>> = conditions.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 964 |       let conditions : Result<Vec<OptNode>, Box<dyn Error>> = conditions.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:965:46
[INFO] [stdout]     |
[INFO] [stdout] 965 |       let results : Result<Vec<OptNode>, Box<Error>> = results.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 965 |       let results : Result<Vec<OptNode>, Box<dyn Error>> = results.into_iter().map(|node| optimize_node(node, src)).collect();
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotImplError` is never constructed
[INFO] [stdout]   --> src/main.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct NotImplError;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]    --> src/main.rs:105:35
[INFO] [stdout]     |
[INFO] [stdout] 105 |   OptExpressionWithAlias(OptNode, String),
[INFO] [stdout]     |   ----------------------          ^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 105 -   OptExpressionWithAlias(OptNode, String),
[INFO] [stdout] 105 +   OptExpressionWithAlias(OptNode, ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |   OptSQualifiedWildcard(SQLObjectName),
[INFO] [stdout]     |   --------------------- ^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 106 -   OptSQualifiedWildcard(SQLObjectName),
[INFO] [stdout] 106 +   OptSQualifiedWildcard(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 |   OptQualifiedWildcard(Vec<String>),
[INFO] [stdout]     |   -------------------- ^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 119 -   OptQualifiedWildcard(Vec<String>),
[INFO] [stdout] 119 +   OptQualifiedWildcard(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |   OptCompoundIdentifier(Vec<String>),
[INFO] [stdout]     |   --------------------- ^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 120 -   OptCompoundIdentifier(Vec<String>),
[INFO] [stdout] 120 +   OptCompoundIdentifier(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |   OptIsNull(Box<OptNode>),
[INFO] [stdout]     |   --------- ^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 121 -   OptIsNull(Box<OptNode>),
[INFO] [stdout] 121 +   OptIsNull(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 |   OptIsNotNull(Box<OptNode>),
[INFO] [stdout]     |   ------------ ^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 122 -   OptIsNotNull(Box<OptNode>),
[INFO] [stdout] 122 +   OptIsNotNull(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr`, `list`, and `negated` are never read
[INFO] [stdout]    --> src/main.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |   OptInList {
[INFO] [stdout]     |   --------- fields in this variant
[INFO] [stdout] 124 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 125 |     list: Vec<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 126 |     negated: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr`, `subquery`, and `negated` are never read
[INFO] [stdout]    --> src/main.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |   OptInSubquery {
[INFO] [stdout]     |   ------------- fields in this variant
[INFO] [stdout] 129 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 130 |     subquery: Box<SQLQuery>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 131 |     negated: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr`, `negated`, `low`, and `high` are never read
[INFO] [stdout]    --> src/main.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |   OptBetween {
[INFO] [stdout]     |   ---------- fields in this variant
[INFO] [stdout] 134 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 135 |     negated: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 136 |     low: Box<OptNode>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 137 |     high: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr` and `data_type` are never read
[INFO] [stdout]    --> src/main.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |   OptCast {
[INFO] [stdout]     |   ------- fields in this variant
[INFO] [stdout] 145 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 146 |     data_type: SQLType,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `conditions`, `results`, and `else_result` are never read
[INFO] [stdout]    --> src/main.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |   OptCase {
[INFO] [stdout]     |   ------- fields in this variant
[INFO] [stdout] 160 |     conditions: Vec<OptNode>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 161 |     results: Vec<OptNode>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 162 |     else_result: Option<Box<OptNode>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:164:15
[INFO] [stdout]     |
[INFO] [stdout] 164 |   OptSubquery(Box<SQLQuery>),
[INFO] [stdout]     |   ----------- ^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 164 -   OptSubquery(Box<SQLQuery>),
[INFO] [stdout] 164 +   OptSubquery(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OptNested` and `OptRegex` are never constructed
[INFO] [stdout]    --> src/main.rs:148:3
[INFO] [stdout]     |
[INFO] [stdout] 116 | enum OptNode {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 148 |   OptNested(Box<OptNode>),
[INFO] [stdout]     |   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |   OptRegex(Regex),
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_lookup` is never used
[INFO] [stdout]    --> src/main.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn field_lookup(meta: &ViewMetadata, row: &TableRow, field: &str) -> CSVCell {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `field` is never used
[INFO] [stdout]    --> src/main.rs:231:6
[INFO] [stdout]     |
[INFO] [stdout] 227 | trait GenericView {
[INFO] [stdout]     |       ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 231 |   fn field(&self, row: &TableRow, field: &str) -> CSVCell {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Graceful` is never used
[INFO] [stdout]     --> src/main.rs:1165:7
[INFO] [stdout]      |
[INFO] [stdout] 1165 | trait Graceful<T>{
[INFO] [stdout]      |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GracefulUnwrap` is never used
[INFO] [stdout]     --> src/main.rs:1168:7
[INFO] [stdout]      |
[INFO] [stdout] 1168 | trait GracefulUnwrap<T,E:std::fmt::Display>{
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotImplError` is never constructed
[INFO] [stdout]   --> src/main.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct NotImplError;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]    --> src/main.rs:105:35
[INFO] [stdout]     |
[INFO] [stdout] 105 |   OptExpressionWithAlias(OptNode, String),
[INFO] [stdout]     |   ----------------------          ^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 105 -   OptExpressionWithAlias(OptNode, String),
[INFO] [stdout] 105 +   OptExpressionWithAlias(OptNode, ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |   OptSQualifiedWildcard(SQLObjectName),
[INFO] [stdout]     |   --------------------- ^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 106 -   OptSQualifiedWildcard(SQLObjectName),
[INFO] [stdout] 106 +   OptSQualifiedWildcard(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 |   OptQualifiedWildcard(Vec<String>),
[INFO] [stdout]     |   -------------------- ^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 119 -   OptQualifiedWildcard(Vec<String>),
[INFO] [stdout] 119 +   OptQualifiedWildcard(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |   OptCompoundIdentifier(Vec<String>),
[INFO] [stdout]     |   --------------------- ^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 120 -   OptCompoundIdentifier(Vec<String>),
[INFO] [stdout] 120 +   OptCompoundIdentifier(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |   OptIsNull(Box<OptNode>),
[INFO] [stdout]     |   --------- ^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 121 -   OptIsNull(Box<OptNode>),
[INFO] [stdout] 121 +   OptIsNull(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 |   OptIsNotNull(Box<OptNode>),
[INFO] [stdout]     |   ------------ ^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 122 -   OptIsNotNull(Box<OptNode>),
[INFO] [stdout] 122 +   OptIsNotNull(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr`, `list`, and `negated` are never read
[INFO] [stdout]    --> src/main.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |   OptInList {
[INFO] [stdout]     |   --------- fields in this variant
[INFO] [stdout] 124 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 125 |     list: Vec<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 126 |     negated: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr`, `subquery`, and `negated` are never read
[INFO] [stdout]    --> src/main.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |   OptInSubquery {
[INFO] [stdout]     |   ------------- fields in this variant
[INFO] [stdout] 129 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 130 |     subquery: Box<SQLQuery>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 131 |     negated: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr`, `negated`, `low`, and `high` are never read
[INFO] [stdout]    --> src/main.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |   OptBetween {
[INFO] [stdout]     |   ---------- fields in this variant
[INFO] [stdout] 134 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 135 |     negated: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 136 |     low: Box<OptNode>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 137 |     high: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expr` and `data_type` are never read
[INFO] [stdout]    --> src/main.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |   OptCast {
[INFO] [stdout]     |   ------- fields in this variant
[INFO] [stdout] 145 |     expr: Box<OptNode>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 146 |     data_type: SQLType,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `conditions`, `results`, and `else_result` are never read
[INFO] [stdout]    --> src/main.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |   OptCase {
[INFO] [stdout]     |   ------- fields in this variant
[INFO] [stdout] 160 |     conditions: Vec<OptNode>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 161 |     results: Vec<OptNode>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 162 |     else_result: Option<Box<OptNode>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/main.rs:164:15
[INFO] [stdout]     |
[INFO] [stdout] 164 |   OptSubquery(Box<SQLQuery>),
[INFO] [stdout]     |   ----------- ^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 164 -   OptSubquery(Box<SQLQuery>),
[INFO] [stdout] 164 +   OptSubquery(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OptNested` and `OptRegex` are never constructed
[INFO] [stdout]    --> src/main.rs:148:3
[INFO] [stdout]     |
[INFO] [stdout] 116 | enum OptNode {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 148 |   OptNested(Box<OptNode>),
[INFO] [stdout]     |   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |   OptRegex(Regex),
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OptNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_lookup` is never used
[INFO] [stdout]    --> src/main.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn field_lookup(meta: &ViewMetadata, row: &TableRow, field: &str) -> CSVCell {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `field` is never used
[INFO] [stdout]    --> src/main.rs:231:6
[INFO] [stdout]     |
[INFO] [stdout] 227 | trait GenericView {
[INFO] [stdout]     |       ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 231 |   fn field(&self, row: &TableRow, field: &str) -> CSVCell {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Graceful` is never used
[INFO] [stdout]     --> src/main.rs:1165:7
[INFO] [stdout]      |
[INFO] [stdout] 1165 | trait Graceful<T>{
[INFO] [stdout]      |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GracefulUnwrap` is never used
[INFO] [stdout]     --> src/main.rs:1168:7
[INFO] [stdout]      |
[INFO] [stdout] 1168 | trait GracefulUnwrap<T,E:std::fmt::Display>{
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.22s
[INFO] running `Command { std: "docker" "inspect" "c01197ab859f11cb571be9ed3e1df77812390d6c134bacb9cea3c4318769c629", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c01197ab859f11cb571be9ed3e1df77812390d6c134bacb9cea3c4318769c629", kill_on_drop: false }`
[INFO] [stdout] c01197ab859f11cb571be9ed3e1df77812390d6c134bacb9cea3c4318769c629
