[INFO] cloning repository https://github.com/Palladium02/invariant
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Palladium02/invariant" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPalladium02%2Finvariant", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPalladium02%2Finvariant'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3800772e2473e3705c49a64a2f9dd0d5a9463efc
[INFO] checking Palladium02/invariant against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPalladium02%2Finvariant" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Palladium02/invariant
[INFO] finished tweaking git repo https://github.com/Palladium02/invariant
[INFO] tweaked toml for git repo https://github.com/Palladium02/invariant written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Palladium02/invariant 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/Palladium02/invariant 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 173888b7287af507fc1503e9ed992122f71443aa2d6c38c394d3c71776d448c3
[INFO] running `Command { std: "docker" "start" "-a" "173888b7287af507fc1503e9ed992122f71443aa2d6c38c394d3c71776d448c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "173888b7287af507fc1503e9ed992122f71443aa2d6c38c394d3c71776d448c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "173888b7287af507fc1503e9ed992122f71443aa2d6c38c394d3c71776d448c3", kill_on_drop: false }`
[INFO] [stdout] 173888b7287af507fc1503e9ed992122f71443aa2d6c38c394d3c71776d448c3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] d4ba802adce433b352c3e89732032e4981067b4f3e4649b0e8e53947522eccc7
[INFO] running `Command { std: "docker" "start" "-a" "d4ba802adce433b352c3e89732032e4981067b4f3e4649b0e8e53947522eccc7", kill_on_drop: false }`
[INFO] [stderr]     Checking invariant v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `new_range_api` has been stable since 1.96.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(new_range_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/ast.rs:56:32
[INFO] [stdout]    |
[INFO] [stdout] 56 |             Statement::Block { body, span } => span,
[INFO] [stdout]    |                                ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bind_to`
[INFO] [stdout]   --> src/ast.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 bind_to,
[INFO] [stdout]    |                 ^^^^^^^ help: try ignoring the field: `bind_to: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/ast.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 value,
[INFO] [stdout]    |                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expression`
[INFO] [stdout]   --> src/ast.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Statement::Expression { expression, span } => span,
[INFO] [stdout]    |                                     ^^^^^^^^^^ help: try ignoring the field: `expression: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/ast.rs:63:33
[INFO] [stdout]    |
[INFO] [stdout] 63 |             Statement::Return { value, span } => span,
[INFO] [stdout]    |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/ast.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 condition,
[INFO] [stdout]    |                 ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> src/ast.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 then,
[INFO] [stdout]    |                 ^^^^ help: try ignoring the field: `then: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `otherwise`
[INFO] [stdout]   --> src/ast.rs:67:17
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 otherwise,
[INFO] [stdout]    |                 ^^^^^^^^^ help: try ignoring the field: `otherwise: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/ast.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 condition,
[INFO] [stdout]    |                 ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/ast.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 body,
[INFO] [stdout]    |                 ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/parser.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let name = self.expect_identifier()?;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arguments`
[INFO] [stdout]   --> src/parser.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let arguments = self.expect_arguments();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/parser.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let body = self.expect_block()?;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/parser.rs:229:30
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn expect_lud(&mut self, left: Expression) -> Result<Expression, ParseError> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]    --> src/parser.rs:267:22
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn binding_power(kind: TokenKind) -> u8 {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]  --> src/ast.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Program {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/ast.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Program {
[INFO] [stdout]   | ------------ associated function in this implementation
[INFO] [stdout] 8 |     pub fn new(items: Vec<Item>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Item` is never used
[INFO] [stdout]   --> src/ast.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Item {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/ast.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum Statement {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `span` is never used
[INFO] [stdout]   --> src/ast.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Statement {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 54 |     pub fn span(&self) -> Range<usize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]   --> src/ast.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum Expression {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operation` is never used
[INFO] [stdout]    --> src/ast.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub enum Operation {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BinaryOperation` is never used
[INFO] [stdout]    --> src/ast.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum BinaryOperation {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UnaryOperation` is never used
[INFO] [stdout]    --> src/ast.rs:164:10
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum UnaryOperation {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]  --> src/parser.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ParseError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExpectedTokenKind` is never used
[INFO] [stdout]   --> src/parser.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) enum ExpectedTokenKind {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) struct Parser<'t> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl<'t> Parser<'t> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  25 |     pub fn new(input: Lexer<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn parse(&mut self) -> Result<Program, ParseError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     fn expect_item(&mut self) -> Result<Item, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn expect_function(&mut self) -> Result<Item, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn expect_arguments(&mut self) -> Result<Vec<String>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn expect_block(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn expect_statement(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn expect_binding(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn expect_return(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn expect_branching(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn expect_while(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn expect_expression(&mut self, rbp: u8) -> Result<Expression, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn expect_nud(&mut self) -> Result<Expression, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn expect_lud(&mut self, left: Expression) -> Result<Expression, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn expect_identifier(&mut self) -> Result<(String, Range<usize>), ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn expect_token(&mut self, kind: TokenKind) -> Result<(Token, Range<usize>), ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn is_eof(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn binding_power(kind: TokenKind) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/token.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Identifier(String),
[INFO] [stdout]    |     ---------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Identifier(String),
[INFO] [stdout] 25 +     Identifier(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/token.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Int(i64),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 26 -     Int(i64),
[INFO] [stdout] 26 +     Int(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/token.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     UnexpectedCharacter(char),
[INFO] [stdout]    |     ------------------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 37 -     UnexpectedCharacter(char),
[INFO] [stdout] 37 +     UnexpectedCharacter(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]   --> src/token.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) enum TokenKind {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kind` and `as_identifier_unchecked` are never used
[INFO] [stdout]    --> src/token.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  80 |     pub fn kind(&self) -> TokenKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn as_identifier_unchecked(self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RangeExt` is never used
[INFO] [stdout]  --> src/traits.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) trait RangeExt<T> {
[INFO] [stdout]   |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `new_range_api` has been stable since 1.96.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(new_range_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/ast.rs:56:32
[INFO] [stdout]    |
[INFO] [stdout] 56 |             Statement::Block { body, span } => span,
[INFO] [stdout]    |                                ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bind_to`
[INFO] [stdout]   --> src/ast.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 bind_to,
[INFO] [stdout]    |                 ^^^^^^^ help: try ignoring the field: `bind_to: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/ast.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 value,
[INFO] [stdout]    |                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expression`
[INFO] [stdout]   --> src/ast.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Statement::Expression { expression, span } => span,
[INFO] [stdout]    |                                     ^^^^^^^^^^ help: try ignoring the field: `expression: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/ast.rs:63:33
[INFO] [stdout]    |
[INFO] [stdout] 63 |             Statement::Return { value, span } => span,
[INFO] [stdout]    |                                 ^^^^^ help: try ignoring the field: `value: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/ast.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 condition,
[INFO] [stdout]    |                 ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> src/ast.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 then,
[INFO] [stdout]    |                 ^^^^ help: try ignoring the field: `then: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `otherwise`
[INFO] [stdout]   --> src/ast.rs:67:17
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 otherwise,
[INFO] [stdout]    |                 ^^^^^^^^^ help: try ignoring the field: `otherwise: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/ast.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 condition,
[INFO] [stdout]    |                 ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/ast.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 body,
[INFO] [stdout]    |                 ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/parser.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let name = self.expect_identifier()?;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arguments`
[INFO] [stdout]   --> src/parser.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let arguments = self.expect_arguments();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/parser.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let body = self.expect_block()?;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/parser.rs:229:30
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn expect_lud(&mut self, left: Expression) -> Result<Expression, ParseError> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]    --> src/parser.rs:267:22
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn binding_power(kind: TokenKind) -> u8 {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]  --> src/ast.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Program {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/ast.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Program {
[INFO] [stdout]   | ------------ associated function in this implementation
[INFO] [stdout] 8 |     pub fn new(items: Vec<Item>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Item` is never used
[INFO] [stdout]   --> src/ast.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Item {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/ast.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum Statement {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `span` is never used
[INFO] [stdout]   --> src/ast.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Statement {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 54 |     pub fn span(&self) -> Range<usize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]   --> src/ast.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum Expression {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operation` is never used
[INFO] [stdout]    --> src/ast.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub enum Operation {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BinaryOperation` is never used
[INFO] [stdout]    --> src/ast.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum BinaryOperation {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UnaryOperation` is never used
[INFO] [stdout]    --> src/ast.rs:164:10
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum UnaryOperation {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]  --> src/parser.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ParseError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExpectedTokenKind` is never used
[INFO] [stdout]   --> src/parser.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) enum ExpectedTokenKind {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) struct Parser<'t> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl<'t> Parser<'t> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  25 |     pub fn new(input: Lexer<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn parse(&mut self) -> Result<Program, ParseError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     fn expect_item(&mut self) -> Result<Item, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn expect_function(&mut self) -> Result<Item, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn expect_arguments(&mut self) -> Result<Vec<String>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn expect_block(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn expect_statement(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn expect_binding(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn expect_return(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn expect_branching(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn expect_while(&mut self) -> Result<Statement, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn expect_expression(&mut self, rbp: u8) -> Result<Expression, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn expect_nud(&mut self) -> Result<Expression, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn expect_lud(&mut self, left: Expression) -> Result<Expression, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn expect_identifier(&mut self) -> Result<(String, Range<usize>), ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn expect_token(&mut self, kind: TokenKind) -> Result<(Token, Range<usize>), ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn is_eof(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn binding_power(kind: TokenKind) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/token.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Identifier(String),
[INFO] [stdout]    |     ---------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Identifier(String),
[INFO] [stdout] 25 +     Identifier(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/token.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Int(i64),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 26 -     Int(i64),
[INFO] [stdout] 26 +     Int(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/token.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     UnexpectedCharacter(char),
[INFO] [stdout]    |     ------------------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 37 -     UnexpectedCharacter(char),
[INFO] [stdout] 37 +     UnexpectedCharacter(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]   --> src/token.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) enum TokenKind {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kind` and `as_identifier_unchecked` are never used
[INFO] [stdout]    --> src/token.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  80 |     pub fn kind(&self) -> TokenKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn as_identifier_unchecked(self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RangeExt` is never used
[INFO] [stdout]  --> src/traits.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) trait RangeExt<T> {
[INFO] [stdout]   |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] running `Command { std: "docker" "inspect" "d4ba802adce433b352c3e89732032e4981067b4f3e4649b0e8e53947522eccc7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4ba802adce433b352c3e89732032e4981067b4f3e4649b0e8e53947522eccc7", kill_on_drop: false }`
[INFO] [stdout] d4ba802adce433b352c3e89732032e4981067b4f3e4649b0e8e53947522eccc7
