[INFO] cloning repository https://github.com/franzkurt/pythonVM [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/franzkurt/pythonVM" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffranzkurt%2FpythonVM", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffranzkurt%2FpythonVM'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b93492185f6c822303738bd6aa518f1c688ecdd9 [INFO] building franzkurt/pythonVM against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffranzkurt%2FpythonVM" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/franzkurt/pythonVM on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/franzkurt/pythonVM [INFO] finished tweaking git repo https://github.com/franzkurt/pythonVM [INFO] tweaked toml for git repo https://github.com/franzkurt/pythonVM written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/franzkurt/pythonVM 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 76a37be0bbb52d8fc75023474b7d716d15ded0865ba72e581d32dfe3c16e1c3d [INFO] running `Command { std: "docker" "start" "-a" "76a37be0bbb52d8fc75023474b7d716d15ded0865ba72e581d32dfe3c16e1c3d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "76a37be0bbb52d8fc75023474b7d716d15ded0865ba72e581d32dfe3c16e1c3d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76a37be0bbb52d8fc75023474b7d716d15ded0865ba72e581d32dfe3c16e1c3d", kill_on_drop: false }` [INFO] [stdout] 76a37be0bbb52d8fc75023474b7d716d15ded0865ba72e581d32dfe3c16e1c3d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cd757db38807160d339a30571085eed8c588f5cddaac13ac51cc0f28c8c80bed [INFO] running `Command { std: "docker" "start" "-a" "cd757db38807160d339a30571085eed8c588f5cddaac13ac51cc0f28c8c80bed", kill_on_drop: false }` [INFO] [stderr] Compiling regex-syntax v0.7.2 [INFO] [stderr] Compiling aho-corasick v1.0.1 [INFO] [stderr] Compiling regex v1.8.3 [INFO] [stderr] Compiling pythoninterpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/interpreter.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinaryOperator` and `UnaryOperator` [INFO] [stdout] --> src/parser.rs:1:56 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::interpreter::{Value, Expression, Statement, BinaryOperator, UnaryOperator, Function}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/interpreter.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | _ => unimplemented!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/interpreter.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 99 | BinaryOperator::Add => match (left_value, right_value) { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 105 | BinaryOperator::Subtract => match (left_value, right_value) { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | BinaryOperator::Multiply => match (left_value, right_value) { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 115 | BinaryOperator::Divide => match (left_value, right_value) { [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 139 | _ => unimplemented!(), [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/interpreter.rs:200:31 [INFO] [stdout] | [INFO] [stdout] 200 | Statement::Import(name) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/tokenizer.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 242 | "!" => Some(Symbol::SendMessage), [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] 243 | "\"" => Some(Symbol::DoubleQuote), [INFO] [stdout] 244 | "!" => { [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/tokenizer.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 239 | "^" => Some(Symbol::BitwiseXor), [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 306 | "^" => Some(Symbol::Exponent), [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser.rs:159:51 [INFO] [stdout] | [INFO] [stdout] 159 | ... Symbol::DoubleQuote | Symbol::DoubleQuote => {} [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | | [INFO] [stdout] | matches all the relevant values [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ident` [INFO] [stdout] --> src/parser.rs:128:39 [INFO] [stdout] | [INFO] [stdout] 128 | Token::Identifier(ident) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/parser.rs:146:39 [INFO] [stdout] | [INFO] [stdout] 146 | Token::Identifier(name) => { }, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/parser.rs:211:61 [INFO] [stdout] | [INFO] [stdout] 211 | ... Token::Text(t)|Token::FString(t) => { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 211 | Token::Text(_t)|Token::FString(_t) => { [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main2` is never used [INFO] [stdout] --> src/main.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn main2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Variable` is never constructed [INFO] [stdout] --> src/interpreter.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Variable { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Variable` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `None`, `List`, `Tuple`, and `Set` are never constructed [INFO] [stdout] --> src/interpreter.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum Value { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 14 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | List(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | Tuple(Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | Set(Vec), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `params` are never read [INFO] [stdout] --> src/interpreter.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Function { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 30 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | pub params: Vec<(String, Option)>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Function` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/interpreter.rs:39:16 [INFO] [stdout] | [INFO] [stdout] 39 | Expression(Expression), [INFO] [stdout] | ---------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has derived impls for the traits `Debug` and `Clone`, 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] 39 | Expression(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/interpreter.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | Import(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has derived impls for the traits `Debug` and `Clone`, 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] 45 | Import(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Assignment`, `If`, `While`, `For`, and `Return` are never constructed [INFO] [stdout] --> src/interpreter.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub enum Statement { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 38 | Assignment(String, Expression), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 39 | Expression(Expression), [INFO] [stdout] 40 | If(Expression, Vec, Option>), [INFO] [stdout] | ^^ [INFO] [stdout] 41 | While(Expression, Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 42 | For(String, Expression, Expression, Vec), [INFO] [stdout] | ^^^ [INFO] [stdout] 43 | Function(Function), [INFO] [stdout] 44 | Return(Expression), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/interpreter.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | Literal(Value), [INFO] [stdout] | ------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has derived impls for the traits `Debug` and `Clone`, 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] 53 | Literal(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Binary`, `Unary`, `Variable`, and `FunctionCall` are never constructed [INFO] [stdout] --> src/interpreter.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 51 | Binary(Box, BinaryOperator, Box), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 52 | Unary(UnaryOperator, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | Literal(Value), [INFO] [stdout] 54 | Variable(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | FunctionCall(String, Vec), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/interpreter.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum BinaryOperator { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 61 | Add, [INFO] [stdout] | ^^^ [INFO] [stdout] 62 | Subtract, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 63 | Multiply, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 64 | Divide, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 65 | Modulo, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 66 | Equal, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 67 | NotEqual, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 68 | LessThan, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 69 | GreaterThan, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 70 | LessThanOrEqual, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | GreaterThanOrEqual, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 73 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinaryOperator` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Not` and `Minus` are never constructed [INFO] [stdout] --> src/interpreter.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 78 | pub enum UnaryOperator { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 79 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 80 | Minus, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UnaryOperator` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Interpreter` is never constructed [INFO] [stdout] --> src/interpreter.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | struct Interpreter { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `eval_expression` and `eval_statement` are never used [INFO] [stdout] --> src/interpreter.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl Interpreter { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 92 | // Define a function to evaluate an expression and return its value [INFO] [stdout] 93 | fn eval_expression(&self, expr: &Expression) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn eval_statement(&mut self, statement: &Statement) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/interpreter.rs:263:8 [INFO] [stdout] | [INFO] [stdout] 263 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `len` is never used [INFO] [stdout] --> src/tokenizer.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl Keyword { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 56 | fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UnexpectedEndOfInput` and `RecursionLimitExceeded` are never constructed [INFO] [stdout] --> src/tokenizer.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 191 | pub enum ParseError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 192 | UnexpectedToken(Token), [INFO] [stdout] 193 | UnexpectedEndOfInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 194 | RecursionLimitExceeded, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_symbol` is never used [INFO] [stdout] --> src/tokenizer.rs:311:4 [INFO] [stdout] | [INFO] [stdout] 311 | fn reverse_symbol(symbol: &Symbol) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_keyword` is never used [INFO] [stdout] --> src/tokenizer.rs:397:4 [INFO] [stdout] | [INFO] [stdout] 397 | fn reverse_keyword(keyword: &Keyword) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IntoParenthesis`, `IntoContainer`, and `EndStatement` are never constructed [INFO] [stdout] --> src/parser.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 30 | enum SyntaxState{ [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 31 | IntoStatement, [INFO] [stdout] 32 | IntoParenthesis, //into function call, assigment or expression [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | IntoContainer, //list, tuple, .. [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | EndStatement, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SyntaxState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `current_ident` is never read [INFO] [stdout] --> src/parser.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 54 | // using drain to remove tokens allow functions to get all tokens and jump [INFO] [stdout] 55 | current_ident: i32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `parse_expression` and `parse_block` are never used [INFO] [stdout] --> src/parser.rs:296:8 [INFO] [stdout] | [INFO] [stdout] 62 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 296 | fn parse_expression(&mut self) -> Result<(), ParseError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | fn parse_block(&mut self) -> Result<(), ParseError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `Tokenizer` should have a snake case name [INFO] [stdout] --> src/tokenizer.rs:435:8 [INFO] [stdout] | [INFO] [stdout] 435 | pub fn Tokenizer(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `tokenizer` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 98 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:106:33 [INFO] [stdout] | [INFO] [stdout] 106 | ... self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 106 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:111:33 [INFO] [stdout] | [INFO] [stdout] 111 | ... self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 111 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:125:25 [INFO] [stdout] | [INFO] [stdout] 125 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 125 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:148:25 [INFO] [stdout] | [INFO] [stdout] 148 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 148 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 169 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:188:25 [INFO] [stdout] | [INFO] [stdout] 188 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:243:25 [INFO] [stdout] | [INFO] [stdout] 243 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 243 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.82s [INFO] running `Command { std: "docker" "inspect" "cd757db38807160d339a30571085eed8c588f5cddaac13ac51cc0f28c8c80bed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cd757db38807160d339a30571085eed8c588f5cddaac13ac51cc0f28c8c80bed", kill_on_drop: false }` [INFO] [stdout] cd757db38807160d339a30571085eed8c588f5cddaac13ac51cc0f28c8c80bed [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c8bd53d75d7b2cb198aa374a9450c751b43b344ad8970ecf8bf3a9c7cb0f0727 [INFO] running `Command { std: "docker" "start" "-a" "c8bd53d75d7b2cb198aa374a9450c751b43b344ad8970ecf8bf3a9c7cb0f0727", kill_on_drop: false }` [INFO] [stderr] Compiling pythoninterpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/interpreter.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinaryOperator` and `UnaryOperator` [INFO] [stdout] --> src/parser.rs:1:56 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::interpreter::{Value, Expression, Statement, BinaryOperator, UnaryOperator, Function}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/interpreter.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | _ => unimplemented!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/interpreter.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 99 | BinaryOperator::Add => match (left_value, right_value) { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 105 | BinaryOperator::Subtract => match (left_value, right_value) { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | BinaryOperator::Multiply => match (left_value, right_value) { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 115 | BinaryOperator::Divide => match (left_value, right_value) { [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 139 | _ => unimplemented!(), [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/interpreter.rs:200:31 [INFO] [stdout] | [INFO] [stdout] 200 | Statement::Import(name) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/tokenizer.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 242 | "!" => Some(Symbol::SendMessage), [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] 243 | "\"" => Some(Symbol::DoubleQuote), [INFO] [stdout] 244 | "!" => { [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/tokenizer.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 239 | "^" => Some(Symbol::BitwiseXor), [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 306 | "^" => Some(Symbol::Exponent), [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser.rs:159:51 [INFO] [stdout] | [INFO] [stdout] 159 | ... Symbol::DoubleQuote | Symbol::DoubleQuote => {} [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | | [INFO] [stdout] | matches all the relevant values [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ident` [INFO] [stdout] --> src/parser.rs:128:39 [INFO] [stdout] | [INFO] [stdout] 128 | Token::Identifier(ident) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/parser.rs:146:39 [INFO] [stdout] | [INFO] [stdout] 146 | Token::Identifier(name) => { }, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/parser.rs:211:61 [INFO] [stdout] | [INFO] [stdout] 211 | ... Token::Text(t)|Token::FString(t) => { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 211 | Token::Text(_t)|Token::FString(_t) => { [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main2` is never used [INFO] [stdout] --> src/main.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn main2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Variable` is never constructed [INFO] [stdout] --> src/interpreter.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Variable { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Variable` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `None`, `List`, `Tuple`, and `Set` are never constructed [INFO] [stdout] --> src/interpreter.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum Value { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 14 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | List(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | Tuple(Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | Set(Vec), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `params` are never read [INFO] [stdout] --> src/interpreter.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Function { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 30 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | pub params: Vec<(String, Option)>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Function` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/interpreter.rs:39:16 [INFO] [stdout] | [INFO] [stdout] 39 | Expression(Expression), [INFO] [stdout] | ---------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has derived impls for the traits `Debug` and `Clone`, 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] 39 | Expression(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/interpreter.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | Import(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has derived impls for the traits `Debug` and `Clone`, 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] 45 | Import(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Assignment`, `If`, `While`, `For`, and `Return` are never constructed [INFO] [stdout] --> src/interpreter.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub enum Statement { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 38 | Assignment(String, Expression), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 39 | Expression(Expression), [INFO] [stdout] 40 | If(Expression, Vec, Option>), [INFO] [stdout] | ^^ [INFO] [stdout] 41 | While(Expression, Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 42 | For(String, Expression, Expression, Vec), [INFO] [stdout] | ^^^ [INFO] [stdout] 43 | Function(Function), [INFO] [stdout] 44 | Return(Expression), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/interpreter.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | Literal(Value), [INFO] [stdout] | ------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has derived impls for the traits `Debug` and `Clone`, 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] 53 | Literal(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Binary`, `Unary`, `Variable`, and `FunctionCall` are never constructed [INFO] [stdout] --> src/interpreter.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 51 | Binary(Box, BinaryOperator, Box), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 52 | Unary(UnaryOperator, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | Literal(Value), [INFO] [stdout] 54 | Variable(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | FunctionCall(String, Vec), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/interpreter.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum BinaryOperator { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 61 | Add, [INFO] [stdout] | ^^^ [INFO] [stdout] 62 | Subtract, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 63 | Multiply, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 64 | Divide, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 65 | Modulo, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 66 | Equal, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 67 | NotEqual, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 68 | LessThan, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 69 | GreaterThan, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 70 | LessThanOrEqual, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | GreaterThanOrEqual, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 73 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinaryOperator` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Not` and `Minus` are never constructed [INFO] [stdout] --> src/interpreter.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 78 | pub enum UnaryOperator { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 79 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 80 | Minus, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UnaryOperator` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Interpreter` is never constructed [INFO] [stdout] --> src/interpreter.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | struct Interpreter { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `eval_expression` and `eval_statement` are never used [INFO] [stdout] --> src/interpreter.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl Interpreter { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 92 | // Define a function to evaluate an expression and return its value [INFO] [stdout] 93 | fn eval_expression(&self, expr: &Expression) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn eval_statement(&mut self, statement: &Statement) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/interpreter.rs:263:8 [INFO] [stdout] | [INFO] [stdout] 263 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `len` is never used [INFO] [stdout] --> src/tokenizer.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl Keyword { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 56 | fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UnexpectedEndOfInput` and `RecursionLimitExceeded` are never constructed [INFO] [stdout] --> src/tokenizer.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 191 | pub enum ParseError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 192 | UnexpectedToken(Token), [INFO] [stdout] 193 | UnexpectedEndOfInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 194 | RecursionLimitExceeded, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_symbol` is never used [INFO] [stdout] --> src/tokenizer.rs:311:4 [INFO] [stdout] | [INFO] [stdout] 311 | fn reverse_symbol(symbol: &Symbol) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse_keyword` is never used [INFO] [stdout] --> src/tokenizer.rs:397:4 [INFO] [stdout] | [INFO] [stdout] 397 | fn reverse_keyword(keyword: &Keyword) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IntoParenthesis`, `IntoContainer`, and `EndStatement` are never constructed [INFO] [stdout] --> src/parser.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 30 | enum SyntaxState{ [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 31 | IntoStatement, [INFO] [stdout] 32 | IntoParenthesis, //into function call, assigment or expression [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | IntoContainer, //list, tuple, .. [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | EndStatement, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SyntaxState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `current_ident` is never read [INFO] [stdout] --> src/parser.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 54 | // using drain to remove tokens allow functions to get all tokens and jump [INFO] [stdout] 55 | current_ident: i32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `parse_expression` and `parse_block` are never used [INFO] [stdout] --> src/parser.rs:296:8 [INFO] [stdout] | [INFO] [stdout] 62 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 296 | fn parse_expression(&mut self) -> Result<(), ParseError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | fn parse_block(&mut self) -> Result<(), ParseError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `Tokenizer` should have a snake case name [INFO] [stdout] --> src/tokenizer.rs:435:8 [INFO] [stdout] | [INFO] [stdout] 435 | pub fn Tokenizer(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `tokenizer` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 98 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:106:33 [INFO] [stdout] | [INFO] [stdout] 106 | ... self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 106 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:111:33 [INFO] [stdout] | [INFO] [stdout] 111 | ... self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 111 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:125:25 [INFO] [stdout] | [INFO] [stdout] 125 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 125 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:148:25 [INFO] [stdout] | [INFO] [stdout] 148 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 148 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 169 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:188:25 [INFO] [stdout] | [INFO] [stdout] 188 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/parser.rs:243:25 [INFO] [stdout] | [INFO] [stdout] 243 | self.parse_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 243 | let _ = self.parse_token(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] running `Command { std: "docker" "inspect" "c8bd53d75d7b2cb198aa374a9450c751b43b344ad8970ecf8bf3a9c7cb0f0727", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c8bd53d75d7b2cb198aa374a9450c751b43b344ad8970ecf8bf3a9c7cb0f0727", kill_on_drop: false }` [INFO] [stdout] c8bd53d75d7b2cb198aa374a9450c751b43b344ad8970ecf8bf3a9c7cb0f0727