[INFO] cloning repository https://github.com/tawashichan/type_inference_sample [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tawashichan/type_inference_sample" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawashichan%2Ftype_inference_sample", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawashichan%2Ftype_inference_sample'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f21fbdd75c702bc74c35ac2819fb139de122bbb0 [INFO] testing tawashichan/type_inference_sample against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawashichan%2Ftype_inference_sample" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tawashichan/type_inference_sample [INFO] finished tweaking git repo https://github.com/tawashichan/type_inference_sample [INFO] tweaked toml for git repo https://github.com/tawashichan/type_inference_sample written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tawashichan/type_inference_sample on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tawashichan/type_inference_sample already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded nanoid v0.1.3 [INFO] [stderr] Downloaded libc v0.2.60 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b5ae4818a71008769ff341fc6808ce465928bab81e8f84017a900a5dccd0e443 [INFO] running `Command { std: "docker" "start" "-a" "b5ae4818a71008769ff341fc6808ce465928bab81e8f84017a900a5dccd0e443", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b5ae4818a71008769ff341fc6808ce465928bab81e8f84017a900a5dccd0e443", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b5ae4818a71008769ff341fc6808ce465928bab81e8f84017a900a5dccd0e443", kill_on_drop: false }` [INFO] [stdout] b5ae4818a71008769ff341fc6808ce465928bab81e8f84017a900a5dccd0e443 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] be9a1eadfd7f71ef6e387896e3dc54d7da63ae0ffc355760fdb14d09fb1337c1 [INFO] running `Command { std: "docker" "start" "-a" "be9a1eadfd7f71ef6e387896e3dc54d7da63ae0ffc355760fdb14d09fb1337c1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.60 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling nanoid v0.1.3 [INFO] [stderr] Compiling type_inference v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | box Exp::Int(1), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 14 - box Exp::Int(1), [INFO] [stdout] 14 + Box::new(Exp::Int(1)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | box Exp::Var("x".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 15 - box Exp::Var("x".to_string()), [INFO] [stdout] 15 + Box::new(Exp::Var("x".to_string())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / box Exp::Op( [INFO] [stdout] 13 | | Op::Plus, [INFO] [stdout] 14 | | box Exp::Int(1), [INFO] [stdout] 15 | | box Exp::Var("x".to_string()), [INFO] [stdout] 16 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 12 ~ Box::new(Exp::Op( [INFO] [stdout] 13 | Op::Plus, [INFO] [stdout] 14 | box Exp::Int(1), [INFO] [stdout] 15 | box Exp::Var("x".to_string()), [INFO] [stdout] 16 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | box Exp::Var("x".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 26 - box Exp::Var("x".to_string()), [INFO] [stdout] 26 + Box::new(Exp::Var("x".to_string())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | box Exp::Int(1), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 27 - box Exp::Int(1), [INFO] [stdout] 27 + Box::new(Exp::Int(1)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | / box Exp::Op( [INFO] [stdout] 25 | | Op::Plus, [INFO] [stdout] 26 | | box Exp::Var("x".to_string()), [INFO] [stdout] 27 | | box Exp::Int(1), [INFO] [stdout] 28 | | ), [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 24 ~ Box::new(Exp::Op( [INFO] [stdout] 25 | Op::Plus, [INFO] [stdout] 26 | box Exp::Var("x".to_string()), [INFO] [stdout] 27 | box Exp::Int(1), [INFO] [stdout] 28 ~ )), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | box Exp::Var("y".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 29 - box Exp::Var("y".to_string()), [INFO] [stdout] 29 + Box::new(Exp::Var("y".to_string())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | / box Exp::Op( [INFO] [stdout] 23 | | Op::Plus, [INFO] [stdout] 24 | | box Exp::Op( [INFO] [stdout] 25 | | Op::Plus, [INFO] [stdout] ... | [INFO] [stdout] 29 | | box Exp::Var("y".to_string()), [INFO] [stdout] 30 | | ) [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 22 ~ Box::new(Exp::Op( [INFO] [stdout] 23 | Op::Plus, [INFO] [stdout] ... [INFO] [stdout] 29 | box Exp::Var("y".to_string()), [INFO] [stdout] 30 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / box Exp::Func( [INFO] [stdout] 21 | | "y".to_string(), [INFO] [stdout] 22 | | box Exp::Op( [INFO] [stdout] 23 | | Op::Plus, [INFO] [stdout] ... | [INFO] [stdout] 31 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 20 ~ Box::new(Exp::Func( [INFO] [stdout] 21 | "y".to_string(), [INFO] [stdout] ... [INFO] [stdout] 30 | ) [INFO] [stdout] 31 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | box Exp::Var("x".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 39 - box Exp::Var("x".to_string()), [INFO] [stdout] 39 + Box::new(Exp::Var("x".to_string())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | box Exp::Var("y".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 40 - box Exp::Var("y".to_string()), [INFO] [stdout] 40 + Box::new(Exp::Var("y".to_string())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / box Exp::Op( [INFO] [stdout] 38 | | Op::Plus, [INFO] [stdout] 39 | | box Exp::Var("x".to_string()), [INFO] [stdout] 40 | | box Exp::Var("y".to_string()), [INFO] [stdout] 41 | | ) [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 37 ~ Box::new(Exp::Op( [INFO] [stdout] 38 | Op::Plus, [INFO] [stdout] 39 | box Exp::Var("x".to_string()), [INFO] [stdout] 40 | box Exp::Var("y".to_string()), [INFO] [stdout] 41 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | / box Exp::Func( [INFO] [stdout] 36 | | "y".to_string(), [INFO] [stdout] 37 | | box Exp::Op( [INFO] [stdout] 38 | | Op::Plus, [INFO] [stdout] ... | [INFO] [stdout] 42 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 35 ~ Box::new(Exp::Func( [INFO] [stdout] 36 | "y".to_string(), [INFO] [stdout] ... [INFO] [stdout] 41 | ) [INFO] [stdout] 42 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | box Exp::Var("x".to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 47 - box Exp::Var("x".to_string()), [INFO] [stdout] 47 + Box::new(Exp::Var("x".to_string())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:48:13 [INFO] [stdout] | [INFO] [stdout] 48 | box Exp::Int(1), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 48 - box Exp::Int(1), [INFO] [stdout] 48 + Box::new(Exp::Int(1)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | box Exp::Int(2), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 49 - box Exp::Int(2), [INFO] [stdout] 49 + Box::new(Exp::Int(2)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / box Exp::If( [INFO] [stdout] 47 | | box Exp::Var("x".to_string()), [INFO] [stdout] 48 | | box Exp::Int(1), [INFO] [stdout] 49 | | box Exp::Int(2), [INFO] [stdout] 50 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 46 ~ Box::new(Exp::If( [INFO] [stdout] 47 | box Exp::Var("x".to_string()), [INFO] [stdout] 48 | box Exp::Int(1), [INFO] [stdout] 49 | box Exp::Int(2), [INFO] [stdout] 50 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | box Exp::Bool(true), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 56 - box Exp::Bool(true), [INFO] [stdout] 56 + Box::new(Exp::Bool(true)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:57:26 [INFO] [stdout] | [INFO] [stdout] 57 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 57 - box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 57 + box Exp::App(Box::new(Exp::Var("x".to_string())),box Exp::Int(1)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:57:56 [INFO] [stdout] | [INFO] [stdout] 57 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 57 - box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 57 + box Exp::App(box Exp::Var("x".to_string()),Box::new(Exp::Int(1))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 57 - box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 57 + Box::new(Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | box Exp::Int(1), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 58 - box Exp::Int(1), [INFO] [stdout] 58 + Box::new(Exp::Int(1)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | / box Exp::If( [INFO] [stdout] 56 | | box Exp::Bool(true), [INFO] [stdout] 57 | | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 58 | | box Exp::Int(1), [INFO] [stdout] 59 | | ), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 55 ~ Box::new(Exp::If( [INFO] [stdout] 56 | box Exp::Bool(true), [INFO] [stdout] 57 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 58 | box Exp::Int(1), [INFO] [stdout] 59 ~ )), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 60 - box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 60 + box Exp::App(Box::new(Exp::Var("x".to_string())),box Exp::Int(1)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:60:52 [INFO] [stdout] | [INFO] [stdout] 60 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 60 - box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 60 + box Exp::App(box Exp::Var("x".to_string()),Box::new(Exp::Int(1))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/main.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 60 - box Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1)), [INFO] [stdout] 60 + Box::new(Exp::App(box Exp::Var("x".to_string()),box Exp::Int(1))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0557]: feature has been removed [INFO] [stdout] --> src/main.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(box_patterns,box_syntax,slice_patterns)] [INFO] [stdout] | ^^^^^^^^^^ feature has been removed [INFO] [stdout] | [INFO] [stdout] = note: removed in 1.70.0; see for more information [INFO] [stdout] = note: replaced with `#[rustc_box]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | box env.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 106 - box env.clone(), [INFO] [stdout] 106 + Box::new(env.clone()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:118:21 [INFO] [stdout] | [INFO] [stdout] 118 | box env.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 118 - box env.clone(), [INFO] [stdout] 118 + Box::new(env.clone()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | box x_env.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 123 - box x_env.clone(), [INFO] [stdout] 123 + Box::new(x_env.clone()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | box env.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 156 - box env.clone(), [INFO] [stdout] 156 + Box::new(env.clone()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:161:33 [INFO] [stdout] | [INFO] [stdout] 161 | (e_r,Type::Func(box new_type_var,box e_typ)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 161 - (e_r,Type::Func(box new_type_var,box e_typ)) [INFO] [stdout] 161 + (e_r,Type::Func(Box::new(new_type_var),box e_typ)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:161:50 [INFO] [stdout] | [INFO] [stdout] 161 | (e_r,Type::Func(box new_type_var,box e_typ)) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 161 - (e_r,Type::Func(box new_type_var,box e_typ)) [INFO] [stdout] 161 + (e_r,Type::Func(box new_type_var,Box::new(e_typ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:173:43 [INFO] [stdout] | [INFO] [stdout] 173 | Some(t) => Type::Func(box t.assign(assign),box typ.assign(assign)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 173 - Some(t) => Type::Func(box t.assign(assign),box typ.assign(assign)), [INFO] [stdout] 173 + Some(t) => Type::Func(Box::new(t.assign(assign)),box typ.assign(assign)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:173:64 [INFO] [stdout] | [INFO] [stdout] 173 | Some(t) => Type::Func(box t.assign(assign),box typ.assign(assign)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 173 - Some(t) => Type::Func(box t.assign(assign),box typ.assign(assign)), [INFO] [stdout] 173 + Some(t) => Type::Func(box t.assign(assign),Box::new(typ.assign(assign))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:191:21 [INFO] [stdout] | [INFO] [stdout] 191 | box t1.assign_type_eq(typ_var_name,typ), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 191 - box t1.assign_type_eq(typ_var_name,typ), [INFO] [stdout] 191 + Box::new(t1.assign_type_eq(typ_var_name,typ)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:192:21 [INFO] [stdout] | [INFO] [stdout] 192 | box t2.assign_type_eq(typ_var_name,typ) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 192 - box t2.assign_type_eq(typ_var_name,typ) [INFO] [stdout] 192 + Box::new(t2.assign_type_eq(typ_var_name,typ)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:21:35 [INFO] [stdout] | [INFO] [stdout] 21 | Ok((Exp::Op(Op::Plus, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 21 - Ok((Exp::Op(Op::Plus, box exp, box ex), re)) [INFO] [stdout] 21 + Ok((Exp::Op(Op::Plus, Box::new(exp), box ex), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:21:44 [INFO] [stdout] | [INFO] [stdout] 21 | Ok((Exp::Op(Op::Plus, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 21 - Ok((Exp::Op(Op::Plus, box exp, box ex), re)) [INFO] [stdout] 21 + Ok((Exp::Op(Op::Plus, box exp, Box::new(ex)), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | Ok((Exp::Op(Op::Lt, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 35 - Ok((Exp::Op(Op::Lt, box exp, box ex), re)) [INFO] [stdout] 35 + Ok((Exp::Op(Op::Lt, Box::new(exp), box ex), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:35:42 [INFO] [stdout] | [INFO] [stdout] 35 | Ok((Exp::Op(Op::Lt, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 35 - Ok((Exp::Op(Op::Lt, box exp, box ex), re)) [INFO] [stdout] 35 + Ok((Exp::Op(Op::Lt, box exp, Box::new(ex)), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | Ok((Exp::Op(Op::Equal, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 39 - Ok((Exp::Op(Op::Equal, box exp, box ex), re)) [INFO] [stdout] 39 + Ok((Exp::Op(Op::Equal, Box::new(exp), box ex), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:39:45 [INFO] [stdout] | [INFO] [stdout] 39 | Ok((Exp::Op(Op::Equal, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 39 - Ok((Exp::Op(Op::Equal, box exp, box ex), re)) [INFO] [stdout] 39 + Ok((Exp::Op(Op::Equal, box exp, Box::new(ex)), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:43:36 [INFO] [stdout] | [INFO] [stdout] 43 | Ok((Exp::Op(Op::Minus, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 43 - Ok((Exp::Op(Op::Minus, box exp, box ex), re)) [INFO] [stdout] 43 + Ok((Exp::Op(Op::Minus, Box::new(exp), box ex), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:43:45 [INFO] [stdout] | [INFO] [stdout] 43 | Ok((Exp::Op(Op::Minus, box exp, box ex), re)) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 43 - Ok((Exp::Op(Op::Minus, box exp, box ex), re)) [INFO] [stdout] 43 + Ok((Exp::Op(Op::Minus, box exp, Box::new(ex)), re)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:76:38 [INFO] [stdout] | [INFO] [stdout] 76 | Ok((Exp::Func(s.clone(), box exp), res)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 76 - Ok((Exp::Func(s.clone(), box exp), res)) [INFO] [stdout] 76 + Ok((Exp::Func(s.clone(), Box::new(exp)), res)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:99:44 [INFO] [stdout] | [INFO] [stdout] 99 | Ok((Exp::LetRec(f_v, v,box exp,box ex),r)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 99 - Ok((Exp::LetRec(f_v, v,box exp,box ex),r)) [INFO] [stdout] 99 + Ok((Exp::LetRec(f_v, v,Box::new(exp),box ex),r)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:99:52 [INFO] [stdout] | [INFO] [stdout] 99 | Ok((Exp::LetRec(f_v, v,box exp,box ex),r)) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 99 - Ok((Exp::LetRec(f_v, v,box exp,box ex),r)) [INFO] [stdout] 99 + Ok((Exp::LetRec(f_v, v,box exp,Box::new(ex)),r)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:110:45 [INFO] [stdout] | [INFO] [stdout] 110 | Ok((ex,rest)) => parse_app(Exp::App(box exp, box ex), rest), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 110 - Ok((ex,rest)) => parse_app(Exp::App(box exp, box ex), rest), [INFO] [stdout] 110 + Ok((ex,rest)) => parse_app(Exp::App(Box::new(exp), box ex), rest), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:110:54 [INFO] [stdout] | [INFO] [stdout] 110 | Ok((ex,rest)) => parse_app(Exp::App(box exp, box ex), rest), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 110 - Ok((ex,rest)) => parse_app(Exp::App(box exp, box ex), rest), [INFO] [stdout] 110 + Ok((ex,rest)) => parse_app(Exp::App(box exp, Box::new(ex)), rest), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:125:41 [INFO] [stdout] | [INFO] [stdout] 125 | ... Ok((Exp::If(box exp, box ex, box e), rrr)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 125 - Ok((Exp::If(box exp, box ex, box e), rrr)) [INFO] [stdout] 125 + Ok((Exp::If(Box::new(exp), box ex, box e), rrr)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:125:50 [INFO] [stdout] | [INFO] [stdout] 125 | ... Ok((Exp::If(box exp, box ex, box e), rrr)) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 125 - Ok((Exp::If(box exp, box ex, box e), rrr)) [INFO] [stdout] 125 + Ok((Exp::If(box exp, Box::new(ex), box e), rrr)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/parser.rs:125:58 [INFO] [stdout] | [INFO] [stdout] 125 | ... Ok((Exp::If(box exp, box ex, box e), rrr)) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 125 - Ok((Exp::If(box exp, box ex, box e), rrr)) [INFO] [stdout] 125 + Ok((Exp::If(box exp, box ex, Box::new(e)), rrr)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:131:78 [INFO] [stdout] | [INFO] [stdout] 131 | new_restrictions(vec![TypeEquation(type_var_x,Type::Func(box type_var_y,box e1_typ))]) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 131 - new_restrictions(vec![TypeEquation(type_var_x,Type::Func(box type_var_y,box e1_typ))]) [INFO] [stdout] 131 + new_restrictions(vec![TypeEquation(type_var_x,Type::Func(Box::new(type_var_y),box e1_typ))]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:131:93 [INFO] [stdout] | [INFO] [stdout] 131 | new_restrictions(vec![TypeEquation(type_var_x,Type::Func(box type_var_y,box e1_typ))]) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 131 - new_restrictions(vec![TypeEquation(type_var_x,Type::Func(box type_var_y,box e1_typ))]) [INFO] [stdout] 131 + new_restrictions(vec![TypeEquation(type_var_x,Type::Func(box type_var_y,Box::new(e1_typ)))]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:149:101 [INFO] [stdout] | [INFO] [stdout] 149 | ... let r2 = merge_restrictions(r1,new_restrictions(vec![TypeEquation(e1_typ,Type::Func(box e2_typ,box new_type_var.clone()))])); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 149 - let r2 = merge_restrictions(r1,new_restrictions(vec![TypeEquation(e1_typ,Type::Func(box e2_typ,box new_type_var.clone()))])); [INFO] [stdout] 149 + let r2 = merge_restrictions(r1,new_restrictions(vec![TypeEquation(e1_typ,Type::Func(Box::new(e2_typ),box new_type_var.clone()))])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `box_syntax` has been removed [INFO] [stdout] --> src/ast.rs:149:112 [INFO] [stdout] | [INFO] [stdout] 149 | ... let r2 = merge_restrictions(r1,new_restrictions(vec![TypeEquation(e1_typ,Type::Func(box e2_typ,box new_type_var.clone()))])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `Box::new()` instead [INFO] [stdout] | [INFO] [stdout] 149 - let r2 = merge_restrictions(r1,new_restrictions(vec![TypeEquation(e1_typ,Type::Func(box e2_typ,box new_type_var.clone()))])); [INFO] [stdout] 149 + let r2 = merge_restrictions(r1,new_restrictions(vec![TypeEquation(e1_typ,Type::Func(box e2_typ,Box::new(new_type_var.clone())))])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:233:30 [INFO] [stdout] | [INFO] [stdout] 233 | [TypeEquation(t1,t2),rest..] if t1 == t2 => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 233 | [TypeEquation(t1,t2),rest @ ..] if t1 == t2 => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 233 - [TypeEquation(t1,t2),rest..] if t1 == t2 => { [INFO] [stdout] 233 + [TypeEquation(t1,t2),res..] if t1 == t2 => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:234:23 [INFO] [stdout] | [INFO] [stdout] 234 | unify_sub(rest) [INFO] [stdout] | ^^^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:236:84 [INFO] [stdout] | [INFO] [stdout] 236 | [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 236 | [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 236 - [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => { [INFO] [stdout] 236 + [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),res..] => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:237:41 [INFO] [stdout] | [INFO] [stdout] 237 | ... let re: Vec = rest.iter().cloned().chain(vec![TypeEquation(f1_a.clone(),f2_a.clone()),TypeEquation(f1_b.clone(),f2_b.... [INFO] [stdout] | ^^^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:240:45 [INFO] [stdout] | [INFO] [stdout] 240 | [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 240 | [TypeEquation(Type::TypeVar(v),typ),rest @ ..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 240 - [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] 240 + [TypeEquation(Type::TypeVar(v),typ),res..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:240:91 [INFO] [stdout] | [INFO] [stdout] 240 | [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 240 | [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 240 - [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] 240 + [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),res..] => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/ast.rs:241:49 [INFO] [stdout] | [INFO] [stdout] 241 | let mut s = unify_sub(&assign(v,typ,rest)); [INFO] [stdout] | ^^^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | [first, rest..] => match first { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 43 | [first, rest @ ..] => match first { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | '\"' => (acm, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | _c => get_str_sub(rest, format!("{}{}", acm, first)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 57 | [first, rest @ ..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:58:29 [INFO] [stdout] | [INFO] [stdout] 58 | get_keyword_sub(rest, format!("{}{}", acm, first)) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:88:17 [INFO] [stdout] | [INFO] [stdout] 88 | [first, rest..] => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 88 | [first, rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:90:33 [INFO] [stdout] | [INFO] [stdout] 90 | get_num_str_sub(rest, format!("{}{}", acm, first), is_float, is_minus) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:92:33 [INFO] [stdout] | [INFO] [stdout] 92 | get_num_str_sub(rest, format!("{}{}", acm, first), is_float, is_minus) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:94:33 [INFO] [stdout] | [INFO] [stdout] 94 | get_num_str_sub(rest, format!("{}{}", acm, first), true, is_minus) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | [first, rest..] => match first { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 105 | [first, rest @ ..] => match first { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:106:32 [INFO] [stdout] | [INFO] [stdout] 106 | '\n' => next_token(rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:107:31 [INFO] [stdout] | [INFO] [stdout] 107 | ' ' => next_token(rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | '\t' => next_token(rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:109:35 [INFO] [stdout] | [INFO] [stdout] 109 | '=' => (Token::EQUAL, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:110:34 [INFO] [stdout] | [INFO] [stdout] 110 | '(' => (Token::LPAR, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:111:34 [INFO] [stdout] | [INFO] [stdout] 111 | ')' => (Token::RPAR, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:112:38 [INFO] [stdout] | [INFO] [stdout] 112 | '[' => (Token::LBRACKET, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:113:38 [INFO] [stdout] | [INFO] [stdout] 113 | ']' => (Token::RBRACKET, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:114:34 [INFO] [stdout] | [INFO] [stdout] 114 | '+' => (Token::PLUS, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:115:32 [INFO] [stdout] | [INFO] [stdout] 115 | '_' => (Token::ANY,rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:116:26 [INFO] [stdout] | [INFO] [stdout] 116 | '-' => match rest { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/lexer.rs:117:23 [INFO] [stdout] | [INFO] [stdout] 117 | ['>', res..] => (Token::RARROW, res), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 117 | ['>', res @ ..] => (Token::RARROW, res), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/lexer.rs:117:49 [INFO] [stdout] | [INFO] [stdout] 117 | ['>', res..] => (Token::RARROW, res), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:118:37 [INFO] [stdout] | [INFO] [stdout] 118 | _ => (Token::MINUS, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:120:26 [INFO] [stdout] | [INFO] [stdout] 120 | ':' => match rest { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/lexer.rs:121:22 [INFO] [stdout] | [INFO] [stdout] 121 | [':',res..] => (Token::JOINER, res), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 121 | [':',res @ ..] => (Token::JOINER, res), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/lexer.rs:121:48 [INFO] [stdout] | [INFO] [stdout] 121 | [':',res..] => (Token::JOINER, res), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:122:33 [INFO] [stdout] | [INFO] [stdout] 122 | _ => next_token(rest) [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:124:32 [INFO] [stdout] | [INFO] [stdout] 124 | '<' => (Token::LT, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:125:33 [INFO] [stdout] | [INFO] [stdout] 125 | '*' => (Token::MUL, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/lexer.rs:126:33 [INFO] [stdout] | [INFO] [stdout] 126 | '|' => (Token::BAR, rest), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | [Token::PLUS, res..] => { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 19 | [Token::PLUS, res @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 19 | [Token::PLUS, rest..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:20:38 [INFO] [stdout] | [INFO] [stdout] 20 | let (ex, re) = parse_exp(res)?; [INFO] [stdout] | ^^^ help: a local variable with a similar name exists: `rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:24:23 [INFO] [stdout] | [INFO] [stdout] 24 | [Token::RPAR, res..] => Ok((exp, rest)), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 24 | [Token::RPAR, res @ ..] => Ok((exp, rest)), [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 24 | [Token::RPAR, rest..] => Ok((exp, rest)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | [Token::IN, res..] => Ok((exp, rest)), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 25 | [Token::IN, res @ ..] => Ok((exp, rest)), [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 25 | [Token::IN, rest..] => Ok((exp, rest)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | [Token::LT, res..] => { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 33 | [Token::LT, res @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 33 | [Token::LT, rest..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:34:41 [INFO] [stdout] | [INFO] [stdout] 34 | let (ex, re) = parse_op_exp(res)?; [INFO] [stdout] | ^^^ help: a local variable with a similar name exists: `rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:37:23 [INFO] [stdout] | [INFO] [stdout] 37 | [Token::EQUAL,res..] => { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 37 | [Token::EQUAL,res @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 37 | [Token::EQUAL,rest..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:38:41 [INFO] [stdout] | [INFO] [stdout] 38 | let (ex, re) = parse_op_exp(res)?; [INFO] [stdout] | ^^^ help: a local variable with a similar name exists: `rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:41:23 [INFO] [stdout] | [INFO] [stdout] 41 | [Token::MINUS,res..] => { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `res`, use the at operator [INFO] [stdout] | [INFO] [stdout] 41 | [Token::MINUS,res @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 41 | [Token::MINUS,rest..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/parser.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | let (ex, re) = parse_op_exp(res)?; [INFO] [stdout] | ^^^ help: a local variable with a similar name exists: `rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:51:23 [INFO] [stdout] | [INFO] [stdout] 51 | [Token::LPAR, rest..] => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 51 | [Token::LPAR, rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | let (exp, res) = parse_exp(rest)?; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `re` in this scope [INFO] [stdout] --> src/parser.rs:54:31 [INFO] [stdout] | [INFO] [stdout] 54 | [Token::RPAR, re..] => Ok((exp, re)), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `re`, use the at operator [INFO] [stdout] | [INFO] [stdout] 54 | [Token::RPAR, re @ ..] => Ok((exp, re)), [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 54 | [Token::RPAR, res..] => Ok((exp, re)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `re` in this scope [INFO] [stdout] --> src/parser.rs:54:49 [INFO] [stdout] | [INFO] [stdout] 54 | [Token::RPAR, re..] => Ok((exp, re)), [INFO] [stdout] | ^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 58 | [Token::INT(i), rest @ ..] => Ok((Exp::Int(*i), rest)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:58:54 [INFO] [stdout] | [INFO] [stdout] 58 | [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 59 | [Token::VAR(s), rest @ ..] => Ok((Exp::Var(s.clone()), rest)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:59:61 [INFO] [stdout] | [INFO] [stdout] 59 | [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:60:23 [INFO] [stdout] | [INFO] [stdout] 60 | [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 60 | [Token::TRUE, rest @ ..] => Ok((Exp::Bool(true), rest)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:60:55 [INFO] [stdout] | [INFO] [stdout] 60 | [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:61:24 [INFO] [stdout] | [INFO] [stdout] 61 | [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 61 | [Token::FALSE, rest @ ..] => Ok((Exp::Bool(false), rest)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:61:57 [INFO] [stdout] | [INFO] [stdout] 61 | [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:62:34 [INFO] [stdout] | [INFO] [stdout] 62 | [Token::LET, Token::REC, rest..] => parse_let_rec(tokens), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 62 | [Token::LET, Token::REC, rest @ ..] => parse_let_rec(tokens), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | [Token::IF, rest..] => parse_if(tokens), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 63 | [Token::IF, rest @ ..] => parse_if(tokens), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:64:27 [INFO] [stdout] | [INFO] [stdout] 64 | [Token::FUNCTION, rest..] => parse_fun(tokens), [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 64 | [Token::FUNCTION, rest @ ..] => parse_fun(tokens), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:74:57 [INFO] [stdout] | [INFO] [stdout] 74 | [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 74 | [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:75:40 [INFO] [stdout] | [INFO] [stdout] 75 | let (exp, res) = parse_exp(rest)?; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:84:57 [INFO] [stdout] | [INFO] [stdout] 84 | [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 84 | [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | let (exp, res) = parse_exp(rest)?; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:94:63 [INFO] [stdout] | [INFO] [stdout] 94 | [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 94 | [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:95:62 [INFO] [stdout] | [INFO] [stdout] 95 | let ((f_v,v,exp),res) = parse_rec_fun(s.clone(), rest)?; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `re` in this scope [INFO] [stdout] --> src/parser.rs:97:29 [INFO] [stdout] | [INFO] [stdout] 97 | [Token::IN, re..] => { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `re`, use the at operator [INFO] [stdout] | [INFO] [stdout] 97 | [Token::IN, re @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 97 | [Token::IN, res..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `re` in this scope [INFO] [stdout] --> src/parser.rs:98:45 [INFO] [stdout] | [INFO] [stdout] 98 | let (ex, r) = parse_exp(re)?; [INFO] [stdout] | ^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | [Token::IF, rest..] => { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rest`, use the at operator [INFO] [stdout] | [INFO] [stdout] 117 | [Token::IF, rest @ ..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:118:40 [INFO] [stdout] | [INFO] [stdout] 118 | let (exp, res) = parse_exp(rest)?; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `re` in this scope [INFO] [stdout] --> src/parser.rs:120:31 [INFO] [stdout] | [INFO] [stdout] 120 | [Token::THEN, re..] => { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `re`, use the at operator [INFO] [stdout] | [INFO] [stdout] 120 | [Token::THEN, re @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a local variable with a similar name exists [INFO] [stdout] | [INFO] [stdout] 120 | [Token::THEN, res..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `re` in this scope [INFO] [stdout] --> src/parser.rs:121:45 [INFO] [stdout] | [INFO] [stdout] 121 | let (ex, r) = parse_exp(re)?; [INFO] [stdout] | ^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rr` in this scope [INFO] [stdout] --> src/parser.rs:123:39 [INFO] [stdout] | [INFO] [stdout] 123 | [Token::ELSE, rr..] => { [INFO] [stdout] | ^^ [INFO] [stdout] --> /rustc/cdb45c87e2cd43495379f7e867e3cc15dcee9f93/library/core/src/result.rs:558:5 [INFO] [stdout] | [INFO] [stdout] = note: similarly named tuple variant `Err` defined here [INFO] [stdout] | [INFO] [stdout] help: if you meant to collect the rest of the slice in `rr`, use the at operator [INFO] [stdout] | [INFO] [stdout] 123 | [Token::ELSE, rr @ ..] => { [INFO] [stdout] | + [INFO] [stdout] help: a tuple variant with a similar name exists [INFO] [stdout] | [INFO] [stdout] 123 | [Token::ELSE, Err..] => { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rr` in this scope [INFO] [stdout] --> src/parser.rs:124:54 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (e, rrr) = parse_exp(rr)?; [INFO] [stdout] | ^^ help: a tuple variant with a similar name exists: `Err` [INFO] [stdout] --> /rustc/cdb45c87e2cd43495379f7e867e3cc15dcee9f93/library/core/src/result.rs:558:5 [INFO] [stdout] | [INFO] [stdout] = note: similarly named tuple variant `Err` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `rest` in this scope [INFO] [stdout] --> src/parser.rs:130:42 [INFO] [stdout] | [INFO] [stdout] 130 | _ => Err(format!("{:?}", rest)), [INFO] [stdout] | ^^^^ help: a local variable with a similar name exists: `res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/ast.rs:233:30 [INFO] [stdout] | [INFO] [stdout] 233 | [TypeEquation(t1,t2),rest..] if t1 == t2 => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/ast.rs:236:84 [INFO] [stdout] | [INFO] [stdout] 236 | [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/ast.rs:240:45 [INFO] [stdout] | [INFO] [stdout] 240 | [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/ast.rs:240:91 [INFO] [stdout] | [INFO] [stdout] 240 | [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/lexer.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | [first, rest..] => match first { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/lexer.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/lexer.rs:88:17 [INFO] [stdout] | [INFO] [stdout] 88 | [first, rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/lexer.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | [first, rest..] => match first { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/lexer.rs:117:23 [INFO] [stdout] | [INFO] [stdout] 117 | ['>', res..] => (Token::RARROW, res), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/lexer.rs:121:22 [INFO] [stdout] | [INFO] [stdout] 121 | [':',res..] => (Token::JOINER, res), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | [Token::PLUS, res..] => { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:23:51 [INFO] [stdout] | [INFO] [stdout] 23 | [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:24:23 [INFO] [stdout] | [INFO] [stdout] 24 | [Token::RPAR, res..] => Ok((exp, rest)), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | [Token::IN, res..] => Ok((exp, rest)), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | [Token::LT, res..] => { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:37:23 [INFO] [stdout] | [INFO] [stdout] 37 | [Token::EQUAL,res..] => { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:41:23 [INFO] [stdout] | [INFO] [stdout] 41 | [Token::MINUS,res..] => { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:51:23 [INFO] [stdout] | [INFO] [stdout] 51 | [Token::LPAR, rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:54:31 [INFO] [stdout] | [INFO] [stdout] 54 | [Token::RPAR, re..] => Ok((exp, re)), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:60:23 [INFO] [stdout] | [INFO] [stdout] 60 | [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:61:24 [INFO] [stdout] | [INFO] [stdout] 61 | [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:62:34 [INFO] [stdout] | [INFO] [stdout] 62 | [Token::LET, Token::REC, rest..] => parse_let_rec(tokens), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | [Token::IF, rest..] => parse_if(tokens), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:64:27 [INFO] [stdout] | [INFO] [stdout] 64 | [Token::FUNCTION, rest..] => parse_fun(tokens), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:74:57 [INFO] [stdout] | [INFO] [stdout] 74 | [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:84:57 [INFO] [stdout] | [INFO] [stdout] 84 | [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:94:63 [INFO] [stdout] | [INFO] [stdout] 94 | [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:97:29 [INFO] [stdout] | [INFO] [stdout] 97 | [Token::IN, re..] => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | [Token::IF, rest..] => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:120:31 [INFO] [stdout] | [INFO] [stdout] 120 | [Token::THEN, re..] => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: `X..` patterns in slices are experimental [INFO] [stdout] --> src/parser.rs:123:39 [INFO] [stdout] | [INFO] [stdout] 123 | [Token::ELSE, rr..] => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #67264 for more information [INFO] [stdout] = help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-08-27; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Op` and `unify` [INFO] [stdout] --> src/main.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use ast::{Exp,Op,TEnv,unify}; [INFO] [stdout] | ^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `slice_patterns` has been stable since 1.42.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(box_patterns,box_syntax,slice_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0029]: only `char` and numeric types are allowed in range patterns [INFO] [stdout] --> src/parser.rs:23:51 [INFO] [stdout] | [INFO] [stdout] 23 | [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest), [INFO] [stdout] | ^^^^ this is of type `&[Token]` but it should be `char` or numeric [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ast.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 218 | TypeEquation(t1,t2) => TypeEquation(t1.assign_type_eq(typ_var_name,typ),t2.assign_type_eq(typ_var_name,typ)), [INFO] [stdout] | ------------------- matches any value [INFO] [stdout] 219 | _ => a.clone() [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0029, E0425, E0557, E0658. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0029`. [INFO] [stdout] [INFO] [stderr] error: could not compile `type_inference` (bin "type_inference") due to 169 previous errors; 3 warnings emitted [INFO] running `Command { std: "docker" "inspect" "be9a1eadfd7f71ef6e387896e3dc54d7da63ae0ffc355760fdb14d09fb1337c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be9a1eadfd7f71ef6e387896e3dc54d7da63ae0ffc355760fdb14d09fb1337c1", kill_on_drop: false }` [INFO] [stdout] be9a1eadfd7f71ef6e387896e3dc54d7da63ae0ffc355760fdb14d09fb1337c1