Dec 06 12:03:53.282 INFO testing MaXiaoye/CAS706_assignment3_Rust against try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468 for pr-56514 Dec 06 12:03:53.282 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-1/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-1/pr-56514/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/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 +6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468-alt build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 12:03:53.779 INFO [stdout] 5be30e33dd54a0cea365751bd4df4d438839bbb93392c7bf8c31cc289ed6dd03 Dec 06 12:03:53.779 INFO running `"docker" "start" "-a" "5be30e33dd54a0cea365751bd4df4d438839bbb93392c7bf8c31cc289ed6dd03"` Dec 06 12:03:55.171 INFO [stderr] usermod: no changes Dec 06 12:03:55.216 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently Dec 06 12:03:55.216 INFO [stderr] disables Cargo from automatically inferring other binary targets. Dec 06 12:03:55.216 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Dec 06 12:03:55.216 INFO [stderr] files will be included as a binary target: Dec 06 12:03:55.216 INFO [stderr] Dec 06 12:03:55.216 INFO [stderr] * /source/src/main.rs Dec 06 12:03:55.216 INFO [stderr] Dec 06 12:03:55.216 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Dec 06 12:03:55.216 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself Dec 06 12:03:55.216 INFO [stderr] and disable this warning by adding `autobins = false` to your [package] Dec 06 12:03:55.216 INFO [stderr] section. You may also move the files to a location where Cargo would not Dec 06 12:03:55.216 INFO [stderr] automatically infer them to be a target, such as in subfolders. Dec 06 12:03:55.216 INFO [stderr] Dec 06 12:03:55.216 INFO [stderr] For more information on this warning you can consult Dec 06 12:03:55.216 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Dec 06 12:03:55.216 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`, Dec 06 12:03:55.216 INFO [stderr] please set bin.path in Cargo.toml Dec 06 12:03:55.216 INFO [stderr] Compiling assignmentThree_Rust v0.0.1 (/source) Dec 06 12:03:55.739 INFO [stderr] warning: unreachable pattern Dec 06 12:03:55.739 INFO [stderr] --> src/main.rs:141:4 Dec 06 12:03:55.739 INFO [stderr] | Dec 06 12:03:55.739 INFO [stderr] 141 | _ => panic!("undefined term!") Dec 06 12:03:55.739 INFO [stderr] | ^ Dec 06 12:03:55.739 INFO [stderr] | Dec 06 12:03:55.739 INFO [stderr] = note: #[warn(unreachable_patterns)] on by default Dec 06 12:03:55.739 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `a1` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:600:6 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 600 | let a1 = UntypedTerm::APP{fun: Box::new(f1.clone()), arg: Box::new(i1.clone())}; Dec 06 12:03:55.741 INFO [stderr] | ^^ help: consider using `_a1` instead Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:156:35 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 156 | TypedTerm::T_INT{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyInt}], Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:157:36 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 157 | TypedTerm::T_BOOL{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyBool}], Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:165:25 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 165 | TypedTerm::T_VAR{ty: t, name: n} => vec![], Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `n` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:165:34 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 165 | TypedTerm::T_VAR{ty: t, name: n} => vec![], Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_n` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `o` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:175:33 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 175 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => { Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_o` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:437:31 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 437 | TypedTerm::T_VAR{ty: t, name: n} => { Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:441:31 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 441 | TypedTerm::T_APP{ty: t, fun: f, arg: a} => { Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:447:34 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 447 | TypedTerm::T_FUN{ty: t1, param: p1, body: b1} => match *p1.clone() { Dec 06 12:03:55.741 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:448:35 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 448 | TypedTerm::T_VAR{ty: t2, name: n1} => { Dec 06 12:03:55.741 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:459:32 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 459 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => { Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:470:31 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 470 | TypedTerm::T_NOT{ty: t, exp: e} => { Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.741 INFO [stderr] Dec 06 12:03:55.741 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.741 INFO [stderr] --> src/main.rs:477:31 Dec 06 12:03:55.741 INFO [stderr] | Dec 06 12:03:55.741 INFO [stderr] 477 | TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:55.741 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.742 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.742 INFO [stderr] --> src/main.rs:482:30 Dec 06 12:03:55.742 INFO [stderr] | Dec 06 12:03:55.742 INFO [stderr] 482 | TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:55.742 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.742 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.742 INFO [stderr] --> src/main.rs:487:31 Dec 06 12:03:55.742 INFO [stderr] | Dec 06 12:03:55.742 INFO [stderr] 487 | TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:55.742 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.742 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.742 INFO [stderr] --> src/main.rs:492:30 Dec 06 12:03:55.742 INFO [stderr] | Dec 06 12:03:55.742 INFO [stderr] 492 | TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:55.742 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.742 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.742 INFO [stderr] --> src/main.rs:497:30 Dec 06 12:03:55.742 INFO [stderr] | Dec 06 12:03:55.742 INFO [stderr] 497 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => { Dec 06 12:03:55.742 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.742 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.742 INFO [stderr] --> src/main.rs:502:34 Dec 06 12:03:55.742 INFO [stderr] | Dec 06 12:03:55.742 INFO [stderr] 502 | TypedTerm::T_BOOL{ty: t1, value: v} => if v {v2} else {v3}, Dec 06 12:03:55.742 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.742 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.742 INFO [stderr] --> src/main.rs:506:31 Dec 06 12:03:55.742 INFO [stderr] | Dec 06 12:03:55.742 INFO [stderr] 506 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => { Dec 06 12:03:55.742 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.742 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:511:33 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 INFO [stderr] 511 | TypedTerm::T_VAR{ty: t, name: n} => { Dec 06 12:03:55.743 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `solutions` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:526:10 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 INFO [stderr] 526 | let solutions = unify(Constraints); Dec 06 12:03:55.743 INFO [stderr] | ^^^^^^^^^ help: consider using `_solutions` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:536:26 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:536:63 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:543:26 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:543:63 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:550:26 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:550:63 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:557:26 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.743 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 06 12:03:55.743 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.743 INFO [stderr] Dec 06 12:03:55.743 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.743 INFO [stderr] --> src/main.rs:557:63 Dec 06 12:03:55.743 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:564:26 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:564:63 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:572:27 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:572:65 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:579:27 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:579:65 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:586:27 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:586:65 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:587:26 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:587:63 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 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 06 12:03:55.744 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:67:36 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 INFO [stderr] 67 | TypedTerm::T_INT{ty: t, value: v} => t, Dec 06 12:03:55.744 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:68:40 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 INFO [stderr] 68 | TypedTerm::T_BOOL{ty: t, value: v} => t, Dec 06 12:03:55.744 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `n` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:69:38 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.744 INFO [stderr] 69 | TypedTerm::T_VAR{ty: t, name: n} => t, Dec 06 12:03:55.744 INFO [stderr] | ^ help: consider using `_n` instead Dec 06 12:03:55.744 INFO [stderr] Dec 06 12:03:55.744 INFO [stderr] warning: unused variable: `p` Dec 06 12:03:55.744 INFO [stderr] --> src/main.rs:70:39 Dec 06 12:03:55.744 INFO [stderr] | Dec 06 12:03:55.745 INFO [stderr] 70 | TypedTerm::T_FUN{ty: t, param: p, body: b} => t, Dec 06 12:03:55.745 INFO [stderr] | ^ help: consider using `_p` instead Dec 06 12:03:55.745 INFO [stderr] Dec 06 12:03:55.745 INFO [stderr] warning: unused variable: `b` Dec 06 12:03:55.745 INFO [stderr] --> src/main.rs:70:48 Dec 06 12:03:55.745 INFO [stderr] | Dec 06 12:03:55.745 INFO [stderr] 70 | TypedTerm::T_FUN{ty: t, param: p, body: b} => t, Dec 06 12:03:55.745 INFO [stderr] | ^ help: consider using `_b` instead Dec 06 12:03:55.745 INFO [stderr] Dec 06 12:03:55.745 INFO [stderr] warning: unused variable: `f` Dec 06 12:03:55.745 INFO [stderr] --> src/main.rs:71:37 Dec 06 12:03:55.745 INFO [stderr] | Dec 06 12:03:55.745 INFO [stderr] 71 | TypedTerm::T_APP{ty: t, fun: f, arg: a} => t, Dec 06 12:03:55.745 INFO [stderr] | ^ help: consider using `_f` instead Dec 06 12:03:55.745 INFO [stderr] Dec 06 12:03:55.745 INFO [stderr] warning: unused variable: `a` Dec 06 12:03:55.745 INFO [stderr] --> src/main.rs:71:45 Dec 06 12:03:55.745 INFO [stderr] | Dec 06 12:03:55.745 INFO [stderr] 71 | TypedTerm::T_APP{ty: t, fun: f, arg: a} => t, Dec 06 12:03:55.745 INFO [stderr] | ^ help: consider using `_a` instead Dec 06 12:03:55.745 INFO [stderr] Dec 06 12:03:55.745 INFO [stderr] warning: unused variable: `o` Dec 06 12:03:55.745 INFO [stderr] --> src/main.rs:72:37 Dec 06 12:03:55.745 INFO [stderr] | Dec 06 12:03:55.745 INFO [stderr] 72 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.745 INFO [stderr] | ^ help: consider using `_o` instead Dec 06 12:03:55.745 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:72:46 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 72 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:72:56 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 72 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:73:37 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 73 | TypedTerm::T_NOT{ty: t, exp: e} => t, Dec 06 12:03:55.746 INFO [stderr] | ^ help: consider using `_e` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:74:38 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 74 | TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:74:48 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 74 | TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:75:37 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 75 | TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:75:47 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 75 | TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:76:38 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 76 | TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:76:48 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 76 | TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:77:37 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 77 | TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:77:47 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 77 | TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:78:37 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.746 INFO [stderr] 78 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:55.746 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.746 INFO [stderr] Dec 06 12:03:55.746 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.746 INFO [stderr] --> src/main.rs:78:47 Dec 06 12:03:55.746 INFO [stderr] | Dec 06 12:03:55.747 INFO [stderr] 78 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:55.747 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.747 INFO [stderr] Dec 06 12:03:55.747 INFO [stderr] warning: unused variable: `e3` Dec 06 12:03:55.747 INFO [stderr] --> src/main.rs:78:57 Dec 06 12:03:55.747 INFO [stderr] | Dec 06 12:03:55.747 INFO [stderr] 78 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:55.747 INFO [stderr] | ^^ help: consider using `_e3` instead Dec 06 12:03:55.747 INFO [stderr] Dec 06 12:03:55.747 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:55.747 INFO [stderr] --> src/main.rs:79:38 Dec 06 12:03:55.747 INFO [stderr] | Dec 06 12:03:55.747 INFO [stderr] 79 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:55.747 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:55.747 INFO [stderr] Dec 06 12:03:55.747 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:55.747 INFO [stderr] --> src/main.rs:79:48 Dec 06 12:03:55.747 INFO [stderr] | Dec 06 12:03:55.747 INFO [stderr] 79 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:55.747 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:55.747 INFO [stderr] Dec 06 12:03:55.747 INFO [stderr] warning: unused variable: `e3` Dec 06 12:03:55.747 INFO [stderr] --> src/main.rs:79:58 Dec 06 12:03:55.747 INFO [stderr] | Dec 06 12:03:55.747 INFO [stderr] 79 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:55.747 INFO [stderr] | ^^ help: consider using `_e3` instead Dec 06 12:03:55.747 INFO [stderr] Dec 06 12:03:55.749 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:55.749 INFO [stderr] --> src/main.rs:613:6 Dec 06 12:03:55.749 INFO [stderr] | Dec 06 12:03:55.749 INFO [stderr] 613 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.749 INFO [stderr] | ----^^^^ Dec 06 12:03:55.749 INFO [stderr] | | Dec 06 12:03:55.749 INFO [stderr] | help: remove this `mut` Dec 06 12:03:55.749 INFO [stderr] | Dec 06 12:03:55.749 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 06 12:03:55.749 INFO [stderr] Dec 06 12:03:55.796 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:55.796 INFO [stderr] --> src/main.rs:334:8 Dec 06 12:03:55.796 INFO [stderr] | Dec 06 12:03:55.796 INFO [stderr] 334 | let mut updateConstraints = solutionOne.applyToSet(&mut vec1); Dec 06 12:03:55.796 INFO [stderr] | ----^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.796 INFO [stderr] | | Dec 06 12:03:55.796 INFO [stderr] | help: remove this `mut` Dec 06 12:03:55.796 INFO [stderr] Dec 06 12:03:55.796 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:55.796 INFO [stderr] --> src/main.rs:398:7 Dec 06 12:03:55.796 INFO [stderr] | Dec 06 12:03:55.796 INFO [stderr] 398 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.796 INFO [stderr] | ----^^^^ Dec 06 12:03:55.796 INFO [stderr] | | Dec 06 12:03:55.796 INFO [stderr] | help: remove this `mut` Dec 06 12:03:55.796 INFO [stderr] Dec 06 12:03:55.804 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:55.804 INFO [stderr] --> src/main.rs:523:7 Dec 06 12:03:55.804 INFO [stderr] | Dec 06 12:03:55.804 INFO [stderr] 523 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.804 INFO [stderr] | ----^^^^ Dec 06 12:03:55.804 INFO [stderr] | | Dec 06 12:03:55.804 INFO [stderr] | help: remove this `mut` Dec 06 12:03:55.804 INFO [stderr] Dec 06 12:03:55.808 INFO [stderr] warning: variant is never constructed: `NOT` Dec 06 12:03:55.808 INFO [stderr] --> src/main.rs:16:6 Dec 06 12:03:55.808 INFO [stderr] | Dec 06 12:03:55.808 INFO [stderr] 16 | NOT{exp: Box}, Dec 06 12:03:55.808 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.808 INFO [stderr] | Dec 06 12:03:55.808 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 06 12:03:55.808 INFO [stderr] Dec 06 12:03:55.808 INFO [stderr] warning: variant is never constructed: `AND` Dec 06 12:03:55.808 INFO [stderr] --> src/main.rs:17:6 Dec 06 12:03:55.808 INFO [stderr] | Dec 06 12:03:55.808 INFO [stderr] 17 | AND{exp1: Box, exp2: Box}, Dec 06 12:03:55.808 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.808 INFO [stderr] Dec 06 12:03:55.808 INFO [stderr] warning: variant is never constructed: `OR` Dec 06 12:03:55.808 INFO [stderr] --> src/main.rs:18:6 Dec 06 12:03:55.808 INFO [stderr] | Dec 06 12:03:55.808 INFO [stderr] 18 | OR{exp1: Box, exp2: Box}, Dec 06 12:03:55.809 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.809 INFO [stderr] Dec 06 12:03:55.809 INFO [stderr] warning: variant is never constructed: `LT` Dec 06 12:03:55.809 INFO [stderr] --> src/main.rs:20:6 Dec 06 12:03:55.809 INFO [stderr] | Dec 06 12:03:55.809 INFO [stderr] 20 | LT{exp1: Box, exp2: Box}, Dec 06 12:03:55.809 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.809 INFO [stderr] Dec 06 12:03:55.809 INFO [stderr] warning: variant is never constructed: `IF` Dec 06 12:03:55.809 INFO [stderr] --> src/main.rs:21:6 Dec 06 12:03:55.809 INFO [stderr] | Dec 06 12:03:55.809 INFO [stderr] 21 | IF{exp1: Box, exp2: Box, exp3: Box}, Dec 06 12:03:55.809 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.809 INFO [stderr] Dec 06 12:03:55.812 INFO [stderr] warning: method is never used: `empty` Dec 06 12:03:55.812 INFO [stderr] --> src/main.rs:272:3 Dec 06 12:03:55.812 INFO [stderr] | Dec 06 12:03:55.812 INFO [stderr] 272 | fn empty() -> Substitution { Dec 06 12:03:55.812 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.812 INFO [stderr] Dec 06 12:03:55.812 INFO [stderr] warning: method is never used: `fromPair` Dec 06 12:03:55.812 INFO [stderr] --> src/main.rs:277:3 Dec 06 12:03:55.812 INFO [stderr] | Dec 06 12:03:55.812 INFO [stderr] 277 | fn fromPair(tvar: u32, ty: Type) -> Substitution { Dec 06 12:03:55.812 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.812 INFO [stderr] Dec 06 12:03:55.816 INFO [stderr] warning: structure field `ParamTy` should have a snake case name such as `param_ty` Dec 06 12:03:55.816 INFO [stderr] --> src/main.rs:33:9 Dec 06 12:03:55.816 INFO [stderr] | Dec 06 12:03:55.816 INFO [stderr] 33 | TyFun{ParamTy: Box, ReturnTy: Box} Dec 06 12:03:55.816 INFO [stderr] | ^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.816 INFO [stderr] | Dec 06 12:03:55.816 INFO [stderr] = note: #[warn(non_snake_case)] on by default Dec 06 12:03:55.816 INFO [stderr] Dec 06 12:03:55.816 INFO [stderr] warning: structure field `ReturnTy` should have a snake case name such as `return_ty` Dec 06 12:03:55.816 INFO [stderr] --> src/main.rs:33:29 Dec 06 12:03:55.816 INFO [stderr] | Dec 06 12:03:55.816 INFO [stderr] 33 | TyFun{ParamTy: Box, ReturnTy: Box} Dec 06 12:03:55.816 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.816 INFO [stderr] Dec 06 12:03:55.816 INFO [stderr] warning: function `freshVar` should have a snake case name such as `fresh_var` Dec 06 12:03:55.816 INFO [stderr] --> src/main.rs:37:2 Dec 06 12:03:55.816 INFO [stderr] | Dec 06 12:03:55.816 INFO [stderr] 37 | fn freshVar(v: &mut u32) -> Type { Dec 06 12:03:55.816 INFO [stderr] | _____^ Dec 06 12:03:55.816 INFO [stderr] 38 | | *v+=1; Dec 06 12:03:55.816 INFO [stderr] 39 | | Type::TyVar{num: *v} Dec 06 12:03:55.816 INFO [stderr] 40 | | } Dec 06 12:03:55.816 INFO [stderr] | |_____^ Dec 06 12:03:55.816 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_INT` should have a camel case name such as `TInt` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:46:3 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 46 | T_INT{ty: Type, value: u32}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] = note: #[warn(non_camel_case_types)] on by default Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_BOOL` should have a camel case name such as `TBool` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:47:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 47 | T_BOOL{ty: Type, value: bool}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_VAR` should have a camel case name such as `TVar` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:48:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 48 | T_VAR{ty: Type, name: char}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_FUN` should have a camel case name such as `TFun` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:49:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 49 | T_FUN{ty: Type, param: Box, body: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_Closure` should have a camel case name such as `TClosure` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:50:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 50 | T_Closure{fun: Box, env: InterpEnv}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_APP` should have a camel case name such as `TApp` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:51:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 51 | T_APP{ty: Type, fun: Box, arg: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_CALC` should have a camel case name such as `TCalc` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:52:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 52 | T_CALC{ty: Type, op: char, exp1: Box, exp2: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_NOT` should have a camel case name such as `TNot` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:53:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 53 | T_NOT{ty: Type, exp: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_AND` should have a camel case name such as `TAnd` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:54:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 54 | T_AND{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_OR` should have a camel case name such as `TOr` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:55:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 55 | T_OR{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_EQU` should have a camel case name such as `TEqu` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:56:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 56 | T_EQU{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_LT` should have a camel case name such as `TLt` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:57:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 57 | T_LT{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_IF` should have a camel case name such as `TIf` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:58:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 58 | T_IF{ty: Type, exp1: Box, exp2: Box, exp3: Box}, Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: variant `T_LET` should have a camel case name such as `TLet` Dec 06 12:03:55.821 INFO [stderr] --> src/main.rs:59:6 Dec 06 12:03:55.821 INFO [stderr] | Dec 06 12:03:55.821 INFO [stderr] 59 | T_LET{ty: Type, exp1: Box, exp2: Box, exp3: Box} Dec 06 12:03:55.821 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.821 INFO [stderr] Dec 06 12:03:55.821 INFO [stderr] warning: method `getType` should have a snake case name such as `get_type` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:65:3 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 65 | fn getType(self) -> Type { Dec 06 12:03:55.822 INFO [stderr] | _________^ Dec 06 12:03:55.822 INFO [stderr] 66 | | match self { Dec 06 12:03:55.822 INFO [stderr] 67 | | TypedTerm::T_INT{ty: t, value: v} => t, Dec 06 12:03:55.822 INFO [stderr] 68 | | TypedTerm::T_BOOL{ty: t, value: v} => t, Dec 06 12:03:55.822 INFO [stderr] ... | Dec 06 12:03:55.822 INFO [stderr] 81 | | } Dec 06 12:03:55.822 INFO [stderr] 82 | | } Dec 06 12:03:55.822 INFO [stderr] | |_________^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:88:3 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 88 | Env: HashMap Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `varNum` should have a snake case name such as `var_num` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:107:52 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 107 | fn annotate(term: UntypedTerm, mut tenv: TypeEnv, varNum: &mut u32) -> TypedTerm { Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:113:9 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 113 | let paramTy = freshVar(varNum); Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:114:9 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 114 | let paramTy1 = paramTy.clone(); Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:116:9 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 116 | let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: p}; Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:134:12 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 134 | let paramTy = freshVar(varNum); Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:135:9 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 135 | let paramTy1 = paramTy.clone(); Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:137:9 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 137 | let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: e1}; Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: structure field `typeA` should have a snake case name such as `type_a` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:149:3 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 149 | typeA: Type, Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: structure field `typeB` should have a snake case name such as `type_b` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:150:3 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 150 | typeB: Type Dec 06 12:03:55.822 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: method `fromPair` should have a snake case name such as `from_pair` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:277:3 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 277 | fn fromPair(tvar: u32, ty: Type) -> Substitution { Dec 06 12:03:55.822 INFO [stderr] | _________^ Dec 06 12:03:55.822 INFO [stderr] 278 | | let mut s1 = HashMap::new(); Dec 06 12:03:55.822 INFO [stderr] 279 | | s1.insert(tvar, ty); Dec 06 12:03:55.822 INFO [stderr] 280 | | Substitution{solutions: s1} Dec 06 12:03:55.822 INFO [stderr] 281 | | } Dec 06 12:03:55.822 INFO [stderr] | |_________^ Dec 06 12:03:55.822 INFO [stderr] Dec 06 12:03:55.822 INFO [stderr] warning: method `applyToSet` should have a snake case name such as `apply_to_set` Dec 06 12:03:55.822 INFO [stderr] --> src/main.rs:284:3 Dec 06 12:03:55.822 INFO [stderr] | Dec 06 12:03:55.822 INFO [stderr] 284 | fn applyToSet (&self,constraints: &mut Vec) -> Vec { Dec 06 12:03:55.823 INFO [stderr] | _________^ Dec 06 12:03:55.823 INFO [stderr] 285 | | for elem in constraints.iter_mut() { Dec 06 12:03:55.823 INFO [stderr] 286 | | //traverse target constraint set and update each type in all elements. Dec 06 12:03:55.823 INFO [stderr] 287 | | *elem = Constraint{typeA: Self::applyOneType(&self, elem.typeA.clone()), typeB: Self::applyOneType(&self,elem.typeB.clone())} Dec 06 12:03:55.823 INFO [stderr] 288 | | } Dec 06 12:03:55.823 INFO [stderr] 289 | | constraints.clone() Dec 06 12:03:55.823 INFO [stderr] 290 | | } Dec 06 12:03:55.823 INFO [stderr] | |_________^ Dec 06 12:03:55.823 INFO [stderr] Dec 06 12:03:55.823 INFO [stderr] warning: method `applyOneType` should have a snake case name such as `apply_one_type` Dec 06 12:03:55.823 INFO [stderr] --> src/main.rs:293:3 Dec 06 12:03:55.823 INFO [stderr] | Dec 06 12:03:55.823 INFO [stderr] 293 | fn applyOneType(&self, ty: Type) -> Type { Dec 06 12:03:55.823 INFO [stderr] | _________^ Dec 06 12:03:55.823 INFO [stderr] 294 | | match ty { Dec 06 12:03:55.823 INFO [stderr] 295 | | Type::TyInt => ty, Dec 06 12:03:55.823 INFO [stderr] 296 | | Type::TyBool => ty, Dec 06 12:03:55.823 INFO [stderr] ... | Dec 06 12:03:55.823 INFO [stderr] 305 | | } Dec 06 12:03:55.823 INFO [stderr] 306 | | } Dec 06 12:03:55.823 INFO [stderr] | |_________^ Dec 06 12:03:55.823 INFO [stderr] Dec 06 12:03:55.823 INFO [stderr] warning: variable `solutionType` should have a snake case name such as `solution_type` Dec 06 12:03:55.823 INFO [stderr] --> src/main.rs:311:8 Dec 06 12:03:55.823 INFO [stderr] | Dec 06 12:03:55.823 INFO [stderr] 311 | for solutionType in self.solutions.values_mut() { Dec 06 12:03:55.823 INFO [stderr] | ^^^^^^^^^^^^ Dec 06 12:03:55.823 INFO [stderr] Dec 06 12:03:55.823 INFO [stderr] warning: variable `solutionOne` should have a snake case name such as `solution_one` Dec 06 12:03:55.823 INFO [stderr] --> src/main.rs:330:8 Dec 06 12:03:55.823 INFO [stderr] | Dec 06 12:03:55.823 INFO [stderr] 330 | let mut solutionOne = unifyOne(constraints[0].clone()); Dec 06 12:03:55.823 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 06 12:03:55.823 INFO [stderr] Dec 06 12:03:55.823 INFO [stderr] warning: variable `updateConstraints` should have a snake case name such as `update_constraints` Dec 06 12:03:55.823 INFO [stderr] --> src/main.rs:334:8 Dec 06 12:03:55.823 INFO [stderr] | Dec 06 12:03:55.823 INFO [stderr] 334 | let mut updateConstraints = solutionOne.applyToSet(&mut vec1); Dec 06 12:03:55.823 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.823 INFO [stderr] Dec 06 12:03:55.823 INFO [stderr] warning: variable `solutionRest` should have a snake case name such as `solution_rest` Dec 06 12:03:55.823 INFO [stderr] --> src/main.rs:336:8 Dec 06 12:03:55.823 INFO [stderr] | Dec 06 12:03:55.823 INFO [stderr] 336 | let solutionRest = unify(updateConstraints); Dec 06 12:03:55.823 INFO [stderr] | ^^^^^^^^^^^^ Dec 06 12:03:55.823 INFO [stderr] Dec 06 12:03:55.823 INFO [stderr] warning: function `unifyOne` should have a snake case name such as `unify_one` Dec 06 12:03:55.823 INFO [stderr] --> src/main.rs:343:2 Dec 06 12:03:55.823 INFO [stderr] | Dec 06 12:03:55.823 INFO [stderr] 343 | fn unifyOne(constraint: Constraint) -> Substitution { Dec 06 12:03:55.823 INFO [stderr] | _____^ Dec 06 12:03:55.824 INFO [stderr] 344 | | match (constraint.typeA, constraint.typeB) { Dec 06 12:03:55.824 INFO [stderr] 345 | | (Type::TyInt, Type:: TyInt) => Substitution{solutions: HashMap::new()}, Dec 06 12:03:55.824 INFO [stderr] 346 | | (Type::TyBool, Type:: TyBool) => Substitution{solutions: HashMap::new()}, Dec 06 12:03:55.824 INFO [stderr] ... | Dec 06 12:03:55.824 INFO [stderr] 352 | | } Dec 06 12:03:55.824 INFO [stderr] 353 | | } Dec 06 12:03:55.824 INFO [stderr] | |_____^ Dec 06 12:03:55.824 INFO [stderr] Dec 06 12:03:55.824 INFO [stderr] warning: function `unifyVar` should have a snake case name such as `unify_var` Dec 06 12:03:55.824 INFO [stderr] --> src/main.rs:356:2 Dec 06 12:03:55.824 INFO [stderr] | Dec 06 12:03:55.824 INFO [stderr] 356 | fn unifyVar(tvar: u32, ty: Type) -> Substitution { Dec 06 12:03:55.824 INFO [stderr] | _____^ Dec 06 12:03:55.824 INFO [stderr] 357 | | match ty { Dec 06 12:03:55.824 INFO [stderr] 358 | | //do nothing if they are the same type variable Dec 06 12:03:55.824 INFO [stderr] 359 | | Type::TyVar{num: n} => { Dec 06 12:03:55.824 INFO [stderr] ... | Dec 06 12:03:55.824 INFO [stderr] 383 | | } Dec 06 12:03:55.824 INFO [stderr] 384 | | } Dec 06 12:03:55.826 INFO [stderr] | |_____^ Dec 06 12:03:55.826 INFO [stderr] Dec 06 12:03:55.826 INFO [stderr] warning: function `typeInference` should have a snake case name such as `type_inference` Dec 06 12:03:55.826 INFO [stderr] --> src/main.rs:397:2 Dec 06 12:03:55.826 INFO [stderr] | Dec 06 12:03:55.826 INFO [stderr] 397 | fn typeInference(term: UntypedTerm) { Dec 06 12:03:55.826 INFO [stderr] | _____^ Dec 06 12:03:55.826 INFO [stderr] 398 | | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.826 INFO [stderr] 399 | | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:55.826 INFO [stderr] 400 | | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:55.826 INFO [stderr] ... | Dec 06 12:03:55.826 INFO [stderr] 408 | | println!(" "); Dec 06 12:03:55.826 INFO [stderr] 409 | | } Dec 06 12:03:55.826 INFO [stderr] | |_____^ Dec 06 12:03:55.826 INFO [stderr] Dec 06 12:03:55.826 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t` Dec 06 12:03:55.826 INFO [stderr] --> src/main.rs:398:7 Dec 06 12:03:55.826 INFO [stderr] | Dec 06 12:03:55.826 INFO [stderr] 398 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.826 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:55.826 INFO [stderr] Dec 06 12:03:55.826 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term` Dec 06 12:03:55.826 INFO [stderr] --> src/main.rs:399:10 Dec 06 12:03:55.826 INFO [stderr] | Dec 06 12:03:55.826 INFO [stderr] 399 | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:55.826 INFO [stderr] | ^^^^^^^^^ Dec 06 12:03:55.826 INFO [stderr] Dec 06 12:03:55.826 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints` Dec 06 12:03:55.826 INFO [stderr] --> src/main.rs:400:10 Dec 06 12:03:55.826 INFO [stderr] | Dec 06 12:03:55.826 INFO [stderr] 400 | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:55.826 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:55.826 INFO [stderr] Dec 06 12:03:55.826 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env` Dec 06 12:03:55.826 INFO [stderr] --> src/main.rs:415:3 Dec 06 12:03:55.826 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 415 | Env: HashMap Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: function `Interp` should have a snake case name such as `interp` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:433:2 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 433 | fn Interp(term: TypedTerm, env: &mut InterpEnv) -> TypedTerm { Dec 06 12:03:55.827 INFO [stderr] | _____^ Dec 06 12:03:55.827 INFO [stderr] 434 | | match term { Dec 06 12:03:55.827 INFO [stderr] 435 | | TypedTerm::T_INT{ty: t, value: v} => TypedTerm::T_INT{ty: t, value: v}, Dec 06 12:03:55.827 INFO [stderr] 436 | | TypedTerm::T_BOOL{ty: t, value: v} => TypedTerm::T_BOOL{ty: t, value: v}, Dec 06 12:03:55.827 INFO [stderr] ... | Dec 06 12:03:55.827 INFO [stderr] 519 | | } Dec 06 12:03:55.827 INFO [stderr] 520 | | } Dec 06 12:03:55.827 INFO [stderr] | |_____^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:443:15 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 443 | let mut EnvNew = InterpEnv{Env: HashMap::new()}; Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^^^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:508:15 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 508 | let mut EnvNew = InterpEnv{Env: HashMap::new()}; Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^^^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: function `InterpE` should have a snake case name such as `interp_e` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:522:2 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 522 | fn InterpE(term: UntypedTerm) { Dec 06 12:03:55.827 INFO [stderr] | _____^ Dec 06 12:03:55.827 INFO [stderr] 523 | | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.827 INFO [stderr] 524 | | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:55.827 INFO [stderr] 525 | | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:55.827 INFO [stderr] ... | Dec 06 12:03:55.827 INFO [stderr] 530 | | println!("{:?}",Interp(TypedTerm, &mut EnvI)); Dec 06 12:03:55.827 INFO [stderr] 531 | | } Dec 06 12:03:55.827 INFO [stderr] | |_____^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:523:7 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 523 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:524:10 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 524 | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:525:10 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 525 | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:55.827 INFO [stderr] Dec 06 12:03:55.827 INFO [stderr] warning: variable `EnvI` should have a snake case name such as `env_i` Dec 06 12:03:55.827 INFO [stderr] --> src/main.rs:528:10 Dec 06 12:03:55.827 INFO [stderr] | Dec 06 12:03:55.827 INFO [stderr] 528 | let mut EnvI = InterpEnv{Env: HashMap::new()}; Dec 06 12:03:55.827 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:55.828 INFO [stderr] Dec 06 12:03:55.828 INFO [stderr] warning: function `Add` should have a snake case name such as `add` Dec 06 12:03:55.828 INFO [stderr] --> src/main.rs:534:2 Dec 06 12:03:55.828 INFO [stderr] | Dec 06 12:03:55.828 INFO [stderr] 534 | fn Add(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.828 INFO [stderr] | _____^ Dec 06 12:03:55.828 INFO [stderr] 535 | | match (a1,a2) { Dec 06 12:03:55.828 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 06 12:03:55.828 INFO [stderr] 537 | | _ => panic!("undefined !") Dec 06 12:03:55.828 INFO [stderr] 538 | | } Dec 06 12:03:55.828 INFO [stderr] 539 | | } Dec 06 12:03:55.828 INFO [stderr] | |_____^ Dec 06 12:03:55.828 INFO [stderr] Dec 06 12:03:55.828 INFO [stderr] warning: function `Minus` should have a snake case name such as `minus` Dec 06 12:03:55.828 INFO [stderr] --> src/main.rs:541:2 Dec 06 12:03:55.828 INFO [stderr] | Dec 06 12:03:55.828 INFO [stderr] 541 | fn Minus(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.828 INFO [stderr] | _____^ Dec 06 12:03:55.828 INFO [stderr] 542 | | match (a1,a2) { Dec 06 12:03:55.828 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 06 12:03:55.828 INFO [stderr] 544 | | _ => panic!("undefined !") Dec 06 12:03:55.828 INFO [stderr] 545 | | } Dec 06 12:03:55.828 INFO [stderr] 546 | | } Dec 06 12:03:55.828 INFO [stderr] | |_____^ Dec 06 12:03:55.828 INFO [stderr] Dec 06 12:03:55.828 INFO [stderr] warning: function `Mul` should have a snake case name such as `mul` Dec 06 12:03:55.828 INFO [stderr] --> src/main.rs:548:2 Dec 06 12:03:55.828 INFO [stderr] | Dec 06 12:03:55.828 INFO [stderr] 548 | fn Mul(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.828 INFO [stderr] | _____^ Dec 06 12:03:55.828 INFO [stderr] 549 | | match (a1,a2) { Dec 06 12:03:55.828 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 06 12:03:55.829 INFO [stderr] 551 | | _ => panic!("undefined !") Dec 06 12:03:55.829 INFO [stderr] 552 | | } Dec 06 12:03:55.829 INFO [stderr] 553 | | } Dec 06 12:03:55.829 INFO [stderr] | |_____^ Dec 06 12:03:55.829 INFO [stderr] Dec 06 12:03:55.829 INFO [stderr] warning: function `Div` should have a snake case name such as `div` Dec 06 12:03:55.829 INFO [stderr] --> src/main.rs:555:2 Dec 06 12:03:55.829 INFO [stderr] | Dec 06 12:03:55.829 INFO [stderr] 555 | fn Div(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.829 INFO [stderr] | _____^ Dec 06 12:03:55.829 INFO [stderr] 556 | | match (a1,a2) { Dec 06 12:03:55.829 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 06 12:03:55.829 INFO [stderr] 558 | | _ => panic!("undefined !") Dec 06 12:03:55.829 INFO [stderr] 559 | | } Dec 06 12:03:55.829 INFO [stderr] 560 | | } Dec 06 12:03:55.829 INFO [stderr] | |_____^ Dec 06 12:03:55.829 INFO [stderr] Dec 06 12:03:55.829 INFO [stderr] warning: function `Lt` should have a snake case name such as `lt` Dec 06 12:03:55.829 INFO [stderr] --> src/main.rs:562:2 Dec 06 12:03:55.829 INFO [stderr] | Dec 06 12:03:55.829 INFO [stderr] 562 | fn Lt(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.829 INFO [stderr] | _____^ Dec 06 12:03:55.829 INFO [stderr] 563 | | match (a1,a2) { Dec 06 12:03:55.829 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 06 12:03:55.829 INFO [stderr] 565 | | _ => panic!("undefined !") Dec 06 12:03:55.829 INFO [stderr] 566 | | } Dec 06 12:03:55.829 INFO [stderr] 567 | | } Dec 06 12:03:55.829 INFO [stderr] | |_____^ Dec 06 12:03:55.829 INFO [stderr] Dec 06 12:03:55.829 INFO [stderr] warning: function `And` should have a snake case name such as `and` Dec 06 12:03:55.829 INFO [stderr] --> src/main.rs:570:2 Dec 06 12:03:55.829 INFO [stderr] | Dec 06 12:03:55.829 INFO [stderr] 570 | fn And(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.829 INFO [stderr] | _____^ Dec 06 12:03:55.829 INFO [stderr] 571 | | match (a1,a2) { Dec 06 12:03:55.829 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 06 12:03:55.829 INFO [stderr] 573 | | _ => panic!("undefined !") Dec 06 12:03:55.829 INFO [stderr] 574 | | } Dec 06 12:03:55.829 INFO [stderr] 575 | | } Dec 06 12:03:55.829 INFO [stderr] | |_____^ Dec 06 12:03:55.829 INFO [stderr] Dec 06 12:03:55.829 INFO [stderr] warning: function `Or` should have a snake case name such as `or` Dec 06 12:03:55.829 INFO [stderr] --> src/main.rs:577:2 Dec 06 12:03:55.829 INFO [stderr] | Dec 06 12:03:55.829 INFO [stderr] 577 | fn Or(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.829 INFO [stderr] | _____^ Dec 06 12:03:55.829 INFO [stderr] 578 | | match (a1,a2) { Dec 06 12:03:55.829 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 06 12:03:55.829 INFO [stderr] 580 | | _ => panic!("undefined !") Dec 06 12:03:55.829 INFO [stderr] 581 | | } Dec 06 12:03:55.829 INFO [stderr] 582 | | } Dec 06 12:03:55.829 INFO [stderr] | |_____^ Dec 06 12:03:55.829 INFO [stderr] Dec 06 12:03:55.829 INFO [stderr] warning: function `Equ` should have a snake case name such as `equ` Dec 06 12:03:55.829 INFO [stderr] --> src/main.rs:584:2 Dec 06 12:03:55.829 INFO [stderr] | Dec 06 12:03:55.829 INFO [stderr] 584 | fn Equ(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:55.829 INFO [stderr] | _____^ Dec 06 12:03:55.829 INFO [stderr] 585 | | match (a1,a2) { Dec 06 12:03:55.829 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 06 12:03:55.829 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 06 12:03:55.829 INFO [stderr] 588 | | _ => panic!("undefined !") Dec 06 12:03:55.832 INFO [stderr] 589 | | } Dec 06 12:03:55.832 INFO [stderr] 590 | | } Dec 06 12:03:55.832 INFO [stderr] | |_____^ Dec 06 12:03:55.832 INFO [stderr] Dec 06 12:03:55.832 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t` Dec 06 12:03:55.832 INFO [stderr] --> src/main.rs:613:6 Dec 06 12:03:55.832 INFO [stderr] | Dec 06 12:03:55.832 INFO [stderr] 613 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:55.832 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:55.832 INFO [stderr] Dec 06 12:03:56.700 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.50s Dec 06 12:03:56.703 INFO [stderr] su: No module specific data is present Dec 06 12:03:57.034 INFO running `"docker" "inspect" "5be30e33dd54a0cea365751bd4df4d438839bbb93392c7bf8c31cc289ed6dd03"` Dec 06 12:03:57.122 INFO running `"docker" "rm" "-f" "5be30e33dd54a0cea365751bd4df4d438839bbb93392c7bf8c31cc289ed6dd03"` Dec 06 12:03:57.221 INFO [stdout] 5be30e33dd54a0cea365751bd4df4d438839bbb93392c7bf8c31cc289ed6dd03 Dec 06 12:03:57.223 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-1/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-1/pr-56514/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/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 +6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468-alt test --frozen --no-run" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 12:03:57.387 INFO [stdout] aed7ca4e62ffe74f6f0dd6cd088e3d5770c047702230a7f72eeabd2cebfb27b4 Dec 06 12:03:57.389 INFO running `"docker" "start" "-a" "aed7ca4e62ffe74f6f0dd6cd088e3d5770c047702230a7f72eeabd2cebfb27b4"` Dec 06 12:03:57.920 INFO [stderr] usermod: no changes Dec 06 12:03:57.949 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently Dec 06 12:03:57.949 INFO [stderr] disables Cargo from automatically inferring other binary targets. Dec 06 12:03:57.949 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Dec 06 12:03:57.949 INFO [stderr] files will be included as a binary target: Dec 06 12:03:57.949 INFO [stderr] Dec 06 12:03:57.949 INFO [stderr] * /source/src/main.rs Dec 06 12:03:57.949 INFO [stderr] Dec 06 12:03:57.949 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Dec 06 12:03:57.949 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself Dec 06 12:03:57.949 INFO [stderr] and disable this warning by adding `autobins = false` to your [package] Dec 06 12:03:57.949 INFO [stderr] section. You may also move the files to a location where Cargo would not Dec 06 12:03:57.949 INFO [stderr] automatically infer them to be a target, such as in subfolders. Dec 06 12:03:57.949 INFO [stderr] Dec 06 12:03:57.949 INFO [stderr] For more information on this warning you can consult Dec 06 12:03:57.949 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Dec 06 12:03:57.949 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`, Dec 06 12:03:57.949 INFO [stderr] please set bin.path in Cargo.toml Dec 06 12:03:57.949 INFO [stderr] Compiling assignmentThree_Rust v0.0.1 (/source) Dec 06 12:03:58.491 INFO [stderr] warning: unreachable pattern Dec 06 12:03:58.491 INFO [stderr] --> src/main.rs:141:4 Dec 06 12:03:58.491 INFO [stderr] | Dec 06 12:03:58.491 INFO [stderr] 141 | _ => panic!("undefined term!") Dec 06 12:03:58.491 INFO [stderr] | ^ Dec 06 12:03:58.491 INFO [stderr] | Dec 06 12:03:58.491 INFO [stderr] = note: #[warn(unreachable_patterns)] on by default Dec 06 12:03:58.491 INFO [stderr] Dec 06 12:03:58.492 INFO [stderr] warning: unused variable: `a1` Dec 06 12:03:58.492 INFO [stderr] --> src/main.rs:600:6 Dec 06 12:03:58.492 INFO [stderr] | Dec 06 12:03:58.492 INFO [stderr] 600 | let a1 = UntypedTerm::APP{fun: Box::new(f1.clone()), arg: Box::new(i1.clone())}; Dec 06 12:03:58.492 INFO [stderr] | ^^ help: consider using `_a1` instead Dec 06 12:03:58.492 INFO [stderr] | Dec 06 12:03:58.492 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 06 12:03:58.492 INFO [stderr] Dec 06 12:03:58.493 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:58.493 INFO [stderr] --> src/main.rs:156:35 Dec 06 12:03:58.493 INFO [stderr] | Dec 06 12:03:58.493 INFO [stderr] 156 | TypedTerm::T_INT{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyInt}], Dec 06 12:03:58.493 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:58.493 INFO [stderr] Dec 06 12:03:58.493 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:58.493 INFO [stderr] --> src/main.rs:157:36 Dec 06 12:03:58.493 INFO [stderr] | Dec 06 12:03:58.493 INFO [stderr] 157 | TypedTerm::T_BOOL{ty: t, value: v} => vec![Constraint{typeA: t, typeB: Type::TyBool}], Dec 06 12:03:58.493 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:58.493 INFO [stderr] Dec 06 12:03:58.493 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.493 INFO [stderr] --> src/main.rs:165:25 Dec 06 12:03:58.493 INFO [stderr] | Dec 06 12:03:58.493 INFO [stderr] 165 | TypedTerm::T_VAR{ty: t, name: n} => vec![], Dec 06 12:03:58.493 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.493 INFO [stderr] Dec 06 12:03:58.493 INFO [stderr] warning: unused variable: `n` Dec 06 12:03:58.493 INFO [stderr] --> src/main.rs:165:34 Dec 06 12:03:58.493 INFO [stderr] | Dec 06 12:03:58.493 INFO [stderr] 165 | TypedTerm::T_VAR{ty: t, name: n} => vec![], Dec 06 12:03:58.493 INFO [stderr] | ^ help: consider using `_n` instead Dec 06 12:03:58.493 INFO [stderr] Dec 06 12:03:58.493 INFO [stderr] warning: unused variable: `o` Dec 06 12:03:58.493 INFO [stderr] --> src/main.rs:175:33 Dec 06 12:03:58.493 INFO [stderr] | Dec 06 12:03:58.493 INFO [stderr] 175 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => { Dec 06 12:03:58.493 INFO [stderr] | ^ help: consider using `_o` instead Dec 06 12:03:58.493 INFO [stderr] Dec 06 12:03:58.494 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.494 INFO [stderr] --> src/main.rs:437:31 Dec 06 12:03:58.494 INFO [stderr] | Dec 06 12:03:58.494 INFO [stderr] 437 | TypedTerm::T_VAR{ty: t, name: n} => { Dec 06 12:03:58.494 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.494 INFO [stderr] Dec 06 12:03:58.494 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.494 INFO [stderr] --> src/main.rs:441:31 Dec 06 12:03:58.494 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 441 | TypedTerm::T_APP{ty: t, fun: f, arg: a} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:447:34 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 447 | TypedTerm::T_FUN{ty: t1, param: p1, body: b1} => match *p1.clone() { Dec 06 12:03:58.495 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:448:35 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 448 | TypedTerm::T_VAR{ty: t2, name: n1} => { Dec 06 12:03:58.495 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:459:32 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 459 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:470:31 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 470 | TypedTerm::T_NOT{ty: t, exp: e} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:477:31 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 477 | TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:482:30 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 482 | TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:487:31 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 487 | TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:492:30 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 492 | TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:497:30 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 497 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:502:34 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 502 | TypedTerm::T_BOOL{ty: t1, value: v} => if v {v2} else {v3}, Dec 06 12:03:58.495 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:506:31 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 506 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:511:33 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 511 | TypedTerm::T_VAR{ty: t, name: n} => { Dec 06 12:03:58.495 INFO [stderr] | ^ help: consider using `_t` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `solutions` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:526:10 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 INFO [stderr] 526 | let solutions = unify(Constraints); Dec 06 12:03:58.495 INFO [stderr] | ^^^^^^^^^ help: consider using `_solutions` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.495 INFO [stderr] --> src/main.rs:536:26 Dec 06 12:03:58.495 INFO [stderr] | Dec 06 12:03:58.495 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 06 12:03:58.495 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.495 INFO [stderr] Dec 06 12:03:58.495 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:536:63 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:543:26 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:543:63 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:550:26 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:550:63 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:557:26 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:557:63 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:564:26 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:564:63 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:572:27 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:572:65 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:579:27 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:579:65 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.496 INFO [stderr] --> src/main.rs:586:27 Dec 06 12:03:58.496 INFO [stderr] | Dec 06 12:03:58.496 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 06 12:03:58.496 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.496 INFO [stderr] Dec 06 12:03:58.496 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:586:65 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 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 06 12:03:58.497 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `t1` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:587:26 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 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 06 12:03:58.497 INFO [stderr] | ^^ help: consider using `_t1` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `t2` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:587:63 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 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 06 12:03:58.497 INFO [stderr] | ^^ help: consider using `_t2` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:67:36 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 67 | TypedTerm::T_INT{ty: t, value: v} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `v` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:68:40 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 68 | TypedTerm::T_BOOL{ty: t, value: v} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_v` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `n` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:69:38 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 69 | TypedTerm::T_VAR{ty: t, name: n} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_n` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `p` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:70:39 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 70 | TypedTerm::T_FUN{ty: t, param: p, body: b} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_p` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `b` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:70:48 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 70 | TypedTerm::T_FUN{ty: t, param: p, body: b} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_b` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `f` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:71:37 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 71 | TypedTerm::T_APP{ty: t, fun: f, arg: a} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_f` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `a` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:71:45 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 71 | TypedTerm::T_APP{ty: t, fun: f, arg: a} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_a` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `o` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:72:37 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 72 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_o` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:72:46 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 72 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.497 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:72:56 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 72 | TypedTerm::T_CALC{ty: t, op: o, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.497 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `e` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:73:37 Dec 06 12:03:58.497 INFO [stderr] | Dec 06 12:03:58.497 INFO [stderr] 73 | TypedTerm::T_NOT{ty: t, exp: e} => t, Dec 06 12:03:58.497 INFO [stderr] | ^ help: consider using `_e` instead Dec 06 12:03:58.497 INFO [stderr] Dec 06 12:03:58.497 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.497 INFO [stderr] --> src/main.rs:74:38 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 74 | TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:74:48 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 74 | TypedTerm::T_AND{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:75:37 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 75 | TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:75:47 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 75 | TypedTerm::T_OR{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:76:38 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 76 | TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:76:48 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 76 | TypedTerm::T_EQU{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:77:37 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 77 | TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:77:47 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 77 | TypedTerm::T_LT{ty: t, exp1: e1, exp2: e2} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:78:37 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 78 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:78:47 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 78 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e3` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:78:57 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 78 | TypedTerm::T_IF{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e3` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e1` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:79:38 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 79 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e1` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e2` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:79:48 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 79 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e2` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.498 INFO [stderr] warning: unused variable: `e3` Dec 06 12:03:58.498 INFO [stderr] --> src/main.rs:79:58 Dec 06 12:03:58.498 INFO [stderr] | Dec 06 12:03:58.498 INFO [stderr] 79 | TypedTerm::T_LET{ty: t, exp1: e1, exp2: e2, exp3: e3} => t, Dec 06 12:03:58.498 INFO [stderr] | ^^ help: consider using `_e3` instead Dec 06 12:03:58.498 INFO [stderr] Dec 06 12:03:58.499 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:58.500 INFO [stderr] --> src/main.rs:613:6 Dec 06 12:03:58.500 INFO [stderr] | Dec 06 12:03:58.500 INFO [stderr] 613 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.500 INFO [stderr] | ----^^^^ Dec 06 12:03:58.500 INFO [stderr] | | Dec 06 12:03:58.500 INFO [stderr] | help: remove this `mut` Dec 06 12:03:58.500 INFO [stderr] | Dec 06 12:03:58.500 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 06 12:03:58.500 INFO [stderr] Dec 06 12:03:58.526 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:58.526 INFO [stderr] --> src/main.rs:334:8 Dec 06 12:03:58.526 INFO [stderr] | Dec 06 12:03:58.526 INFO [stderr] 334 | let mut updateConstraints = solutionOne.applyToSet(&mut vec1); Dec 06 12:03:58.526 INFO [stderr] | ----^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.526 INFO [stderr] | | Dec 06 12:03:58.527 INFO [stderr] | help: remove this `mut` Dec 06 12:03:58.527 INFO [stderr] Dec 06 12:03:58.529 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:58.529 INFO [stderr] --> src/main.rs:398:7 Dec 06 12:03:58.529 INFO [stderr] | Dec 06 12:03:58.529 INFO [stderr] 398 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.529 INFO [stderr] | ----^^^^ Dec 06 12:03:58.529 INFO [stderr] | | Dec 06 12:03:58.529 INFO [stderr] | help: remove this `mut` Dec 06 12:03:58.529 INFO [stderr] Dec 06 12:03:58.533 INFO [stderr] warning: variable does not need to be mutable Dec 06 12:03:58.533 INFO [stderr] --> src/main.rs:523:7 Dec 06 12:03:58.533 INFO [stderr] | Dec 06 12:03:58.533 INFO [stderr] 523 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.534 INFO [stderr] | ----^^^^ Dec 06 12:03:58.534 INFO [stderr] | | Dec 06 12:03:58.534 INFO [stderr] | help: remove this `mut` Dec 06 12:03:58.534 INFO [stderr] Dec 06 12:03:58.543 INFO [stderr] warning: structure field `ParamTy` should have a snake case name such as `param_ty` Dec 06 12:03:58.543 INFO [stderr] --> src/main.rs:33:9 Dec 06 12:03:58.543 INFO [stderr] | Dec 06 12:03:58.543 INFO [stderr] 33 | TyFun{ParamTy: Box, ReturnTy: Box} Dec 06 12:03:58.543 INFO [stderr] | ^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.543 INFO [stderr] | Dec 06 12:03:58.543 INFO [stderr] = note: #[warn(non_snake_case)] on by default Dec 06 12:03:58.543 INFO [stderr] Dec 06 12:03:58.544 INFO [stderr] warning: structure field `ReturnTy` should have a snake case name such as `return_ty` Dec 06 12:03:58.544 INFO [stderr] --> src/main.rs:33:29 Dec 06 12:03:58.544 INFO [stderr] | Dec 06 12:03:58.544 INFO [stderr] 33 | TyFun{ParamTy: Box, ReturnTy: Box} Dec 06 12:03:58.544 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.544 INFO [stderr] Dec 06 12:03:58.545 INFO [stderr] warning: function `freshVar` should have a snake case name such as `fresh_var` Dec 06 12:03:58.545 INFO [stderr] --> src/main.rs:37:2 Dec 06 12:03:58.545 INFO [stderr] | Dec 06 12:03:58.545 INFO [stderr] 37 | fn freshVar(v: &mut u32) -> Type { Dec 06 12:03:58.545 INFO [stderr] | _____^ Dec 06 12:03:58.545 INFO [stderr] 38 | | *v+=1; Dec 06 12:03:58.545 INFO [stderr] 39 | | Type::TyVar{num: *v} Dec 06 12:03:58.545 INFO [stderr] 40 | | } Dec 06 12:03:58.545 INFO [stderr] | |_____^ Dec 06 12:03:58.545 INFO [stderr] Dec 06 12:03:58.545 INFO [stderr] warning: variant `T_INT` should have a camel case name such as `TInt` Dec 06 12:03:58.545 INFO [stderr] --> src/main.rs:46:3 Dec 06 12:03:58.545 INFO [stderr] | Dec 06 12:03:58.545 INFO [stderr] 46 | T_INT{ty: Type, value: u32}, Dec 06 12:03:58.545 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.545 INFO [stderr] | Dec 06 12:03:58.545 INFO [stderr] = note: #[warn(non_camel_case_types)] on by default Dec 06 12:03:58.545 INFO [stderr] Dec 06 12:03:58.546 INFO [stderr] warning: variant `T_BOOL` should have a camel case name such as `TBool` Dec 06 12:03:58.546 INFO [stderr] --> src/main.rs:47:6 Dec 06 12:03:58.546 INFO [stderr] | Dec 06 12:03:58.546 INFO [stderr] 47 | T_BOOL{ty: Type, value: bool}, Dec 06 12:03:58.546 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.546 INFO [stderr] Dec 06 12:03:58.546 INFO [stderr] warning: variant `T_VAR` should have a camel case name such as `TVar` Dec 06 12:03:58.546 INFO [stderr] --> src/main.rs:48:6 Dec 06 12:03:58.546 INFO [stderr] | Dec 06 12:03:58.546 INFO [stderr] 48 | T_VAR{ty: Type, name: char}, Dec 06 12:03:58.546 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.546 INFO [stderr] Dec 06 12:03:58.546 INFO [stderr] warning: variant `T_FUN` should have a camel case name such as `TFun` Dec 06 12:03:58.546 INFO [stderr] --> src/main.rs:49:6 Dec 06 12:03:58.546 INFO [stderr] | Dec 06 12:03:58.546 INFO [stderr] 49 | T_FUN{ty: Type, param: Box, body: Box}, Dec 06 12:03:58.546 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.546 INFO [stderr] Dec 06 12:03:58.546 INFO [stderr] warning: variant `T_Closure` should have a camel case name such as `TClosure` Dec 06 12:03:58.546 INFO [stderr] --> src/main.rs:50:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 50 | T_Closure{fun: Box, env: InterpEnv}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_APP` should have a camel case name such as `TApp` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:51:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 51 | T_APP{ty: Type, fun: Box, arg: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_CALC` should have a camel case name such as `TCalc` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:52:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 52 | T_CALC{ty: Type, op: char, exp1: Box, exp2: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_NOT` should have a camel case name such as `TNot` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:53:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 53 | T_NOT{ty: Type, exp: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_AND` should have a camel case name such as `TAnd` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:54:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 54 | T_AND{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_OR` should have a camel case name such as `TOr` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:55:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 55 | T_OR{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_EQU` should have a camel case name such as `TEqu` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:56:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 56 | T_EQU{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_LT` should have a camel case name such as `TLt` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:57:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 57 | T_LT{ty: Type, exp1: Box, exp2: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_IF` should have a camel case name such as `TIf` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:58:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 58 | T_IF{ty: Type, exp1: Box, exp2: Box, exp3: Box}, Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: variant `T_LET` should have a camel case name such as `TLet` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:59:6 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 59 | T_LET{ty: Type, exp1: Box, exp2: Box, exp3: Box} Dec 06 12:03:58.547 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.547 INFO [stderr] warning: method `getType` should have a snake case name such as `get_type` Dec 06 12:03:58.547 INFO [stderr] --> src/main.rs:65:3 Dec 06 12:03:58.547 INFO [stderr] | Dec 06 12:03:58.547 INFO [stderr] 65 | fn getType(self) -> Type { Dec 06 12:03:58.547 INFO [stderr] | _________^ Dec 06 12:03:58.547 INFO [stderr] 66 | | match self { Dec 06 12:03:58.547 INFO [stderr] 67 | | TypedTerm::T_INT{ty: t, value: v} => t, Dec 06 12:03:58.547 INFO [stderr] 68 | | TypedTerm::T_BOOL{ty: t, value: v} => t, Dec 06 12:03:58.547 INFO [stderr] ... | Dec 06 12:03:58.547 INFO [stderr] 81 | | } Dec 06 12:03:58.547 INFO [stderr] 82 | | } Dec 06 12:03:58.547 INFO [stderr] | |_________^ Dec 06 12:03:58.547 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:88:3 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 88 | Env: HashMap Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `varNum` should have a snake case name such as `var_num` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:107:52 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 107 | fn annotate(term: UntypedTerm, mut tenv: TypeEnv, varNum: &mut u32) -> TypedTerm { Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:113:9 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 113 | let paramTy = freshVar(varNum); Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:114:9 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 114 | let paramTy1 = paramTy.clone(); Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:116:9 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 116 | let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: p}; Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `paramTy` should have a snake case name such as `param_ty` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:134:12 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 134 | let paramTy = freshVar(varNum); Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `paramTy1` should have a snake case name such as `param_ty1` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:135:9 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 135 | let paramTy1 = paramTy.clone(); Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: variable `paramBinder` should have a snake case name such as `param_binder` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:137:9 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 137 | let paramBinder = TypedTerm::T_VAR{ty: paramTy1, name: e1}; Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: structure field `typeA` should have a snake case name such as `type_a` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:149:3 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 149 | typeA: Type, Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: structure field `typeB` should have a snake case name such as `type_b` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:150:3 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 150 | typeB: Type Dec 06 12:03:58.549 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: method `fromPair` should have a snake case name such as `from_pair` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:277:3 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 277 | fn fromPair(tvar: u32, ty: Type) -> Substitution { Dec 06 12:03:58.549 INFO [stderr] | _________^ Dec 06 12:03:58.549 INFO [stderr] 278 | | let mut s1 = HashMap::new(); Dec 06 12:03:58.549 INFO [stderr] 279 | | s1.insert(tvar, ty); Dec 06 12:03:58.549 INFO [stderr] 280 | | Substitution{solutions: s1} Dec 06 12:03:58.549 INFO [stderr] 281 | | } Dec 06 12:03:58.549 INFO [stderr] | |_________^ Dec 06 12:03:58.549 INFO [stderr] Dec 06 12:03:58.549 INFO [stderr] warning: method `applyToSet` should have a snake case name such as `apply_to_set` Dec 06 12:03:58.549 INFO [stderr] --> src/main.rs:284:3 Dec 06 12:03:58.549 INFO [stderr] | Dec 06 12:03:58.549 INFO [stderr] 284 | fn applyToSet (&self,constraints: &mut Vec) -> Vec { Dec 06 12:03:58.549 INFO [stderr] | _________^ Dec 06 12:03:58.549 INFO [stderr] 285 | | for elem in constraints.iter_mut() { Dec 06 12:03:58.549 INFO [stderr] 286 | | //traverse target constraint set and update each type in all elements. Dec 06 12:03:58.549 INFO [stderr] 287 | | *elem = Constraint{typeA: Self::applyOneType(&self, elem.typeA.clone()), typeB: Self::applyOneType(&self,elem.typeB.clone())} Dec 06 12:03:58.549 INFO [stderr] 288 | | } Dec 06 12:03:58.549 INFO [stderr] 289 | | constraints.clone() Dec 06 12:03:58.549 INFO [stderr] 290 | | } Dec 06 12:03:58.549 INFO [stderr] | |_________^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: method `applyOneType` should have a snake case name such as `apply_one_type` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:293:3 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 293 | fn applyOneType(&self, ty: Type) -> Type { Dec 06 12:03:58.550 INFO [stderr] | _________^ Dec 06 12:03:58.550 INFO [stderr] 294 | | match ty { Dec 06 12:03:58.550 INFO [stderr] 295 | | Type::TyInt => ty, Dec 06 12:03:58.550 INFO [stderr] 296 | | Type::TyBool => ty, Dec 06 12:03:58.550 INFO [stderr] ... | Dec 06 12:03:58.550 INFO [stderr] 305 | | } Dec 06 12:03:58.550 INFO [stderr] 306 | | } Dec 06 12:03:58.550 INFO [stderr] | |_________^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: variable `solutionType` should have a snake case name such as `solution_type` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:311:8 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 311 | for solutionType in self.solutions.values_mut() { Dec 06 12:03:58.550 INFO [stderr] | ^^^^^^^^^^^^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: variable `solutionOne` should have a snake case name such as `solution_one` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:330:8 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 330 | let mut solutionOne = unifyOne(constraints[0].clone()); Dec 06 12:03:58.550 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: variable `updateConstraints` should have a snake case name such as `update_constraints` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:334:8 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 334 | let mut updateConstraints = solutionOne.applyToSet(&mut vec1); Dec 06 12:03:58.550 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: variable `solutionRest` should have a snake case name such as `solution_rest` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:336:8 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 336 | let solutionRest = unify(updateConstraints); Dec 06 12:03:58.550 INFO [stderr] | ^^^^^^^^^^^^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: function `unifyOne` should have a snake case name such as `unify_one` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:343:2 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 343 | fn unifyOne(constraint: Constraint) -> Substitution { Dec 06 12:03:58.550 INFO [stderr] | _____^ Dec 06 12:03:58.550 INFO [stderr] 344 | | match (constraint.typeA, constraint.typeB) { Dec 06 12:03:58.550 INFO [stderr] 345 | | (Type::TyInt, Type:: TyInt) => Substitution{solutions: HashMap::new()}, Dec 06 12:03:58.550 INFO [stderr] 346 | | (Type::TyBool, Type:: TyBool) => Substitution{solutions: HashMap::new()}, Dec 06 12:03:58.550 INFO [stderr] ... | Dec 06 12:03:58.550 INFO [stderr] 352 | | } Dec 06 12:03:58.550 INFO [stderr] 353 | | } Dec 06 12:03:58.550 INFO [stderr] | |_____^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: function `unifyVar` should have a snake case name such as `unify_var` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:356:2 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 356 | fn unifyVar(tvar: u32, ty: Type) -> Substitution { Dec 06 12:03:58.550 INFO [stderr] | _____^ Dec 06 12:03:58.550 INFO [stderr] 357 | | match ty { Dec 06 12:03:58.550 INFO [stderr] 358 | | //do nothing if they are the same type variable Dec 06 12:03:58.550 INFO [stderr] 359 | | Type::TyVar{num: n} => { Dec 06 12:03:58.550 INFO [stderr] ... | Dec 06 12:03:58.550 INFO [stderr] 383 | | } Dec 06 12:03:58.550 INFO [stderr] 384 | | } Dec 06 12:03:58.550 INFO [stderr] | |_____^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: function `typeInference` should have a snake case name such as `type_inference` Dec 06 12:03:58.550 INFO [stderr] --> src/main.rs:397:2 Dec 06 12:03:58.550 INFO [stderr] | Dec 06 12:03:58.550 INFO [stderr] 397 | fn typeInference(term: UntypedTerm) { Dec 06 12:03:58.550 INFO [stderr] | _____^ Dec 06 12:03:58.550 INFO [stderr] 398 | | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.550 INFO [stderr] 399 | | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:58.550 INFO [stderr] 400 | | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:58.550 INFO [stderr] ... | Dec 06 12:03:58.550 INFO [stderr] 408 | | println!(" "); Dec 06 12:03:58.550 INFO [stderr] 409 | | } Dec 06 12:03:58.550 INFO [stderr] | |_____^ Dec 06 12:03:58.550 INFO [stderr] Dec 06 12:03:58.550 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t` Dec 06 12:03:58.551 INFO [stderr] --> src/main.rs:398:7 Dec 06 12:03:58.551 INFO [stderr] | Dec 06 12:03:58.551 INFO [stderr] 398 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.551 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:58.551 INFO [stderr] Dec 06 12:03:58.551 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term` Dec 06 12:03:58.551 INFO [stderr] --> src/main.rs:399:10 Dec 06 12:03:58.551 INFO [stderr] | Dec 06 12:03:58.551 INFO [stderr] 399 | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:58.551 INFO [stderr] | ^^^^^^^^^ Dec 06 12:03:58.551 INFO [stderr] Dec 06 12:03:58.551 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints` Dec 06 12:03:58.551 INFO [stderr] --> src/main.rs:400:10 Dec 06 12:03:58.551 INFO [stderr] | Dec 06 12:03:58.551 INFO [stderr] 400 | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:58.551 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:58.551 INFO [stderr] Dec 06 12:03:58.551 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env` Dec 06 12:03:58.551 INFO [stderr] --> src/main.rs:415:3 Dec 06 12:03:58.551 INFO [stderr] | Dec 06 12:03:58.551 INFO [stderr] 415 | Env: HashMap Dec 06 12:03:58.551 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 12:03:58.551 INFO [stderr] Dec 06 12:03:58.551 INFO [stderr] warning: function `Interp` should have a snake case name such as `interp` Dec 06 12:03:58.552 INFO [stderr] --> src/main.rs:433:2 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 433 | fn Interp(term: TypedTerm, env: &mut InterpEnv) -> TypedTerm { Dec 06 12:03:58.553 INFO [stderr] | _____^ Dec 06 12:03:58.553 INFO [stderr] 434 | | match term { Dec 06 12:03:58.553 INFO [stderr] 435 | | TypedTerm::T_INT{ty: t, value: v} => TypedTerm::T_INT{ty: t, value: v}, Dec 06 12:03:58.553 INFO [stderr] 436 | | TypedTerm::T_BOOL{ty: t, value: v} => TypedTerm::T_BOOL{ty: t, value: v}, Dec 06 12:03:58.553 INFO [stderr] ... | Dec 06 12:03:58.553 INFO [stderr] 519 | | } Dec 06 12:03:58.553 INFO [stderr] 520 | | } Dec 06 12:03:58.553 INFO [stderr] | |_____^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:443:15 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 443 | let mut EnvNew = InterpEnv{Env: HashMap::new()}; Dec 06 12:03:58.553 INFO [stderr] | ^^^^^^^^^^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: variable `EnvNew` should have a snake case name such as `env_new` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:508:15 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 508 | let mut EnvNew = InterpEnv{Env: HashMap::new()}; Dec 06 12:03:58.553 INFO [stderr] | ^^^^^^^^^^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: function `InterpE` should have a snake case name such as `interp_e` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:522:2 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 522 | fn InterpE(term: UntypedTerm) { Dec 06 12:03:58.553 INFO [stderr] | _____^ Dec 06 12:03:58.553 INFO [stderr] 523 | | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.553 INFO [stderr] 524 | | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:58.553 INFO [stderr] 525 | | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:58.553 INFO [stderr] ... | Dec 06 12:03:58.553 INFO [stderr] 530 | | println!("{:?}",Interp(TypedTerm, &mut EnvI)); Dec 06 12:03:58.553 INFO [stderr] 531 | | } Dec 06 12:03:58.553 INFO [stderr] | |_____^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:523:7 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 523 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.553 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: variable `TypedTerm` should have a snake case name such as `typed_term` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:524:10 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 524 | let TypedTerm = annotate(term, EnvT, &mut 0); Dec 06 12:03:58.553 INFO [stderr] | ^^^^^^^^^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: variable `Constraints` should have a snake case name such as `constraints` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:525:10 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 525 | let Constraints = collect(TypedTerm.clone()); Dec 06 12:03:58.553 INFO [stderr] | ^^^^^^^^^^^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: variable `EnvI` should have a snake case name such as `env_i` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:528:10 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 528 | let mut EnvI = InterpEnv{Env: HashMap::new()}; Dec 06 12:03:58.553 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: function `Add` should have a snake case name such as `add` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:534:2 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 534 | fn Add(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.553 INFO [stderr] | _____^ Dec 06 12:03:58.553 INFO [stderr] 535 | | match (a1,a2) { Dec 06 12:03:58.553 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 06 12:03:58.553 INFO [stderr] 537 | | _ => panic!("undefined !") Dec 06 12:03:58.553 INFO [stderr] 538 | | } Dec 06 12:03:58.553 INFO [stderr] 539 | | } Dec 06 12:03:58.553 INFO [stderr] | |_____^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: function `Minus` should have a snake case name such as `minus` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:541:2 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 541 | fn Minus(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.553 INFO [stderr] | _____^ Dec 06 12:03:58.553 INFO [stderr] 542 | | match (a1,a2) { Dec 06 12:03:58.553 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 06 12:03:58.553 INFO [stderr] 544 | | _ => panic!("undefined !") Dec 06 12:03:58.553 INFO [stderr] 545 | | } Dec 06 12:03:58.553 INFO [stderr] 546 | | } Dec 06 12:03:58.553 INFO [stderr] | |_____^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: function `Mul` should have a snake case name such as `mul` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:548:2 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 548 | fn Mul(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.553 INFO [stderr] | _____^ Dec 06 12:03:58.553 INFO [stderr] 549 | | match (a1,a2) { Dec 06 12:03:58.553 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 06 12:03:58.553 INFO [stderr] 551 | | _ => panic!("undefined !") Dec 06 12:03:58.553 INFO [stderr] 552 | | } Dec 06 12:03:58.553 INFO [stderr] 553 | | } Dec 06 12:03:58.553 INFO [stderr] | |_____^ Dec 06 12:03:58.553 INFO [stderr] Dec 06 12:03:58.553 INFO [stderr] warning: function `Div` should have a snake case name such as `div` Dec 06 12:03:58.553 INFO [stderr] --> src/main.rs:555:2 Dec 06 12:03:58.553 INFO [stderr] | Dec 06 12:03:58.553 INFO [stderr] 555 | fn Div(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.553 INFO [stderr] | _____^ Dec 06 12:03:58.553 INFO [stderr] 556 | | match (a1,a2) { Dec 06 12:03:58.553 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 06 12:03:58.553 INFO [stderr] 558 | | _ => panic!("undefined !") Dec 06 12:03:58.553 INFO [stderr] 559 | | } Dec 06 12:03:58.554 INFO [stderr] 560 | | } Dec 06 12:03:58.554 INFO [stderr] | |_____^ Dec 06 12:03:58.554 INFO [stderr] Dec 06 12:03:58.554 INFO [stderr] warning: function `Lt` should have a snake case name such as `lt` Dec 06 12:03:58.554 INFO [stderr] --> src/main.rs:562:2 Dec 06 12:03:58.554 INFO [stderr] | Dec 06 12:03:58.554 INFO [stderr] 562 | fn Lt(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.554 INFO [stderr] | _____^ Dec 06 12:03:58.554 INFO [stderr] 563 | | match (a1,a2) { Dec 06 12:03:58.554 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 06 12:03:58.554 INFO [stderr] 565 | | _ => panic!("undefined !") Dec 06 12:03:58.554 INFO [stderr] 566 | | } Dec 06 12:03:58.554 INFO [stderr] 567 | | } Dec 06 12:03:58.554 INFO [stderr] | |_____^ Dec 06 12:03:58.554 INFO [stderr] Dec 06 12:03:58.554 INFO [stderr] warning: function `And` should have a snake case name such as `and` Dec 06 12:03:58.554 INFO [stderr] --> src/main.rs:570:2 Dec 06 12:03:58.554 INFO [stderr] | Dec 06 12:03:58.554 INFO [stderr] 570 | fn And(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.554 INFO [stderr] | _____^ Dec 06 12:03:58.554 INFO [stderr] 571 | | match (a1,a2) { Dec 06 12:03:58.554 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 06 12:03:58.554 INFO [stderr] 573 | | _ => panic!("undefined !") Dec 06 12:03:58.554 INFO [stderr] 574 | | } Dec 06 12:03:58.554 INFO [stderr] 575 | | } Dec 06 12:03:58.554 INFO [stderr] | |_____^ Dec 06 12:03:58.554 INFO [stderr] Dec 06 12:03:58.554 INFO [stderr] warning: function `Or` should have a snake case name such as `or` Dec 06 12:03:58.554 INFO [stderr] --> src/main.rs:577:2 Dec 06 12:03:58.554 INFO [stderr] | Dec 06 12:03:58.554 INFO [stderr] 577 | fn Or(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.554 INFO [stderr] | _____^ Dec 06 12:03:58.554 INFO [stderr] 578 | | match (a1,a2) { Dec 06 12:03:58.554 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 06 12:03:58.554 INFO [stderr] 580 | | _ => panic!("undefined !") Dec 06 12:03:58.554 INFO [stderr] 581 | | } Dec 06 12:03:58.554 INFO [stderr] 582 | | } Dec 06 12:03:58.554 INFO [stderr] | |_____^ Dec 06 12:03:58.554 INFO [stderr] Dec 06 12:03:58.554 INFO [stderr] warning: function `Equ` should have a snake case name such as `equ` Dec 06 12:03:58.554 INFO [stderr] --> src/main.rs:584:2 Dec 06 12:03:58.554 INFO [stderr] | Dec 06 12:03:58.554 INFO [stderr] 584 | fn Equ(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Dec 06 12:03:58.554 INFO [stderr] | _____^ Dec 06 12:03:58.554 INFO [stderr] 585 | | match (a1,a2) { Dec 06 12:03:58.554 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 06 12:03:58.554 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 06 12:03:58.554 INFO [stderr] 588 | | _ => panic!("undefined !") Dec 06 12:03:58.554 INFO [stderr] 589 | | } Dec 06 12:03:58.554 INFO [stderr] 590 | | } Dec 06 12:03:58.554 INFO [stderr] | |_____^ Dec 06 12:03:58.554 INFO [stderr] Dec 06 12:03:58.554 INFO [stderr] warning: variable `EnvT` should have a snake case name such as `env_t` Dec 06 12:03:58.554 INFO [stderr] --> src/main.rs:613:6 Dec 06 12:03:58.554 INFO [stderr] | Dec 06 12:03:58.554 INFO [stderr] 613 | let mut EnvT = TypeEnv{Env: HashMap::new()}; Dec 06 12:03:58.554 INFO [stderr] | ^^^^^^^^ Dec 06 12:03:58.554 INFO [stderr] Dec 06 12:03:58.777 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.84s Dec 06 12:03:58.780 INFO [stderr] su: No module specific data is present Dec 06 12:03:59.046 INFO running `"docker" "inspect" "aed7ca4e62ffe74f6f0dd6cd088e3d5770c047702230a7f72eeabd2cebfb27b4"` Dec 06 12:03:59.136 INFO running `"docker" "rm" "-f" "aed7ca4e62ffe74f6f0dd6cd088e3d5770c047702230a7f72eeabd2cebfb27b4"` Dec 06 12:03:59.304 INFO [stdout] aed7ca4e62ffe74f6f0dd6cd088e3d5770c047702230a7f72eeabd2cebfb27b4 Dec 06 12:03:59.306 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-1/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-1/pr-56514/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/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 +6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468-alt test --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 12:03:59.673 INFO [stdout] a6db38712150f18b0c43b4646e016c44ff53eaf257e74a00a2f05df50efd034f Dec 06 12:03:59.680 INFO running `"docker" "start" "-a" "a6db38712150f18b0c43b4646e016c44ff53eaf257e74a00a2f05df50efd034f"` Dec 06 12:04:00.563 INFO [stderr] usermod: no changes Dec 06 12:04:00.607 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently Dec 06 12:04:00.607 INFO [stderr] disables Cargo from automatically inferring other binary targets. Dec 06 12:04:00.607 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Dec 06 12:04:00.607 INFO [stderr] files will be included as a binary target: Dec 06 12:04:00.607 INFO [stderr] Dec 06 12:04:00.607 INFO [stderr] * /source/src/main.rs Dec 06 12:04:00.607 INFO [stderr] Dec 06 12:04:00.607 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Dec 06 12:04:00.607 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself Dec 06 12:04:00.607 INFO [stderr] and disable this warning by adding `autobins = false` to your [package] Dec 06 12:04:00.607 INFO [stderr] section. You may also move the files to a location where Cargo would not Dec 06 12:04:00.607 INFO [stderr] automatically infer them to be a target, such as in subfolders. Dec 06 12:04:00.607 INFO [stderr] Dec 06 12:04:00.607 INFO [stderr] For more information on this warning you can consult Dec 06 12:04:00.607 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Dec 06 12:04:00.607 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`, Dec 06 12:04:00.607 INFO [stderr] please set bin.path in Cargo.toml Dec 06 12:04:00.607 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.01s Dec 06 12:04:00.613 INFO [stderr] Running /target/debug/deps/hello_world-09239d62484d3a79 Dec 06 12:04:00.617 INFO [stdout] Dec 06 12:04:00.618 INFO [stdout] running 0 tests Dec 06 12:04:00.618 INFO [stdout] Dec 06 12:04:00.618 INFO [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Dec 06 12:04:00.618 INFO [stdout] Dec 06 12:04:00.628 INFO [stderr] su: No module specific data is present Dec 06 12:04:01.034 INFO running `"docker" "inspect" "a6db38712150f18b0c43b4646e016c44ff53eaf257e74a00a2f05df50efd034f"` Dec 06 12:04:01.165 INFO running `"docker" "rm" "-f" "a6db38712150f18b0c43b4646e016c44ff53eaf257e74a00a2f05df50efd034f"` Dec 06 12:04:01.332 INFO [stdout] a6db38712150f18b0c43b4646e016c44ff53eaf257e74a00a2f05df50efd034f