[INFO] cloning repository https://github.com/nagaBoulevard/wasp [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nagaBoulevard/wasp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnagaBoulevard%2Fwasp", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnagaBoulevard%2Fwasp'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 59bf714b3d77d79d75a420fbdaa9869be489a9cb [INFO] checking nagaBoulevard/wasp against master#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnagaBoulevard%2Fwasp" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/nagaBoulevard/wasp on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/nagaBoulevard/wasp [INFO] finished tweaking git repo https://github.com/nagaBoulevard/wasp [INFO] tweaked toml for git repo https://github.com/nagaBoulevard/wasp written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/nagaBoulevard/wasp 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" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5364d15a72a999aa78efe1aa5189b0e0a6b1cc307dc69d551cbbd19c423fcada [INFO] running `Command { std: "docker" "start" "-a" "5364d15a72a999aa78efe1aa5189b0e0a6b1cc307dc69d551cbbd19c423fcada", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5364d15a72a999aa78efe1aa5189b0e0a6b1cc307dc69d551cbbd19c423fcada", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5364d15a72a999aa78efe1aa5189b0e0a6b1cc307dc69d551cbbd19c423fcada", kill_on_drop: false }` [INFO] [stdout] 5364d15a72a999aa78efe1aa5189b0e0a6b1cc307dc69d551cbbd19c423fcada [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a6055b3f0f6394da7fed012e74037b21551a57efda50560928180e15559e5d88 [INFO] running `Command { std: "docker" "start" "-a" "a6055b3f0f6394da7fed012e74037b21551a57efda50560928180e15559e5d88", kill_on_drop: false }` [INFO] [stderr] Checking wasp v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:97:20 [INFO] [stdout] | [INFO] [stdout] 97 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:137:20 [INFO] [stdout] | [INFO] [stdout] 137 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:183:20 [INFO] [stdout] | [INFO] [stdout] 183 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:185:20 [INFO] [stdout] | [INFO] [stdout] 185 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:187:20 [INFO] [stdout] | [INFO] [stdout] 187 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:235:37 [INFO] [stdout] | [INFO] [stdout] 235 | ... Some('0'...'9') => {token = Token::DecLiteral; res.push('.')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:241:37 [INFO] [stdout] | [INFO] [stdout] 241 | ... Some('0'...'9') => {token = Token::RangeLiteral; res.push(':')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:20 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:32 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:50 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:25 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:43 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:286:27 [INFO] [stdout] | [INFO] [stdout] 286 | | Some('0'...'9') => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lexer/mod.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | / /// the `-` atom can also refer to a comment [INFO] [stdout] 329 | | /// this will start the comment parsing. [INFO] [stdout] 330 | | /// By doing it in the op_parser, it allows to easily parse `-` [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 333 | let res_str: String = res.clone().into_iter().collect(); [INFO] [stdout] | -------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | /// read the input wasp file, and put it in the `input` string [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | let input_handle = File::open("../input/test.ws").expect("Fail to open ../input/test.lp"); [INFO] [stdout] | ------------------------------------------------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [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:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(slice_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sym` [INFO] [stdout] --> src/lexer/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let sym = match ch { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sym` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(mut a: &Atom) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let mut first_primitive = match current.inside[0].token { [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/parser/expr.rs:104:24 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/parser/expr.rs:104:34 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/core/ast.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | AST::Comment(ref c) => write!(f, ""), // TODO what to print with a comment? [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/core/base.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 55 | body => { [INFO] [stdout] | ---- matches any value [INFO] [stdout] ... [INFO] [stdout] 62 | _ => panic!("loop error") [INFO] [stdout] | ^ unreachable pattern [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:97:20 [INFO] [stdout] | [INFO] [stdout] 97 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const SEXPR_START: char = '('; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const SEXPR_END : char = ')'; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const VEC_START : char = '['; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const VEC_END : char = ']'; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EqualIs` and `EqualEsc` are never constructed [INFO] [stdout] --> src/lexer/token.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Token { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 26 | EqualIs, // `=?` [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | EqualEsc, // `=!` [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `core` is never read [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Parser<'p> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | core: &'p Core, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:137:20 [INFO] [stdout] | [INFO] [stdout] 137 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_call`, `is_value`, and `print` are never used [INFO] [stdout] --> src/parser/expr.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Expr { // {{{ [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn is_call(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_value(&self) -> bool { !self.is_call() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 111 | [INFO] [stdout] 112 | pub fn print(&self, depth: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `args_given` and `return_class` are never read [INFO] [stdout] --> src/core/store.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Function { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | args_given: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | return_class: AST [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:183:20 [INFO] [stdout] | [INFO] [stdout] 183 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:185:20 [INFO] [stdout] | [INFO] [stdout] 185 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:187:20 [INFO] [stdout] | [INFO] [stdout] 187 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:235:37 [INFO] [stdout] | [INFO] [stdout] 235 | ... Some('0'...'9') => {token = Token::DecLiteral; res.push('.')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:241:37 [INFO] [stdout] | [INFO] [stdout] 241 | ... Some('0'...'9') => {token = Token::RangeLiteral; res.push(':')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:20 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:32 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:50 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:25 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:43 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:286:27 [INFO] [stdout] | [INFO] [stdout] 286 | | Some('0'...'9') => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `collect` that must be used [INFO] [stdout] --> src/parser/expr.rs:117:49 [INFO] [stdout] | [INFO] [stdout] 117 | ... args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 117 | let _ = args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lexer/mod.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | / /// the `-` atom can also refer to a comment [INFO] [stdout] 329 | | /// this will start the comment parsing. [INFO] [stdout] 330 | | /// By doing it in the op_parser, it allows to easily parse `-` [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 333 | let res_str: String = res.clone().into_iter().collect(); [INFO] [stdout] | -------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | /// read the input wasp file, and put it in the `input` string [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | let input_handle = File::open("../input/test.ws").expect("Fail to open ../input/test.lp"); [INFO] [stdout] | ------------------------------------------------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [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:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(slice_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sym` [INFO] [stdout] --> src/lexer/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let sym = match ch { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sym` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(mut a: &Atom) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let mut first_primitive = match current.inside[0].token { [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/parser/expr.rs:104:24 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/parser/expr.rs:104:34 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/core/ast.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | AST::Comment(ref c) => write!(f, ""), // TODO what to print with a comment? [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/core/base.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 55 | body => { [INFO] [stdout] | ---- matches any value [INFO] [stdout] ... [INFO] [stdout] 62 | _ => panic!("loop error") [INFO] [stdout] | ^ unreachable pattern [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const SEXPR_START: char = '('; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const SEXPR_END : char = ')'; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const VEC_START : char = '['; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const VEC_END : char = ']'; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EqualIs` and `EqualEsc` are never constructed [INFO] [stdout] --> src/lexer/token.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Token { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 26 | EqualIs, // `=?` [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | EqualEsc, // `=!` [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `core` is never read [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Parser<'p> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | core: &'p Core, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_call`, `is_value`, and `print` are never used [INFO] [stdout] --> src/parser/expr.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Expr { // {{{ [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn is_call(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_value(&self) -> bool { !self.is_call() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 111 | [INFO] [stdout] 112 | pub fn print(&self, depth: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `args_given` and `return_class` are never read [INFO] [stdout] --> src/core/store.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Function { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | args_given: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | return_class: AST [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `collect` that must be used [INFO] [stdout] --> src/parser/expr.rs:117:49 [INFO] [stdout] | [INFO] [stdout] 117 | ... args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 117 | let _ = args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.46s [INFO] running `Command { std: "docker" "inspect" "a6055b3f0f6394da7fed012e74037b21551a57efda50560928180e15559e5d88", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6055b3f0f6394da7fed012e74037b21551a57efda50560928180e15559e5d88", kill_on_drop: false }` [INFO] [stdout] a6055b3f0f6394da7fed012e74037b21551a57efda50560928180e15559e5d88 [INFO] checking nagaBoulevard/wasp against try#645bb72776a6a56a1a8f52631a44bd082b2ba509 for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnagaBoulevard%2Fwasp" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/nagaBoulevard/wasp on toolchain 645bb72776a6a56a1a8f52631a44bd082b2ba509 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/nagaBoulevard/wasp [INFO] finished tweaking git repo https://github.com/nagaBoulevard/wasp [INFO] tweaked toml for git repo https://github.com/nagaBoulevard/wasp written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/nagaBoulevard/wasp 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" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d23155c9459a89151750f0dc47f33618b7cf74d907b39c4790309652312cdbe0 [INFO] running `Command { std: "docker" "start" "-a" "d23155c9459a89151750f0dc47f33618b7cf74d907b39c4790309652312cdbe0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d23155c9459a89151750f0dc47f33618b7cf74d907b39c4790309652312cdbe0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d23155c9459a89151750f0dc47f33618b7cf74d907b39c4790309652312cdbe0", kill_on_drop: false }` [INFO] [stdout] d23155c9459a89151750f0dc47f33618b7cf74d907b39c4790309652312cdbe0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bf1bc45bc48d1b17aa4d361a8c078ded56b48e7ded99b741c62b59237f1910c4 [INFO] running `Command { std: "docker" "start" "-a" "bf1bc45bc48d1b17aa4d361a8c078ded56b48e7ded99b741c62b59237f1910c4", kill_on_drop: false }` [INFO] [stderr] Checking wasp v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:97:20 [INFO] [stdout] | [INFO] [stdout] 97 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:137:20 [INFO] [stdout] | [INFO] [stdout] 137 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:183:20 [INFO] [stdout] | [INFO] [stdout] 183 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:185:20 [INFO] [stdout] | [INFO] [stdout] 185 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:187:20 [INFO] [stdout] | [INFO] [stdout] 187 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:235:37 [INFO] [stdout] | [INFO] [stdout] 235 | ... Some('0'...'9') => {token = Token::DecLiteral; res.push('.')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:241:37 [INFO] [stdout] | [INFO] [stdout] 241 | ... Some('0'...'9') => {token = Token::RangeLiteral; res.push(':')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:20 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:32 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:50 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:25 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:43 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:286:27 [INFO] [stdout] | [INFO] [stdout] 286 | | Some('0'...'9') => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lexer/mod.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | / /// the `-` atom can also refer to a comment [INFO] [stdout] 329 | | /// this will start the comment parsing. [INFO] [stdout] 330 | | /// By doing it in the op_parser, it allows to easily parse `-` [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 333 | let res_str: String = res.clone().into_iter().collect(); [INFO] [stdout] | -------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | /// read the input wasp file, and put it in the `input` string [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | let input_handle = File::open("../input/test.ws").expect("Fail to open ../input/test.lp"); [INFO] [stdout] | ------------------------------------------------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [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:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(slice_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:97:20 [INFO] [stdout] | [INFO] [stdout] 97 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:137:20 [INFO] [stdout] | [INFO] [stdout] 137 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:139:20 [INFO] [stdout] | [INFO] [stdout] 139 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:183:20 [INFO] [stdout] | [INFO] [stdout] 183 | '0'...'9' => self.num_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:185:20 [INFO] [stdout] | [INFO] [stdout] 185 | 'a'...'z' | '_' => self.ident_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:187:20 [INFO] [stdout] | [INFO] [stdout] 187 | 'A'...'Z' => self.class_parser(), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:235:37 [INFO] [stdout] | [INFO] [stdout] 235 | ... Some('0'...'9') => {token = Token::DecLiteral; res.push('.')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:241:37 [INFO] [stdout] | [INFO] [stdout] 241 | ... Some('0'...'9') => {token = Token::RangeLiteral; res.push(':')}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:20 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:32 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:261:50 [INFO] [stdout] | [INFO] [stdout] 261 | 'a'...'z' | 'A'...'Z' | '_' | '0'...'9' => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:25 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:285:43 [INFO] [stdout] | [INFO] [stdout] 285 | Some('a'...'z') | Some('A'...'Z') | Some('_') [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexer/mod.rs:286:27 [INFO] [stdout] | [INFO] [stdout] 286 | | Some('0'...'9') => res.push(self.next().unwrap()), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lexer/mod.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | / /// the `-` atom can also refer to a comment [INFO] [stdout] 329 | | /// this will start the comment parsing. [INFO] [stdout] 330 | | /// By doing it in the op_parser, it allows to easily parse `-` [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 333 | let res_str: String = res.clone().into_iter().collect(); [INFO] [stdout] | -------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | /// read the input wasp file, and put it in the `input` string [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | let input_handle = File::open("../input/test.ws").expect("Fail to open ../input/test.lp"); [INFO] [stdout] | ------------------------------------------------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [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:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(slice_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sym` [INFO] [stdout] --> src/lexer/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let sym = match ch { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sym` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(mut a: &Atom) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let mut first_primitive = match current.inside[0].token { [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/parser/expr.rs:104:24 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/parser/expr.rs:104:34 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/core/ast.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | AST::Comment(ref c) => write!(f, ""), // TODO what to print with a comment? [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/core/base.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 55 | body => { [INFO] [stdout] | ---- matches any value [INFO] [stdout] ... [INFO] [stdout] 62 | _ => panic!("loop error") [INFO] [stdout] | ^ unreachable pattern [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const SEXPR_START: char = '('; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const SEXPR_END : char = ')'; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const VEC_START : char = '['; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const VEC_END : char = ']'; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EqualIs` and `EqualEsc` are never constructed [INFO] [stdout] --> src/lexer/token.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Token { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 26 | EqualIs, // `=?` [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | EqualEsc, // `=!` [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `core` is never read [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Parser<'p> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | core: &'p Core, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_call`, `is_value`, and `print` are never used [INFO] [stdout] --> src/parser/expr.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Expr { // {{{ [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn is_call(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_value(&self) -> bool { !self.is_call() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 111 | [INFO] [stdout] 112 | pub fn print(&self, depth: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `args_given` and `return_class` are never read [INFO] [stdout] --> src/core/store.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Function { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | args_given: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | return_class: AST [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `collect` that must be used [INFO] [stdout] --> src/parser/expr.rs:117:49 [INFO] [stdout] | [INFO] [stdout] 117 | ... args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 117 | let _ = args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sym` [INFO] [stdout] --> src/lexer/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let sym = match ch { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sym` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(mut a: &Atom) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/expr.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let mut first_primitive = match current.inside[0].token { [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/parser/expr.rs:104:24 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/parser/expr.rs:104:34 [INFO] [stdout] | [INFO] [stdout] 104 | Expr::Call{ref name, ref args} => true, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/core/ast.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | AST::Comment(ref c) => write!(f, ""), // TODO what to print with a comment? [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/core/base.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 55 | body => { [INFO] [stdout] | ---- matches any value [INFO] [stdout] ... [INFO] [stdout] 62 | _ => panic!("loop error") [INFO] [stdout] | ^ unreachable pattern [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const SEXPR_START: char = '('; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEXPR_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const SEXPR_END : char = ')'; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_START` is never used [INFO] [stdout] --> src/lexer/mod.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const VEC_START : char = '['; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VEC_END` is never used [INFO] [stdout] --> src/lexer/mod.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const VEC_END : char = ']'; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EqualIs` and `EqualEsc` are never constructed [INFO] [stdout] --> src/lexer/token.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Token { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 26 | EqualIs, // `=?` [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | EqualEsc, // `=!` [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `core` is never read [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Parser<'p> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | core: &'p Core, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_call`, `is_value`, and `print` are never used [INFO] [stdout] --> src/parser/expr.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Expr { // {{{ [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn is_call(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_value(&self) -> bool { !self.is_call() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 111 | [INFO] [stdout] 112 | pub fn print(&self, depth: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `args_given` and `return_class` are never read [INFO] [stdout] --> src/core/store.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Function { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | args_given: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | return_class: AST [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `collect` that must be used [INFO] [stdout] --> src/parser/expr.rs:117:49 [INFO] [stdout] | [INFO] [stdout] 117 | ... args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 117 | let _ = args.iter().map(|e| e.print(depth+1)).collect::>(); } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.52s [INFO] running `Command { std: "docker" "inspect" "bf1bc45bc48d1b17aa4d361a8c078ded56b48e7ded99b741c62b59237f1910c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bf1bc45bc48d1b17aa4d361a8c078ded56b48e7ded99b741c62b59237f1910c4", kill_on_drop: false }` [INFO] [stdout] bf1bc45bc48d1b17aa4d361a8c078ded56b48e7ded99b741c62b59237f1910c4