Dec 02 05:43:32.151 INFO testing MaXiaoye/CAS706_assignment3_Rust against 1.30.1 for beta-1.31-5
Dec 02 05:43:32.151 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-7/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-7/beta-1.31-5/1.30.1:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1.30.1 build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 02 05:43:32.559 INFO [stdout] 8ce55a54d10ac2a78b9f2b110fd86550aca424f9c40114a9f536288754cf285b
Dec 02 05:43:32.561 INFO running `"docker" "start" "-a" "8ce55a54d10ac2a78b9f2b110fd86550aca424f9c40114a9f536288754cf285b"`
Dec 02 05:43:33.891 INFO [stderr] usermod: no changes
Dec 02 05:43:33.943 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
Dec 02 05:43:33.943 INFO [stderr] disables Cargo from automatically inferring other binary targets.
Dec 02 05:43:33.943 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following
Dec 02 05:43:33.943 INFO [stderr] files will be included as a binary target:
Dec 02 05:43:33.943 INFO [stderr] 
Dec 02 05:43:33.943 INFO [stderr] * /source/src/main.rs
Dec 02 05:43:33.943 INFO [stderr] 
Dec 02 05:43:33.943 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be
Dec 02 05:43:33.943 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself
Dec 02 05:43:33.943 INFO [stderr] and disable this warning by adding `autobins = false` to your [package]
Dec 02 05:43:33.943 INFO [stderr] section. You may also move the files to a location where Cargo would not
Dec 02 05:43:33.943 INFO [stderr] automatically infer them to be a target, such as in subfolders.
Dec 02 05:43:33.943 INFO [stderr] 
Dec 02 05:43:33.943 INFO [stderr] For more information on this warning you can consult
Dec 02 05:43:33.943 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330
Dec 02 05:43:33.943 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`,
Dec 02 05:43:33.943 INFO [stderr] please set bin.path in Cargo.toml
Dec 02 05:43:33.953 INFO [stderr]    Compiling assignmentThree_Rust v0.0.1 (/source)
Dec 02 05:43:34.735 INFO [stderr] warning: unreachable pattern
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:141:4
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 141 |             _ => panic!("undefined term!")
Dec 02 05:43:34.735 INFO [stderr]     |             ^
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr]     = note: #[warn(unreachable_patterns)] on by default
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `a1`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:600:6
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 600 |     let a1 = UntypedTerm::APP{fun: Box::new(f1.clone()), arg: Box::new(i1.clone())};
Dec 02 05:43:34.735 INFO [stderr]     |         ^^ help: consider using `_a1` instead
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr]     = note: #[warn(unused_variables)] on by default
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:156:35
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 156 |             TypedTerm::T_INT{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyInt}],
Dec 02 05:43:34.735 INFO [stderr]     |                                            ^ help: consider using `_v` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:157:36
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 157 |             TypedTerm::T_BOOL{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyBool}],
Dec 02 05:43:34.735 INFO [stderr]     |                                             ^ help: consider using `_v` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:165:25
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 165 |             TypedTerm::T_VAR{ty: t, name: n} => vec![],
Dec 02 05:43:34.735 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `n`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:165:34
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 165 |             TypedTerm::T_VAR{ty: t, name: n} => vec![],
Dec 02 05:43:34.735 INFO [stderr]     |                                           ^ help: consider using `_n` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `o`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:175:33
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 175 |             TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => {
Dec 02 05:43:34.735 INFO [stderr]     |                                          ^ help: consider using `_o` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:437:31
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 437 |             TypedTerm::T_VAR{ty: t, name: n} => {
Dec 02 05:43:34.735 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:441:31
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 441 |             TypedTerm::T_APP{ty: t, fun: f, arg: a} => {
Dec 02 05:43:34.735 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:447:34
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 447 |                         TypedTerm::T_FUN{ty: t1, param: p1, body: b1} => match *p1.clone() {
Dec 02 05:43:34.735 INFO [stderr]     |                                              ^^ help: consider using `_t1` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:448:35
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 448 |                             TypedTerm::T_VAR{ty: t2, name: n1} => {
Dec 02 05:43:34.735 INFO [stderr]     |                                                  ^^ help: consider using `_t2` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.735 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.735 INFO [stderr]    --> src/main.rs:459:32
Dec 02 05:43:34.735 INFO [stderr]     |
Dec 02 05:43:34.735 INFO [stderr] 459 |             TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => {
Dec 02 05:43:34.735 INFO [stderr]     |                                   ^ help: consider using `_t` instead
Dec 02 05:43:34.735 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:470:31
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 470 |             TypedTerm::T_NOT{ty: t, exp: e} => {
Dec 02 05:43:34.752 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:477:31
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 477 |             TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:34.752 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:482:30
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 482 |             TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:34.752 INFO [stderr]     |                                 ^ help: consider using `_t` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:487:31
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 487 |             TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:34.752 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:492:30
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 492 |             TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:34.752 INFO [stderr]     |                                 ^ help: consider using `_t` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:497:30
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 497 |             TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => {
Dec 02 05:43:34.752 INFO [stderr]     |                                 ^ help: consider using `_t` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:502:34
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 502 |                     TypedTerm::T_BOOL{ty: t1, value: v} => if v {v2} else {v3},
Dec 02 05:43:34.752 INFO [stderr]     |                                           ^^ help: consider using `_t1` instead
Dec 02 05:43:34.752 INFO [stderr] 
Dec 02 05:43:34.752 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.752 INFO [stderr]    --> src/main.rs:506:31
Dec 02 05:43:34.752 INFO [stderr]     |
Dec 02 05:43:34.752 INFO [stderr] 506 |             TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => {
Dec 02 05:43:34.753 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:511:33
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 511 |                     TypedTerm::T_VAR{ty: t, name: n} => {
Dec 02 05:43:34.753 INFO [stderr]     |                                          ^ help: consider using `_t` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `solutions`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:526:10
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 526 |         let solutions = unify(Constraints);
Dec 02 05:43:34.753 INFO [stderr]     |             ^^^^^^^^^ help: consider using `_solutions` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:536:26
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 536 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1+v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:536:63
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 536 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1+v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:543:26
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 543 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1-v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:543:63
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 543 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1-v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:550:26
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 550 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1*v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:550:63
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 550 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1*v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:557:26
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 557 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1/v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:557:63
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 557 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1/v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:564:26
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 564 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyInt, value: v1 < v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:564:63
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 564 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyInt, value: v1 < v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:572:27
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 572 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 && v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                    ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:572:65
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 572 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 && v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                                                          ^^ help: consider using `_t2` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.753 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.753 INFO [stderr]    --> src/main.rs:579:27
Dec 02 05:43:34.753 INFO [stderr]     |
Dec 02 05:43:34.753 INFO [stderr] 579 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 || v2},
Dec 02 05:43:34.753 INFO [stderr]     |                                    ^^ help: consider using `_t1` instead
Dec 02 05:43:34.753 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.754 INFO [stderr]    --> src/main.rs:579:65
Dec 02 05:43:34.754 INFO [stderr]     |
Dec 02 05:43:34.754 INFO [stderr] 579 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 || v2},
Dec 02 05:43:34.754 INFO [stderr]     |                                                                          ^^ help: consider using `_t2` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.754 INFO [stderr]    --> src/main.rs:586:27
Dec 02 05:43:34.754 INFO [stderr]     |
Dec 02 05:43:34.754 INFO [stderr] 586 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:34.754 INFO [stderr]     |                                    ^^ help: consider using `_t1` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.754 INFO [stderr]    --> src/main.rs:586:65
Dec 02 05:43:34.754 INFO [stderr]     |
Dec 02 05:43:34.754 INFO [stderr] 586 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:34.754 INFO [stderr]     |                                                                          ^^ help: consider using `_t2` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:34.754 INFO [stderr]    --> src/main.rs:587:26
Dec 02 05:43:34.754 INFO [stderr]     |
Dec 02 05:43:34.754 INFO [stderr] 587 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:34.754 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:34.754 INFO [stderr]    --> src/main.rs:587:63
Dec 02 05:43:34.754 INFO [stderr]     |
Dec 02 05:43:34.754 INFO [stderr] 587 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:34.754 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:67:36
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 67 |                 TypedTerm::T_INT{ty: t, value: v} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                                ^ help: consider using `_v` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:68:40
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 68 |                 TypedTerm::T_BOOL{ty: t, value: v} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                                 ^ help: consider using `_v` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `n`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:69:38
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 69 |                 TypedTerm::T_VAR{ty: t, name: n} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                               ^ help: consider using `_n` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `p`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:70:39
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 70 |                 TypedTerm::T_FUN{ty: t, param: p, body: b} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                                ^ help: consider using `_p` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `b`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:70:48
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 70 |                 TypedTerm::T_FUN{ty: t, param: p, body: b} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                                         ^ help: consider using `_b` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `f`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:71:37
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 71 |                 TypedTerm::T_APP{ty: t, fun: f, arg: a} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                              ^ help: consider using `_f` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `a`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:71:45
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 71 |                 TypedTerm::T_APP{ty: t, fun: f, arg: a} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                                      ^ help: consider using `_a` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `o`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:72:37
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 72 |                 TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                              ^ help: consider using `_o` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:72:46
Dec 02 05:43:34.754 INFO [stderr]    |
Dec 02 05:43:34.754 INFO [stderr] 72 |                 TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.754 INFO [stderr]    |                                                       ^^ help: consider using `_e1` instead
Dec 02 05:43:34.754 INFO [stderr] 
Dec 02 05:43:34.754 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.754 INFO [stderr]   --> src/main.rs:72:56
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 72 |                 TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                                 ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:73:37
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 73 |                 TypedTerm::T_NOT{ty: t, exp: e} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                              ^ help: consider using `_e` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:74:38
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 74 |                 TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                               ^^ help: consider using `_e1` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:74:48
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 74 |                 TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                         ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:75:37
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 75 |                 TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                              ^^ help: consider using `_e1` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:75:47
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 75 |                 TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                        ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:76:38
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 76 |                 TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                               ^^ help: consider using `_e1` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:76:48
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 76 |                 TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                         ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:77:37
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 77 |                 TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                              ^^ help: consider using `_e1` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:77:47
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 77 |                 TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                        ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:78:37
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 78 |                 TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                              ^^ help: consider using `_e1` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:78:47
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 78 |                 TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                        ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e3`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:78:57
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 78 |                 TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                                  ^^ help: consider using `_e3` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:79:38
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 79 |                 TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                               ^^ help: consider using `_e1` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:79:48
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 79 |                 TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:34.755 INFO [stderr]    |                                                         ^^ help: consider using `_e2` instead
Dec 02 05:43:34.755 INFO [stderr] 
Dec 02 05:43:34.755 INFO [stderr] warning: unused variable: `e3`
Dec 02 05:43:34.755 INFO [stderr]   --> src/main.rs:79:58
Dec 02 05:43:34.755 INFO [stderr]    |
Dec 02 05:43:34.755 INFO [stderr] 79 |                 TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:34.756 INFO [stderr]    |                                                                   ^^ help: consider using `_e3` instead
Dec 02 05:43:34.756 INFO [stderr] 
Dec 02 05:43:34.756 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:34.756 INFO [stderr]    --> src/main.rs:613:6
Dec 02 05:43:34.756 INFO [stderr]     |
Dec 02 05:43:34.756 INFO [stderr] 613 |     let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.756 INFO [stderr]     |         ----^^^^
Dec 02 05:43:34.756 INFO [stderr]     |         |
Dec 02 05:43:34.756 INFO [stderr]     |         help: remove this `mut`
Dec 02 05:43:34.756 INFO [stderr]     |
Dec 02 05:43:34.756 INFO [stderr]     = note: #[warn(unused_mut)] on by default
Dec 02 05:43:34.756 INFO [stderr] 
Dec 02 05:43:34.789 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:34.789 INFO [stderr]    --> src/main.rs:334:8
Dec 02 05:43:34.789 INFO [stderr]     |
Dec 02 05:43:34.789 INFO [stderr] 334 |             let mut updateConstraints = solutionOne.applyToSet(&mut vec1);
Dec 02 05:43:34.789 INFO [stderr]     |                 ----^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.789 INFO [stderr]     |                 |
Dec 02 05:43:34.789 INFO [stderr]     |                 help: remove this `mut`
Dec 02 05:43:34.789 INFO [stderr] 
Dec 02 05:43:34.789 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:34.789 INFO [stderr]    --> src/main.rs:398:7
Dec 02 05:43:34.789 INFO [stderr]     |
Dec 02 05:43:34.789 INFO [stderr] 398 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.789 INFO [stderr]     |             ----^^^^
Dec 02 05:43:34.789 INFO [stderr]     |             |
Dec 02 05:43:34.789 INFO [stderr]     |             help: remove this `mut`
Dec 02 05:43:34.789 INFO [stderr] 
Dec 02 05:43:34.795 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:34.795 INFO [stderr]    --> src/main.rs:523:7
Dec 02 05:43:34.795 INFO [stderr]     |
Dec 02 05:43:34.795 INFO [stderr] 523 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.795 INFO [stderr]     |             ----^^^^
Dec 02 05:43:34.795 INFO [stderr]     |             |
Dec 02 05:43:34.795 INFO [stderr]     |             help: remove this `mut`
Dec 02 05:43:34.795 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: variant is never constructed: `NOT`
Dec 02 05:43:34.799 INFO [stderr]   --> src/main.rs:16:6
Dec 02 05:43:34.799 INFO [stderr]    |
Dec 02 05:43:34.799 INFO [stderr] 16 |         NOT{exp: Box<UntypedTerm>},
Dec 02 05:43:34.799 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr]    |
Dec 02 05:43:34.799 INFO [stderr]    = note: #[warn(dead_code)] on by default
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: variant is never constructed: `AND`
Dec 02 05:43:34.799 INFO [stderr]   --> src/main.rs:17:6
Dec 02 05:43:34.799 INFO [stderr]    |
Dec 02 05:43:34.799 INFO [stderr] 17 |         AND{exp1: Box<UntypedTerm>, exp2: Box<UntypedTerm>},
Dec 02 05:43:34.799 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: variant is never constructed: `OR`
Dec 02 05:43:34.799 INFO [stderr]   --> src/main.rs:18:6
Dec 02 05:43:34.799 INFO [stderr]    |
Dec 02 05:43:34.799 INFO [stderr] 18 |         OR{exp1: Box<UntypedTerm>, exp2: Box<UntypedTerm>},
Dec 02 05:43:34.799 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: variant is never constructed: `LT`
Dec 02 05:43:34.799 INFO [stderr]   --> src/main.rs:20:6
Dec 02 05:43:34.799 INFO [stderr]    |
Dec 02 05:43:34.799 INFO [stderr] 20 |         LT{exp1: Box<UntypedTerm>, exp2: Box<UntypedTerm>},
Dec 02 05:43:34.799 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: variant is never constructed: `IF`
Dec 02 05:43:34.799 INFO [stderr]   --> src/main.rs:21:6
Dec 02 05:43:34.799 INFO [stderr]    |
Dec 02 05:43:34.799 INFO [stderr] 21 |         IF{exp1: Box<UntypedTerm>, exp2: Box<UntypedTerm>, exp3: Box<UntypedTerm>},
Dec 02 05:43:34.799 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: method is never used: `empty`
Dec 02 05:43:34.799 INFO [stderr]    --> src/main.rs:272:3
Dec 02 05:43:34.799 INFO [stderr]     |
Dec 02 05:43:34.799 INFO [stderr] 272 |         fn empty() -> Substitution {
Dec 02 05:43:34.799 INFO [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.799 INFO [stderr] warning: method is never used: `fromPair`
Dec 02 05:43:34.799 INFO [stderr]    --> src/main.rs:277:3
Dec 02 05:43:34.799 INFO [stderr]     |
Dec 02 05:43:34.799 INFO [stderr] 277 |         fn fromPair(tvar: u32, ty: Type) -> Substitution {
Dec 02 05:43:34.799 INFO [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.799 INFO [stderr] 
Dec 02 05:43:34.811 INFO [stderr] warning: structure field `ParamTy` should have a snake case name such as `param_ty`
Dec 02 05:43:34.811 INFO [stderr]   --> src/main.rs:33:9
Dec 02 05:43:34.811 INFO [stderr]    |
Dec 02 05:43:34.811 INFO [stderr] 33 |         TyFun{ParamTy: Box<Type>, ReturnTy: Box<Type>}
Dec 02 05:43:34.811 INFO [stderr]    |               ^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.811 INFO [stderr]    |
Dec 02 05:43:34.811 INFO [stderr]    = note: #[warn(non_snake_case)] on by default
Dec 02 05:43:34.811 INFO [stderr] 
Dec 02 05:43:34.811 INFO [stderr] warning: structure field `ReturnTy` should have a snake case name such as `return_ty`
Dec 02 05:43:34.811 INFO [stderr]   --> src/main.rs:33:29
Dec 02 05:43:34.811 INFO [stderr]    |
Dec 02 05:43:34.811 INFO [stderr] 33 |         TyFun{ParamTy: Box<Type>, ReturnTy: Box<Type>}
Dec 02 05:43:34.811 INFO [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.811 INFO [stderr] 
Dec 02 05:43:34.811 INFO [stderr] warning: function `freshVar` should have a snake case name such as `fresh_var`
Dec 02 05:43:34.811 INFO [stderr]   --> src/main.rs:37:2
Dec 02 05:43:34.811 INFO [stderr]    |
Dec 02 05:43:34.811 INFO [stderr] 37 |       fn freshVar(v: &mut u32) -> Type {
Dec 02 05:43:34.811 INFO [stderr]    |  _____^
Dec 02 05:43:34.811 INFO [stderr] 38 | |         *v+=1;
Dec 02 05:43:34.811 INFO [stderr] 39 | |         Type::TyVar{num: *v}
Dec 02 05:43:34.811 INFO [stderr] 40 | |     } 
Dec 02 05:43:34.811 INFO [stderr]    | |_____^
Dec 02 05:43:34.811 INFO [stderr] 
Dec 02 05:43:34.811 INFO [stderr] warning: variant `T_INT` should have a camel case name such as `TInt`
Dec 02 05:43:34.811 INFO [stderr]   --> src/main.rs:46:3
Dec 02 05:43:34.811 INFO [stderr]    |
Dec 02 05:43:34.811 INFO [stderr] 46 |         T_INT{ty: Type, value: u32},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr]    = note: #[warn(non_camel_case_types)] on by default
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_BOOL` should have a camel case name such as `TBool`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:47:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 47 |         T_BOOL{ty: Type, value: bool},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_VAR` should have a camel case name such as `TVar`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:48:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 48 |         T_VAR{ty: Type, name: char},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_FUN` should have a camel case name such as `TFun`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:49:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 49 |         T_FUN{ty: Type, param: Box<TypedTerm>, body: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_Closure` should have a camel case name such as `TClosure`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:50:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 50 |         T_Closure{fun: Box<TypedTerm>, env: InterpEnv},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_APP` should have a camel case name such as `TApp`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:51:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 51 |         T_APP{ty: Type, fun: Box<TypedTerm>, arg: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_CALC` should have a camel case name such as `TCalc`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:52:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 52 |         T_CALC{ty: Type, op: char, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_NOT` should have a camel case name such as `TNot`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:53:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 53 |         T_NOT{ty: Type, exp: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_AND` should have a camel case name such as `TAnd`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:54:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 54 |         T_AND{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_OR` should have a camel case name such as `TOr`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:55:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 55 |         T_OR{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_EQU` should have a camel case name such as `TEqu`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:56:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 56 |         T_EQU{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_LT` should have a camel case name such as `TLt`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:57:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 57 |         T_LT{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_IF` should have a camel case name such as `TIf`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:58:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 58 |         T_IF{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>, exp3: Box<TypedTerm>},
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.812 INFO [stderr] warning: variant `T_LET` should have a camel case name such as `TLet`
Dec 02 05:43:34.812 INFO [stderr]   --> src/main.rs:59:6
Dec 02 05:43:34.812 INFO [stderr]    |
Dec 02 05:43:34.812 INFO [stderr] 59 |         T_LET{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>, exp3: Box<TypedTerm>}
Dec 02 05:43:34.812 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.812 INFO [stderr] 
Dec 02 05:43:34.813 INFO [stderr] warning: method `getType` should have a snake case name such as `get_type`
Dec 02 05:43:34.813 INFO [stderr]   --> src/main.rs:65:3
Dec 02 05:43:34.813 INFO [stderr]    |
Dec 02 05:43:34.813 INFO [stderr] 65 |           fn getType(self) -> Type {
Dec 02 05:43:34.813 INFO [stderr]    |  _________^
Dec 02 05:43:34.813 INFO [stderr] 66 | |             match self {
Dec 02 05:43:34.813 INFO [stderr] 67 | |                 TypedTerm::T_INT{ty: t, value: v} => t,
Dec 02 05:43:34.813 INFO [stderr] 68 | |                 TypedTerm::T_BOOL{ty: t, value: v} => t,
Dec 02 05:43:34.813 INFO [stderr] ...  |
Dec 02 05:43:34.813 INFO [stderr] 81 | |             }
Dec 02 05:43:34.813 INFO [stderr] 82 | |         }
Dec 02 05:43:34.813 INFO [stderr]    | |_________^
Dec 02 05:43:34.813 INFO [stderr] 
Dec 02 05:43:34.813 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env`
Dec 02 05:43:34.813 INFO [stderr]   --> src/main.rs:88:3
Dec 02 05:43:34.813 INFO [stderr]    |
Dec 02 05:43:34.813 INFO [stderr] 88 |         Env: HashMap<char,Type>
Dec 02 05:43:34.813 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.813 INFO [stderr] 
Dec 02 05:43:34.813 INFO [stderr] warning: variable `varNum` should have a snake case name such as `var_num`
Dec 02 05:43:34.813 INFO [stderr]    --> src/main.rs:107:52
Dec 02 05:43:34.813 INFO [stderr]     |
Dec 02 05:43:34.813 INFO [stderr] 107 |     fn annotate(term: UntypedTerm, mut tenv: TypeEnv, varNum: &mut u32) -> TypedTerm {
Dec 02 05:43:34.813 INFO [stderr]     |                                                       ^^^^^^
Dec 02 05:43:34.813 INFO [stderr] 
Dec 02 05:43:34.813 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty`
Dec 02 05:43:34.813 INFO [stderr]    --> src/main.rs:113:9
Dec 02 05:43:34.813 INFO [stderr]     |
Dec 02 05:43:34.813 INFO [stderr] 113 |                 let paramTy = freshVar(varNum);
Dec 02 05:43:34.813 INFO [stderr]     |                     ^^^^^^^
Dec 02 05:43:34.813 INFO [stderr] 
Dec 02 05:43:34.813 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1`
Dec 02 05:43:34.813 INFO [stderr]    --> src/main.rs:114:9
Dec 02 05:43:34.813 INFO [stderr]     |
Dec 02 05:43:34.813 INFO [stderr] 114 |                 let paramTy1 = paramTy.clone();
Dec 02 05:43:34.813 INFO [stderr]     |                     ^^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:116:9
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 116 |                 let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: p};                
Dec 02 05:43:34.814 INFO [stderr]     |                     ^^^^^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:134:12
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 134 |                 let paramTy = freshVar(varNum);
Dec 02 05:43:34.814 INFO [stderr]     |                     ^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:135:9
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 135 |                 let paramTy1 = paramTy.clone();
Dec 02 05:43:34.814 INFO [stderr]     |                     ^^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:137:9
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 137 |                 let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: e1};
Dec 02 05:43:34.814 INFO [stderr]     |                     ^^^^^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: structure field `typeA` should have a snake case name such as `type_a`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:149:3
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 149 |         typeA: Type,
Dec 02 05:43:34.814 INFO [stderr]     |         ^^^^^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: structure field `typeB` should have a snake case name such as `type_b`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:150:3
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 150 |         typeB: Type
Dec 02 05:43:34.814 INFO [stderr]     |         ^^^^^^^^^^^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: method `fromPair` should have a snake case name such as `from_pair`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:277:3
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 277 |           fn fromPair(tvar: u32, ty: Type) -> Substitution {
Dec 02 05:43:34.814 INFO [stderr]     |  _________^
Dec 02 05:43:34.814 INFO [stderr] 278 | |             let mut s1 = HashMap::new();
Dec 02 05:43:34.814 INFO [stderr] 279 | |             s1.insert(tvar, ty);
Dec 02 05:43:34.814 INFO [stderr] 280 | |             Substitution{solutions: s1}
Dec 02 05:43:34.814 INFO [stderr] 281 | |         }
Dec 02 05:43:34.814 INFO [stderr]     | |_________^
Dec 02 05:43:34.814 INFO [stderr] 
Dec 02 05:43:34.814 INFO [stderr] warning: method `applyToSet` should have a snake case name such as `apply_to_set`
Dec 02 05:43:34.814 INFO [stderr]    --> src/main.rs:284:3
Dec 02 05:43:34.814 INFO [stderr]     |
Dec 02 05:43:34.814 INFO [stderr] 284 |           fn applyToSet (&self,constraints: &mut Vec<Constraint>) -> Vec<Constraint> {
Dec 02 05:43:34.815 INFO [stderr]     |  _________^
Dec 02 05:43:34.815 INFO [stderr] 285 | |             for elem in constraints.iter_mut() {
Dec 02 05:43:34.815 INFO [stderr] 286 | |                 //traverse target constraint set and update each type in all elements. 
Dec 02 05:43:34.815 INFO [stderr] 287 | |                 *elem = Constraint{typeA: Self::applyOneType(&self, elem.typeA.clone()), typeB: Self::applyOneType(&self,elem.typeB.clone())}
Dec 02 05:43:34.815 INFO [stderr] 288 | |             }
Dec 02 05:43:34.815 INFO [stderr] 289 | |             constraints.clone()
Dec 02 05:43:34.815 INFO [stderr] 290 | |         }
Dec 02 05:43:34.815 INFO [stderr]     | |_________^
Dec 02 05:43:34.815 INFO [stderr] 
Dec 02 05:43:34.815 INFO [stderr] warning: method `applyOneType` should have a snake case name such as `apply_one_type`
Dec 02 05:43:34.815 INFO [stderr]    --> src/main.rs:293:3
Dec 02 05:43:34.815 INFO [stderr]     |
Dec 02 05:43:34.815 INFO [stderr] 293 |           fn applyOneType(&self, ty: Type) -> Type {
Dec 02 05:43:34.815 INFO [stderr]     |  _________^
Dec 02 05:43:34.815 INFO [stderr] 294 | |             match ty {
Dec 02 05:43:34.815 INFO [stderr] 295 | |                 Type::TyInt => ty,
Dec 02 05:43:34.815 INFO [stderr] 296 | |                 Type::TyBool => ty,
Dec 02 05:43:34.815 INFO [stderr] ...   |
Dec 02 05:43:34.815 INFO [stderr] 305 | |             }
Dec 02 05:43:34.815 INFO [stderr] 306 | |         }
Dec 02 05:43:34.815 INFO [stderr]     | |_________^
Dec 02 05:43:34.815 INFO [stderr] 
Dec 02 05:43:34.815 INFO [stderr] warning: variable `solutionType` should have a snake case name such as `solution_type`
Dec 02 05:43:34.815 INFO [stderr]    --> src/main.rs:311:8
Dec 02 05:43:34.815 INFO [stderr]     |
Dec 02 05:43:34.815 INFO [stderr] 311 |             for solutionType in self.solutions.values_mut() {
Dec 02 05:43:34.815 INFO [stderr]     |                 ^^^^^^^^^^^^
Dec 02 05:43:34.815 INFO [stderr] 
Dec 02 05:43:34.815 INFO [stderr] warning: variable `solutionOne` should have a snake case name such as `solution_one`
Dec 02 05:43:34.815 INFO [stderr]    --> src/main.rs:330:8
Dec 02 05:43:34.815 INFO [stderr]     |
Dec 02 05:43:34.815 INFO [stderr] 330 |             let mut solutionOne = unifyOne(constraints[0].clone());
Dec 02 05:43:34.815 INFO [stderr]     |                 ^^^^^^^^^^^^^^^
Dec 02 05:43:34.815 INFO [stderr] 
Dec 02 05:43:34.816 INFO [stderr] warning: variable `updateConstraints` should have a snake case name such as `update_constraints`
Dec 02 05:43:34.816 INFO [stderr]    --> src/main.rs:334:8
Dec 02 05:43:34.816 INFO [stderr]     |
Dec 02 05:43:34.816 INFO [stderr] 334 |             let mut updateConstraints = solutionOne.applyToSet(&mut vec1);
Dec 02 05:43:34.816 INFO [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.816 INFO [stderr] 
Dec 02 05:43:34.816 INFO [stderr] warning: variable `solutionRest` should have a snake case name such as `solution_rest`
Dec 02 05:43:34.816 INFO [stderr]    --> src/main.rs:336:8
Dec 02 05:43:34.816 INFO [stderr]     |
Dec 02 05:43:34.816 INFO [stderr] 336 |             let solutionRest = unify(updateConstraints);
Dec 02 05:43:34.816 INFO [stderr]     |                 ^^^^^^^^^^^^
Dec 02 05:43:34.816 INFO [stderr] 
Dec 02 05:43:34.816 INFO [stderr] warning: function `unifyOne` should have a snake case name such as `unify_one`
Dec 02 05:43:34.816 INFO [stderr]    --> src/main.rs:343:2
Dec 02 05:43:34.816 INFO [stderr]     |
Dec 02 05:43:34.816 INFO [stderr] 343 |       fn unifyOne(constraint: Constraint) -> Substitution {
Dec 02 05:43:34.816 INFO [stderr]     |  _____^
Dec 02 05:43:34.816 INFO [stderr] 344 | |         match (constraint.typeA, constraint.typeB) {
Dec 02 05:43:34.816 INFO [stderr] 345 | |             (Type::TyInt, Type:: TyInt) => Substitution{solutions: HashMap::new()},
Dec 02 05:43:34.816 INFO [stderr] 346 | |             (Type::TyBool, Type:: TyBool) => Substitution{solutions: HashMap::new()},
Dec 02 05:43:34.816 INFO [stderr] ...   |
Dec 02 05:43:34.816 INFO [stderr] 352 | |         }
Dec 02 05:43:34.816 INFO [stderr] 353 | |     }
Dec 02 05:43:34.816 INFO [stderr]     | |_____^
Dec 02 05:43:34.816 INFO [stderr] 
Dec 02 05:43:34.823 INFO [stderr] warning: function `unifyVar` should have a snake case name such as `unify_var`
Dec 02 05:43:34.823 INFO [stderr]    --> src/main.rs:356:2
Dec 02 05:43:34.823 INFO [stderr]     |
Dec 02 05:43:34.823 INFO [stderr] 356 |       fn unifyVar(tvar: u32, ty: Type) -> Substitution {
Dec 02 05:43:34.823 INFO [stderr]     |  _____^
Dec 02 05:43:34.824 INFO [stderr] 357 | |         match ty {
Dec 02 05:43:34.824 INFO [stderr] 358 | |             //do nothing if they are the same type variable
Dec 02 05:43:34.824 INFO [stderr] 359 | |             Type::TyVar{num: n} => {
Dec 02 05:43:34.824 INFO [stderr] ...   |
Dec 02 05:43:34.824 INFO [stderr] 383 | |         }
Dec 02 05:43:34.824 INFO [stderr] 384 | |     }
Dec 02 05:43:34.824 INFO [stderr]     | |_____^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: function `typeInference` should have a snake case name such as `type_inference`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:397:2
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 397 |       fn typeInference(term: UntypedTerm) {
Dec 02 05:43:34.824 INFO [stderr]     |  _____^
Dec 02 05:43:34.824 INFO [stderr] 398 | |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.824 INFO [stderr] 399 | |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:34.824 INFO [stderr] 400 | |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:34.824 INFO [stderr] ...   |
Dec 02 05:43:34.824 INFO [stderr] 408 | |         println!(" ");
Dec 02 05:43:34.824 INFO [stderr] 409 | |     }
Dec 02 05:43:34.824 INFO [stderr]     | |_____^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:398:7
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 398 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.824 INFO [stderr]     |             ^^^^^^^^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:399:10
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 399 |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:34.824 INFO [stderr]     |             ^^^^^^^^^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:400:10
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 400 |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:34.824 INFO [stderr]     |             ^^^^^^^^^^^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:415:3
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 415 |         Env: HashMap<char,TypedTerm>
Dec 02 05:43:34.824 INFO [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: function `Interp` should have a snake case name such as `interp`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:433:2
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 433 |       fn Interp(term: TypedTerm, env: &mut InterpEnv) -> TypedTerm {
Dec 02 05:43:34.824 INFO [stderr]     |  _____^
Dec 02 05:43:34.824 INFO [stderr] 434 | |         match term {
Dec 02 05:43:34.824 INFO [stderr] 435 | |             TypedTerm::T_INT{ty: t, value: v} => TypedTerm::T_INT{ty: t, value: v},
Dec 02 05:43:34.824 INFO [stderr] 436 | |             TypedTerm::T_BOOL{ty: t, value: v} => TypedTerm::T_BOOL{ty: t, value: v},
Dec 02 05:43:34.824 INFO [stderr] ...   |
Dec 02 05:43:34.824 INFO [stderr] 519 | |         }
Dec 02 05:43:34.824 INFO [stderr] 520 | |     }
Dec 02 05:43:34.824 INFO [stderr]     | |_____^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:443:15
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 443 |                 let mut EnvNew = InterpEnv{Env: HashMap::new()};
Dec 02 05:43:34.824 INFO [stderr]     |                     ^^^^^^^^^^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:508:15
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 508 |                 let mut EnvNew = InterpEnv{Env: HashMap::new()};
Dec 02 05:43:34.824 INFO [stderr]     |                     ^^^^^^^^^^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.824 INFO [stderr] warning: function `InterpE` should have a snake case name such as `interp_e`
Dec 02 05:43:34.824 INFO [stderr]    --> src/main.rs:522:2
Dec 02 05:43:34.824 INFO [stderr]     |
Dec 02 05:43:34.824 INFO [stderr] 522 |       fn InterpE(term: UntypedTerm) {
Dec 02 05:43:34.824 INFO [stderr]     |  _____^
Dec 02 05:43:34.824 INFO [stderr] 523 | |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.824 INFO [stderr] 524 | |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:34.824 INFO [stderr] 525 | |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:34.824 INFO [stderr] ...   |
Dec 02 05:43:34.824 INFO [stderr] 530 | |         println!("{:?}",Interp(TypedTerm, &mut EnvI));
Dec 02 05:43:34.824 INFO [stderr] 531 | |     }
Dec 02 05:43:34.824 INFO [stderr]     | |_____^
Dec 02 05:43:34.824 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:523:7
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 523 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.825 INFO [stderr]     |             ^^^^^^^^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:524:10
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 524 |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:34.825 INFO [stderr]     |             ^^^^^^^^^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:525:10
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 525 |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:34.825 INFO [stderr]     |             ^^^^^^^^^^^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: variable `EnvI` should have a snake case name such as `env_i`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:528:10
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 528 |         let mut EnvI = InterpEnv{Env: HashMap::new()};
Dec 02 05:43:34.825 INFO [stderr]     |             ^^^^^^^^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: function `Add` should have a snake case name such as `add`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:534:2
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 534 |       fn Add(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.825 INFO [stderr]     |  _____^
Dec 02 05:43:34.825 INFO [stderr] 535 | |         match (a1,a2) {
Dec 02 05:43:34.825 INFO [stderr] 536 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1+v2},
Dec 02 05:43:34.825 INFO [stderr] 537 | |             _ => panic!("undefined !")
Dec 02 05:43:34.825 INFO [stderr] 538 | |         }
Dec 02 05:43:34.825 INFO [stderr] 539 | |     }
Dec 02 05:43:34.825 INFO [stderr]     | |_____^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: function `Minus` should have a snake case name such as `minus`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:541:2
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 541 |       fn Minus(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.825 INFO [stderr]     |  _____^
Dec 02 05:43:34.825 INFO [stderr] 542 | |         match (a1,a2) {
Dec 02 05:43:34.825 INFO [stderr] 543 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1-v2},
Dec 02 05:43:34.825 INFO [stderr] 544 | |             _ => panic!("undefined !")
Dec 02 05:43:34.825 INFO [stderr] 545 | |         }
Dec 02 05:43:34.825 INFO [stderr] 546 | |     }
Dec 02 05:43:34.825 INFO [stderr]     | |_____^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: function `Mul` should have a snake case name such as `mul`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:548:2
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 548 |       fn Mul(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.825 INFO [stderr]     |  _____^
Dec 02 05:43:34.825 INFO [stderr] 549 | |         match (a1,a2) {
Dec 02 05:43:34.825 INFO [stderr] 550 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1*v2},
Dec 02 05:43:34.825 INFO [stderr] 551 | |             _ => panic!("undefined !")
Dec 02 05:43:34.825 INFO [stderr] 552 | |         }
Dec 02 05:43:34.825 INFO [stderr] 553 | |     }
Dec 02 05:43:34.825 INFO [stderr]     | |_____^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: function `Div` should have a snake case name such as `div`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:555:2
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 555 |       fn Div(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.825 INFO [stderr]     |  _____^
Dec 02 05:43:34.825 INFO [stderr] 556 | |         match (a1,a2) {
Dec 02 05:43:34.825 INFO [stderr] 557 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1/v2},
Dec 02 05:43:34.825 INFO [stderr] 558 | |             _ => panic!("undefined !")
Dec 02 05:43:34.825 INFO [stderr] 559 | |         }
Dec 02 05:43:34.825 INFO [stderr] 560 | |     }
Dec 02 05:43:34.825 INFO [stderr]     | |_____^
Dec 02 05:43:34.825 INFO [stderr] 
Dec 02 05:43:34.825 INFO [stderr] warning: function `Lt` should have a snake case name such as `lt`
Dec 02 05:43:34.825 INFO [stderr]    --> src/main.rs:562:2
Dec 02 05:43:34.825 INFO [stderr]     |
Dec 02 05:43:34.825 INFO [stderr] 562 |       fn Lt(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.825 INFO [stderr]     |  _____^
Dec 02 05:43:34.825 INFO [stderr] 563 | |         match (a1,a2) {
Dec 02 05:43:34.825 INFO [stderr] 564 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyInt, value: v1 < v2},
Dec 02 05:43:34.825 INFO [stderr] 565 | |             _ => panic!("undefined !")
Dec 02 05:43:34.825 INFO [stderr] 566 | |         }
Dec 02 05:43:34.825 INFO [stderr] 567 | |     }
Dec 02 05:43:34.826 INFO [stderr]     | |_____^
Dec 02 05:43:34.826 INFO [stderr] 
Dec 02 05:43:34.826 INFO [stderr] warning: function `And` should have a snake case name such as `and`
Dec 02 05:43:34.826 INFO [stderr]    --> src/main.rs:570:2
Dec 02 05:43:34.826 INFO [stderr]     |
Dec 02 05:43:34.826 INFO [stderr] 570 |       fn And(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.826 INFO [stderr]     |  _____^
Dec 02 05:43:34.826 INFO [stderr] 571 | |         match (a1,a2) {
Dec 02 05:43:34.826 INFO [stderr] 572 | |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 && v2},
Dec 02 05:43:34.826 INFO [stderr] 573 | |             _ => panic!("undefined !")
Dec 02 05:43:34.826 INFO [stderr] 574 | |         }
Dec 02 05:43:34.826 INFO [stderr] 575 | |     }
Dec 02 05:43:34.826 INFO [stderr]     | |_____^
Dec 02 05:43:34.826 INFO [stderr] 
Dec 02 05:43:34.826 INFO [stderr] warning: function `Or` should have a snake case name such as `or`
Dec 02 05:43:34.826 INFO [stderr]    --> src/main.rs:577:2
Dec 02 05:43:34.826 INFO [stderr]     |
Dec 02 05:43:34.826 INFO [stderr] 577 |       fn Or(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.826 INFO [stderr]     |  _____^
Dec 02 05:43:34.826 INFO [stderr] 578 | |         match (a1,a2) {
Dec 02 05:43:34.826 INFO [stderr] 579 | |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 || v2},
Dec 02 05:43:34.826 INFO [stderr] 580 | |             _ => panic!("undefined !")
Dec 02 05:43:34.826 INFO [stderr] 581 | |         }
Dec 02 05:43:34.826 INFO [stderr] 582 | |     }
Dec 02 05:43:34.826 INFO [stderr]     | |_____^
Dec 02 05:43:34.826 INFO [stderr] 
Dec 02 05:43:34.826 INFO [stderr] warning: function `Equ` should have a snake case name such as `equ`
Dec 02 05:43:34.826 INFO [stderr]    --> src/main.rs:584:2
Dec 02 05:43:34.826 INFO [stderr]     |
Dec 02 05:43:34.826 INFO [stderr] 584 |       fn Equ(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:34.826 INFO [stderr]     |  _____^
Dec 02 05:43:34.826 INFO [stderr] 585 | |         match (a1,a2) {
Dec 02 05:43:34.826 INFO [stderr] 586 | |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:34.826 INFO [stderr] 587 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:34.826 INFO [stderr] 588 | |             _ => panic!("undefined !")
Dec 02 05:43:34.826 INFO [stderr] 589 | |         }
Dec 02 05:43:34.826 INFO [stderr] 590 | |     }
Dec 02 05:43:34.826 INFO [stderr]     | |_____^
Dec 02 05:43:34.826 INFO [stderr] 
Dec 02 05:43:34.826 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t`
Dec 02 05:43:34.826 INFO [stderr]    --> src/main.rs:613:6
Dec 02 05:43:34.826 INFO [stderr]     |
Dec 02 05:43:34.826 INFO [stderr] 613 |     let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:34.826 INFO [stderr]     |         ^^^^^^^^
Dec 02 05:43:34.826 INFO [stderr] 
Dec 02 05:43:36.310 INFO [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.38s
Dec 02 05:43:36.314 INFO [stderr] su: No module specific data is present
Dec 02 05:43:37.080 INFO running `"docker" "inspect" "8ce55a54d10ac2a78b9f2b110fd86550aca424f9c40114a9f536288754cf285b"`
Dec 02 05:43:37.383 INFO running `"docker" "rm" "-f" "8ce55a54d10ac2a78b9f2b110fd86550aca424f9c40114a9f536288754cf285b"`
Dec 02 05:43:37.687 INFO [stdout] 8ce55a54d10ac2a78b9f2b110fd86550aca424f9c40114a9f536288754cf285b
Dec 02 05:43:37.691 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-7/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-7/beta-1.31-5/1.30.1:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1.30.1 test --frozen --no-run" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 02 05:43:38.123 INFO [stdout] d7017454248520b4de0d8e62586e014abc529abe4cabdf1f98409afe0647984e
Dec 02 05:43:38.131 INFO running `"docker" "start" "-a" "d7017454248520b4de0d8e62586e014abc529abe4cabdf1f98409afe0647984e"`
Dec 02 05:43:39.471 INFO [stderr] usermod: no changes
Dec 02 05:43:39.522 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
Dec 02 05:43:39.522 INFO [stderr] disables Cargo from automatically inferring other binary targets.
Dec 02 05:43:39.522 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following
Dec 02 05:43:39.522 INFO [stderr] files will be included as a binary target:
Dec 02 05:43:39.522 INFO [stderr] 
Dec 02 05:43:39.522 INFO [stderr] * /source/src/main.rs
Dec 02 05:43:39.522 INFO [stderr] 
Dec 02 05:43:39.522 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be
Dec 02 05:43:39.522 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself
Dec 02 05:43:39.522 INFO [stderr] and disable this warning by adding `autobins = false` to your [package]
Dec 02 05:43:39.522 INFO [stderr] section. You may also move the files to a location where Cargo would not
Dec 02 05:43:39.522 INFO [stderr] automatically infer them to be a target, such as in subfolders.
Dec 02 05:43:39.522 INFO [stderr] 
Dec 02 05:43:39.522 INFO [stderr] For more information on this warning you can consult
Dec 02 05:43:39.522 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330
Dec 02 05:43:39.522 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`,
Dec 02 05:43:39.522 INFO [stderr] please set bin.path in Cargo.toml
Dec 02 05:43:39.529 INFO [stderr]    Compiling assignmentThree_Rust v0.0.1 (/source)
Dec 02 05:43:40.389 INFO [stderr] warning: unreachable pattern
Dec 02 05:43:40.389 INFO [stderr]    --> src/main.rs:141:4
Dec 02 05:43:40.389 INFO [stderr]     |
Dec 02 05:43:40.389 INFO [stderr] 141 |             _ => panic!("undefined term!")
Dec 02 05:43:40.389 INFO [stderr]     |             ^
Dec 02 05:43:40.389 INFO [stderr]     |
Dec 02 05:43:40.389 INFO [stderr]     = note: #[warn(unreachable_patterns)] on by default
Dec 02 05:43:40.389 INFO [stderr] 
Dec 02 05:43:40.395 INFO [stderr] warning: unused variable: `a1`
Dec 02 05:43:40.395 INFO [stderr]    --> src/main.rs:600:6
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 600 |     let a1 = UntypedTerm::APP{fun: Box::new(f1.clone()), arg: Box::new(i1.clone())};
Dec 02 05:43:40.396 INFO [stderr]     |         ^^ help: consider using `_a1` instead
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr]     = note: #[warn(unused_variables)] on by default
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:156:35
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 156 |             TypedTerm::T_INT{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyInt}],
Dec 02 05:43:40.396 INFO [stderr]     |                                            ^ help: consider using `_v` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:157:36
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 157 |             TypedTerm::T_BOOL{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyBool}],
Dec 02 05:43:40.396 INFO [stderr]     |                                             ^ help: consider using `_v` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:165:25
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 165 |             TypedTerm::T_VAR{ty: t, name: n} => vec![],
Dec 02 05:43:40.396 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `n`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:165:34
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 165 |             TypedTerm::T_VAR{ty: t, name: n} => vec![],
Dec 02 05:43:40.396 INFO [stderr]     |                                           ^ help: consider using `_n` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `o`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:175:33
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 175 |             TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                          ^ help: consider using `_o` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:437:31
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 437 |             TypedTerm::T_VAR{ty: t, name: n} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:441:31
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 441 |             TypedTerm::T_APP{ty: t, fun: f, arg: a} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:447:34
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 447 |                         TypedTerm::T_FUN{ty: t1, param: p1, body: b1} => match *p1.clone() {
Dec 02 05:43:40.396 INFO [stderr]     |                                              ^^ help: consider using `_t1` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:448:35
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 448 |                             TypedTerm::T_VAR{ty: t2, name: n1} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                                  ^^ help: consider using `_t2` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:459:32
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 459 |             TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                   ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:470:31
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 470 |             TypedTerm::T_NOT{ty: t, exp: e} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:477:31
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 477 |             TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:482:30
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 482 |             TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                 ^ help: consider using `_t` instead
Dec 02 05:43:40.396 INFO [stderr] 
Dec 02 05:43:40.396 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.396 INFO [stderr]    --> src/main.rs:487:31
Dec 02 05:43:40.396 INFO [stderr]     |
Dec 02 05:43:40.396 INFO [stderr] 487 |             TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:40.396 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:492:30
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 492 |             TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => {
Dec 02 05:43:40.397 INFO [stderr]     |                                 ^ help: consider using `_t` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:497:30
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 497 |             TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => {
Dec 02 05:43:40.397 INFO [stderr]     |                                 ^ help: consider using `_t` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:502:34
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 502 |                     TypedTerm::T_BOOL{ty: t1, value: v} => if v {v2} else {v3},
Dec 02 05:43:40.397 INFO [stderr]     |                                           ^^ help: consider using `_t1` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:506:31
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 506 |             TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => {
Dec 02 05:43:40.397 INFO [stderr]     |                                  ^ help: consider using `_t` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:511:33
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 511 |                     TypedTerm::T_VAR{ty: t, name: n} => {
Dec 02 05:43:40.397 INFO [stderr]     |                                          ^ help: consider using `_t` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `solutions`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:526:10
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 526 |         let solutions = unify(Constraints);
Dec 02 05:43:40.397 INFO [stderr]     |             ^^^^^^^^^ help: consider using `_solutions` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:536:26
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 536 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1+v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:536:63
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 536 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1+v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:543:26
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 543 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1-v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:543:63
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 543 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1-v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:550:26
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 550 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1*v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:550:63
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 550 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1*v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:557:26
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 557 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1/v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:557:63
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 557 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1/v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.397 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.397 INFO [stderr]    --> src/main.rs:564:26
Dec 02 05:43:40.397 INFO [stderr]     |
Dec 02 05:43:40.397 INFO [stderr] 564 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyInt, value: v1 < v2},
Dec 02 05:43:40.397 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:40.397 INFO [stderr] 
Dec 02 05:43:40.398 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.398 INFO [stderr]    --> src/main.rs:564:63
Dec 02 05:43:40.398 INFO [stderr]     |
Dec 02 05:43:40.398 INFO [stderr] 564 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyInt, value: v1 < v2},
Dec 02 05:43:40.398 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:40.398 INFO [stderr] 
Dec 02 05:43:40.398 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.398 INFO [stderr]    --> src/main.rs:572:27
Dec 02 05:43:40.398 INFO [stderr]     |
Dec 02 05:43:40.398 INFO [stderr] 572 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 && v2},
Dec 02 05:43:40.398 INFO [stderr]     |                                    ^^ help: consider using `_t1` instead
Dec 02 05:43:40.398 INFO [stderr] 
Dec 02 05:43:40.398 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.398 INFO [stderr]    --> src/main.rs:572:65
Dec 02 05:43:40.398 INFO [stderr]     |
Dec 02 05:43:40.398 INFO [stderr] 572 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 && v2},
Dec 02 05:43:40.398 INFO [stderr]     |                                                                          ^^ help: consider using `_t2` instead
Dec 02 05:43:40.398 INFO [stderr] 
Dec 02 05:43:40.399 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.399 INFO [stderr]    --> src/main.rs:579:27
Dec 02 05:43:40.399 INFO [stderr]     |
Dec 02 05:43:40.399 INFO [stderr] 579 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 || v2},
Dec 02 05:43:40.399 INFO [stderr]     |                                    ^^ help: consider using `_t1` instead
Dec 02 05:43:40.399 INFO [stderr] 
Dec 02 05:43:40.399 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.400 INFO [stderr]    --> src/main.rs:579:65
Dec 02 05:43:40.400 INFO [stderr]     |
Dec 02 05:43:40.400 INFO [stderr] 579 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 || v2},
Dec 02 05:43:40.400 INFO [stderr]     |                                                                          ^^ help: consider using `_t2` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.400 INFO [stderr]    --> src/main.rs:586:27
Dec 02 05:43:40.400 INFO [stderr]     |
Dec 02 05:43:40.400 INFO [stderr] 586 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:40.400 INFO [stderr]     |                                    ^^ help: consider using `_t1` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.400 INFO [stderr]    --> src/main.rs:586:65
Dec 02 05:43:40.400 INFO [stderr]     |
Dec 02 05:43:40.400 INFO [stderr] 586 |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:40.400 INFO [stderr]     |                                                                          ^^ help: consider using `_t2` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `t1`
Dec 02 05:43:40.400 INFO [stderr]    --> src/main.rs:587:26
Dec 02 05:43:40.400 INFO [stderr]     |
Dec 02 05:43:40.400 INFO [stderr] 587 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:40.400 INFO [stderr]     |                                   ^^ help: consider using `_t1` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `t2`
Dec 02 05:43:40.400 INFO [stderr]    --> src/main.rs:587:63
Dec 02 05:43:40.400 INFO [stderr]     |
Dec 02 05:43:40.400 INFO [stderr] 587 |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:40.400 INFO [stderr]     |                                                                        ^^ help: consider using `_t2` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:67:36
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 67 |                 TypedTerm::T_INT{ty: t, value: v} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                                ^ help: consider using `_v` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `v`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:68:40
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 68 |                 TypedTerm::T_BOOL{ty: t, value: v} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                                 ^ help: consider using `_v` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `n`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:69:38
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 69 |                 TypedTerm::T_VAR{ty: t, name: n} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                               ^ help: consider using `_n` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `p`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:70:39
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 70 |                 TypedTerm::T_FUN{ty: t, param: p, body: b} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                                ^ help: consider using `_p` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `b`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:70:48
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 70 |                 TypedTerm::T_FUN{ty: t, param: p, body: b} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                                         ^ help: consider using `_b` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `f`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:71:37
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 71 |                 TypedTerm::T_APP{ty: t, fun: f, arg: a} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                              ^ help: consider using `_f` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `a`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:71:45
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 71 |                 TypedTerm::T_APP{ty: t, fun: f, arg: a} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                                      ^ help: consider using `_a` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `o`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:72:37
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 72 |                 TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                              ^ help: consider using `_o` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:72:46
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 72 |                 TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.400 INFO [stderr]    |                                                       ^^ help: consider using `_e1` instead
Dec 02 05:43:40.400 INFO [stderr] 
Dec 02 05:43:40.400 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.400 INFO [stderr]   --> src/main.rs:72:56
Dec 02 05:43:40.400 INFO [stderr]    |
Dec 02 05:43:40.400 INFO [stderr] 72 |                 TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                                 ^^ help: consider using `_e2` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:73:37
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 73 |                 TypedTerm::T_NOT{ty: t, exp: e} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                              ^ help: consider using `_e` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:74:38
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 74 |                 TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                               ^^ help: consider using `_e1` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:74:48
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 74 |                 TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                         ^^ help: consider using `_e2` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:75:37
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 75 |                 TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                              ^^ help: consider using `_e1` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:75:47
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 75 |                 TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                        ^^ help: consider using `_e2` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:76:38
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 76 |                 TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                               ^^ help: consider using `_e1` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:76:48
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 76 |                 TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                         ^^ help: consider using `_e2` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:77:37
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 77 |                 TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                              ^^ help: consider using `_e1` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:77:47
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 77 |                 TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                        ^^ help: consider using `_e2` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:78:37
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 78 |                 TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                              ^^ help: consider using `_e1` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:78:47
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 78 |                 TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                        ^^ help: consider using `_e2` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e3`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:78:57
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 78 |                 TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                                  ^^ help: consider using `_e3` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e1`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:79:38
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 79 |                 TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                               ^^ help: consider using `_e1` instead
Dec 02 05:43:40.401 INFO [stderr] 
Dec 02 05:43:40.401 INFO [stderr] warning: unused variable: `e2`
Dec 02 05:43:40.401 INFO [stderr]   --> src/main.rs:79:48
Dec 02 05:43:40.401 INFO [stderr]    |
Dec 02 05:43:40.401 INFO [stderr] 79 |                 TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:40.401 INFO [stderr]    |                                                         ^^ help: consider using `_e2` instead
Dec 02 05:43:40.402 INFO [stderr] 
Dec 02 05:43:40.402 INFO [stderr] warning: unused variable: `e3`
Dec 02 05:43:40.402 INFO [stderr]   --> src/main.rs:79:58
Dec 02 05:43:40.402 INFO [stderr]    |
Dec 02 05:43:40.402 INFO [stderr] 79 |                 TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t,
Dec 02 05:43:40.402 INFO [stderr]    |                                                                   ^^ help: consider using `_e3` instead
Dec 02 05:43:40.402 INFO [stderr] 
Dec 02 05:43:40.419 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:40.419 INFO [stderr]    --> src/main.rs:613:6
Dec 02 05:43:40.419 INFO [stderr]     |
Dec 02 05:43:40.419 INFO [stderr] 613 |     let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.419 INFO [stderr]     |         ----^^^^
Dec 02 05:43:40.419 INFO [stderr]     |         |
Dec 02 05:43:40.419 INFO [stderr]     |         help: remove this `mut`
Dec 02 05:43:40.419 INFO [stderr]     |
Dec 02 05:43:40.419 INFO [stderr]     = note: #[warn(unused_mut)] on by default
Dec 02 05:43:40.419 INFO [stderr] 
Dec 02 05:43:40.452 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:40.452 INFO [stderr]    --> src/main.rs:334:8
Dec 02 05:43:40.452 INFO [stderr]     |
Dec 02 05:43:40.452 INFO [stderr] 334 |             let mut updateConstraints = solutionOne.applyToSet(&mut vec1);
Dec 02 05:43:40.452 INFO [stderr]     |                 ----^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.452 INFO [stderr]     |                 |
Dec 02 05:43:40.452 INFO [stderr]     |                 help: remove this `mut`
Dec 02 05:43:40.452 INFO [stderr] 
Dec 02 05:43:40.455 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:40.455 INFO [stderr]    --> src/main.rs:398:7
Dec 02 05:43:40.455 INFO [stderr]     |
Dec 02 05:43:40.455 INFO [stderr] 398 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.455 INFO [stderr]     |             ----^^^^
Dec 02 05:43:40.455 INFO [stderr]     |             |
Dec 02 05:43:40.455 INFO [stderr]     |             help: remove this `mut`
Dec 02 05:43:40.455 INFO [stderr] 
Dec 02 05:43:40.458 INFO [stderr] warning: variable does not need to be mutable
Dec 02 05:43:40.458 INFO [stderr]    --> src/main.rs:523:7
Dec 02 05:43:40.458 INFO [stderr]     |
Dec 02 05:43:40.458 INFO [stderr] 523 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.458 INFO [stderr]     |             ----^^^^
Dec 02 05:43:40.458 INFO [stderr]     |             |
Dec 02 05:43:40.458 INFO [stderr]     |             help: remove this `mut`
Dec 02 05:43:40.458 INFO [stderr] 
Dec 02 05:43:40.473 INFO [stderr] warning: structure field `ParamTy` should have a snake case name such as `param_ty`
Dec 02 05:43:40.473 INFO [stderr]   --> src/main.rs:33:9
Dec 02 05:43:40.473 INFO [stderr]    |
Dec 02 05:43:40.473 INFO [stderr] 33 |         TyFun{ParamTy: Box<Type>, ReturnTy: Box<Type>}
Dec 02 05:43:40.473 INFO [stderr]    |               ^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.473 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr]    = note: #[warn(non_snake_case)] on by default
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: structure field `ReturnTy` should have a snake case name such as `return_ty`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:33:29
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr] 33 |         TyFun{ParamTy: Box<Type>, ReturnTy: Box<Type>}
Dec 02 05:43:40.475 INFO [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: function `freshVar` should have a snake case name such as `fresh_var`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:37:2
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr] 37 |       fn freshVar(v: &mut u32) -> Type {
Dec 02 05:43:40.475 INFO [stderr]    |  _____^
Dec 02 05:43:40.475 INFO [stderr] 38 | |         *v+=1;
Dec 02 05:43:40.475 INFO [stderr] 39 | |         Type::TyVar{num: *v}
Dec 02 05:43:40.475 INFO [stderr] 40 | |     } 
Dec 02 05:43:40.475 INFO [stderr]    | |_____^
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: variant `T_INT` should have a camel case name such as `TInt`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:46:3
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr] 46 |         T_INT{ty: Type, value: u32},
Dec 02 05:43:40.475 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr]    = note: #[warn(non_camel_case_types)] on by default
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: variant `T_BOOL` should have a camel case name such as `TBool`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:47:6
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr] 47 |         T_BOOL{ty: Type, value: bool},
Dec 02 05:43:40.475 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: variant `T_VAR` should have a camel case name such as `TVar`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:48:6
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr] 48 |         T_VAR{ty: Type, name: char},
Dec 02 05:43:40.475 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: variant `T_FUN` should have a camel case name such as `TFun`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:49:6
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.475 INFO [stderr] 49 |         T_FUN{ty: Type, param: Box<TypedTerm>, body: Box<TypedTerm>},
Dec 02 05:43:40.475 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.475 INFO [stderr] 
Dec 02 05:43:40.475 INFO [stderr] warning: variant `T_Closure` should have a camel case name such as `TClosure`
Dec 02 05:43:40.475 INFO [stderr]   --> src/main.rs:50:6
Dec 02 05:43:40.475 INFO [stderr]    |
Dec 02 05:43:40.476 INFO [stderr] 50 |         T_Closure{fun: Box<TypedTerm>, env: InterpEnv},
Dec 02 05:43:40.476 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.476 INFO [stderr] 
Dec 02 05:43:40.476 INFO [stderr] warning: variant `T_APP` should have a camel case name such as `TApp`
Dec 02 05:43:40.476 INFO [stderr]   --> src/main.rs:51:6
Dec 02 05:43:40.476 INFO [stderr]    |
Dec 02 05:43:40.476 INFO [stderr] 51 |         T_APP{ty: Type, fun: Box<TypedTerm>, arg: Box<TypedTerm>},
Dec 02 05:43:40.476 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.476 INFO [stderr] 
Dec 02 05:43:40.476 INFO [stderr] warning: variant `T_CALC` should have a camel case name such as `TCalc`
Dec 02 05:43:40.476 INFO [stderr]   --> src/main.rs:52:6
Dec 02 05:43:40.476 INFO [stderr]    |
Dec 02 05:43:40.476 INFO [stderr] 52 |         T_CALC{ty: Type, op: char, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:40.476 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.476 INFO [stderr] 
Dec 02 05:43:40.476 INFO [stderr] warning: variant `T_NOT` should have a camel case name such as `TNot`
Dec 02 05:43:40.476 INFO [stderr]   --> src/main.rs:53:6
Dec 02 05:43:40.476 INFO [stderr]    |
Dec 02 05:43:40.476 INFO [stderr] 53 |         T_NOT{ty: Type, exp: Box<TypedTerm>},
Dec 02 05:43:40.476 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.476 INFO [stderr] 
Dec 02 05:43:40.476 INFO [stderr] warning: variant `T_AND` should have a camel case name such as `TAnd`
Dec 02 05:43:40.476 INFO [stderr]   --> src/main.rs:54:6
Dec 02 05:43:40.476 INFO [stderr]    |
Dec 02 05:43:40.476 INFO [stderr] 54 |         T_AND{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:40.476 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.476 INFO [stderr] 
Dec 02 05:43:40.476 INFO [stderr] warning: variant `T_OR` should have a camel case name such as `TOr`
Dec 02 05:43:40.476 INFO [stderr]   --> src/main.rs:55:6
Dec 02 05:43:40.476 INFO [stderr]    |
Dec 02 05:43:40.476 INFO [stderr] 55 |         T_OR{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:40.476 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.476 INFO [stderr] 
Dec 02 05:43:40.476 INFO [stderr] warning: variant `T_EQU` should have a camel case name such as `TEqu`
Dec 02 05:43:40.479 INFO [stderr]   --> src/main.rs:56:6
Dec 02 05:43:40.479 INFO [stderr]    |
Dec 02 05:43:40.479 INFO [stderr] 56 |         T_EQU{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:40.479 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.479 INFO [stderr] 
Dec 02 05:43:40.479 INFO [stderr] warning: variant `T_LT` should have a camel case name such as `TLt`
Dec 02 05:43:40.479 INFO [stderr]   --> src/main.rs:57:6
Dec 02 05:43:40.479 INFO [stderr]    |
Dec 02 05:43:40.479 INFO [stderr] 57 |         T_LT{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>},
Dec 02 05:43:40.479 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.479 INFO [stderr] 
Dec 02 05:43:40.479 INFO [stderr] warning: variant `T_IF` should have a camel case name such as `TIf`
Dec 02 05:43:40.479 INFO [stderr]   --> src/main.rs:58:6
Dec 02 05:43:40.479 INFO [stderr]    |
Dec 02 05:43:40.479 INFO [stderr] 58 |         T_IF{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>, exp3: Box<TypedTerm>},
Dec 02 05:43:40.479 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.479 INFO [stderr] 
Dec 02 05:43:40.479 INFO [stderr] warning: variant `T_LET` should have a camel case name such as `TLet`
Dec 02 05:43:40.479 INFO [stderr]   --> src/main.rs:59:6
Dec 02 05:43:40.479 INFO [stderr]    |
Dec 02 05:43:40.479 INFO [stderr] 59 |         T_LET{ty: Type, exp1: Box<TypedTerm>, exp2: Box<TypedTerm>, exp3: Box<TypedTerm>}
Dec 02 05:43:40.479 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.479 INFO [stderr] 
Dec 02 05:43:40.479 INFO [stderr] warning: method `getType` should have a snake case name such as `get_type`
Dec 02 05:43:40.479 INFO [stderr]   --> src/main.rs:65:3
Dec 02 05:43:40.479 INFO [stderr]    |
Dec 02 05:43:40.479 INFO [stderr] 65 |           fn getType(self) -> Type {
Dec 02 05:43:40.479 INFO [stderr]    |  _________^
Dec 02 05:43:40.479 INFO [stderr] 66 | |             match self {
Dec 02 05:43:40.479 INFO [stderr] 67 | |                 TypedTerm::T_INT{ty: t, value: v} => t,
Dec 02 05:43:40.479 INFO [stderr] 68 | |                 TypedTerm::T_BOOL{ty: t, value: v} => t,
Dec 02 05:43:40.479 INFO [stderr] ...  |
Dec 02 05:43:40.479 INFO [stderr] 81 | |             }
Dec 02 05:43:40.479 INFO [stderr] 82 | |         }
Dec 02 05:43:40.479 INFO [stderr]    | |_________^
Dec 02 05:43:40.479 INFO [stderr] 
Dec 02 05:43:40.479 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env`
Dec 02 05:43:40.479 INFO [stderr]   --> src/main.rs:88:3
Dec 02 05:43:40.479 INFO [stderr]    |
Dec 02 05:43:40.479 INFO [stderr] 88 |         Env: HashMap<char,Type>
Dec 02 05:43:40.479 INFO [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.479 INFO [stderr] 
Dec 02 05:43:40.479 INFO [stderr] warning: variable `varNum` should have a snake case name such as `var_num`
Dec 02 05:43:40.479 INFO [stderr]    --> src/main.rs:107:52
Dec 02 05:43:40.479 INFO [stderr]     |
Dec 02 05:43:40.479 INFO [stderr] 107 |     fn annotate(term: UntypedTerm, mut tenv: TypeEnv, varNum: &mut u32) -> TypedTerm {
Dec 02 05:43:40.480 INFO [stderr]     |                                                       ^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:113:9
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 113 |                 let paramTy = freshVar(varNum);
Dec 02 05:43:40.480 INFO [stderr]     |                     ^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:114:9
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 114 |                 let paramTy1 = paramTy.clone();
Dec 02 05:43:40.480 INFO [stderr]     |                     ^^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:116:9
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 116 |                 let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: p};                
Dec 02 05:43:40.480 INFO [stderr]     |                     ^^^^^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:134:12
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 134 |                 let paramTy = freshVar(varNum);
Dec 02 05:43:40.480 INFO [stderr]     |                     ^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:135:9
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 135 |                 let paramTy1 = paramTy.clone();
Dec 02 05:43:40.480 INFO [stderr]     |                     ^^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:137:9
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 137 |                 let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: e1};
Dec 02 05:43:40.480 INFO [stderr]     |                     ^^^^^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: structure field `typeA` should have a snake case name such as `type_a`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:149:3
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 149 |         typeA: Type,
Dec 02 05:43:40.480 INFO [stderr]     |         ^^^^^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: structure field `typeB` should have a snake case name such as `type_b`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:150:3
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 150 |         typeB: Type
Dec 02 05:43:40.480 INFO [stderr]     |         ^^^^^^^^^^^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: method `fromPair` should have a snake case name such as `from_pair`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:277:3
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 277 |           fn fromPair(tvar: u32, ty: Type) -> Substitution {
Dec 02 05:43:40.480 INFO [stderr]     |  _________^
Dec 02 05:43:40.480 INFO [stderr] 278 | |             let mut s1 = HashMap::new();
Dec 02 05:43:40.480 INFO [stderr] 279 | |             s1.insert(tvar, ty);
Dec 02 05:43:40.480 INFO [stderr] 280 | |             Substitution{solutions: s1}
Dec 02 05:43:40.480 INFO [stderr] 281 | |         }
Dec 02 05:43:40.480 INFO [stderr]     | |_________^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.480 INFO [stderr] warning: method `applyToSet` should have a snake case name such as `apply_to_set`
Dec 02 05:43:40.480 INFO [stderr]    --> src/main.rs:284:3
Dec 02 05:43:40.480 INFO [stderr]     |
Dec 02 05:43:40.480 INFO [stderr] 284 |           fn applyToSet (&self,constraints: &mut Vec<Constraint>) -> Vec<Constraint> {
Dec 02 05:43:40.480 INFO [stderr]     |  _________^
Dec 02 05:43:40.480 INFO [stderr] 285 | |             for elem in constraints.iter_mut() {
Dec 02 05:43:40.480 INFO [stderr] 286 | |                 //traverse target constraint set and update each type in all elements. 
Dec 02 05:43:40.480 INFO [stderr] 287 | |                 *elem = Constraint{typeA: Self::applyOneType(&self, elem.typeA.clone()), typeB: Self::applyOneType(&self,elem.typeB.clone())}
Dec 02 05:43:40.480 INFO [stderr] 288 | |             }
Dec 02 05:43:40.480 INFO [stderr] 289 | |             constraints.clone()
Dec 02 05:43:40.480 INFO [stderr] 290 | |         }
Dec 02 05:43:40.480 INFO [stderr]     | |_________^
Dec 02 05:43:40.480 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: method `applyOneType` should have a snake case name such as `apply_one_type`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:293:3
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 293 |           fn applyOneType(&self, ty: Type) -> Type {
Dec 02 05:43:40.484 INFO [stderr]     |  _________^
Dec 02 05:43:40.484 INFO [stderr] 294 | |             match ty {
Dec 02 05:43:40.484 INFO [stderr] 295 | |                 Type::TyInt => ty,
Dec 02 05:43:40.484 INFO [stderr] 296 | |                 Type::TyBool => ty,
Dec 02 05:43:40.484 INFO [stderr] ...   |
Dec 02 05:43:40.484 INFO [stderr] 305 | |             }
Dec 02 05:43:40.484 INFO [stderr] 306 | |         }
Dec 02 05:43:40.484 INFO [stderr]     | |_________^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: variable `solutionType` should have a snake case name such as `solution_type`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:311:8
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 311 |             for solutionType in self.solutions.values_mut() {
Dec 02 05:43:40.484 INFO [stderr]     |                 ^^^^^^^^^^^^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: variable `solutionOne` should have a snake case name such as `solution_one`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:330:8
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 330 |             let mut solutionOne = unifyOne(constraints[0].clone());
Dec 02 05:43:40.484 INFO [stderr]     |                 ^^^^^^^^^^^^^^^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: variable `updateConstraints` should have a snake case name such as `update_constraints`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:334:8
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 334 |             let mut updateConstraints = solutionOne.applyToSet(&mut vec1);
Dec 02 05:43:40.484 INFO [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: variable `solutionRest` should have a snake case name such as `solution_rest`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:336:8
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 336 |             let solutionRest = unify(updateConstraints);
Dec 02 05:43:40.484 INFO [stderr]     |                 ^^^^^^^^^^^^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: function `unifyOne` should have a snake case name such as `unify_one`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:343:2
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 343 |       fn unifyOne(constraint: Constraint) -> Substitution {
Dec 02 05:43:40.484 INFO [stderr]     |  _____^
Dec 02 05:43:40.484 INFO [stderr] 344 | |         match (constraint.typeA, constraint.typeB) {
Dec 02 05:43:40.484 INFO [stderr] 345 | |             (Type::TyInt, Type:: TyInt) => Substitution{solutions: HashMap::new()},
Dec 02 05:43:40.484 INFO [stderr] 346 | |             (Type::TyBool, Type:: TyBool) => Substitution{solutions: HashMap::new()},
Dec 02 05:43:40.484 INFO [stderr] ...   |
Dec 02 05:43:40.484 INFO [stderr] 352 | |         }
Dec 02 05:43:40.484 INFO [stderr] 353 | |     }
Dec 02 05:43:40.484 INFO [stderr]     | |_____^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: function `unifyVar` should have a snake case name such as `unify_var`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:356:2
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 356 |       fn unifyVar(tvar: u32, ty: Type) -> Substitution {
Dec 02 05:43:40.484 INFO [stderr]     |  _____^
Dec 02 05:43:40.484 INFO [stderr] 357 | |         match ty {
Dec 02 05:43:40.484 INFO [stderr] 358 | |             //do nothing if they are the same type variable
Dec 02 05:43:40.484 INFO [stderr] 359 | |             Type::TyVar{num: n} => {
Dec 02 05:43:40.484 INFO [stderr] ...   |
Dec 02 05:43:40.484 INFO [stderr] 383 | |         }
Dec 02 05:43:40.484 INFO [stderr] 384 | |     }
Dec 02 05:43:40.484 INFO [stderr]     | |_____^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: function `typeInference` should have a snake case name such as `type_inference`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:397:2
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 397 |       fn typeInference(term: UntypedTerm) {
Dec 02 05:43:40.484 INFO [stderr]     |  _____^
Dec 02 05:43:40.484 INFO [stderr] 398 | |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.484 INFO [stderr] 399 | |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:40.484 INFO [stderr] 400 | |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:40.484 INFO [stderr] ...   |
Dec 02 05:43:40.484 INFO [stderr] 408 | |         println!(" ");
Dec 02 05:43:40.484 INFO [stderr] 409 | |     }
Dec 02 05:43:40.484 INFO [stderr]     | |_____^
Dec 02 05:43:40.484 INFO [stderr] 
Dec 02 05:43:40.484 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t`
Dec 02 05:43:40.484 INFO [stderr]    --> src/main.rs:398:7
Dec 02 05:43:40.484 INFO [stderr]     |
Dec 02 05:43:40.484 INFO [stderr] 398 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.484 INFO [stderr]     |             ^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:399:10
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 399 |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:40.485 INFO [stderr]     |             ^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:400:10
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 400 |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:40.485 INFO [stderr]     |             ^^^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:415:3
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 415 |         Env: HashMap<char,TypedTerm>
Dec 02 05:43:40.485 INFO [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: function `Interp` should have a snake case name such as `interp`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:433:2
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 433 |       fn Interp(term: TypedTerm, env: &mut InterpEnv) -> TypedTerm {
Dec 02 05:43:40.485 INFO [stderr]     |  _____^
Dec 02 05:43:40.485 INFO [stderr] 434 | |         match term {
Dec 02 05:43:40.485 INFO [stderr] 435 | |             TypedTerm::T_INT{ty: t, value: v} => TypedTerm::T_INT{ty: t, value: v},
Dec 02 05:43:40.485 INFO [stderr] 436 | |             TypedTerm::T_BOOL{ty: t, value: v} => TypedTerm::T_BOOL{ty: t, value: v},
Dec 02 05:43:40.485 INFO [stderr] ...   |
Dec 02 05:43:40.485 INFO [stderr] 519 | |         }
Dec 02 05:43:40.485 INFO [stderr] 520 | |     }
Dec 02 05:43:40.485 INFO [stderr]     | |_____^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:443:15
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 443 |                 let mut EnvNew = InterpEnv{Env: HashMap::new()};
Dec 02 05:43:40.485 INFO [stderr]     |                     ^^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:508:15
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 508 |                 let mut EnvNew = InterpEnv{Env: HashMap::new()};
Dec 02 05:43:40.485 INFO [stderr]     |                     ^^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: function `InterpE` should have a snake case name such as `interp_e`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:522:2
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 522 |       fn InterpE(term: UntypedTerm) {
Dec 02 05:43:40.485 INFO [stderr]     |  _____^
Dec 02 05:43:40.485 INFO [stderr] 523 | |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.485 INFO [stderr] 524 | |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:40.485 INFO [stderr] 525 | |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:40.485 INFO [stderr] ...   |
Dec 02 05:43:40.485 INFO [stderr] 530 | |         println!("{:?}",Interp(TypedTerm, &mut EnvI));
Dec 02 05:43:40.485 INFO [stderr] 531 | |     }
Dec 02 05:43:40.485 INFO [stderr]     | |_____^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:523:7
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 523 |         let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.485 INFO [stderr]     |             ^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:524:10
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 524 |         let TypedTerm = annotate(term, EnvT, &mut 0);
Dec 02 05:43:40.485 INFO [stderr]     |             ^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:525:10
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 525 |         let Constraints = collect(TypedTerm.clone());
Dec 02 05:43:40.485 INFO [stderr]     |             ^^^^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: variable `EnvI` should have a snake case name such as `env_i`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:528:10
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 528 |         let mut EnvI = InterpEnv{Env: HashMap::new()};
Dec 02 05:43:40.485 INFO [stderr]     |             ^^^^^^^^
Dec 02 05:43:40.485 INFO [stderr] 
Dec 02 05:43:40.485 INFO [stderr] warning: function `Add` should have a snake case name such as `add`
Dec 02 05:43:40.485 INFO [stderr]    --> src/main.rs:534:2
Dec 02 05:43:40.485 INFO [stderr]     |
Dec 02 05:43:40.485 INFO [stderr] 534 |       fn Add(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.485 INFO [stderr]     |  _____^
Dec 02 05:43:40.485 INFO [stderr] 535 | |         match (a1,a2) {
Dec 02 05:43:40.485 INFO [stderr] 536 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1+v2},
Dec 02 05:43:40.485 INFO [stderr] 537 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 538 | |         }
Dec 02 05:43:40.486 INFO [stderr] 539 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `Minus` should have a snake case name such as `minus`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:541:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 541 |       fn Minus(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 542 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 543 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1-v2},
Dec 02 05:43:40.486 INFO [stderr] 544 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 545 | |         }
Dec 02 05:43:40.486 INFO [stderr] 546 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `Mul` should have a snake case name such as `mul`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:548:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 548 |       fn Mul(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 549 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 550 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1*v2},
Dec 02 05:43:40.486 INFO [stderr] 551 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 552 | |         }
Dec 02 05:43:40.486 INFO [stderr] 553 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `Div` should have a snake case name such as `div`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:555:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 555 |       fn Div(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 556 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 557 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_INT{ty: Type::TyInt, value: v1/v2},
Dec 02 05:43:40.486 INFO [stderr] 558 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 559 | |         }
Dec 02 05:43:40.486 INFO [stderr] 560 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `Lt` should have a snake case name such as `lt`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:562:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 562 |       fn Lt(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 563 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 564 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyInt, value: v1 < v2},
Dec 02 05:43:40.486 INFO [stderr] 565 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 566 | |         }
Dec 02 05:43:40.486 INFO [stderr] 567 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `And` should have a snake case name such as `and`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:570:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 570 |       fn And(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 571 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 572 | |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 && v2},
Dec 02 05:43:40.486 INFO [stderr] 573 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 574 | |         }
Dec 02 05:43:40.486 INFO [stderr] 575 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `Or` should have a snake case name such as `or`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:577:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 577 |       fn Or(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 578 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 579 | |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 || v2},
Dec 02 05:43:40.486 INFO [stderr] 580 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 581 | |         }
Dec 02 05:43:40.486 INFO [stderr] 582 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.486 INFO [stderr] warning: function `Equ` should have a snake case name such as `equ`
Dec 02 05:43:40.486 INFO [stderr]    --> src/main.rs:584:2
Dec 02 05:43:40.486 INFO [stderr]     |
Dec 02 05:43:40.486 INFO [stderr] 584 |       fn Equ(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm {
Dec 02 05:43:40.486 INFO [stderr]     |  _____^
Dec 02 05:43:40.486 INFO [stderr] 585 | |         match (a1,a2) {
Dec 02 05:43:40.486 INFO [stderr] 586 | |             (TypedTerm::T_BOOL{ty: t1, value: v1}, TypedTerm::T_BOOL{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:40.486 INFO [stderr] 587 | |             (TypedTerm::T_INT{ty: t1, value: v1}, TypedTerm::T_INT{ty: t2, value: v2}) => TypedTerm::T_BOOL{ty: Type::TyBool, value: v1 == v2},
Dec 02 05:43:40.486 INFO [stderr] 588 | |             _ => panic!("undefined !")
Dec 02 05:43:40.486 INFO [stderr] 589 | |         }
Dec 02 05:43:40.486 INFO [stderr] 590 | |     }
Dec 02 05:43:40.486 INFO [stderr]     | |_____^
Dec 02 05:43:40.486 INFO [stderr] 
Dec 02 05:43:40.487 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t`
Dec 02 05:43:40.487 INFO [stderr]    --> src/main.rs:613:6
Dec 02 05:43:40.487 INFO [stderr]     |
Dec 02 05:43:40.487 INFO [stderr] 613 |     let mut EnvT = TypeEnv{Env: HashMap::new()};
Dec 02 05:43:40.487 INFO [stderr]     |         ^^^^^^^^
Dec 02 05:43:40.487 INFO [stderr] 
Dec 02 05:43:41.018 INFO [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.51s
Dec 02 05:43:41.019 INFO [stderr] su: No module specific data is present
Dec 02 05:43:41.671 INFO running `"docker" "inspect" "d7017454248520b4de0d8e62586e014abc529abe4cabdf1f98409afe0647984e"`
Dec 02 05:43:42.043 INFO running `"docker" "rm" "-f" "d7017454248520b4de0d8e62586e014abc529abe4cabdf1f98409afe0647984e"`
Dec 02 05:43:42.318 INFO [stdout] d7017454248520b4de0d8e62586e014abc529abe4cabdf1f98409afe0647984e
Dec 02 05:43:42.325 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-7/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-7/beta-1.31-5/1.30.1:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1.30.1 test --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 02 05:43:42.712 INFO [stdout] 9d03a3ace24f8c7c3ea9cdca0f69e87b8ea28a44e93a8b9ba56e3bf680bedc13
Dec 02 05:43:42.714 INFO running `"docker" "start" "-a" "9d03a3ace24f8c7c3ea9cdca0f69e87b8ea28a44e93a8b9ba56e3bf680bedc13"`
Dec 02 05:43:44.147 INFO [stderr] usermod: no changes
Dec 02 05:43:44.229 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
Dec 02 05:43:44.229 INFO [stderr] disables Cargo from automatically inferring other binary targets.
Dec 02 05:43:44.229 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following
Dec 02 05:43:44.229 INFO [stderr] files will be included as a binary target:
Dec 02 05:43:44.229 INFO [stderr] 
Dec 02 05:43:44.229 INFO [stderr] * /source/src/main.rs
Dec 02 05:43:44.229 INFO [stderr] 
Dec 02 05:43:44.229 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be
Dec 02 05:43:44.229 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself
Dec 02 05:43:44.229 INFO [stderr] and disable this warning by adding `autobins = false` to your [package]
Dec 02 05:43:44.229 INFO [stderr] section. You may also move the files to a location where Cargo would not
Dec 02 05:43:44.229 INFO [stderr] automatically infer them to be a target, such as in subfolders.
Dec 02 05:43:44.229 INFO [stderr] 
Dec 02 05:43:44.229 INFO [stderr] For more information on this warning you can consult
Dec 02 05:43:44.229 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330
Dec 02 05:43:44.229 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`,
Dec 02 05:43:44.229 INFO [stderr] please set bin.path in Cargo.toml
Dec 02 05:43:44.229 INFO [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.05s
Dec 02 05:43:44.251 INFO [stderr]      Running /target/debug/deps/hello_world-ea03d4c97cfd6721
Dec 02 05:43:44.263 INFO [stdout] 
Dec 02 05:43:44.263 INFO [stdout] running 0 tests
Dec 02 05:43:44.263 INFO [stdout] 
Dec 02 05:43:44.263 INFO [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Dec 02 05:43:44.263 INFO [stdout] 
Dec 02 05:43:44.275 INFO [stderr] su: No module specific data is present
Dec 02 05:43:44.938 INFO running `"docker" "inspect" "9d03a3ace24f8c7c3ea9cdca0f69e87b8ea28a44e93a8b9ba56e3bf680bedc13"`
Dec 02 05:43:45.069 INFO running `"docker" "rm" "-f" "9d03a3ace24f8c7c3ea9cdca0f69e87b8ea28a44e93a8b9ba56e3bf680bedc13"`
Dec 02 05:43:45.295 INFO [stdout] 9d03a3ace24f8c7c3ea9cdca0f69e87b8ea28a44e93a8b9ba56e3bf680bedc13
