[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 try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnagaBoulevard%2Fwasp" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[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-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nagaBoulevard/wasp on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a4facc80d00f9dfd60652d7263cdb589fffb4b993e0907c7e7d15978899b0cfb
[INFO] running `Command { std: "docker" "start" "-a" "a4facc80d00f9dfd60652d7263cdb589fffb4b993e0907c7e7d15978899b0cfb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a4facc80d00f9dfd60652d7263cdb589fffb4b993e0907c7e7d15978899b0cfb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4facc80d00f9dfd60652d7263cdb589fffb4b993e0907c7e7d15978899b0cfb", kill_on_drop: false }`
[INFO] [stdout] a4facc80d00f9dfd60652d7263cdb589fffb4b993e0907c7e7d15978899b0cfb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2b38487635d1d23f590cbf44c21449bda9bfed998cfe8be5d79d01ade5893bdb
[INFO] running `Command { std: "docker" "start" "-a" "2b38487635d1d23f590cbf44c21449bda9bfed998cfe8be5d79d01ade5893bdb", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) 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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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)]` (part of `#[warn(unused)]`) 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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) 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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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:26
[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]    |         ^ 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] 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)]` (part of `#[warn(unused)]`) 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<AST>, 
[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::<Vec<()>>(); }
[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)]` (part of `#[warn(unused)]`) 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::<Vec<()>>(); }
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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:26
[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]    |         ^ 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] 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)]` (part of `#[warn(unused)]`) 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<AST>, 
[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::<Vec<()>>(); }
[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)]` (part of `#[warn(unused)]`) 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::<Vec<()>>(); }
[INFO] [stdout]     |                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.38s
[INFO] running `Command { std: "docker" "inspect" "2b38487635d1d23f590cbf44c21449bda9bfed998cfe8be5d79d01ade5893bdb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b38487635d1d23f590cbf44c21449bda9bfed998cfe8be5d79d01ade5893bdb", kill_on_drop: false }`
[INFO] [stdout] 2b38487635d1d23f590cbf44c21449bda9bfed998cfe8be5d79d01ade5893bdb
