[INFO] cloning repository https://github.com/luigimagdamit/chai [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/luigimagdamit/chai" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluigimagdamit%2Fchai", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluigimagdamit%2Fchai'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ff2be8a59acb055a2ed99665df903c0d5d9f42c5 [INFO] building luigimagdamit/chai against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluigimagdamit%2Fchai" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/luigimagdamit/chai [INFO] finished tweaking git repo https://github.com/luigimagdamit/chai [INFO] tweaked toml for git repo https://github.com/luigimagdamit/chai written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/luigimagdamit/chai on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/luigimagdamit/chai 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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb [INFO] running `Command { std: "docker" "start" "-a" "50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb", kill_on_drop: false }` [INFO] [stdout] 50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3 [INFO] running `Command { std: "docker" "start" "-a" "6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling unicode-ident v1.0.14 [INFO] [stderr] Compiling libc v0.2.167 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling pin-project-lite v0.2.15 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling sdd v3.0.4 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling once_cell v1.20.2 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling scc v2.2.5 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling serial_test v3.2.0 [INFO] [stderr] Compiling chai v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `PARSE_SUPRESS_PREDEFINES` [INFO] [stdout] --> src/parser/parser.rs:3:82 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::common::flags::{EMIT_VERBOSE, PARSE_EXPRESSION_MODE, PARSE_FN_OUTPUT, PARSE_SUPRESS_PREDEFINES, PARSE_TOKEN_OUTPUT}; [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: `serial_test::serial` [INFO] [stdout] --> src/parser/tests/test_if.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | use serial_test::serial; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::parser::Parser` [INFO] [stdout] --> src/parser/tests/test_if.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::parser::Parser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::jit::compile_test::jit_compile` [INFO] [stdout] --> src/parser/tests/test_if.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::jit::compile_test::jit_compile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IRBackend` and `init_backend_config_for_test` [INFO] [stdout] --> src/parser/tests/test_if.rs:5:42 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::codegen::backend_config::{init_backend_config_for_test, IRBackend}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrimitivesIR` [INFO] [stdout] --> src/parser/primitives/literal.rs:6:48 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::codegen::primitives_ir::{BooleanIR, PrimitivesIR}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrimitivesIR` [INFO] [stdout] --> src/parser/primitives/number.rs:5:47 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::codegen::primitives_ir::{NumberIR, PrimitivesIR}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrimitivesIR` [INFO] [stdout] --> src/parser/primitives/string.rs:5:47 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::codegen::primitives_ir::{StringIR, PrimitivesIR}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExprNode` and `VariableExpression` [INFO] [stdout] --> src/parser/primitives/array.rs:2:90 [INFO] [stdout] | [INFO] [stdout] 2 | ...Expression, ParseError, ArrayExpression, VariableExpression, TempRegisterExpression, ExprNode}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::expression::expression::parse_precedence` [INFO] [stdout] --> src/parser/primitives/array.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parser::expression::expression::parse_precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::expression::precedence::Precedence` [INFO] [stdout] --> src/parser/primitives/array.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parser::expression::precedence::Precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Operation` [INFO] [stdout] --> src/parser/declaration/declaration.rs:2:61 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::expression::expr::{DataType, Expression, Operation}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::expression::expr::ExprNode` [INFO] [stdout] --> src/parser/declaration/declaration.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::parser::expression::expr::ExprNode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlvmConditional as LlvmIf` and `LlvmLoop as LlvmWhile` [INFO] [stdout] --> src/parser/conditional/if_statement.rs:21:35 [INFO] [stdout] | [INFO] [stdout] 21 | pub use crate::codegen::llvm_ir::{LlvmConditional as LlvmIf, LlvmLoop as LlvmWhile}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expression` and `Operation` [INFO] [stdout] --> src/parser/visitor/print_visitor.rs:1:73 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression, ArrayExpression, TempR... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/jit/compile.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `llvm_main_close` [INFO] [stdout] --> src/jit/compile.rs:5:52 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serial_test::serial` [INFO] [stdout] --> src/jit/test_jit.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | use serial_test::serial; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::parser::Parser` [INFO] [stdout] --> src/jit/test_jit.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::parser::Parser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::jit::compile_test::jit_compile` [INFO] [stdout] --> src/jit/test_jit.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::jit::compile_test::jit_compile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IRBackend` and `init_backend_config_for_test` [INFO] [stdout] --> src/jit/test_jit.rs:5:42 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::codegen::backend_config::{init_backend_config_for_test, IRBackend}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/jit/test_jit.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/jit/compile_test.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/jit/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub mod compile_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `llvm_main_close` [INFO] [stdout] --> src/jit/compile_test.rs:5:52 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/jit/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub mod compile_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Binary`, `DataType`, `Operation`, and `StringConstant` [INFO] [stdout] --> src/codegen/codegen_print.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrintStatement` [INFO] [stdout] --> src/codegen/codegen_print.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Binary`, `Operation`, and `StringConstant` [INFO] [stdout] --> src/codegen/llvm_codegen.rs:1:49 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrintStatement` [INFO] [stdout] --> src/codegen/llvm_codegen.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_current_backend` [INFO] [stdout] --> src/main.rs:13:63 [INFO] [stdout] | [INFO] [stdout] 13 | use codegen::backend_config::{IRBackend, init_backend_config, get_current_backend}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BranchIR` [INFO] [stdout] --> src/parser/conditional/if_statement.rs:10:33 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::codegen::ir_traits::{BranchIR, ConditionalIR}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BranchIR` [INFO] [stdout] --> src/parser/conditional/while_statement.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::codegen::ir_traits::{BranchIR, LoopIR}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ptr_reg` [INFO] [stdout] --> src/codegen/llvm_expr_ir.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | let ptr_reg = format!("ptr_{}", i); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_reg` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/codegen/llvm_codegen.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | _ => panic!("Unsupported data type for storing variables") [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/codegen/llvm_codegen.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 20 | DataType::Integer(_) => format!("store i32 {}, i32* %{}", expr.resolve_operand(), dec.name), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 21 | DataType::Boolean(_) => format!("store i1 {}, i1* %{}", expr.resolve_operand(), dec.name), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 22 | DataType::String(_) => format!("store i8* {}, i8** %{}", expr.resolve_operand(), dec.name), [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] 23 | DataType::Array(_, _) => { [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 28 | _ => panic!("Unsupported data type for storing variables") [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr_datatype` [INFO] [stdout] --> src/parser/declaration/variable.rs:155:13 [INFO] [stdout] | [INFO] [stdout] 155 | let expr_datatype = expr.as_datatype(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expr_datatype` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `out_clone` [INFO] [stdout] --> src/jit/compile.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let out_clone = stdout.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_if_index` [INFO] [stdout] --> src/codegen/ir_traits.rs:27:45 [INFO] [stdout] | [INFO] [stdout] 27 | fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_if_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `out_clone` [INFO] [stdout] --> src/jit/compile_test.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let out_clone = stdout.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/jit/compile_test.rs:69:37 [INFO] [stdout] | [INFO] [stdout] 69 | ... let res = stdout.to_string(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_type` is never used [INFO] [stdout] --> src/parser/expression/expr.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub trait ExprNode { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 93 | fn get_value(&self) -> String; // get resolved expr value [INFO] [stdout] 94 | fn get_type(&self) -> &str; // get datatype as a str [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `empty_array` and `array_from_elements` are never used [INFO] [stdout] --> src/parser/expression/expr.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl DataType { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn empty_array(element_type: DataType, size: usize) -> DataType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn array_from_elements(elements: Vec) -> DataType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_array` and `empty_array` are never used [INFO] [stdout] --> src/parser/expression/expr.rs:396:12 [INFO] [stdout] | [INFO] [stdout] 391 | impl Expression { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn new_array(name: String, elements: Vec, element_type: DataType, size: usize, register: usize) -> Expression { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn empty_array(name: String, element_type: DataType, size: usize, register: usize) -> Expression { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `left` is never read [INFO] [stdout] --> src/parser/expression/expr.rs:495:9 [INFO] [stdout] | [INFO] [stdout] 494 | pub struct Expr { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 495 | pub left: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSE_CONSTANT_FOLD` is never used [INFO] [stdout] --> src/common/flags.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const PARSE_CONSTANT_FOLD: bool = false; // toggles constant folding in math operations such as 1 * 2 - 3 etc. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LlvmTempVar` is never constructed [INFO] [stdout] --> src/llvm/instructions.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct LlvmTempVar { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LlvmExpression` is never used [INFO] [stdout] --> src/llvm/instructions.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum LlvmExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chai_title` is never used [INFO] [stdout] --> src/jit/compile_test.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn chai_title() -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `jit_compile` is never used [INFO] [stdout] --> src/jit/compile_test.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn jit_compile(source: &str) -> io::Result{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `var_expr` is never used [INFO] [stdout] --> src/codegen/codegen_print.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait CodegenPrint { [INFO] [stdout] | ------------ associated function in this trait [INFO] [stdout] ... [INFO] [stdout] 10 | fn var_expr(expr: &VariableExpression) -> String; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn load(var_expr: &VariableExpression) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn store() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InstructionType` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:86:6 [INFO] [stdout] | [INFO] [stdout] 86 | enum InstructionType { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `binary_operands` is never used [INFO] [stdout] --> src/parser/tests/test_ast.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn binary_operands(bin: Binary) -> (Expression, Expression) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_operand_value_int` is never used [INFO] [stdout] --> src/parser/tests/test_ast.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn test_operand_value_int(expr: Expression, value: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/core/ast_node.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | Declaration(Declaration), [INFO] [stdout] | ----------- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `AstNode` has a derived impl for the trait `Clone`, but this is 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] 7 - Declaration(Declaration), [INFO] [stdout] 7 + Declaration(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl InstructionType { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] 92 | fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `depth` is never used [INFO] [stdout] --> src/codegen/ir_traits.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait BranchIR { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 5 | /// Get the depth/nesting level of this branch [INFO] [stdout] 6 | fn depth(&self) -> u32; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `else_if_branch` and `else_if_label` are never used [INFO] [stdout] --> src/codegen/ir_traits.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait ConditionalIR: BranchIR { [INFO] [stdout] | ------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 27 | fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn else_if_label(&self, else_if_index: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IRFactory` is never used [INFO] [stdout] --> src/codegen/ir_traits.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub trait IRFactory { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LlvmIRFactory` is never constructed [INFO] [stdout] --> src/codegen/llvm_ir.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct LlvmIRFactory; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CIRFactory` is never constructed [INFO] [stdout] --> src/codegen/c_ir.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct CIRFactory; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `array_type` is never used [INFO] [stdout] --> src/codegen/expr_ir.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait TypeIR { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 18 | fn array_type(&self, element_type: &str, size: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `array_alloca`, `array_element_ptr`, `array_element_load`, `array_element_store`, and `array_init` are never used [INFO] [stdout] --> src/codegen/expr_ir.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub trait ArrayIR { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 61 | /// Generate array allocation instruction [INFO] [stdout] 62 | fn array_alloca(&self, element_type: &str, size: usize, register: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn array_element_ptr(&self, array_ptr: &str, element_type: &str, index: usize, result_reg: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | fn array_element_load(&self, element_ptr: &str, element_type: &str, result_reg: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn array_element_store(&self, value: &str, element_ptr: &str, element_type: &str) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | fn array_init(&self, array_ptr: &str, values: &[String], element_type: &str) -> String; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `register_ref` is never used [INFO] [stdout] --> src/codegen/expr_ir.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub trait ExpressionIR: TypeIR + BinaryOpIR + LiteralIR + PrintIR + ArrayIR { [INFO] [stdout] | ------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 95 | fn register_ref(&self, register: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ExprIRFactory` is never used [INFO] [stdout] --> src/codegen/expr_ir.rs:101:11 [INFO] [stdout] | [INFO] [stdout] 101 | pub trait ExprIRFactory { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LlvmExprIRFactory` is never constructed [INFO] [stdout] --> src/codegen/llvm_expr_ir.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct LlvmExprIRFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CExprIRFactory` is never constructed [INFO] [stdout] --> src/codegen/c_expr_ir.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct CExprIRFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_preamble` is never used [INFO] [stdout] --> src/codegen/parser_ir.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait ParserIR { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 11 | fn generate_preamble(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `string_literal` is never used [INFO] [stdout] --> src/codegen/primitives_ir.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait StringIR { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 11 | fn string_literal(&self, register: usize, length: usize, index: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `PrimitivesIR` is never used [INFO] [stdout] --> src/codegen/primitives_ir.rs:30:11 [INFO] [stdout] | [INFO] [stdout] 30 | pub trait PrimitivesIR: StringIR + NumberIR + BooleanIR {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_backend_config_for_test` is never used [INFO] [stdout] --> src/codegen/backend_config.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn init_backend_config_for_test(backend: IRBackend) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_backend` is never used [INFO] [stdout] --> src/codegen/backend_config.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn set_backend(backend: IRBackend) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read [INFO] [stdout] --> src/parser/conditional/if_statement.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct ConditionalParser { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 26 | condition: Option, [INFO] [stdout] 27 | then_block: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 28 | else_ifs: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 29 | else_block: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read [INFO] [stdout] --> src/parser/declaration/declaration.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct ConditionalStatement { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] 33 | pub condition: Expression, [INFO] [stdout] 34 | pub then_block: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 35 | pub else_ifs: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | pub else_block: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConditionalStatement` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `condition` and `block` are never read [INFO] [stdout] --> src/parser/declaration/declaration.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 40 | pub struct ElseIfClause { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 41 | pub condition: Expression, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 42 | pub block: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ElseIfClause` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_else`, and `with_else_if` are never used [INFO] [stdout] --> src/parser/declaration/declaration.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl ConditionalStatement { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 69 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn with_else(mut self, else_block: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn with_else_if(mut self, condition: Expression, block: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/parser/declaration/declaration.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 92 | impl ElseIfClause { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 93 | pub fn new(condition: Expression, block: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_variable` is never used [INFO] [stdout] --> src/parser/declaration/declaration.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 165 | impl Declaration { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn as_variable(&self) -> &VariableDeclaration { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/parser/parser.rs:62:51 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn init_parser(source: &'a str) -> Parser<'_> { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 62 - pub fn init_parser(source: &'a str) -> Parser<'_> { [INFO] [stdout] 62 + pub fn init_parser(source: &'a str) -> Parser<'a> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | repl(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 186 | let _ = repl(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.24s [INFO] running `Command { std: "docker" "inspect" "6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3", kill_on_drop: false }` [INFO] [stdout] 6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a [INFO] running `Command { std: "docker" "start" "-a" "1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a", kill_on_drop: false }` [INFO] [stderr] Compiling chai v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `PARSE_SUPRESS_PREDEFINES` [INFO] [stdout] --> src/parser/parser.rs:3:82 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::common::flags::{EMIT_VERBOSE, PARSE_EXPRESSION_MODE, PARSE_FN_OUTPUT, PARSE_SUPRESS_PREDEFINES, PARSE_TOKEN_OUTPUT}; [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: `crate::parser::parser::Parser` [INFO] [stdout] --> src/parser/tests/test_if.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::parser::Parser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrimitivesIR` [INFO] [stdout] --> src/parser/primitives/literal.rs:6:48 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::codegen::primitives_ir::{BooleanIR, PrimitivesIR}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrimitivesIR` [INFO] [stdout] --> src/parser/primitives/number.rs:5:47 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::codegen::primitives_ir::{NumberIR, PrimitivesIR}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrimitivesIR` [INFO] [stdout] --> src/parser/primitives/string.rs:5:47 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::codegen::primitives_ir::{StringIR, PrimitivesIR}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExprNode` and `VariableExpression` [INFO] [stdout] --> src/parser/primitives/array.rs:2:90 [INFO] [stdout] | [INFO] [stdout] 2 | ...Expression, ParseError, ArrayExpression, VariableExpression, TempRegisterExpression, ExprNode}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::expression::expression::parse_precedence` [INFO] [stdout] --> src/parser/primitives/array.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parser::expression::expression::parse_precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::expression::precedence::Precedence` [INFO] [stdout] --> src/parser/primitives/array.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parser::expression::precedence::Precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Operation` [INFO] [stdout] --> src/parser/declaration/declaration.rs:2:61 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::expression::expr::{DataType, Expression, Operation}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::expression::expr::ExprNode` [INFO] [stdout] --> src/parser/declaration/declaration.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::parser::expression::expr::ExprNode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlvmConditional as LlvmIf` and `LlvmLoop as LlvmWhile` [INFO] [stdout] --> src/parser/conditional/if_statement.rs:21:35 [INFO] [stdout] | [INFO] [stdout] 21 | pub use crate::codegen::llvm_ir::{LlvmConditional as LlvmIf, LlvmLoop as LlvmWhile}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expression` and `Operation` [INFO] [stdout] --> src/parser/visitor/print_visitor.rs:1:73 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression, ArrayExpression, TempR... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/jit/compile.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `llvm_main_close` [INFO] [stdout] --> src/jit/compile.rs:5:52 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/jit/test_jit.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/jit/compile_test.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `llvm_main_close` [INFO] [stdout] --> src/jit/compile_test.rs:5:52 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Binary`, `DataType`, `Operation`, and `StringConstant` [INFO] [stdout] --> src/codegen/codegen_print.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrintStatement` [INFO] [stdout] --> src/codegen/codegen_print.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Binary`, `Operation`, and `StringConstant` [INFO] [stdout] --> src/codegen/llvm_codegen.rs:1:49 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PrintStatement` [INFO] [stdout] --> src/codegen/llvm_codegen.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_current_backend` [INFO] [stdout] --> src/main.rs:13:63 [INFO] [stdout] | [INFO] [stdout] 13 | use codegen::backend_config::{IRBackend, init_backend_config, get_current_backend}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BranchIR` [INFO] [stdout] --> src/parser/conditional/if_statement.rs:10:33 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::codegen::ir_traits::{BranchIR, ConditionalIR}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BranchIR` [INFO] [stdout] --> src/parser/conditional/while_statement.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::codegen::ir_traits::{BranchIR, LoopIR}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ptr_reg` [INFO] [stdout] --> src/codegen/llvm_expr_ir.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | let ptr_reg = format!("ptr_{}", i); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_reg` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `out_clone` [INFO] [stdout] --> src/jit/compile_test.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let out_clone = stdout.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `out_clone` [INFO] [stdout] --> src/jit/compile.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let out_clone = stdout.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/jit/compile_test.rs:69:37 [INFO] [stdout] | [INFO] [stdout] 69 | ... let res = stdout.to_string(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/codegen/llvm_codegen.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | _ => panic!("Unsupported data type for storing variables") [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/codegen/llvm_codegen.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 20 | DataType::Integer(_) => format!("store i32 {}, i32* %{}", expr.resolve_operand(), dec.name), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 21 | DataType::Boolean(_) => format!("store i1 {}, i1* %{}", expr.resolve_operand(), dec.name), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 22 | DataType::String(_) => format!("store i8* {}, i8** %{}", expr.resolve_operand(), dec.name), [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] 23 | DataType::Array(_, _) => { [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 28 | _ => panic!("Unsupported data type for storing variables") [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_if_index` [INFO] [stdout] --> src/codegen/ir_traits.rs:27:45 [INFO] [stdout] | [INFO] [stdout] 27 | fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_if_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr_datatype` [INFO] [stdout] --> src/parser/declaration/variable.rs:155:13 [INFO] [stdout] | [INFO] [stdout] 155 | let expr_datatype = expr.as_datatype(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expr_datatype` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | repl(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 186 | let _ = repl(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_type` is never used [INFO] [stdout] --> src/parser/expression/expr.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub trait ExprNode { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 93 | fn get_value(&self) -> String; // get resolved expr value [INFO] [stdout] 94 | fn get_type(&self) -> &str; // get datatype as a str [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LlvmTempVar` is never constructed [INFO] [stdout] --> src/llvm/instructions.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct LlvmTempVar { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LlvmExpression` is never used [INFO] [stdout] --> src/llvm/instructions.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum LlvmExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `var_expr` is never used [INFO] [stdout] --> src/codegen/codegen_print.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait CodegenPrint { [INFO] [stdout] | ------------ associated function in this trait [INFO] [stdout] ... [INFO] [stdout] 10 | fn var_expr(expr: &VariableExpression) -> String; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn load(var_expr: &VariableExpression) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn store() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InstructionType` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:86:6 [INFO] [stdout] | [INFO] [stdout] 86 | enum InstructionType { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/codegen/llvm_codegen.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl InstructionType { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] 92 | fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `depth` is never used [INFO] [stdout] --> src/codegen/ir_traits.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait BranchIR { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 5 | /// Get the depth/nesting level of this branch [INFO] [stdout] 6 | fn depth(&self) -> u32; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `else_if_branch` and `else_if_label` are never used [INFO] [stdout] --> src/codegen/ir_traits.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait ConditionalIR: BranchIR { [INFO] [stdout] | ------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 27 | fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn else_if_label(&self, else_if_index: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IRFactory` is never used [INFO] [stdout] --> src/codegen/ir_traits.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub trait IRFactory { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LlvmIRFactory` is never constructed [INFO] [stdout] --> src/codegen/llvm_ir.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct LlvmIRFactory; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CIRFactory` is never constructed [INFO] [stdout] --> src/codegen/c_ir.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct CIRFactory; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `array_type` is never used [INFO] [stdout] --> src/codegen/expr_ir.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait TypeIR { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 18 | fn array_type(&self, element_type: &str, size: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `array_alloca`, `array_element_ptr`, `array_element_load`, `array_element_store`, and `array_init` are never used [INFO] [stdout] --> src/codegen/expr_ir.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub trait ArrayIR { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 61 | /// Generate array allocation instruction [INFO] [stdout] 62 | fn array_alloca(&self, element_type: &str, size: usize, register: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn array_element_ptr(&self, array_ptr: &str, element_type: &str, index: usize, result_reg: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | fn array_element_load(&self, element_ptr: &str, element_type: &str, result_reg: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn array_element_store(&self, value: &str, element_ptr: &str, element_type: &str) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | fn array_init(&self, array_ptr: &str, values: &[String], element_type: &str) -> String; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `register_ref` is never used [INFO] [stdout] --> src/codegen/expr_ir.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub trait ExpressionIR: TypeIR + BinaryOpIR + LiteralIR + PrintIR + ArrayIR { [INFO] [stdout] | ------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 95 | fn register_ref(&self, register: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ExprIRFactory` is never used [INFO] [stdout] --> src/codegen/expr_ir.rs:101:11 [INFO] [stdout] | [INFO] [stdout] 101 | pub trait ExprIRFactory { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LlvmExprIRFactory` is never constructed [INFO] [stdout] --> src/codegen/llvm_expr_ir.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct LlvmExprIRFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CExprIRFactory` is never constructed [INFO] [stdout] --> src/codegen/c_expr_ir.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct CExprIRFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_preamble` is never used [INFO] [stdout] --> src/codegen/parser_ir.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait ParserIR { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 11 | fn generate_preamble(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `string_literal` is never used [INFO] [stdout] --> src/codegen/primitives_ir.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait StringIR { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 11 | fn string_literal(&self, register: usize, length: usize, index: usize) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/parser/parser.rs:62:51 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn init_parser(source: &'a str) -> Parser<'_> { [INFO] [stdout] | -- ^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 62 - pub fn init_parser(source: &'a str) -> Parser<'_> { [INFO] [stdout] 62 + pub fn init_parser(source: &'a str) -> Parser<'a> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `empty_array` and `array_from_elements` are never used [INFO] [stdout] --> src/parser/expression/expr.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl DataType { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn empty_array(element_type: DataType, size: usize) -> DataType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn array_from_elements(elements: Vec) -> DataType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_array` and `empty_array` are never used [INFO] [stdout] --> src/parser/expression/expr.rs:396:12 [INFO] [stdout] | [INFO] [stdout] 391 | impl Expression { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn new_array(name: String, elements: Vec, element_type: DataType, size: usize, register: usize) -> Expression { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn empty_array(name: String, element_type: DataType, size: usize, register: usize) -> Expression { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_backend` is never used [INFO] [stdout] --> src/codegen/backend_config.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn set_backend(backend: IRBackend) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/core/ast_node.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | Declaration(Declaration), [INFO] [stdout] | ----------- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `AstNode` has a derived impl for the trait `Clone`, but this is 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] 7 - Declaration(Declaration), [INFO] [stdout] 7 + Declaration(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read [INFO] [stdout] --> src/parser/declaration/declaration.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct ConditionalStatement { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] 33 | pub condition: Expression, [INFO] [stdout] 34 | pub then_block: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 35 | pub else_ifs: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | pub else_block: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConditionalStatement` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read [INFO] [stdout] --> src/parser/conditional/if_statement.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct ConditionalParser { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 26 | condition: Option, [INFO] [stdout] 27 | then_block: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 28 | else_ifs: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 29 | else_block: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `condition` and `block` are never read [INFO] [stdout] --> src/parser/declaration/declaration.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 40 | pub struct ElseIfClause { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 41 | pub condition: Expression, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 42 | pub block: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ElseIfClause` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `PrimitivesIR` is never used [INFO] [stdout] --> src/codegen/primitives_ir.rs:30:11 [INFO] [stdout] | [INFO] [stdout] 30 | pub trait PrimitivesIR: StringIR + NumberIR + BooleanIR {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_else`, and `with_else_if` are never used [INFO] [stdout] --> src/parser/declaration/declaration.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl ConditionalStatement { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 69 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn with_else(mut self, else_block: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn with_else_if(mut self, condition: Expression, block: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/parser/declaration/declaration.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 92 | impl ElseIfClause { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 93 | pub fn new(condition: Expression, block: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_variable` is never used [INFO] [stdout] --> src/parser/declaration/declaration.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 165 | impl Declaration { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn as_variable(&self) -> &VariableDeclaration { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.48s [INFO] running `Command { std: "docker" "inspect" "1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a", kill_on_drop: false }` [INFO] [stdout] 1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a