[INFO] cloning repository https://github.com/enbyted/codecrafters-interpreter-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/enbyted/codecrafters-interpreter-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fenbyted%2Fcodecrafters-interpreter-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fenbyted%2Fcodecrafters-interpreter-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ce94b7c4ec336be3ffab34ca98bc1692444bc44e [INFO] linting enbyted/codecrafters-interpreter-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fenbyted%2Fcodecrafters-interpreter-rust" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/enbyted/codecrafters-interpreter-rust [INFO] finished tweaking git repo https://github.com/enbyted/codecrafters-interpreter-rust [INFO] tweaked toml for git repo https://github.com/enbyted/codecrafters-interpreter-rust written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/enbyted/codecrafters-interpreter-rust on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/enbyted/codecrafters-interpreter-rust 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded logos-derive v0.15.0 [INFO] [stderr] Downloaded logos-codegen v0.15.0 [INFO] [stderr] Downloaded logos v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a6d9b31da1fe41b8327448efeff68198e01480c1aaa0ad5b9c395100277a263b [INFO] running `Command { std: "docker" "start" "-a" "a6d9b31da1fe41b8327448efeff68198e01480c1aaa0ad5b9c395100277a263b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a6d9b31da1fe41b8327448efeff68198e01480c1aaa0ad5b9c395100277a263b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6d9b31da1fe41b8327448efeff68198e01480c1aaa0ad5b9c395100277a263b", kill_on_drop: false }` [INFO] [stdout] a6d9b31da1fe41b8327448efeff68198e01480c1aaa0ad5b9c395100277a263b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4e6159f9fdfcd5aafc304346915f455663cee6e7433d65b817603ae8d5456a0b [INFO] running `Command { std: "docker" "start" "-a" "4e6159f9fdfcd5aafc304346915f455663cee6e7433d65b817603ae8d5456a0b", kill_on_drop: false }` [INFO] [stderr] Compiling beef v0.5.2 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling logos-codegen v0.15.0 [INFO] [stderr] Compiling syn v2.0.75 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling logos-derive v0.15.0 [INFO] [stderr] Checking logos v0.15.0 [INFO] [stderr] Checking codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `iter::Peekable` [INFO] [stdout] --> src/ast/parser.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{error::Error, iter::Peekable}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `iter::Peekable` [INFO] [stdout] --> src/ast/parser.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{error::Error, iter::Peekable}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/vm.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | assert!(self.data.len() >= size + 1, "Stack is too small"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `self.data.len() > size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/vm.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | assert!(self.data.len() >= size + 1, "Stack is too small"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `self.data.len() > size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lex` [INFO] [stdout] --> src/lexer.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | lex: &logos::Lexer<'_, TokenValue>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lex` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error` [INFO] [stdout] --> src/lexer.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | error: std::num::ParseFloatError, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lex` [INFO] [stdout] --> src/lexer.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | lex: &logos::Lexer<'_, TokenValue>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lex` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error` [INFO] [stdout] --> src/lexer.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | error: std::num::ParseFloatError, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `kind` is never read [INFO] [stdout] --> src/ast/compiler.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | struct Scope { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 16 | kind: ScopeType, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 94 | pub(super) enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 99 | Star, [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | Dot, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | Plus, [INFO] [stdout] | ^^^^ [INFO] [stdout] 104 | Minus, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 105 | Slash, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 106 | Equal, [INFO] [stdout] 107 | EqualEqual, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 108 | Bang, [INFO] [stdout] | ^^^^ [INFO] [stdout] 109 | BangEqual, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 110 | Less, [INFO] [stdout] | ^^^^ [INFO] [stdout] 111 | LessEqual, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 112 | Greater, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 113 | GreaterEqual, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 114 | KwAnd, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 115 | KwClass, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 116 | KwElse, [INFO] [stdout] 117 | KwFalse, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | KwNil, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 122 | KwOr, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | KwSuper, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 126 | KwThis, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 127 | KwTrue, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` 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: variant `Closure` is never constructed [INFO] [stdout] --> src/vm.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 119 | enum Value { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 127 | Closure { function: Function }, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` 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: method `pop_string` is never used [INFO] [stdout] --> src/vm.rs:558:8 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'env> Vm<'env> { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 558 | fn pop_string(&mut self, span: Span) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ast/expr.rs:358:12 [INFO] [stdout] | [INFO] [stdout] 358 | if !parser.take(TokenKind::RParen).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parser.take(TokenKind::RParen).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ast/parser.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | format!("at end") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"at end".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `kind` is never read [INFO] [stdout] --> src/ast/compiler.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | struct Scope { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 16 | kind: ScopeType, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 94 | pub(super) enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 99 | Star, [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | Dot, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | Plus, [INFO] [stdout] | ^^^^ [INFO] [stdout] 104 | Minus, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 105 | Slash, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 106 | Equal, [INFO] [stdout] 107 | EqualEqual, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 108 | Bang, [INFO] [stdout] | ^^^^ [INFO] [stdout] 109 | BangEqual, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 110 | Less, [INFO] [stdout] | ^^^^ [INFO] [stdout] 111 | LessEqual, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 112 | Greater, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 113 | GreaterEqual, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 114 | KwAnd, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 115 | KwClass, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 116 | KwElse, [INFO] [stdout] 117 | KwFalse, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | KwNil, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 122 | KwOr, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | KwSuper, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 126 | KwThis, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 127 | KwTrue, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` 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: variant `Closure` is never constructed [INFO] [stdout] --> src/vm.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 119 | enum Value { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 127 | Closure { function: Function }, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` 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: method `pop_string` is never used [INFO] [stdout] --> src/vm.rs:558:8 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'env> Vm<'env> { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 558 | fn pop_string(&mut self, span: Span) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ast/expr.rs:358:12 [INFO] [stdout] | [INFO] [stdout] 358 | if !parser.take(TokenKind::RParen).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parser.take(TokenKind::RParen).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ast/parser.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | format!("at end") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"at end".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lexer.rs:53:38 [INFO] [stdout] | [INFO] [stdout] 53 | LexerErrorKind::Other => format!("Unexpected error"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unexpected error".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lexer.rs:54:51 [INFO] [stdout] | [INFO] [stdout] 54 | LexerErrorKind::UnterminatedString => format!("Unterminated string."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unterminated string.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lexer.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | / match (self, other) { [INFO] [stdout] 177 | | (Self::LParen, TokenValue::LParen) => true, [INFO] [stdout] 178 | | (Self::RParen, TokenValue::RParen) => true, [INFO] [stdout] 179 | | (TokenKind::LBrace, TokenValue::LBrace) => true, [INFO] [stdout] ... | [INFO] [stdout] 213 | | _ => false, [INFO] [stdout] 214 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 176 - match (self, other) { [INFO] [stdout] 177 - (Self::LParen, TokenValue::LParen) => true, [INFO] [stdout] 178 - (Self::RParen, TokenValue::RParen) => true, [INFO] [stdout] 179 - (TokenKind::LBrace, TokenValue::LBrace) => true, [INFO] [stdout] 180 - (TokenKind::RBrace, TokenValue::RBrace) => true, [INFO] [stdout] 181 - (TokenKind::Star, TokenValue::Star) => true, [INFO] [stdout] 182 - (TokenKind::Dot, TokenValue::Dot) => true, [INFO] [stdout] 183 - (TokenKind::Comma, TokenValue::Comma) => true, [INFO] [stdout] 184 - (TokenKind::Semicolon, TokenValue::Semicolon) => true, [INFO] [stdout] 185 - (TokenKind::Plus, TokenValue::Plus) => true, [INFO] [stdout] 186 - (TokenKind::Minus, TokenValue::Minus) => true, [INFO] [stdout] 187 - (TokenKind::Slash, TokenValue::Slash) => true, [INFO] [stdout] 188 - (TokenKind::Equal, TokenValue::Equal) => true, [INFO] [stdout] 189 - (TokenKind::EqualEqual, TokenValue::EqualEqual) => true, [INFO] [stdout] 190 - (TokenKind::Bang, TokenValue::Bang) => true, [INFO] [stdout] 191 - (TokenKind::BangEqual, TokenValue::BangEqual) => true, [INFO] [stdout] 192 - (TokenKind::Less, TokenValue::Less) => true, [INFO] [stdout] 193 - (TokenKind::LessEqual, TokenValue::LessEqual) => true, [INFO] [stdout] 194 - (TokenKind::Greater, TokenValue::Greater) => true, [INFO] [stdout] 195 - (TokenKind::GreaterEqual, TokenValue::GreaterEqual) => true, [INFO] [stdout] 196 - (TokenKind::KwAnd, TokenValue::KwAnd) => true, [INFO] [stdout] 197 - (TokenKind::KwClass, TokenValue::KwClass) => true, [INFO] [stdout] 198 - (TokenKind::KwElse, TokenValue::KwElse) => true, [INFO] [stdout] 199 - (TokenKind::KwFalse, TokenValue::KwFalse) => true, [INFO] [stdout] 200 - (TokenKind::KwFor, TokenValue::KwFor) => true, [INFO] [stdout] 201 - (TokenKind::KwFun, TokenValue::KwFun) => true, [INFO] [stdout] 202 - (TokenKind::KwIf, TokenValue::KwIf) => true, [INFO] [stdout] 203 - (TokenKind::KwNil, TokenValue::KwNil) => true, [INFO] [stdout] 204 - (TokenKind::KwOr, TokenValue::KwOr) => true, [INFO] [stdout] 205 - (TokenKind::KwPrint, TokenValue::KwPrint) => true, [INFO] [stdout] 206 - (TokenKind::KwReturn, TokenValue::KwReturn) => true, [INFO] [stdout] 207 - (TokenKind::KwSuper, TokenValue::KwSuper) => true, [INFO] [stdout] 208 - (TokenKind::KwThis, TokenValue::KwThis) => true, [INFO] [stdout] 209 - (TokenKind::KwTrue, TokenValue::KwTrue) => true, [INFO] [stdout] 210 - (TokenKind::KwVar, TokenValue::KwVar) => true, [INFO] [stdout] 211 - (TokenKind::KwWhile, TokenValue::KwWhile) => true, [INFO] [stdout] 212 - (TokenKind::Identifier, TokenValue::Identifier(_)) => true, [INFO] [stdout] 213 - _ => false, [INFO] [stdout] 214 - } [INFO] [stdout] 176 + matches!((self, other), (Self::LParen, TokenValue::LParen) | (Self::RParen, TokenValue::RParen) | (TokenKind::LBrace, TokenValue::LBrace) | (TokenKind::RBrace, TokenValue::RBrace) | (TokenKind::Star, TokenValue::Star) | (TokenKind::Dot, TokenValue::Dot) | (TokenKind::Comma, TokenValue::Comma) | (TokenKind::Semicolon, TokenValue::Semicolon) | (TokenKind::Plus, TokenValue::Plus) | (TokenKind::Minus, TokenValue::Minus) | (TokenKind::Slash, TokenValue::Slash) | (TokenKind::Equal, TokenValue::Equal) | (TokenKind::EqualEqual, TokenValue::EqualEqual) | (TokenKind::Bang, TokenValue::Bang) | (TokenKind::BangEqual, TokenValue::BangEqual) | (TokenKind::Less, TokenValue::Less) | (TokenKind::LessEqual, TokenValue::LessEqual) | (TokenKind::Greater, TokenValue::Greater) | (TokenKind::GreaterEqual, TokenValue::GreaterEqual) | (TokenKind::KwAnd, TokenValue::KwAnd) | (TokenKind::KwClass, TokenValue::KwClass) | (TokenKind::KwElse, TokenValue::KwElse) | (TokenKind::KwFalse, TokenValue::KwFalse) | (TokenKind::KwFor, TokenValue::KwFor) | (TokenKind::KwFun, TokenValue::KwFun) | (TokenKind::KwIf, TokenValue::KwIf) | (TokenKind::KwNil, TokenValue::KwNil) | (TokenKind::KwOr, TokenValue::KwOr) | (TokenKind::KwPrint, TokenValue::KwPrint) | (TokenKind::KwReturn, TokenValue::KwReturn) | (TokenKind::KwSuper, TokenValue::KwSuper) | (TokenKind::KwThis, TokenValue::KwThis) | (TokenKind::KwTrue, TokenValue::KwTrue) | (TokenKind::KwVar, TokenValue::KwVar) | (TokenKind::KwWhile, TokenValue::KwWhile) | (TokenKind::Identifier, TokenValue::Identifier(_))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/lexer.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | self == &other [INFO] [stdout] | ^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lexer.rs:53:38 [INFO] [stdout] | [INFO] [stdout] 53 | LexerErrorKind::Other => format!("Unexpected error"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unexpected error".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lexer.rs:54:51 [INFO] [stdout] | [INFO] [stdout] 54 | LexerErrorKind::UnterminatedString => format!("Unterminated string."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unterminated string.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lexer.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | / match (self, other) { [INFO] [stdout] 177 | | (Self::LParen, TokenValue::LParen) => true, [INFO] [stdout] 178 | | (Self::RParen, TokenValue::RParen) => true, [INFO] [stdout] 179 | | (TokenKind::LBrace, TokenValue::LBrace) => true, [INFO] [stdout] ... | [INFO] [stdout] 213 | | _ => false, [INFO] [stdout] 214 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 176 - match (self, other) { [INFO] [stdout] 177 - (Self::LParen, TokenValue::LParen) => true, [INFO] [stdout] 178 - (Self::RParen, TokenValue::RParen) => true, [INFO] [stdout] 179 - (TokenKind::LBrace, TokenValue::LBrace) => true, [INFO] [stdout] 180 - (TokenKind::RBrace, TokenValue::RBrace) => true, [INFO] [stdout] 181 - (TokenKind::Star, TokenValue::Star) => true, [INFO] [stdout] 182 - (TokenKind::Dot, TokenValue::Dot) => true, [INFO] [stdout] 183 - (TokenKind::Comma, TokenValue::Comma) => true, [INFO] [stdout] 184 - (TokenKind::Semicolon, TokenValue::Semicolon) => true, [INFO] [stdout] 185 - (TokenKind::Plus, TokenValue::Plus) => true, [INFO] [stdout] 186 - (TokenKind::Minus, TokenValue::Minus) => true, [INFO] [stdout] 187 - (TokenKind::Slash, TokenValue::Slash) => true, [INFO] [stdout] 188 - (TokenKind::Equal, TokenValue::Equal) => true, [INFO] [stdout] 189 - (TokenKind::EqualEqual, TokenValue::EqualEqual) => true, [INFO] [stdout] 190 - (TokenKind::Bang, TokenValue::Bang) => true, [INFO] [stdout] 191 - (TokenKind::BangEqual, TokenValue::BangEqual) => true, [INFO] [stdout] 192 - (TokenKind::Less, TokenValue::Less) => true, [INFO] [stdout] 193 - (TokenKind::LessEqual, TokenValue::LessEqual) => true, [INFO] [stdout] 194 - (TokenKind::Greater, TokenValue::Greater) => true, [INFO] [stdout] 195 - (TokenKind::GreaterEqual, TokenValue::GreaterEqual) => true, [INFO] [stdout] 196 - (TokenKind::KwAnd, TokenValue::KwAnd) => true, [INFO] [stdout] 197 - (TokenKind::KwClass, TokenValue::KwClass) => true, [INFO] [stdout] 198 - (TokenKind::KwElse, TokenValue::KwElse) => true, [INFO] [stdout] 199 - (TokenKind::KwFalse, TokenValue::KwFalse) => true, [INFO] [stdout] 200 - (TokenKind::KwFor, TokenValue::KwFor) => true, [INFO] [stdout] 201 - (TokenKind::KwFun, TokenValue::KwFun) => true, [INFO] [stdout] 202 - (TokenKind::KwIf, TokenValue::KwIf) => true, [INFO] [stdout] 203 - (TokenKind::KwNil, TokenValue::KwNil) => true, [INFO] [stdout] 204 - (TokenKind::KwOr, TokenValue::KwOr) => true, [INFO] [stdout] 205 - (TokenKind::KwPrint, TokenValue::KwPrint) => true, [INFO] [stdout] 206 - (TokenKind::KwReturn, TokenValue::KwReturn) => true, [INFO] [stdout] 207 - (TokenKind::KwSuper, TokenValue::KwSuper) => true, [INFO] [stdout] 208 - (TokenKind::KwThis, TokenValue::KwThis) => true, [INFO] [stdout] 209 - (TokenKind::KwTrue, TokenValue::KwTrue) => true, [INFO] [stdout] 210 - (TokenKind::KwVar, TokenValue::KwVar) => true, [INFO] [stdout] 211 - (TokenKind::KwWhile, TokenValue::KwWhile) => true, [INFO] [stdout] 212 - (TokenKind::Identifier, TokenValue::Identifier(_)) => true, [INFO] [stdout] 213 - _ => false, [INFO] [stdout] 214 - } [INFO] [stdout] 176 + matches!((self, other), (Self::LParen, TokenValue::LParen) | (Self::RParen, TokenValue::RParen) | (TokenKind::LBrace, TokenValue::LBrace) | (TokenKind::RBrace, TokenValue::RBrace) | (TokenKind::Star, TokenValue::Star) | (TokenKind::Dot, TokenValue::Dot) | (TokenKind::Comma, TokenValue::Comma) | (TokenKind::Semicolon, TokenValue::Semicolon) | (TokenKind::Plus, TokenValue::Plus) | (TokenKind::Minus, TokenValue::Minus) | (TokenKind::Slash, TokenValue::Slash) | (TokenKind::Equal, TokenValue::Equal) | (TokenKind::EqualEqual, TokenValue::EqualEqual) | (TokenKind::Bang, TokenValue::Bang) | (TokenKind::BangEqual, TokenValue::BangEqual) | (TokenKind::Less, TokenValue::Less) | (TokenKind::LessEqual, TokenValue::LessEqual) | (TokenKind::Greater, TokenValue::Greater) | (TokenKind::GreaterEqual, TokenValue::GreaterEqual) | (TokenKind::KwAnd, TokenValue::KwAnd) | (TokenKind::KwClass, TokenValue::KwClass) | (TokenKind::KwElse, TokenValue::KwElse) | (TokenKind::KwFalse, TokenValue::KwFalse) | (TokenKind::KwFor, TokenValue::KwFor) | (TokenKind::KwFun, TokenValue::KwFun) | (TokenKind::KwIf, TokenValue::KwIf) | (TokenKind::KwNil, TokenValue::KwNil) | (TokenKind::KwOr, TokenValue::KwOr) | (TokenKind::KwPrint, TokenValue::KwPrint) | (TokenKind::KwReturn, TokenValue::KwReturn) | (TokenKind::KwSuper, TokenValue::KwSuper) | (TokenKind::KwThis, TokenValue::KwThis) | (TokenKind::KwTrue, TokenValue::KwTrue) | (TokenKind::KwVar, TokenValue::KwVar) | (TokenKind::KwWhile, TokenValue::KwWhile) | (TokenKind::Identifier, TokenValue::Identifier(_))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/lexer.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | self == &other [INFO] [stdout] | ^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `LexerError::from_lexer` doesn't need a mutable reference [INFO] [stdout] --> src/lexer.rs:522:52 [INFO] [stdout] | [INFO] [stdout] 522 | })) => Some(Err(LexerError::from_lexer(&mut self.inner))), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 522 - })) => Some(Err(LexerError::from_lexer(&mut self.inner))), [INFO] [stdout] 522 + })) => Some(Err(LexerError::from_lexer(&self.inner))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/vm.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | struct NativeFn(Arc Result>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `.extend(_.chars())` [INFO] [stdout] --> src/vm.rs:384:29 [INFO] [stdout] | [INFO] [stdout] 384 | ... left.extend(right.chars()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.push_str(&right)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_extend_chars [INFO] [stdout] = note: `#[warn(clippy::string_extend_chars)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `LexerError::from_lexer` doesn't need a mutable reference [INFO] [stdout] --> src/lexer.rs:522:52 [INFO] [stdout] | [INFO] [stdout] 522 | })) => Some(Err(LexerError::from_lexer(&mut self.inner))), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 522 - })) => Some(Err(LexerError::from_lexer(&mut self.inner))), [INFO] [stdout] 522 + })) => Some(Err(LexerError::from_lexer(&self.inner))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option<&Value>` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:450:42 [INFO] [stdout] | [INFO] [stdout] 450 | if let Some(value) = self.globals.get(name).clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.globals.get(name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:473:37 [INFO] [stdout] | [INFO] [stdout] 473 | ... format!("Index out of bounds."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Index out of bounds.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:484:49 [INFO] [stdout] | [INFO] [stdout] 484 | RuntimeError::new(span, format!("Index out of bounds.")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Index out of bounds.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:535:53 [INFO] [stdout] | [INFO] [stdout] 535 | ... RuntimeError::new(span, format!("Expected a value on the stack.")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:564:17 [INFO] [stdout] | [INFO] [stdout] 564 | format!("Expected a string on the stack."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a string on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:578:52 [INFO] [stdout] | [INFO] [stdout] 578 | .ok_or_else(|| RuntimeError::new(span, format!("Expected a value on the stack.")))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:585:52 [INFO] [stdout] | [INFO] [stdout] 585 | .ok_or_else(|| RuntimeError::new(span, format!("Expected a value on the stack."))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:591:52 [INFO] [stdout] | [INFO] [stdout] 591 | .ok_or_else(|| RuntimeError::new(span, format!("Expected a value on the stack."))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/vm.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | struct NativeFn(Arc Result>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `.extend(_.chars())` [INFO] [stdout] --> src/vm.rs:384:29 [INFO] [stdout] | [INFO] [stdout] 384 | ... left.extend(right.chars()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.push_str(&right)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_extend_chars [INFO] [stdout] = note: `#[warn(clippy::string_extend_chars)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option<&Value>` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:450:42 [INFO] [stdout] | [INFO] [stdout] 450 | if let Some(value) = self.globals.get(name).clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.globals.get(name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:473:37 [INFO] [stdout] | [INFO] [stdout] 473 | ... format!("Index out of bounds."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Index out of bounds.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:484:49 [INFO] [stdout] | [INFO] [stdout] 484 | RuntimeError::new(span, format!("Index out of bounds.")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Index out of bounds.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:535:53 [INFO] [stdout] | [INFO] [stdout] 535 | ... RuntimeError::new(span, format!("Expected a value on the stack.")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:564:17 [INFO] [stdout] | [INFO] [stdout] 564 | format!("Expected a string on the stack."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a string on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:578:52 [INFO] [stdout] | [INFO] [stdout] 578 | .ok_or_else(|| RuntimeError::new(span, format!("Expected a value on the stack.")))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:585:52 [INFO] [stdout] | [INFO] [stdout] 585 | .ok_or_else(|| RuntimeError::new(span, format!("Expected a value on the stack."))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/vm.rs:591:52 [INFO] [stdout] | [INFO] [stdout] 591 | .ok_or_else(|| RuntimeError::new(span, format!("Expected a value on the stack."))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected a value on the stack.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | return ResultCode::Ok; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 - return ResultCode::Ok; [INFO] [stdout] 174 + ResultCode::Ok [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | writeln!(io::stderr(), "Usage: {} tokenize ", args[0]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Usage: {} tokenize ", args[0])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] = note: `#[warn(clippy::explicit_write)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | writeln!(io::stderr(), "Logs from your program will appear here!").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Logs from your program will appear here!")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | writeln!(io::stderr(), "Unknown command: {}", command).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Unknown command: {}", command)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | return ResultCode::Ok; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 - return ResultCode::Ok; [INFO] [stdout] 174 + ResultCode::Ok [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | writeln!(io::stderr(), "Usage: {} tokenize ", args[0]).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Usage: {} tokenize ", args[0])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] = note: `#[warn(clippy::explicit_write)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | writeln!(io::stderr(), "Logs from your program will appear here!").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Logs from your program will appear here!")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | writeln!(io::stderr(), "Failed to read file {}", filename).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Failed to read file {}", filename)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `writeln!(stderr(), ...).unwrap()` [INFO] [stdout] --> src/main.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | writeln!(io::stderr(), "Unknown command: {}", command).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eprintln!("Unknown command: {}", command)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.88s [INFO] running `Command { std: "docker" "inspect" "4e6159f9fdfcd5aafc304346915f455663cee6e7433d65b817603ae8d5456a0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4e6159f9fdfcd5aafc304346915f455663cee6e7433d65b817603ae8d5456a0b", kill_on_drop: false }` [INFO] [stdout] 4e6159f9fdfcd5aafc304346915f455663cee6e7433d65b817603ae8d5456a0b