Nov 28 04:36:38.391 INFO documenting MaXiaoye/CAS706_assignment3_Rust against master#6bfb46e4ac9a2704f06de1a2ff7a4612cd70c8cb for pr-55318 Nov 28 04:36:38.391 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-55318/worker-2/master#6bfb46e4ac9a2704f06de1a2ff7a4612cd70c8cb:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-2/pr-55318/master#6bfb46e4ac9a2704f06de1a2ff7a4612cd70c8cb:/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 +6bfb46e4ac9a2704f06de1a2ff7a4612cd70c8cb-alt doc --frozen --no-deps --document-private-items" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Nov 28 04:36:38.879 INFO [stdout] e751431a417ff288e6a17a257130df3a5d00a99421d37a38068ad8413b30a305 Nov 28 04:36:38.879 INFO running `"docker" "start" "-a" "e751431a417ff288e6a17a257130df3a5d00a99421d37a38068ad8413b30a305"` Nov 28 04:36:40.112 INFO [stderr] usermod: no changes Nov 28 04:36:40.218 INFO [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently Nov 28 04:36:40.219 INFO [stderr] disables Cargo from automatically inferring other binary targets. Nov 28 04:36:40.219 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Nov 28 04:36:40.219 INFO [stderr] files will be included as a binary target: Nov 28 04:36:40.219 INFO [stderr] Nov 28 04:36:40.219 INFO [stderr] * /source/src/main.rs Nov 28 04:36:40.219 INFO [stderr] Nov 28 04:36:40.219 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Nov 28 04:36:40.219 INFO [stderr] ready to be compiled as a binary target today. You can future-proof yourself Nov 28 04:36:40.219 INFO [stderr] and disable this warning by adding `autobins = false` to your [package] Nov 28 04:36:40.219 INFO [stderr] section. You may also move the files to a location where Cargo would not Nov 28 04:36:40.219 INFO [stderr] automatically infer them to be a target, such as in subfolders. Nov 28 04:36:40.219 INFO [stderr] Nov 28 04:36:40.219 INFO [stderr] For more information on this warning you can consult Nov 28 04:36:40.219 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Nov 28 04:36:40.219 INFO [stderr] warning: path `/source/src/main.rs` was erroneously implicitly accepted for binary `hello_world`, Nov 28 04:36:40.219 INFO [stderr] please set bin.path in Cargo.toml Nov 28 04:36:40.219 INFO [stderr] Documenting assignmentThree_Rust v0.0.1 (/source) Nov 28 04:36:40.585 INFO [stderr] warning: structure field `ParamTy` should have a snake case name such as `param_ty` Nov 28 04:36:40.585 INFO [stderr] --> src/main.rs:33:9 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 33 | TyFun{ParamTy: Box, ReturnTy: Box} Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] = note: #[warn(non_snake_case)] on by default Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: structure field `ReturnTy` should have a snake case name such as `return_ty` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:33:29 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 33 | TyFun{ParamTy: Box, ReturnTy: Box} Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: function `freshVar` should have a snake case name such as `fresh_var` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:37:2 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 37 | fn freshVar(v: &mut u32) -> Type { Nov 28 04:36:40.586 INFO [stderr] | _____^ Nov 28 04:36:40.586 INFO [stderr] 38 | | *v+=1; Nov 28 04:36:40.586 INFO [stderr] 39 | | Type::TyVar{num: *v} Nov 28 04:36:40.586 INFO [stderr] 40 | | } Nov 28 04:36:40.586 INFO [stderr] | |_____^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_INT` should have a camel case name such as `TInt` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:46:3 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 46 | T_INT{ty: Type, value: u32}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] = note: #[warn(non_camel_case_types)] on by default Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_BOOL` should have a camel case name such as `TBool` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:47:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 47 | T_BOOL{ty: Type, value: bool}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_VAR` should have a camel case name such as `TVar` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:48:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 48 | T_VAR{ty: Type, name: char}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_FUN` should have a camel case name such as `TFun` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:49:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 49 | T_FUN{ty: Type, param: Box, body: Box}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_Closure` should have a camel case name such as `TClosure` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:50:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 50 | T_Closure{fun: Box, env: InterpEnv}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_APP` should have a camel case name such as `TApp` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:51:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 51 | T_APP{ty: Type, fun: Box, arg: Box}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_CALC` should have a camel case name such as `TCalc` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:52:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 52 | T_CALC{ty: Type, op: char, exp1: Box, exp2: Box}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_NOT` should have a camel case name such as `TNot` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:53:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 53 | T_NOT{ty: Type, exp: Box}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_AND` should have a camel case name such as `TAnd` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:54:6 Nov 28 04:36:40.586 INFO [stderr] | Nov 28 04:36:40.586 INFO [stderr] 54 | T_AND{ty: Type, exp1: Box, exp2: Box}, Nov 28 04:36:40.586 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.586 INFO [stderr] Nov 28 04:36:40.586 INFO [stderr] warning: variant `T_OR` should have a camel case name such as `TOr` Nov 28 04:36:40.586 INFO [stderr] --> src/main.rs:55:6 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 55 | T_OR{ty: Type, exp1: Box, exp2: Box}, Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: variant `T_EQU` should have a camel case name such as `TEqu` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:56:6 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 56 | T_EQU{ty: Type, exp1: Box, exp2: Box}, Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: variant `T_LT` should have a camel case name such as `TLt` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:57:6 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 57 | T_LT{ty: Type, exp1: Box, exp2: Box}, Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: variant `T_IF` should have a camel case name such as `TIf` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:58:6 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 58 | T_IF{ty: Type, exp1: Box, exp2: Box, exp3: Box}, Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: variant `T_LET` should have a camel case name such as `TLet` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:59:6 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 59 | T_LET{ty: Type, exp1: Box, exp2: Box, exp3: Box} Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: method `getType` should have a snake case name such as `get_type` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:65:3 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 65 | fn getType(self) -> Type { Nov 28 04:36:40.587 INFO [stderr] | _________^ Nov 28 04:36:40.587 INFO [stderr] 66 | | match self { Nov 28 04:36:40.587 INFO [stderr] 67 | | TypedTerm::T_INT{ty: t, value: v} => t, Nov 28 04:36:40.587 INFO [stderr] 68 | | TypedTerm::T_BOOL{ty: t, value: v} => t, Nov 28 04:36:40.587 INFO [stderr] ... | Nov 28 04:36:40.587 INFO [stderr] 81 | | } Nov 28 04:36:40.587 INFO [stderr] 82 | | } Nov 28 04:36:40.587 INFO [stderr] | |_________^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:88:3 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 88 | Env: HashMap Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: variable `varNum` should have a snake case name such as `var_num` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:107:52 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 107 | fn annotate(term: UntypedTerm, mut tenv: TypeEnv, varNum: &mut u32) -> TypedTerm { Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: structure field `typeA` should have a snake case name such as `type_a` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:149:3 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 149 | typeA: Type, Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: structure field `typeB` should have a snake case name such as `type_b` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:150:3 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 150 | typeB: Type Nov 28 04:36:40.587 INFO [stderr] | ^^^^^^^^^^^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: method `fromPair` should have a snake case name such as `from_pair` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:277:3 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 277 | fn fromPair(tvar: u32, ty: Type) -> Substitution { Nov 28 04:36:40.587 INFO [stderr] | _________^ Nov 28 04:36:40.587 INFO [stderr] 278 | | let mut s1 = HashMap::new(); Nov 28 04:36:40.587 INFO [stderr] 279 | | s1.insert(tvar, ty); Nov 28 04:36:40.587 INFO [stderr] 280 | | Substitution{solutions: s1} Nov 28 04:36:40.587 INFO [stderr] 281 | | } Nov 28 04:36:40.587 INFO [stderr] | |_________^ Nov 28 04:36:40.587 INFO [stderr] Nov 28 04:36:40.587 INFO [stderr] warning: method `applyToSet` should have a snake case name such as `apply_to_set` Nov 28 04:36:40.587 INFO [stderr] --> src/main.rs:284:3 Nov 28 04:36:40.587 INFO [stderr] | Nov 28 04:36:40.587 INFO [stderr] 284 | fn applyToSet (&self,constraints: &mut Vec) -> Vec { Nov 28 04:36:40.587 INFO [stderr] | _________^ Nov 28 04:36:40.587 INFO [stderr] 285 | | for elem in constraints.iter_mut() { Nov 28 04:36:40.587 INFO [stderr] 286 | | //traverse target constraint set and update each type in all elements. Nov 28 04:36:40.588 INFO [stderr] 287 | | *elem = Constraint{typeA: Self::applyOneType(&self, elem.typeA.clone()), typeB: Self::applyOneType(&self,elem.typeB.clone())} Nov 28 04:36:40.588 INFO [stderr] 288 | | } Nov 28 04:36:40.588 INFO [stderr] 289 | | constraints.clone() Nov 28 04:36:40.588 INFO [stderr] 290 | | } Nov 28 04:36:40.588 INFO [stderr] | |_________^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: method `applyOneType` should have a snake case name such as `apply_one_type` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:293:3 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 293 | fn applyOneType(&self, ty: Type) -> Type { Nov 28 04:36:40.588 INFO [stderr] | _________^ Nov 28 04:36:40.588 INFO [stderr] 294 | | match ty { Nov 28 04:36:40.588 INFO [stderr] 295 | | Type::TyInt => ty, Nov 28 04:36:40.588 INFO [stderr] 296 | | Type::TyBool => ty, Nov 28 04:36:40.588 INFO [stderr] ... | Nov 28 04:36:40.588 INFO [stderr] 305 | | } Nov 28 04:36:40.588 INFO [stderr] 306 | | } Nov 28 04:36:40.588 INFO [stderr] | |_________^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: function `unifyOne` should have a snake case name such as `unify_one` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:343:2 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 343 | fn unifyOne(constraint: Constraint) -> Substitution { Nov 28 04:36:40.588 INFO [stderr] | _____^ Nov 28 04:36:40.588 INFO [stderr] 344 | | match (constraint.typeA, constraint.typeB) { Nov 28 04:36:40.588 INFO [stderr] 345 | | (Type::TyInt, Type:: TyInt) => Substitution{solutions: HashMap::new()}, Nov 28 04:36:40.588 INFO [stderr] 346 | | (Type::TyBool, Type:: TyBool) => Substitution{solutions: HashMap::new()}, Nov 28 04:36:40.588 INFO [stderr] ... | Nov 28 04:36:40.588 INFO [stderr] 352 | | } Nov 28 04:36:40.588 INFO [stderr] 353 | | } Nov 28 04:36:40.588 INFO [stderr] | |_____^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: function `unifyVar` should have a snake case name such as `unify_var` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:356:2 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 356 | fn unifyVar(tvar: u32, ty: Type) -> Substitution { Nov 28 04:36:40.588 INFO [stderr] | _____^ Nov 28 04:36:40.588 INFO [stderr] 357 | | match ty { Nov 28 04:36:40.588 INFO [stderr] 358 | | //do nothing if they are the same type variable Nov 28 04:36:40.588 INFO [stderr] 359 | | Type::TyVar{num: n} => { Nov 28 04:36:40.588 INFO [stderr] ... | Nov 28 04:36:40.588 INFO [stderr] 383 | | } Nov 28 04:36:40.588 INFO [stderr] 384 | | } Nov 28 04:36:40.588 INFO [stderr] | |_____^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: function `typeInference` should have a snake case name such as `type_inference` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:397:2 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 397 | fn typeInference(term: UntypedTerm) { Nov 28 04:36:40.588 INFO [stderr] | _____^ Nov 28 04:36:40.588 INFO [stderr] 398 | | let mut EnvT = TypeEnv{Env: HashMap::new()}; Nov 28 04:36:40.588 INFO [stderr] 399 | | let TypedTerm = annotate(term, EnvT, &mut 0); Nov 28 04:36:40.588 INFO [stderr] 400 | | let Constraints = collect(TypedTerm.clone()); Nov 28 04:36:40.588 INFO [stderr] ... | Nov 28 04:36:40.588 INFO [stderr] 408 | | println!(" "); Nov 28 04:36:40.588 INFO [stderr] 409 | | } Nov 28 04:36:40.588 INFO [stderr] | |_____^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: structure field `Env` should have a snake case name such as `env` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:415:3 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 415 | Env: HashMap Nov 28 04:36:40.588 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: function `Interp` should have a snake case name such as `interp` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:433:2 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 433 | fn Interp(term: TypedTerm, env: &mut InterpEnv) -> TypedTerm { Nov 28 04:36:40.588 INFO [stderr] | _____^ Nov 28 04:36:40.588 INFO [stderr] 434 | | match term { Nov 28 04:36:40.588 INFO [stderr] 435 | | TypedTerm::T_INT{ty: t, value: v} => TypedTerm::T_INT{ty: t, value: v}, Nov 28 04:36:40.588 INFO [stderr] 436 | | TypedTerm::T_BOOL{ty: t, value: v} => TypedTerm::T_BOOL{ty: t, value: v}, Nov 28 04:36:40.588 INFO [stderr] ... | Nov 28 04:36:40.588 INFO [stderr] 519 | | } Nov 28 04:36:40.588 INFO [stderr] 520 | | } Nov 28 04:36:40.588 INFO [stderr] | |_____^ Nov 28 04:36:40.588 INFO [stderr] Nov 28 04:36:40.588 INFO [stderr] warning: function `InterpE` should have a snake case name such as `interp_e` Nov 28 04:36:40.588 INFO [stderr] --> src/main.rs:522:2 Nov 28 04:36:40.588 INFO [stderr] | Nov 28 04:36:40.588 INFO [stderr] 522 | fn InterpE(term: UntypedTerm) { Nov 28 04:36:40.588 INFO [stderr] | _____^ Nov 28 04:36:40.588 INFO [stderr] 523 | | let mut EnvT = TypeEnv{Env: HashMap::new()}; Nov 28 04:36:40.588 INFO [stderr] 524 | | let TypedTerm = annotate(term, EnvT, &mut 0); Nov 28 04:36:40.589 INFO [stderr] 525 | | let Constraints = collect(TypedTerm.clone()); Nov 28 04:36:40.589 INFO [stderr] ... | Nov 28 04:36:40.589 INFO [stderr] 530 | | println!("{:?}",Interp(TypedTerm, &mut EnvI)); Nov 28 04:36:40.589 INFO [stderr] 531 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `Add` should have a snake case name such as `add` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:534:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 534 | fn Add(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.589 INFO [stderr] 535 | | match (a1,a2) { Nov 28 04:36:40.589 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}, Nov 28 04:36:40.589 INFO [stderr] 537 | | _ => panic!("undefined !") Nov 28 04:36:40.589 INFO [stderr] 538 | | } Nov 28 04:36:40.589 INFO [stderr] 539 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `Minus` should have a snake case name such as `minus` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:541:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 541 | fn Minus(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.589 INFO [stderr] 542 | | match (a1,a2) { Nov 28 04:36:40.589 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}, Nov 28 04:36:40.589 INFO [stderr] 544 | | _ => panic!("undefined !") Nov 28 04:36:40.589 INFO [stderr] 545 | | } Nov 28 04:36:40.589 INFO [stderr] 546 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `Mul` should have a snake case name such as `mul` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:548:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 548 | fn Mul(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.589 INFO [stderr] 549 | | match (a1,a2) { Nov 28 04:36:40.589 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}, Nov 28 04:36:40.589 INFO [stderr] 551 | | _ => panic!("undefined !") Nov 28 04:36:40.589 INFO [stderr] 552 | | } Nov 28 04:36:40.589 INFO [stderr] 553 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `Div` should have a snake case name such as `div` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:555:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 555 | fn Div(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.589 INFO [stderr] 556 | | match (a1,a2) { Nov 28 04:36:40.589 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}, Nov 28 04:36:40.589 INFO [stderr] 558 | | _ => panic!("undefined !") Nov 28 04:36:40.589 INFO [stderr] 559 | | } Nov 28 04:36:40.589 INFO [stderr] 560 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `Lt` should have a snake case name such as `lt` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:562:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 562 | fn Lt(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.589 INFO [stderr] 563 | | match (a1,a2) { Nov 28 04:36:40.589 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}, Nov 28 04:36:40.589 INFO [stderr] 565 | | _ => panic!("undefined !") Nov 28 04:36:40.589 INFO [stderr] 566 | | } Nov 28 04:36:40.589 INFO [stderr] 567 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `And` should have a snake case name such as `and` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:570:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 570 | fn And(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.589 INFO [stderr] 571 | | match (a1,a2) { Nov 28 04:36:40.589 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}, Nov 28 04:36:40.589 INFO [stderr] 573 | | _ => panic!("undefined !") Nov 28 04:36:40.589 INFO [stderr] 574 | | } Nov 28 04:36:40.589 INFO [stderr] 575 | | } Nov 28 04:36:40.589 INFO [stderr] | |_____^ Nov 28 04:36:40.589 INFO [stderr] Nov 28 04:36:40.589 INFO [stderr] warning: function `Or` should have a snake case name such as `or` Nov 28 04:36:40.589 INFO [stderr] --> src/main.rs:577:2 Nov 28 04:36:40.589 INFO [stderr] | Nov 28 04:36:40.589 INFO [stderr] 577 | fn Or(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.589 INFO [stderr] | _____^ Nov 28 04:36:40.590 INFO [stderr] 578 | | match (a1,a2) { Nov 28 04:36:40.590 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}, Nov 28 04:36:40.590 INFO [stderr] 580 | | _ => panic!("undefined !") Nov 28 04:36:40.590 INFO [stderr] 581 | | } Nov 28 04:36:40.590 INFO [stderr] 582 | | } Nov 28 04:36:40.590 INFO [stderr] | |_____^ Nov 28 04:36:40.590 INFO [stderr] Nov 28 04:36:40.590 INFO [stderr] warning: function `Equ` should have a snake case name such as `equ` Nov 28 04:36:40.590 INFO [stderr] --> src/main.rs:584:2 Nov 28 04:36:40.590 INFO [stderr] | Nov 28 04:36:40.590 INFO [stderr] 584 | fn Equ(a1: TypedTerm, a2: TypedTerm,) -> TypedTerm { Nov 28 04:36:40.590 INFO [stderr] | _____^ Nov 28 04:36:40.590 INFO [stderr] 585 | | match (a1,a2) { Nov 28 04:36:40.590 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}, Nov 28 04:36:40.590 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}, Nov 28 04:36:40.590 INFO [stderr] 588 | | _ => panic!("undefined !") Nov 28 04:36:40.590 INFO [stderr] 589 | | } Nov 28 04:36:40.590 INFO [stderr] 590 | | } Nov 28 04:36:40.590 INFO [stderr] | |_____^ Nov 28 04:36:40.590 INFO [stderr] Nov 28 04:36:41.959 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.80s Nov 28 04:36:41.959 INFO [stderr] su: No module specific data is present Nov 28 04:36:42.597 INFO running `"docker" "inspect" "e751431a417ff288e6a17a257130df3a5d00a99421d37a38068ad8413b30a305"` Nov 28 04:36:42.869 INFO running `"docker" "rm" "-f" "e751431a417ff288e6a17a257130df3a5d00a99421d37a38068ad8413b30a305"` Nov 28 04:36:43.018 INFO [stdout] e751431a417ff288e6a17a257130df3a5d00a99421d37a38068ad8413b30a305