[INFO] cloning repository https://github.com/bluretrece/lox_port [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bluretrece/lox_port" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbluretrece%2Flox_port", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbluretrece%2Flox_port'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 272d1d97a2c1834cfae9eb462746f78855f770b4 [INFO] checking bluretrece/lox_port against try#894d32a5432c6a6461bb2aac7c3d5f2e87dce83f for pr-77015 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbluretrece%2Flox_port" "/workspace/builds/worker-9/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/bluretrece/lox_port on toolchain 894d32a5432c6a6461bb2aac7c3d5f2e87dce83f [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+894d32a5432c6a6461bb2aac7c3d5f2e87dce83f" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/bluretrece/lox_port [INFO] finished tweaking git repo https://github.com/bluretrece/lox_port [INFO] tweaked toml for git repo https://github.com/bluretrece/lox_port written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate git repo https://github.com/bluretrece/lox_port already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+894d32a5432c6a6461bb2aac7c3d5f2e87dce83f" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+894d32a5432c6a6461bb2aac7c3d5f2e87dce83f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 894496754fe0739f86e91130939d0033aa2568bf1373b145d8cf11e9afe63586 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "894496754fe0739f86e91130939d0033aa2568bf1373b145d8cf11e9afe63586", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "894496754fe0739f86e91130939d0033aa2568bf1373b145d8cf11e9afe63586", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "894496754fe0739f86e91130939d0033aa2568bf1373b145d8cf11e9afe63586", kill_on_drop: false }` [INFO] [stdout] 894496754fe0739f86e91130939d0033aa2568bf1373b145d8cf11e9afe63586 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+894d32a5432c6a6461bb2aac7c3d5f2e87dce83f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e6e594308608ecaf3e2728eed625797fcde039985e0a271ed0bbbe9ed1fd1c79 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "e6e594308608ecaf3e2728eed625797fcde039985e0a271ed0bbbe9ed1fd1c79", kill_on_drop: false }` [INFO] [stderr] Checking lox v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | LEFT_PAREN, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | RIGHT_PAREN, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `BANG_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | BANG_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `EQUAL_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | EQUAL_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GREATER_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | GREATER_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LESS_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | LESS_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Neg`, `Not` [INFO] [stdout] --> src/main.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::{Add, Div, Mul, Neg, Not, Sub}; [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | / /// a primary expression is reached. [INFO] [stdout] 340 | | /// where [INFO] [stdout] 341 | | /// primary → NUMBER | STRING | "false" | "true" | "nil" [INFO] [stdout] 342 | | /// | "(" expression ")" ; [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] 343 | self.primary() [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:516:36 [INFO] [stdout] | [INFO] [stdout] 516 | fn accept(&self, visitor: &mut Visitor) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:521:33 [INFO] [stdout] | [INFO] [stdout] 521 | fn accept(&self, expr: &mut Visitor) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | LEFT_PAREN, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | RIGHT_PAREN, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `BANG_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | BANG_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `EQUAL_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | EQUAL_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GREATER_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | GREATER_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LESS_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/token_type.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | LESS_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Neg`, `Not` [INFO] [stdout] --> src/main.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::{Add, Div, Mul, Neg, Not, Sub}; [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | / /// a primary expression is reached. [INFO] [stdout] 340 | | /// where [INFO] [stdout] 341 | | /// primary → NUMBER | STRING | "false" | "true" | "nil" [INFO] [stdout] 342 | | /// | "(" expression ")" ; [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] 343 | self.primary() [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:516:36 [INFO] [stdout] | [INFO] [stdout] 516 | fn accept(&self, visitor: &mut Visitor) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:521:33 [INFO] [stdout] | [INFO] [stdout] 521 | fn accept(&self, expr: &mut Visitor) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/main.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | let mut input = "(+);".to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expression` [INFO] [stdout] --> src/main.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | let mut expression = parser.expression(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/main.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | expr: &Expr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/main.rs:92:42 [INFO] [stdout] | [INFO] [stdout] 92 | fn visit_group_expression(&mut self, expr: &Expr, content: &Box) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/main.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 96 | fn visit_literal_expression(&mut self, expr: &Expr, literal: &Literal) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/main.rs:377:54 [INFO] [stdout] | [INFO] [stdout] 377 | pub fn consume(&mut self, token_type: TokenType, message: String) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let mut left = self.evaluate(left)?; [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/main.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let mut right = self.evaluate(right)?; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/main.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | let mut input = "(+);".to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expression` [INFO] [stdout] --> src/main.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | let mut expression = parser.expression(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/main.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | expr: &Expr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/main.rs:92:42 [INFO] [stdout] | [INFO] [stdout] 92 | fn visit_group_expression(&mut self, expr: &Expr, content: &Box) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/main.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 96 | fn visit_literal_expression(&mut self, expr: &Expr, literal: &Literal) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/main.rs:377:54 [INFO] [stdout] | [INFO] [stdout] 377 | pub fn consume(&mut self, token_type: TokenType, message: String) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let mut left = self.evaluate(left)?; [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/main.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let mut right = self.evaluate(right)?; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | let mut input = "(+);".to_string(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | let mut expression = parser.expression(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:581:13 [INFO] [stdout] | [INFO] [stdout] 581 | let mut input = "(+);".to_string(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | let mut input = "(+);".to_string(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:626:13 [INFO] [stdout] | [INFO] [stdout] 626 | let mut input = "/".to_string(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | let mut expression = parser.expression(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:652:13 [INFO] [stdout] | [INFO] [stdout] 652 | let mut input = "1+2".to_string(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/literal.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | let mut x = n.to_string(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scanner.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | let mut text = self.source[self.start..self.current].trim(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/scanner.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 126 | let mut text = self.source[self.start..self.current].trim(); [INFO] [stdout] | ----------- immutable borrow occurs here [INFO] [stdout] 127 | [INFO] [stdout] 128 | if let Some(token_Type) = self.match_identifier(text.to_string()) { [INFO] [stdout] | ^^^^ ---- immutable borrow later used here [INFO] [stdout] | | [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stdout] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stdout] = note: for more information, see issue #59159 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Scanner` [INFO] [stdout] --> src/scanner.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) struct Scanner { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/scanner.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(source: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_at_end` [INFO] [stdout] --> src/scanner.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | fn is_at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `advance` [INFO] [stdout] --> src/scanner.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn advance(&mut self) -> char { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_token` [INFO] [stdout] --> src/scanner.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn add_token(&mut self, of_type: TokenType, literal: Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_token_val` [INFO] [stdout] --> src/scanner.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn add_token_val(&mut self, of_type: TokenType, literal: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `advance_if_then` [INFO] [stdout] --> src/scanner.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn advance_if_then(&mut self, next: char) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scan_token` [INFO] [stdout] --> src/scanner.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn scan_token(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `identifier` [INFO] [stdout] --> src/scanner.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn identifier(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `match_identifier` [INFO] [stdout] --> src/scanner.rs:138:12 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn match_identifier(&mut self, c: String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_apha` [INFO] [stdout] --> src/scanner.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn is_apha(&mut self, c: char) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_alphanumeric` [INFO] [stdout] --> src/scanner.rs:164:12 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn is_alphanumeric(&mut self, c: char) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_digit` [INFO] [stdout] --> src/scanner.rs:168:12 [INFO] [stdout] | [INFO] [stdout] 168 | pub fn is_digit(&mut self, c: char) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `number` [INFO] [stdout] --> src/scanner.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn number(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `peek_next` [INFO] [stdout] --> src/scanner.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn peek_next(&mut self) -> char { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `string` [INFO] [stdout] --> src/scanner.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 209 | pub fn string(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `peek` [INFO] [stdout] --> src/scanner.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn peek(&self) -> char { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scan_tokens` [INFO] [stdout] --> src/scanner.rs:239:12 [INFO] [stdout] | [INFO] [stdout] 239 | pub fn scan_tokens(&mut self) -> &Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tokens_helper` [INFO] [stdout] --> src/scanner.rs:252:12 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn tokens_helper(self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/main.rs:226:12 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn new(tokens: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `expression` [INFO] [stdout] --> src/main.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 233 | pub fn expression(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `parse` [INFO] [stdout] --> src/main.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn parse(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `equality` [INFO] [stdout] --> src/main.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | pub fn equality(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `if_match` [INFO] [stdout] --> src/main.rs:260:12 [INFO] [stdout] | [INFO] [stdout] 260 | pub fn if_match(&mut self, token_types: &[TokenType]) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `peek` [INFO] [stdout] --> src/main.rs:271:12 [INFO] [stdout] | [INFO] [stdout] 271 | pub fn peek(&self) -> &Token { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_at_end` [INFO] [stdout] --> src/main.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 276 | pub fn is_at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `check` [INFO] [stdout] --> src/main.rs:279:12 [INFO] [stdout] | [INFO] [stdout] 279 | pub fn check(&self, of_type: &TokenType) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `advance` [INFO] [stdout] --> src/main.rs:286:12 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn advance(&mut self) -> Token { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `previous` [INFO] [stdout] --> src/main.rs:295:12 [INFO] [stdout] | [INFO] [stdout] 295 | pub fn previous(&self) -> Token { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `comparison` [INFO] [stdout] --> src/main.rs:298:12 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn comparison(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `unary` [INFO] [stdout] --> src/main.rs:329:12 [INFO] [stdout] | [INFO] [stdout] 329 | pub fn unary(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `primary` [INFO] [stdout] --> src/main.rs:346:12 [INFO] [stdout] | [INFO] [stdout] 346 | pub fn primary(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `consume` [INFO] [stdout] --> src/main.rs:377:12 [INFO] [stdout] | [INFO] [stdout] 377 | pub fn consume(&mut self, token_type: TokenType, message: String) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `multiplication` [INFO] [stdout] --> src/main.rs:387:12 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn multiplication(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/literal.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | let mut x = n.to_string(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `synchronize` [INFO] [stdout] --> src/main.rs:404:12 [INFO] [stdout] | [INFO] [stdout] 404 | pub fn synchronize(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `addition` [INFO] [stdout] --> src/main.rs:428:12 [INFO] [stdout] | [INFO] [stdout] 428 | pub fn addition(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run_file` [INFO] [stdout] --> src/main.rs:536:4 [INFO] [stdout] | [INFO] [stdout] 536 | fn run_file(file: &String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run_prompt` [INFO] [stdout] --> src/main.rs:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | fn run_prompt() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run` [INFO] [stdout] --> src/main.rs:556:4 [INFO] [stdout] | [INFO] [stdout] 556 | fn run(source: &String) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scanner.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | let mut text = self.source[self.start..self.current].trim(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/scanner.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 126 | let mut text = self.source[self.start..self.current].trim(); [INFO] [stdout] | ----------- immutable borrow occurs here [INFO] [stdout] 127 | [INFO] [stdout] 128 | if let Some(token_Type) = self.match_identifier(text.to_string()) { [INFO] [stdout] | ^^^^ ---- immutable borrow later used here [INFO] [stdout] | | [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stdout] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stdout] = note: for more information, see issue #59159 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `synchronize` [INFO] [stdout] --> src/main.rs:404:12 [INFO] [stdout] | [INFO] [stdout] 404 | pub fn synchronize(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run_file` [INFO] [stdout] --> src/main.rs:536:4 [INFO] [stdout] | [INFO] [stdout] 536 | fn run_file(file: &String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run_prompt` [INFO] [stdout] --> src/main.rs:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | fn run_prompt() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run` [INFO] [stdout] --> src/main.rs:556:4 [INFO] [stdout] | [INFO] [stdout] 556 | fn run(source: &String) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:370:13 [INFO] [stdout] | [INFO] [stdout] 370 | self.consume(TokenType::RIGHT_PAREN, String::from("Expected ')'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:539:5 [INFO] [stdout] | [INFO] [stdout] 539 | run(&bytes); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:548:9 [INFO] [stdout] | [INFO] [stdout] 548 | stdout.flush(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:552:9 [INFO] [stdout] | [INFO] [stdout] 552 | run(&source); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `token_Type` should have a snake case name [INFO] [stdout] --> src/scanner.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(token_Type) = self.match_identifier(text.to_string()) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `token_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:370:13 [INFO] [stdout] | [INFO] [stdout] 370 | self.consume(TokenType::RIGHT_PAREN, String::from("Expected ')'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:539:5 [INFO] [stdout] | [INFO] [stdout] 539 | run(&bytes); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:548:9 [INFO] [stdout] | [INFO] [stdout] 548 | stdout.flush(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:552:9 [INFO] [stdout] | [INFO] [stdout] 552 | run(&source); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `token_Type` should have a snake case name [INFO] [stdout] --> src/scanner.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(token_Type) = self.match_identifier(text.to_string()) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `token_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 70 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 38 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.11s [INFO] running `Command { std: "docker" "inspect" "e6e594308608ecaf3e2728eed625797fcde039985e0a271ed0bbbe9ed1fd1c79", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e6e594308608ecaf3e2728eed625797fcde039985e0a271ed0bbbe9ed1fd1c79", kill_on_drop: false }` [INFO] [stdout] e6e594308608ecaf3e2728eed625797fcde039985e0a271ed0bbbe9ed1fd1c79