[INFO] cloning repository https://github.com/bavadim/semanticsearch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bavadim/semanticsearch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbavadim%2Fsemanticsearch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbavadim%2Fsemanticsearch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f32379dec6858101f1f7eecc4c85d1c37602f4bd
[INFO] testing bavadim/semanticsearch against beta-2023-04-20 for beta-1.70-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbavadim%2Fsemanticsearch" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/bavadim/semanticsearch on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/bavadim/semanticsearch
[INFO] finished tweaking git repo https://github.com/bavadim/semanticsearch
[INFO] tweaked toml for git repo https://github.com/bavadim/semanticsearch written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/bavadim/semanticsearch 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" "+beta-2023-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 77d857146cc5bc53b24d7fe79b72b4cb56ba4cfa028037fb983183c687fe800f
[INFO] running `Command { std: "docker" "start" "-a" "77d857146cc5bc53b24d7fe79b72b4cb56ba4cfa028037fb983183c687fe800f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "77d857146cc5bc53b24d7fe79b72b4cb56ba4cfa028037fb983183c687fe800f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77d857146cc5bc53b24d7fe79b72b4cb56ba4cfa028037fb983183c687fe800f", kill_on_drop: false }`
[INFO] [stdout] 77d857146cc5bc53b24d7fe79b72b4cb56ba4cfa028037fb983183c687fe800f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6150bb69fb7dd2a42c412373d5042aa11302c5af4ab9e278ada74014cc51ab18
[INFO] running `Command { std: "docker" "start" "-a" "6150bb69fb7dd2a42c412373d5042aa11302c5af4ab9e278ada74014cc51ab18", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling syn v1.0.89
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling futures-sink v0.3.21
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling futures-io v0.3.21
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling slab v0.4.5
[INFO] [stderr]    Compiling pin-project-lite v0.2.8
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling quote v1.0.16
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling pin-project v1.0.10
[INFO] [stderr]    Compiling futures-executor v0.3.21
[INFO] [stderr]    Compiling futures v0.3.21
[INFO] [stderr]    Compiling semanticdb v0.1.0-nightly (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Display`, `self`
[INFO] [stdout]  --> src/main.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::{self, Display};
[INFO] [stdout]   |                ^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:200:29
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |          - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 200 |         Eq(field, value) => parse_relation(field, value, |v| v == value, indexes, db),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^        ----- expected `&str`, found `DataType`
[INFO] [stdout]     |
[INFO] [stdout] note: expected type parameter `T`, found closure
[INFO] [stdout]    --> src/main.rs:200:58
[INFO] [stdout]     |
[INFO] [stdout] 200 |         Eq(field, value) => parse_relation(field, value, |v| v == value, indexes, db),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:200:58: 200:61]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the return type of this call is `[closure@src/main.rs:200:58: 200:61]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:200:29
[INFO] [stdout]     |
[INFO] [stdout] 200 |         Eq(field, value) => parse_relation(field, value, |v| v == value, indexes, db),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this argument influences the return type of `parse_relation`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn parse_relation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 167 |         field: &str, value: &str, 
[INFO] [stdout]     |         -----------  -----------
[INFO] [stdout] 168 |         cond: T,
[INFO] [stdout]     |         -------
[INFO] [stdout] 169 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 170 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:201:38
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |          - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 201 |         GreaterThan(field, value) => parse_relation(field, value, |v| v > value, indexes, db),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^        ----- expected `&str`, found `DataType`
[INFO] [stdout]     |
[INFO] [stdout] note: expected type parameter `T`, found closure
[INFO] [stdout]    --> src/main.rs:201:67
[INFO] [stdout]     |
[INFO] [stdout] 201 |         GreaterThan(field, value) => parse_relation(field, value, |v| v > value, indexes, db),
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:201:67: 201:70]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the return type of this call is `[closure@src/main.rs:201:67: 201:70]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:201:38
[INFO] [stdout]     |
[INFO] [stdout] 201 |         GreaterThan(field, value) => parse_relation(field, value, |v| v > value, indexes, db),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   this argument influences the return type of `parse_relation`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn parse_relation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 167 |         field: &str, value: &str, 
[INFO] [stdout]     |         -----------  -----------
[INFO] [stdout] 168 |         cond: T,
[INFO] [stdout]     |         -------
[INFO] [stdout] 169 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 170 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:202:35
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |          - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 202 |         LessThen(field, value) => parse_relation(field, value, |v| v < value, indexes, db),
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^        ----- expected `&str`, found `DataType`
[INFO] [stdout]     |
[INFO] [stdout] note: expected type parameter `T`, found closure
[INFO] [stdout]    --> src/main.rs:202:64
[INFO] [stdout]     |
[INFO] [stdout] 202 |         LessThen(field, value) => parse_relation(field, value, |v| v < value, indexes, db),
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:202:64: 202:67]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the return type of this call is `[closure@src/main.rs:202:64: 202:67]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:202:35
[INFO] [stdout]     |
[INFO] [stdout] 202 |         LessThen(field, value) => parse_relation(field, value, |v| v < value, indexes, db),
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                |
[INFO] [stdout]     |                                                                this argument influences the return type of `parse_relation`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn parse_relation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 167 |         field: &str, value: &str, 
[INFO] [stdout]     |         -----------  -----------
[INFO] [stdout] 168 |         cond: T,
[INFO] [stdout]     |         -------
[INFO] [stdout] 169 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 170 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:203:40
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |          - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 203 |         GreaterThanEq(field, value) => parse_relation(field, value, |v| v >= value, indexes, db),
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^        ----- expected `&str`, found `DataType`
[INFO] [stdout]     |
[INFO] [stdout] note: expected type parameter `T`, found closure
[INFO] [stdout]    --> src/main.rs:203:69
[INFO] [stdout]     |
[INFO] [stdout] 203 |         GreaterThanEq(field, value) => parse_relation(field, value, |v| v >= value, indexes, db),
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:203:69: 203:72]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the return type of this call is `[closure@src/main.rs:203:69: 203:72]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:203:40
[INFO] [stdout]     |
[INFO] [stdout] 203 |         GreaterThanEq(field, value) => parse_relation(field, value, |v| v >= value, indexes, db),
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     this argument influences the return type of `parse_relation`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn parse_relation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 167 |         field: &str, value: &str, 
[INFO] [stdout]     |         -----------  -----------
[INFO] [stdout] 168 |         cond: T,
[INFO] [stdout]     |         -------
[INFO] [stdout] 169 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 170 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:204:37
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |          - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 204 |         LessThenEq(field, value) => parse_relation(field, value, |v| v <= value, indexes, db), 
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^        ----- expected `&str`, found `DataType`
[INFO] [stdout]     |
[INFO] [stdout] note: expected type parameter `T`, found closure
[INFO] [stdout]    --> src/main.rs:204:66
[INFO] [stdout]     |
[INFO] [stdout] 204 |         LessThenEq(field, value) => parse_relation(field, value, |v| v <= value, indexes, db), 
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:204:66: 204:69]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the return type of this call is `[closure@src/main.rs:204:66: 204:69]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:204:37
[INFO] [stdout]     |
[INFO] [stdout] 204 |         LessThenEq(field, value) => parse_relation(field, value, |v| v <= value, indexes, db), 
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  this argument influences the return type of `parse_relation`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn parse_relation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 167 |         field: &str, value: &str, 
[INFO] [stdout]     |         -----------  -----------
[INFO] [stdout] 168 |         cond: T,
[INFO] [stdout]     |         -------
[INFO] [stdout] 169 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 170 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:206:28
[INFO] [stdout]     |
[INFO] [stdout] 206 |         And(exp1, exp2) => parse_operation(exp1, exp2, AndStream::new, indexes, db),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Either<T, Box<...>>`, found `Box<Expression<'_>>`
[INFO] [stdout]    --> src/main.rs:206:44
[INFO] [stdout]     |
[INFO] [stdout] 206 |         And(exp1, exp2) => parse_operation(exp1, exp2, AndStream::new, indexes, db),
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout]     = note: expected enum `either::Either<T, Box<(dyn futures::Stream<Item = u64> + 'static)>>`
[INFO] [stdout]              found struct `Box<Expression<'_>>`
[INFO] [stdout] note: expected `Either<T, Box<...>>`, found `Box<Expression<'_>>`
[INFO] [stdout]    --> src/main.rs:206:50
[INFO] [stdout]     |
[INFO] [stdout] 206 |         And(exp1, exp2) => parse_operation(exp1, exp2, AndStream::new, indexes, db),
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout]     = note: expected enum `either::Either<T, Box<(dyn futures::Stream<Item = u64> + 'static)>>`
[INFO] [stdout]              found struct `Box<Expression<'_>>`
[INFO] [stdout] note: incorrect number of function parameters
[INFO] [stdout]    --> src/main.rs:206:56
[INFO] [stdout]     |
[INFO] [stdout] 206 |         And(exp1, exp2) => parse_operation(exp1, exp2, AndStream::new, indexes, db),
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected fn pointer `fn((dyn futures::Stream<Item = u64> + 'static), (dyn futures::Stream<Item = u64> + 'static)) -> Box<(dyn futures::Stream<Item = u64> + 'static)>`
[INFO] [stdout]                   found fn item `fn(AndStream, Pin<Box<(dyn futures::Stream<Item = u64> + 'static)>>, Pin<Box<(dyn futures::Stream<Item = u64> + 'static)>>) -> AndStream {AndStream::new}`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn parse_operation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 179 |         e1: Either<T, Box<Cursor>>, 
[INFO] [stdout]     |         --------------------------
[INFO] [stdout] 180 |         e2: Either<T, Box<Cursor>>,
[INFO] [stdout]     |         --------------------------
[INFO] [stdout] 181 |         comb: fn (c1: Cursor, c2: Cursor) -> Box<Cursor>,
[INFO] [stdout]     |         ------------------------------------------------
[INFO] [stdout] 182 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 183 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `select` found for trait object `(dyn futures::Stream<Item = u64> + 'static)` in the current scope
[INFO] [stdout]    --> src/main.rs:207:67
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                                   ^^^^^^ method not found in `dyn Stream<Item = u64>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn futures::Stream<Item = u64> + 'static)` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:207:56
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                        ^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout] help: you can use `impl Trait` as the argument type
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |impl s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                        ++++
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |&s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn futures::Stream<Item = u64> + 'static)` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:207:60
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                            ^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout] help: you can use `impl Trait` as the argument type
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, impl s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                            ++++
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, &s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:207:27
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Either<T, Box<...>>`, found `Box<Expression<'_>>`
[INFO] [stdout]    --> src/main.rs:207:43
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     = note: expected enum `either::Either<T, Box<(dyn futures::Stream<Item = u64> + 'static)>>`
[INFO] [stdout]              found struct `Box<Expression<'_>>`
[INFO] [stdout] note: expected `Either<T, Box<...>>`, found `Box<Expression<'_>>`
[INFO] [stdout]    --> src/main.rs:207:49
[INFO] [stdout]     |
[INFO] [stdout] 207 |         Or(exp1, exp2) => parse_operation(exp1, exp2, |s1, s2| s1.select(s2), indexes, db), 
[INFO] [stdout]     |                                                 ^^^^
[INFO] [stdout]     = note: expected enum `either::Either<T, Box<(dyn futures::Stream<Item = u64> + 'static)>>`
[INFO] [stdout]              found struct `Box<Expression<'_>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn parse_operation<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 179 |         e1: Either<T, Box<Cursor>>, 
[INFO] [stdout]     |         --------------------------
[INFO] [stdout] 180 |         e2: Either<T, Box<Cursor>>,
[INFO] [stdout]     |         --------------------------
[INFO] [stdout] 181 |         comb: fn (c1: Cursor, c2: Cursor) -> Box<Cursor>,
[INFO] [stdout]     |         ------------------------------------------------
[INFO] [stdout] 182 |         indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |         -----------------------------------
[INFO] [stdout] 183 |         db: & dyn Database
[INFO] [stdout]     |         ------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:209:25
[INFO] [stdout]     |
[INFO] [stdout] 209 |             match parse(exp, indexes, db) {
[INFO] [stdout]     |                   ----- ^^^ expected `Expression<'_>`, found `Box<Expression<'_>>`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Expression<'_>`
[INFO] [stdout]              found struct `Box<Expression<'_>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |    ^^^^^    ----------------------
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 209 |             match parse(*exp, indexes, db) {
[INFO] [stdout]     |                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:173:49
[INFO] [stdout]     |
[INFO] [stdout] 173 |             Some(&index) => Right(index.get_ids(value)),
[INFO] [stdout]     |                                         ------- ^^^^^ expected `&CellValue`, found `&str`
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&CellValue`
[INFO] [stdout]                found reference `&str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/main.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn get_ids(&self, value: &CellValue) -> Cursor;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:173:35
[INFO] [stdout]     |
[INFO] [stdout] 173 |             Some(&index) => Right(index.get_ids(value)),
[INFO] [stdout]     |                             ----- ^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Stream<Item = u64>>`, found `dyn Stream`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note:    expected struct `Box<dyn futures::Stream<Item = u64>>`
[INFO] [stdout]             found trait object `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout]     = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] help: the type constructed contains `(dyn futures::Stream<Item = u64> + 'static)` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:173:29
[INFO] [stdout]     |
[INFO] [stdout] 173 |             Some(&index) => Right(index.get_ids(value)),
[INFO] [stdout]     |                             ^^^^^^--------------------^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this argument influences the type of `Right`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/either-1.6.1/src/lib.rs:55:5
[INFO] [stdout]     |
[INFO] [stdout] 55  |     Right(R),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] help: store this in the heap by calling `Box::new`
[INFO] [stdout]     |
[INFO] [stdout] 173 |             Some(&index) => Right(Box::new(index.get_ids(value))),
[INFO] [stdout]     |                                   +++++++++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: expected a `FnOnce<(&&CellValue,)>` closure, found `T`
[INFO] [stdout]    --> src/main.rs:174:83
[INFO] [stdout]     |
[INFO] [stdout] 174 |             None => Left(|record: &Record| record.fields.get(field).map_or(false, cond)) 
[INFO] [stdout]     |                                                                     ------        ^^^^ expected an `FnOnce<(&&CellValue,)>` closure, found `T`
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected a closure with arguments `(&Record<'_>,)`
[INFO] [stdout]                found a closure with arguments `(&&CellValue,)`
[INFO] [stdout] note: required by a bound in `Option::<T>::map_or`
[INFO] [stdout]    --> /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/option.rs:1155:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:174:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn parse_relation<T>(
[INFO] [stdout]     |                       - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 174 |             None => Left(|record: &Record| record.fields.get(field).map_or(false, cond)) 
[INFO] [stdout]     |                     ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `T`, found closure
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:174:26: 174:43]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the type constructed contains `[closure@src/main.rs:174:26: 174:43]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |             None => Left(|record: &Record| record.fields.get(field).map_or(false, cond)) 
[INFO] [stdout]     |                     ^^^^^--------------------------------------------------------------^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this argument influences the type of `Left`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/either-1.6.1/src/lib.rs:53:5
[INFO] [stdout]     |
[INFO] [stdout] 53  |     Left(L),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:185:16
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match (parse(e1, indexes), parse(e2, indexes)) {
[INFO] [stdout]     |                ^^^^^------------- an argument of type `&dyn Database` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Expression<'_>`, found `Either<T, Box<...>>`
[INFO] [stdout]    --> src/main.rs:185:22
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match (parse(e1, indexes), parse(e2, indexes)) {
[INFO] [stdout]     |                      ^^
[INFO] [stdout]     = note: expected enum `Expression<'_>`
[INFO] [stdout]                found enum `either::Either<T, Box<(dyn futures::Stream<Item = u64> + 'static)>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |    ^^^^^    ----------------------
[INFO] [stdout] 163 |     indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |     -----------------------------------
[INFO] [stdout] 164 |     db: &dyn Database) -> Either<T, Box<Cursor>> where T: Fn(&Record) -> bool {
[INFO] [stdout]     |     -----------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match (parse(/* Expression<'_> */, indexes, /* &dyn Database */), parse(e2, indexes)) {
[INFO] [stdout]     |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:185:36
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match (parse(e1, indexes), parse(e2, indexes)) {
[INFO] [stdout]     |                                    ^^^^^------------- an argument of type `&dyn Database` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Expression<'_>`, found `Either<T, Box<...>>`
[INFO] [stdout]    --> src/main.rs:185:42
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match (parse(e1, indexes), parse(e2, indexes)) {
[INFO] [stdout]     |                                          ^^
[INFO] [stdout]     = note: expected enum `Expression<'_>`
[INFO] [stdout]                found enum `either::Either<T, Box<(dyn futures::Stream<Item = u64> + 'static)>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn parse<T>(expression: Expression, 
[INFO] [stdout]     |    ^^^^^    ----------------------
[INFO] [stdout] 163 |     indexes: &HashMap<&str, &dyn Index>, 
[INFO] [stdout]     |     -----------------------------------
[INFO] [stdout] 164 |     db: &dyn Database) -> Either<T, Box<Cursor>> where T: Fn(&Record) -> bool {
[INFO] [stdout]     |     -----------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match (parse(e1, indexes), parse(/* Expression<'_> */, indexes, /* &dyn Database */)) {
[INFO] [stdout]     |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:186:46
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn parse_operation<T>(
[INFO] [stdout]     |                        - this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 186 |             (Left(fsf1), Left(fsf2)) => Left(|record: &Record| fsf1(record) && fsf2(record)),
[INFO] [stdout]     |                                         ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `T`, found closure
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                       found closure `[closure@src/main.rs:186:46: 186:63]`
[INFO] [stdout]     = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `T`
[INFO] [stdout] help: the type constructed contains `[closure@src/main.rs:186:46: 186:63]` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:186:41
[INFO] [stdout]     |
[INFO] [stdout] 186 |             (Left(fsf1), Left(fsf2)) => Left(|record: &Record| fsf1(record) && fsf2(record)),
[INFO] [stdout]     |                                         ^^^^^----------------------------------------------^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this argument influences the type of `Left`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/either-1.6.1/src/lib.rs:53:5
[INFO] [stdout]     |
[INFO] [stdout] 53  |     Left(L),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `dyn futures::Stream<Item = u64>` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:188:21
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let cur2 = db.filter(fsf1);
[INFO] [stdout]     |                     ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `dyn futures::Stream<Item = u64>`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout]     = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:189:28
[INFO] [stdout]     |
[INFO] [stdout] 189 |                 Right(comb(cur1, cur2))
[INFO] [stdout]     |                       ---- ^^^^ expected `dyn Stream`, found `Box<dyn Stream<Item = u64>>`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait object `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout]                      found struct `Box<dyn futures::Stream<Item = u64>>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 189 |                 Right(comb(*cur1, cur2))
[INFO] [stdout]     |                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `dyn futures::Stream<Item = u64>` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:192:21
[INFO] [stdout]     |
[INFO] [stdout] 192 |                 let cur2 = db.filter(fsf1);
[INFO] [stdout]     |                     ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `dyn futures::Stream<Item = u64>`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout]     = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:193:28
[INFO] [stdout]     |
[INFO] [stdout] 193 |                 Right(comb(cur1, cur2))
[INFO] [stdout]     |                       ---- ^^^^ expected `dyn Stream`, found `Box<dyn Stream<Item = u64>>`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected trait object `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout]                      found struct `Box<dyn futures::Stream<Item = u64>>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 193 |                 Right(comb(*cur1, cur2))
[INFO] [stdout]     |                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:195:49
[INFO] [stdout]     |
[INFO] [stdout] 195 |             (Right(cur1), Right(cur2)) => Right(comb(cur1, cur2))
[INFO] [stdout]     |                                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `dyn Stream`, found `Box<dyn Stream<Item = u64>>`
[INFO] [stdout]    --> src/main.rs:195:54
[INFO] [stdout]     |
[INFO] [stdout] 195 |             (Right(cur1), Right(cur2)) => Right(comb(cur1, cur2))
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout]     = note: expected trait object `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout]                      found struct `Box<dyn futures::Stream<Item = u64>>`
[INFO] [stdout] note: expected `dyn Stream`, found `Box<dyn Stream<Item = u64>>`
[INFO] [stdout]    --> src/main.rs:195:60
[INFO] [stdout]     |
[INFO] [stdout] 195 |             (Right(cur1), Right(cur2)) => Right(comb(cur1, cur2))
[INFO] [stdout]     |                                                            ^^^^
[INFO] [stdout]     = note: expected trait object `(dyn futures::Stream<Item = u64> + 'static)`
[INFO] [stdout]                      found struct `Box<dyn futures::Stream<Item = u64>>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 195 |             (Right(cur1), Right(cur2)) => Right(comb(*cur1, cur2))
[INFO] [stdout]     |                                                      +
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 195 |             (Right(cur1), Right(cur2)) => Right(comb(cur1, *cur2))
[INFO] [stdout]     |                                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:218:56
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                             --         ^^ expected `DataType`, found floating-point number
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/main.rs:16:5
[INFO] [stdout]     |
[INFO] [stdout] 16  |     Eq(&'a str, DataType),
[INFO] [stdout]     |     ^^
[INFO] [stdout] help: try wrapping the expression in `DataType::FLOAT`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", DataType::FLOAT(2.)), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                                        ++++++++++++++++  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:218:79
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                                             --------          ^^ expected `DataType`, found integer
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/main.rs:18:5
[INFO] [stdout]     |
[INFO] [stdout] 18  |     LessThen(&'a str, DataType),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] help: try wrapping the expression in `DataType::INT`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", DataType::INT(33))))));
[INFO] [stdout]     |                                                                               ++++++++++++++  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this enum variant are incorrect
[INFO] [stdout]    --> src/main.rs:218:42
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                          ^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Box<Expression<'_>>`, found `Expression<'_>`
[INFO] [stdout]    --> src/main.rs:218:45
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected struct `Box<Expression<'_>>`
[INFO] [stdout]                  found enum `Expression<'_>`
[INFO] [stdout]     = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] note: expected `Box<Expression<'_>>`, found `Expression<'_>`
[INFO] [stdout]    --> src/main.rs:218:61
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected struct `Box<Expression<'_>>`
[INFO] [stdout]                  found enum `Expression<'_>`
[INFO] [stdout]     = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/main.rs:23:5
[INFO] [stdout]     |
[INFO] [stdout] 23  |     Or(Box<Expression<'a>>, Box<Expression<'a>>),
[INFO] [stdout]     |     ^^
[INFO] [stdout] help: store this in the heap by calling `Box::new`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Box::new(Eq("aaaa", 2.)), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                             +++++++++              +
[INFO] [stdout] help: store this in the heap by calling `Box::new`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), Box::new(LessThen("bbbbb", 33))))));
[INFO] [stdout]     |                                                             +++++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:218:42
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                                      --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Expression<'_>>`, found `Expression<'_>`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<Expression<'_>>`
[INFO] [stdout]                  found enum `Expression<'_>`
[INFO] [stdout]     = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/main.rs:24:5
[INFO] [stdout]     |
[INFO] [stdout] 24  |     Not(Box<Expression<'a>>),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] help: store this in the heap by calling `Box::new`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Box::new(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33))))));
[INFO] [stdout]     |                                          +++++++++                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:218:38
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                    ---------         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Expression<'_>>`, found `Expression<'_>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<Expression<'_>>`
[INFO] [stdout]                  found enum `Expression<'_>`
[INFO] [stdout]     = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/main.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout] 75  |     SimilarTo(&'a str, Box<Expression<'a>>)
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] help: store this in the heap by calling `Box::new`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Box::new(Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33))))));
[INFO] [stdout]     |                                      +++++++++                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Order<'_>` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:218:20
[INFO] [stdout]     |
[INFO] [stdout] 218 |     println!("{}", SimilarTo("aaaa", Not(Or(Eq("aaaa", 2.), LessThen("bbbbb", 33)))));
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Order<'_>` cannot be formatted with the default formatter
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::fmt::Display` is not implemented for `Order<'_>`
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]     = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 29 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `semanticdb` (bin "semanticdb") due to 30 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "6150bb69fb7dd2a42c412373d5042aa11302c5af4ab9e278ada74014cc51ab18", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6150bb69fb7dd2a42c412373d5042aa11302c5af4ab9e278ada74014cc51ab18", kill_on_drop: false }`
[INFO] [stdout] 6150bb69fb7dd2a42c412373d5042aa11302c5af4ab9e278ada74014cc51ab18
