[INFO] fetching crate expr 0.0.1...
[INFO] checking expr-0.0.1 against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] extracting crate expr 0.0.1 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate expr 0.0.1 on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate expr 0.0.1
[INFO] finished tweaking crates.io crate expr 0.0.1
[INFO] tweaked toml for crates.io crate expr 0.0.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 72943108be392e71451ec446aea0318afe3eee1c39bba29b166d465728d440e3
[INFO] running `Command { std: "docker" "start" "-a" "72943108be392e71451ec446aea0318afe3eee1c39bba29b166d465728d440e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72943108be392e71451ec446aea0318afe3eee1c39bba29b166d465728d440e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72943108be392e71451ec446aea0318afe3eee1c39bba29b166d465728d440e3", kill_on_drop: false }`
[INFO] [stdout] 72943108be392e71451ec446aea0318afe3eee1c39bba29b166d465728d440e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9efd9419c061905212c9456cec699c4ceadbba838c87db51d40fdd41508e3ce4
[INFO] running `Command { std: "docker" "start" "-a" "9efd9419c061905212c9456cec699c4ceadbba838c87db51d40fdd41508e3ce4", kill_on_drop: false }`
[INFO] [stderr]     Checking expr v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 |         if token[].contains(".") {
[INFO] [stdout]     |                  ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 |         if token[].contains(".") {
[INFO] [stdout]     |                  ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected type, found `|`
[INFO] [stdout]    --> src/expr.rs:317:37
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn set_variables(&mut self, f: |&str| -> Val<T>) {
[INFO] [stdout]     |                                        ^ expected type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected type, found `|`
[INFO] [stdout]    --> src/expr.rs:317:37
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn set_variables(&mut self, f: |&str| -> Val<T>) {
[INFO] [stdout]     |                                        ^ expected type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:319:39
[INFO] [stdout]     |
[INFO] [stdout] 319 |             self.variables[*idx] = Some(f(name[]));
[INFO] [stdout]     |                                                ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:319:39
[INFO] [stdout]     |
[INFO] [stdout] 319 |             self.variables[*idx] = Some(f(name[]));
[INFO] [stdout]     |                                                ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex`
[INFO] [stdout]  --> src/lib.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern crate regex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex`
[INFO] [stdout]  --> src/lib.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern crate regex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex_macros`
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern crate regex_macros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex_macros`
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern crate regex_macros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `std::num::Int`, `std::num::Float`
[INFO] [stdout]  --> src/expr.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::{Int, Float};
[INFO] [stdout]   |                ^^^  ^^^^^ no `Float` in `num`
[INFO] [stdout]   |                |
[INFO] [stdout]   |                no `Int` in `num`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Int
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Float
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `std::num::Int`, `std::num::Float`
[INFO] [stdout]  --> src/expr.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::{Int, Float};
[INFO] [stdout]   |                ^^^  ^^^^^ no `Float` in `num`
[INFO] [stdout]   |                |
[INFO] [stdout]   |                no `Int` in `num`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Int
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Float
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `phase` in this scope
[INFO] [stdout]  --> src/lib.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[phase(plugin)]
[INFO] [stdout]   |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `phase` in this scope
[INFO] [stdout]  --> src/lib.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[phase(plugin)]
[INFO] [stdout]   |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]  --> src/expr.rs:6:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]  --> src/expr.rs:6:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:64:3
[INFO] [stdout]    |
[INFO] [stdout] 64 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:64:3
[INFO] [stdout]    |
[INFO] [stdout] 64 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Var(uint),
[INFO] [stdout]    |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:75:37
[INFO] [stdout]    |
[INFO] [stdout] 75 |     function_name_map: HashMap<String, uint>,
[INFO] [stdout]    |                                        ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExprParser<T, uint> {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:288:37
[INFO] [stdout]     |
[INFO] [stdout] 288 |     variable_name_map: HashMap<String, uint>,
[INFO] [stdout]     |                                        ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T, uint> {
[INFO] [stdout]     |                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:377:50
[INFO] [stdout]     |
[INFO] [stdout] 377 |             Op::Pow if b >= 0 => Some(Val::Int(a.pow(b as uint))),
[INFO] [stdout]     |                                                           ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Var(uint),
[INFO] [stdout]    |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:198:36
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout]     |                                                ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 198 -                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout] 198 +                 expr.rpn_stack.push(Token::Var(*i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:206:34
[INFO] [stdout]     |
[INFO] [stdout] 206 |         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout]     |                                        ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 206 -         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout] 206 +         expr.rpn_stack.push(Token::Var(i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:75:37
[INFO] [stdout]    |
[INFO] [stdout] 75 |     function_name_map: HashMap<String, uint>,
[INFO] [stdout]    |                                        ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExprParser<T, uint> {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:288:37
[INFO] [stdout]     |
[INFO] [stdout] 288 |     variable_name_map: HashMap<String, uint>,
[INFO] [stdout]     |                                        ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T, uint> {
[INFO] [stdout]     |                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:377:50
[INFO] [stdout]     |
[INFO] [stdout] 377 |             Op::Pow if b >= 0 => Some(Val::Int(a.pow(b as uint))),
[INFO] [stdout]     |                                                           ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:198:36
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout]     |                                                ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 198 -                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout] 198 +                 expr.rpn_stack.push(Token::Var(*i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:206:34
[INFO] [stdout]     |
[INFO] [stdout] 206 |         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout]     |                                        ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 206 -         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout] 206 +         expr.rpn_stack.push(Token::Var(i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slicing_syntax` has been stable since 1.0.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slicing_syntax)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slicing_syntax` has been stable since 1.0.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slicing_syntax)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `phase`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(phase)]
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `phase`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(phase)]
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]   --> src/expr.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         *self == Op::Pow
[INFO] [stdout]    |         ----- ^^ ------- Op
[INFO] [stdout]    |         |
[INFO] [stdout]    |         Op
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]   --> src/expr.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | enum Op {
[INFO] [stdout]    | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 35 + #[derive(PartialEq)]
[INFO] [stdout] 36 | enum Op {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]   --> src/expr.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         *self == Op::Pow
[INFO] [stdout]    |         ----- ^^ ------- Op
[INFO] [stdout]    |         |
[INFO] [stdout]    |         Op
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]   --> src/expr.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | enum Op {
[INFO] [stdout]    | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 35 + #[derive(PartialEq)]
[INFO] [stdout] 36 | enum Op {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/expr.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = expression[start..end];
[INFO] [stdout]     |                 ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[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] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = &expression[start..end];
[INFO] [stdout]     |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/expr.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = expression[start..end];
[INFO] [stdout]     |                 ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[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] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = &expression[start..end];
[INFO] [stdout]     |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:107:61
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, next_token) {
[INFO] [stdout]     |                            -----------                                  ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/expr.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn parse_token(&self, expr: &mut Expr<T>,
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 135 |                    op_stack: &mut Vec<Op>,
[INFO] [stdout] 136 |                    token: &str, next_token: &str)
[INFO] [stdout]     |                                 ----------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, &next_token) {
[INFO] [stdout]     |                                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:107:61
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, next_token) {
[INFO] [stdout]     |                            -----------                                  ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/expr.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn parse_token(&self, expr: &mut Expr<T>,
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 135 |                    op_stack: &mut Vec<Op>,
[INFO] [stdout] 136 |                    token: &str, next_token: &str)
[INFO] [stdout]     |                                 ----------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, &next_token) {
[INFO] [stdout]     |                                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut token = "";
[INFO] [stdout]     |                         -- expected due to this value
[INFO] [stdout] ...
[INFO] [stdout] 112 |             token = next_token;
[INFO] [stdout]     |                     ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 112 |             token = &next_token;
[INFO] [stdout]     |                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut token = "";
[INFO] [stdout]     |                         -- expected due to this value
[INFO] [stdout] ...
[INFO] [stdout] 112 |             token = next_token;
[INFO] [stdout]     |                     ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 112 |             token = &next_token;
[INFO] [stdout]     |                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     if op == Op::Paren { return Err(Error::MismatchedParenthesis); }
[INFO] [stdout]     |                        -- ^^ --------- Op
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     if op == Op::Paren { return Err(Error::MismatchedParenthesis); }
[INFO] [stdout]     |                        -- ^^ --------- Op
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:241:59
[INFO] [stdout]     |
[INFO] [stdout] 241 |             if op_stack.is_empty() || op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                                       ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:241:59
[INFO] [stdout]     |
[INFO] [stdout] 241 |             if op_stack.is_empty() || op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                                       ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:255:23
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 Some(op) => if op == Op::Paren {
[INFO] [stdout]     |                                -- ^^ --------- Op
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:255:23
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 Some(op) => if op == Op::Paren {
[INFO] [stdout]     |                                -- ^^ --------- Op
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:275:36
[INFO] [stdout]     |
[INFO] [stdout] 275 |             if op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                |
[INFO] [stdout]     |                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:275:36
[INFO] [stdout]     |
[INFO] [stdout] 275 |             if op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                |
[INFO] [stdout]     |                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                            -------------                  ^^^^^^^^^^ expected `Op`, found `&Op`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: `Op` does not implement `Clone`, so `&Op` was cloned instead
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                                                           ^^
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/expr.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     fn operate(eval_stack: &mut Vec<Val<T>>, op: Op) -> bool {
[INFO] [stdout]     |        ^^^^^^^                               ------
[INFO] [stdout] help: consider annotating `Op` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(Clone)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                            -------------                  ^^^^^^^^^^ expected `Op`, found `&Op`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: `Op` does not implement `Clone`, so `&Op` was cloned instead
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                                                           ^^
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/expr.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     fn operate(eval_stack: &mut Vec<Val<T>>, op: Op) -> bool {
[INFO] [stdout]     |        ^^^^^^^                               ------
[INFO] [stdout] help: consider annotating `Op` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(Clone)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                   ---- ^^^^^^^^^^^ expected `Val<T>`, found `&Val<T>`
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Val<_>`
[INFO] [stdout]             found reference `&Val<_>`
[INFO] [stdout] note: `Val<T>` does not implement `Clone`, so `&Val<T>` was cloned instead
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                        ^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/c2f2db79ca3024f68d22b45aa22b570775c2c4ad/library/alloc/src/vec/mod.rs:1993:12
[INFO] [stdout] help: consider annotating `Val<T>` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 7   + #[derive(Clone)]
[INFO] [stdout] 8   | pub enum Val<T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/expr.rs:335:43
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     Some(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                          ^^^^^ cannot infer type for type parameter `T` declared on the enum `Option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                   ---- ^^^^^^^^^^^ expected `Val<T>`, found `&Val<T>`
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Val<_>`
[INFO] [stdout]             found reference `&Val<_>`
[INFO] [stdout] note: `Val<T>` does not implement `Clone`, so `&Val<T>` was cloned instead
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                        ^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/c2f2db79ca3024f68d22b45aa22b570775c2c4ad/library/alloc/src/vec/mod.rs:1993:12
[INFO] [stdout] help: consider annotating `Val<T>` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 7   + #[derive(Clone)]
[INFO] [stdout] 8   | pub enum Val<T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/expr.rs:335:43
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     Some(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                          ^^^^^ cannot infer type for type parameter `T` declared on the enum `Option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:426:36
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 426 |         form = super::parse("2 + 3 * 4").unwrap();
[INFO] [stdout]     |                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 27 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0308, E0369, E0412, E0432, E0463, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:429:47
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 429 |         form = super::parse("( 23.5- (22+1))/0.25").unwrap();
[INFO] [stdout]     |                                                     ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:432:32
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 432 |         form = super::parse("4^3^2").unwrap();
[INFO] [stdout]     |                                      ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `expr` (lib) due to 28 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:435:33
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 435 |         form = super::parse("19 % 3").unwrap();
[INFO] [stdout]     |                                       ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:444:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 444 |         assert_eq!(res.unwrap().evaluate(), None);
[INFO] [stdout]     |                        ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:447:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 447 |         assert_eq!(res.err().unwrap(), super::Error::UnknownToken("2d4".to_string()));
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:450:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 450 |         assert_eq!(res.err().unwrap(), super::Error::MismatchedParenthesis);
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:453:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 453 |         assert_eq!(res.err().unwrap(), super::Error::MismatchedParenthesis);
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:456:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 456 |         assert_eq!(res.unwrap().evaluate(), None);
[INFO] [stdout]     |                        ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:459:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 459 |         assert_eq!(res.unwrap().evaluate(), None);
[INFO] [stdout]     |                        ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:462:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 462 |         assert_eq!(res.err().unwrap(), super::Error::UnknownToken("~".to_string()));
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:467:59
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 467 |         let form = super::parse(r#" "eat" + " " + "hotdogs" "#).unwrap();
[INFO] [stdout]     |                                                                 ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:470:45
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 470 |         assert_eq!(super::parse(r#" "eat" * 6 "#).unwrap().evaluate(), None);
[INFO] [stdout]     |                                                   ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:472:36
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 472 |         assert!(super::parse(r#" """ "#).is_err());
[INFO] [stdout]     |                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:479:37
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 479 |         form = super::parse("3 == 1 + 2").unwrap();
[INFO] [stdout]     |                                           ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:482:52
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 482 |         form = super::parse(r#" "hotdog" != "hotdog" "#).unwrap();
[INFO] [stdout]     |                                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:485:47
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 485 |         form = super::parse("4 * 3 >= 12 && 4 > 3").unwrap();
[INFO] [stdout]     |                                                     ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:488:42
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 488 |         form = super::parse("2 < 2 || 2 <= 2").unwrap();
[INFO] [stdout]     |                                                ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:491:36
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 491 |         form = super::parse("2==3||4>4").unwrap();
[INFO] [stdout]     |                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:494:51
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 494 |         form = super::parse("(2 == 1 * 2) * 3.1 + 4.2").unwrap();
[INFO] [stdout]     |                                                         ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:500:48
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 500 |         let mut form1 = super::parse("3 + fish * 2").unwrap();
[INFO] [stdout]     |                                                      ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:505:63
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 505 |         let mut form2 = super::parse(r#" once + upon + a + time "#).unwrap();
[INFO] [stdout]     |                                                                     ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 49 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0308, E0369, E0412, E0432, E0463, E0599, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `expr` (lib test) due to 50 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9efd9419c061905212c9456cec699c4ceadbba838c87db51d40fdd41508e3ce4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9efd9419c061905212c9456cec699c4ceadbba838c87db51d40fdd41508e3ce4", kill_on_drop: false }`
[INFO] [stdout] 9efd9419c061905212c9456cec699c4ceadbba838c87db51d40fdd41508e3ce4
[INFO] checking expr-0.0.1 against try#9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88 for pr-124157
[INFO] extracting crate expr 0.0.1 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate expr 0.0.1 on toolchain 9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate expr 0.0.1
[INFO] finished tweaking crates.io crate expr 0.0.1
[INFO] tweaked toml for crates.io crate expr 0.0.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0ea298bf911484fb1a3e4ba8a84a3190670d5145fa1fe13db1374154e9891866
[INFO] running `Command { std: "docker" "start" "-a" "0ea298bf911484fb1a3e4ba8a84a3190670d5145fa1fe13db1374154e9891866", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0ea298bf911484fb1a3e4ba8a84a3190670d5145fa1fe13db1374154e9891866", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ea298bf911484fb1a3e4ba8a84a3190670d5145fa1fe13db1374154e9891866", kill_on_drop: false }`
[INFO] [stdout] 0ea298bf911484fb1a3e4ba8a84a3190670d5145fa1fe13db1374154e9891866
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b436ea0923b8045789f1734379a69b4c3a78910637967c82c03e0e3d8d14cc1c
[INFO] running `Command { std: "docker" "start" "-a" "b436ea0923b8045789f1734379a69b4c3a78910637967c82c03e0e3d8d14cc1c", kill_on_drop: false }`
[INFO] [stderr]     Checking expr v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 |         if token[].contains(".") {
[INFO] [stdout]     |                  ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 |         if token[].contains(".") {
[INFO] [stdout]     |                  ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected type, found `|`
[INFO] [stdout]    --> src/expr.rs:317:37
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn set_variables(&mut self, f: |&str| -> Val<T>) {
[INFO] [stdout]     |                                        ^ expected type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected type, found `|`
[INFO] [stdout]    --> src/expr.rs:317:37
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn set_variables(&mut self, f: |&str| -> Val<T>) {
[INFO] [stdout]     |                                        ^ expected type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:319:39
[INFO] [stdout]     |
[INFO] [stdout] 319 |             self.variables[*idx] = Some(f(name[]));
[INFO] [stdout]     |                                                ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `]`
[INFO] [stdout]    --> src/expr.rs:319:39
[INFO] [stdout]     |
[INFO] [stdout] 319 |             self.variables[*idx] = Some(f(name[]));
[INFO] [stdout]     |                                                ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex`
[INFO] [stdout]  --> src/lib.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern crate regex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex`
[INFO] [stdout]  --> src/lib.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern crate regex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex_macros`
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern crate regex_macros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0463]: can't find crate for `regex_macros`
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern crate regex_macros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `std::num::Int`, `std::num::Float`
[INFO] [stdout]  --> src/expr.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::{Int, Float};
[INFO] [stdout]   |                ^^^  ^^^^^ no `Float` in `num`
[INFO] [stdout]   |                |
[INFO] [stdout]   |                no `Int` in `num`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Int
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Float
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `phase` in this scope
[INFO] [stdout]  --> src/lib.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[phase(plugin)]
[INFO] [stdout]   |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `std::num::Int`, `std::num::Float`
[INFO] [stdout]  --> src/expr.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::{Int, Float};
[INFO] [stdout]   |                ^^^  ^^^^^ no `Float` in `num`
[INFO] [stdout]   |                |
[INFO] [stdout]   |                no `Int` in `num`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Int
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           expr::Val::Float
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]  --> src/expr.rs:6:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `phase` in this scope
[INFO] [stdout]  --> src/lib.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[phase(plugin)]
[INFO] [stdout]   |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]  --> src/expr.rs:6:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:64:3
[INFO] [stdout]    |
[INFO] [stdout] 64 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[deriving(Clone, Show, PartialEq, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `deriving` in this scope
[INFO] [stdout]   --> src/expr.rs:64:3
[INFO] [stdout]    |
[INFO] [stdout] 64 | #[deriving(Clone, Show, Eq, PartialEq, Ord, PartialOrd)]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Var(uint),
[INFO] [stdout]    |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:75:37
[INFO] [stdout]    |
[INFO] [stdout] 75 |     function_name_map: HashMap<String, uint>,
[INFO] [stdout]    |                                        ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExprParser<T, uint> {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:288:37
[INFO] [stdout]     |
[INFO] [stdout] 288 |     variable_name_map: HashMap<String, uint>,
[INFO] [stdout]     |                                        ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T, uint> {
[INFO] [stdout]     |                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:377:50
[INFO] [stdout]     |
[INFO] [stdout] 377 |             Op::Pow if b >= 0 => Some(Val::Int(a.pow(b as uint))),
[INFO] [stdout]     |                                                           ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Var(uint),
[INFO] [stdout]    |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]   --> src/expr.rs:75:37
[INFO] [stdout]    |
[INFO] [stdout] 75 |     function_name_map: HashMap<String, uint>,
[INFO] [stdout]    |                                        ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExprParser<T, uint> {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:198:36
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout]     |                                                ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 198 -                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout] 198 +                 expr.rpn_stack.push(Token::Var(*i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:288:37
[INFO] [stdout]     |
[INFO] [stdout] 288 |     variable_name_map: HashMap<String, uint>,
[INFO] [stdout]     |                                        ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T, uint> {
[INFO] [stdout]     |                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `uint` in this scope
[INFO] [stdout]    --> src/expr.rs:377:50
[INFO] [stdout]     |
[INFO] [stdout] 377 |             Op::Pow if b >= 0 => Some(Val::Int(a.pow(b as uint))),
[INFO] [stdout]     |                                                           ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:206:34
[INFO] [stdout]     |
[INFO] [stdout] 206 |         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout]     |                                        ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 206 -         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout] 206 +         expr.rpn_stack.push(Token::Var(i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:198:36
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout]     |                                                ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 198 -                 expr.rpn_stack.push(Token::Var((*i)));
[INFO] [stdout] 198 +                 expr.rpn_stack.push(Token::Var(*i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/expr.rs:206:34
[INFO] [stdout]     |
[INFO] [stdout] 206 |         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout]     |                                        ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 206 -         expr.rpn_stack.push(Token::Var((i)));
[INFO] [stdout] 206 +         expr.rpn_stack.push(Token::Var(i));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slicing_syntax` has been stable since 1.0.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slicing_syntax)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slicing_syntax` has been stable since 1.0.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slicing_syntax)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `phase`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(phase)]
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `phase`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(phase)]
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]   --> src/expr.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         *self == Op::Pow
[INFO] [stdout]    |         ----- ^^ ------- Op
[INFO] [stdout]    |         |
[INFO] [stdout]    |         Op
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]   --> src/expr.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | enum Op {
[INFO] [stdout]    | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 35 + #[derive(PartialEq)]
[INFO] [stdout] 36 | enum Op {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]   --> src/expr.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         *self == Op::Pow
[INFO] [stdout]    |         ----- ^^ ------- Op
[INFO] [stdout]    |         |
[INFO] [stdout]    |         Op
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]   --> src/expr.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | enum Op {
[INFO] [stdout]    | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 35 + #[derive(PartialEq)]
[INFO] [stdout] 36 | enum Op {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/expr.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = expression[start..end];
[INFO] [stdout]     |                 ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[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] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = &expression[start..end];
[INFO] [stdout]     |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/expr.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = expression[start..end];
[INFO] [stdout]     |                 ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[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] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let next_token = &expression[start..end];
[INFO] [stdout]     |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:107:61
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, next_token) {
[INFO] [stdout]     |                            -----------                                  ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/expr.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn parse_token(&self, expr: &mut Expr<T>,
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 135 |                    op_stack: &mut Vec<Op>,
[INFO] [stdout] 136 |                    token: &str, next_token: &str)
[INFO] [stdout]     |                                 ----------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, &next_token) {
[INFO] [stdout]     |                                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:107:61
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, next_token) {
[INFO] [stdout]     |                            -----------                                  ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/expr.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn parse_token(&self, expr: &mut Expr<T>,
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 135 |                    op_stack: &mut Vec<Op>,
[INFO] [stdout] 136 |                    token: &str, next_token: &str)
[INFO] [stdout]     |                                 ----------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 match self.parse_token(&mut expr, &mut op_stack, token, &next_token) {
[INFO] [stdout]     |                                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut token = "";
[INFO] [stdout]     |                         -- expected due to this value
[INFO] [stdout] ...
[INFO] [stdout] 112 |             token = next_token;
[INFO] [stdout]     |                     ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 112 |             token = &next_token;
[INFO] [stdout]     |                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut token = "";
[INFO] [stdout]     |                         -- expected due to this value
[INFO] [stdout] ...
[INFO] [stdout] 112 |             token = next_token;
[INFO] [stdout]     |                     ^^^^^^^^^^ expected `&str`, found `str`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 112 |             token = &next_token;
[INFO] [stdout]     |                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     if op == Op::Paren { return Err(Error::MismatchedParenthesis); }
[INFO] [stdout]     |                        -- ^^ --------- Op
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     if op == Op::Paren { return Err(Error::MismatchedParenthesis); }
[INFO] [stdout]     |                        -- ^^ --------- Op
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:241:59
[INFO] [stdout]     |
[INFO] [stdout] 241 |             if op_stack.is_empty() || op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                                       ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:255:23
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 Some(op) => if op == Op::Paren {
[INFO] [stdout]     |                                -- ^^ --------- Op
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:241:59
[INFO] [stdout]     |
[INFO] [stdout] 241 |             if op_stack.is_empty() || op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                                       ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:275:36
[INFO] [stdout]     |
[INFO] [stdout] 275 |             if op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                |
[INFO] [stdout]     |                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:255:23
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 Some(op) => if op == Op::Paren {
[INFO] [stdout]     |                                -- ^^ --------- Op
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Op`
[INFO] [stdout]    --> src/expr.rs:275:36
[INFO] [stdout]     |
[INFO] [stdout] 275 |             if op_stack[op_stack.len() - 1] == Op::Paren {
[INFO] [stdout]     |                ---------------------------- ^^ --------- Op
[INFO] [stdout]     |                |
[INFO] [stdout]     |                Op
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Op`
[INFO] [stdout]    --> src/expr.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | enum Op {
[INFO] [stdout]     | ^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `Op` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(PartialEq)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                            -------------                  ^^^^^^^^^^ expected `Op`, found `&Op`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: `Op` does not implement `Clone`, so `&Op` was cloned instead
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                                                           ^^
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/expr.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     fn operate(eval_stack: &mut Vec<Val<T>>, op: Op) -> bool {
[INFO] [stdout]     |        ^^^^^^^                               ------
[INFO] [stdout] help: consider annotating `Op` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(Clone)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                            -------------                  ^^^^^^^^^^ expected `Op`, found `&Op`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: `Op` does not implement `Clone`, so `&Op` was cloned instead
[INFO] [stdout]    --> src/expr.rs:331:63
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 Token::Op(ref op)   => if !Expr::operate(&mut eval_stack, op.clone()) { return None; }, // TODO: what
[INFO] [stdout]     |                                                                           ^^
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/expr.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     fn operate(eval_stack: &mut Vec<Val<T>>, op: Op) -> bool {
[INFO] [stdout]     |        ^^^^^^^                               ------
[INFO] [stdout] help: consider annotating `Op` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 35  + #[derive(Clone)]
[INFO] [stdout] 36  | enum Op {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                   ---- ^^^^^^^^^^^ expected `Val<T>`, found `&Val<T>`
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Val<_>`
[INFO] [stdout]             found reference `&Val<_>`
[INFO] [stdout] note: `Val<T>` does not implement `Clone`, so `&Val<T>` was cloned instead
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                        ^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88/library/alloc/src/vec/mod.rs:1993:12
[INFO] [stdout] help: consider annotating `Val<T>` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 7   + #[derive(Clone)]
[INFO] [stdout] 8   | pub enum Val<T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/expr.rs:335:43
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     Some(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                          ^^^^^ cannot infer type for type parameter `T` declared on the enum `Option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                   ---- ^^^^^^^^^^^ expected `Val<T>`, found `&Val<T>`
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Val<_>`
[INFO] [stdout]             found reference `&Val<_>`
[INFO] [stdout] note: `Val<T>` does not implement `Clone`, so `&Val<T>` was cloned instead
[INFO] [stdout]    --> src/expr.rs:332:44
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Token::Val(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                        ^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88/library/alloc/src/vec/mod.rs:1993:12
[INFO] [stdout] help: consider annotating `Val<T>` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 7   + #[derive(Clone)]
[INFO] [stdout] 8   | pub enum Val<T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/expr.rs:335:43
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     Some(ref val) => eval_stack.push(val.clone()),
[INFO] [stdout]     |                                                          ^^^^^ cannot infer type for type parameter `T` declared on the enum `Option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:426:36
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 426 |         form = super::parse("2 + 3 * 4").unwrap();
[INFO] [stdout]     |                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 27 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0308, E0369, E0412, E0432, E0463, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:429:47
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 429 |         form = super::parse("( 23.5- (22+1))/0.25").unwrap();
[INFO] [stdout]     |                                                     ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:432:32
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 432 |         form = super::parse("4^3^2").unwrap();
[INFO] [stdout]     |                                      ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `expr` (lib) due to 28 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:435:33
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 435 |         form = super::parse("19 % 3").unwrap();
[INFO] [stdout]     |                                       ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:444:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 444 |         assert_eq!(res.unwrap().evaluate(), None);
[INFO] [stdout]     |                        ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:447:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 447 |         assert_eq!(res.err().unwrap(), super::Error::UnknownToken("2d4".to_string()));
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:450:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 450 |         assert_eq!(res.err().unwrap(), super::Error::MismatchedParenthesis);
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:453:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 453 |         assert_eq!(res.err().unwrap(), super::Error::MismatchedParenthesis);
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:456:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 456 |         assert_eq!(res.unwrap().evaluate(), None);
[INFO] [stdout]     |                        ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:459:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 459 |         assert_eq!(res.unwrap().evaluate(), None);
[INFO] [stdout]     |                        ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:462:18
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 462 |         assert_eq!(res.err().unwrap(), super::Error::UnknownToken("~".to_string()));
[INFO] [stdout]     |                        ^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:467:59
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 467 |         let form = super::parse(r#" "eat" + " " + "hotdogs" "#).unwrap();
[INFO] [stdout]     |                                                                 ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:470:45
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 470 |         assert_eq!(super::parse(r#" "eat" * 6 "#).unwrap().evaluate(), None);
[INFO] [stdout]     |                                                   ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_err` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:472:36
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 472 |         assert!(super::parse(r#" """ "#).is_err());
[INFO] [stdout]     |                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:479:37
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 479 |         form = super::parse("3 == 1 + 2").unwrap();
[INFO] [stdout]     |                                           ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:482:52
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 482 |         form = super::parse(r#" "hotdog" != "hotdog" "#).unwrap();
[INFO] [stdout]     |                                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:485:47
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 485 |         form = super::parse("4 * 3 >= 12 && 4 > 3").unwrap();
[INFO] [stdout]     |                                                     ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:488:42
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 488 |         form = super::parse("2 < 2 || 2 <= 2").unwrap();
[INFO] [stdout]     |                                                ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:491:36
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 491 |         form = super::parse("2==3||4>4").unwrap();
[INFO] [stdout]     |                                          ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:494:51
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 494 |         form = super::parse("(2 == 1 * 2) * 3.1 + 4.2").unwrap();
[INFO] [stdout]     |                                                         ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:500:48
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 500 |         let mut form1 = super::parse("3 + fish * 2").unwrap();
[INFO] [stdout]     |                                                      ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `unwrap` exists for enum `Result<Expr<()>, Error>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/expr.rs:505:63
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct Expr<T> {
[INFO] [stdout]     | ------------------ doesn't satisfy `Expr<()>: Sized`
[INFO] [stdout] ...
[INFO] [stdout] 505 |         let mut form2 = super::parse(r#" once + upon + a + time "#).unwrap();
[INFO] [stdout]     |                                                                     ^^^^^^ method cannot be called on `Result<Expr<()>, Error>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `{type error}: Sized`
[INFO] [stdout]             which is required by `Expr<()>: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 49 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0308, E0369, E0412, E0432, E0463, E0599, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `expr` (lib test) due to 50 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b436ea0923b8045789f1734379a69b4c3a78910637967c82c03e0e3d8d14cc1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b436ea0923b8045789f1734379a69b4c3a78910637967c82c03e0e3d8d14cc1c", kill_on_drop: false }`
[INFO] [stdout] b436ea0923b8045789f1734379a69b4c3a78910637967c82c03e0e3d8d14cc1c
