[INFO] cloning repository https://github.com/sa318sha/chry_compiler [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sa318sha/chry_compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsa318sha%2Fchry_compiler", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsa318sha%2Fchry_compiler'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a4dd3170567e15324313e03728e449d43bf4afdc [INFO] checking sa318sha/chry_compiler against try#5ff93158e08fa2205cd4b86cddf9eae95952cc96 for pr-129543-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsa318sha%2Fchry_compiler" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/sa318sha/chry_compiler [INFO] finished tweaking git repo https://github.com/sa318sha/chry_compiler [INFO] tweaked toml for git repo https://github.com/sa318sha/chry_compiler written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/sa318sha/chry_compiler on toolchain 5ff93158e08fa2205cd4b86cddf9eae95952cc96 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/sa318sha/chry_compiler 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" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rand_xorshift v0.4.0 [INFO] [stderr] Downloaded proptest v1.7.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ec6db230e93f74203eb99f85db5467d7665d2ea8994116b193096f960fcd215d [INFO] running `Command { std: "docker" "start" "-a" "ec6db230e93f74203eb99f85db5467d7665d2ea8994116b193096f960fcd215d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ec6db230e93f74203eb99f85db5467d7665d2ea8994116b193096f960fcd215d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec6db230e93f74203eb99f85db5467d7665d2ea8994116b193096f960fcd215d", kill_on_drop: false }` [INFO] [stdout] ec6db230e93f74203eb99f85db5467d7665d2ea8994116b193096f960fcd215d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 866aab0bb273c17e124ec1ffd802de664742ca6b1aedf7d82a9cf0b1bc84f868 [INFO] running `Command { std: "docker" "start" "-a" "866aab0bb273c17e124ec1ffd802de664742ca6b1aedf7d82a9cf0b1bc84f868", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Checking wait-timeout v0.2.1 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking quick-error v1.2.3 [INFO] [stderr] Checking unarray v0.1.4 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking rand_xorshift v0.4.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking rusty-fork v0.3.0 [INFO] [stderr] Checking proptest v1.7.0 [INFO] [stderr] Checking chry_compiler v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/hir/hir.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{default, vec}; [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: `token::Token` [INFO] [stdout] --> src/hir/hir.rs:7:77 [INFO] [stdout] | [INFO] [stdout] 7 | ... hir_types::*, literal::Literal, op::{BinaryOp, LogicalOp, UnaryOp}, token::Token, token_type::TokenType, typed_expr::{TypedExpr... [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/hir/hir.rs:148:28 [INFO] [stdout] | [INFO] [stdout] 148 | if (*return_type == Type::Void) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 148 - if (*return_type == Type::Void) { [INFO] [stdout] 148 + if *return_type == Type::Void { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/hir/hir.rs:161:24 [INFO] [stdout] | [INFO] [stdout] 161 | if (*return_type == Type::Void) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 161 - if (*return_type == Type::Void) { [INFO] [stdout] 161 + if *return_type == Type::Void { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/hir/hir.rs:183:27 [INFO] [stdout] | [INFO] [stdout] 183 | return Ok((vec![])); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - return Ok((vec![])); [INFO] [stdout] 183 + return Ok(vec![] ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `return` value [INFO] [stdout] --> src/hir/hir.rs:329:28 [INFO] [stdout] | [INFO] [stdout] 329 | return (Ok((vec, result_temp))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 329 - return (Ok((vec, result_temp))); [INFO] [stdout] 329 + return Ok((vec, result_temp)) ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hir::hir_error::HIRError` [INFO] [stdout] --> src/hir/hir_prop.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::hir::hir_error::HIRError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::type_checker::type_checker::TypeChecker` [INFO] [stdout] --> src/hir/hir_prop.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::type_checker::type_checker::TypeChecker; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::hir_types::HIRInstr` [INFO] [stdout] --> src/lir/lir.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::types::hir_types::HIRInstr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::types::Type` [INFO] [stdout] --> src/lir/lir.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::types::types::Type; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ssa::ssa::SSAProgram` [INFO] [stdout] --> src/lir/lir.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | ssa::ssa::SSAProgram, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `hash::Hash` and `iter::Map` [INFO] [stdout] --> src/lir/live_range_analyis.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | hash::Hash, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 4 | iter::Map, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::min` [INFO] [stdout] --> src/lir/live_range_analyis.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use itertools::min; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `op`, `self`, and `ssa::ssa::SSAContext` [INFO] [stdout] --> src/lir/live_range_analyis.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | lir::{self, lir::LIRProgram}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | ssa::ssa::SSAContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | op, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/lir/live_range_analyis.rs:120:24 [INFO] [stdout] | [INFO] [stdout] 120 | let p = if (idx < block.instrs.len()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 120 - let p = if (idx < block.instrs.len()) { [INFO] [stdout] 120 + let p = if idx < block.instrs.len() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/parser/parser.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/parser/parser.rs:88:23 [INFO] [stdout] | [INFO] [stdout] 88 | match (expr.as_ref()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 88 - match (expr.as_ref()) { [INFO] [stdout] 88 + match expr.as_ref() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:313:12 [INFO] [stdout] | [INFO] [stdout] 313 | if (self.match_tokens(&[TokenType::Equal])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 313 - if (self.match_tokens(&[TokenType::Equal])) { [INFO] [stdout] 313 + if self.match_tokens(&[TokenType::Equal]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/parser/parser.rs:339:15 [INFO] [stdout] | [INFO] [stdout] 339 | while (!self.is_at_end() && !self.check(&TokenType::RightParen)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 339 - while (!self.is_at_end() && !self.check(&TokenType::RightParen)) { [INFO] [stdout] 339 + while !self.is_at_end() && !self.check(&TokenType::RightParen) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:445:19 [INFO] [stdout] | [INFO] [stdout] 445 | } else if (self.match_tokens(&[TokenType::Var])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 445 - } else if (self.match_tokens(&[TokenType::Var])) { [INFO] [stdout] 445 + } else if self.match_tokens(&[TokenType::Var]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/parser/parser.rs:453:25 [INFO] [stdout] | [INFO] [stdout] 453 | condition = (self.expression()?); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 453 - condition = (self.expression()?); [INFO] [stdout] 453 + condition = self.expression()? ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/parser/parser.rs:455:25 [INFO] [stdout] | [INFO] [stdout] 455 | condition = (Expr::Literal(Literal::Bool(true))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 455 - condition = (Expr::Literal(Literal::Bool(true))); [INFO] [stdout] 455 + condition = Expr::Literal(Literal::Bool(true)) ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/parser/parser.rs:641:15 [INFO] [stdout] | [INFO] [stdout] 641 | while (self.match_tokens(&[TokenType::Bang, TokenType::Minus])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 641 - while (self.match_tokens(&[TokenType::Bang, TokenType::Minus])) { [INFO] [stdout] 641 + while self.match_tokens(&[TokenType::Bang, TokenType::Minus]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:652:16 [INFO] [stdout] | [INFO] [stdout] 652 | if (self.match_tokens(&[TokenType::LeftParen])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 652 - if (self.match_tokens(&[TokenType::LeftParen])) { [INFO] [stdout] 652 + if self.match_tokens(&[TokenType::LeftParen]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:654:23 [INFO] [stdout] | [INFO] [stdout] 654 | } else if (self.match_tokens(&[TokenType::Dot])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 654 - } else if (self.match_tokens(&[TokenType::Dot])) { [INFO] [stdout] 654 + } else if self.match_tokens(&[TokenType::Dot]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/parser/parser.rs:749:15 [INFO] [stdout] | [INFO] [stdout] 749 | while (!self.is_at_end()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 749 - while (!self.is_at_end()) { [INFO] [stdout] 749 + while !self.is_at_end() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:750:16 [INFO] [stdout] | [INFO] [stdout] 750 | if (self.previous().tokentype == TokenType::Semicolon) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 750 - if (self.previous().tokentype == TokenType::Semicolon) { [INFO] [stdout] 750 + if self.previous().tokentype == TokenType::Semicolon { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner/scanner.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | if (is_double) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 130 - if (is_double) { [INFO] [stdout] 130 + if is_double { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner/scanner.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | if (self.is_at_end()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 184 - if (self.is_at_end()) { [INFO] [stdout] 184 + if self.is_at_end() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/ssa/block_builder.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa::cfg::CFG` [INFO] [stdout] --> src/ssa/block_builder.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::ssa::cfg::CFG; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::hir_types::pretty_print_hir_instr` [INFO] [stdout] --> src/ssa/block_builder.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::types::hir_types::pretty_print_hir_instr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::literal::Literal` [INFO] [stdout] --> src/ssa/block_builder.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::types::literal::Literal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SSAInstr`, `pretty_print_ssa_instr`, and `pretty_print_terminator` [INFO] [stdout] --> src/ssa/block_builder.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | BasicBlock, SSAInstr, pretty_print_basic_block, pretty_print_basic_block_ssa, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | pretty_print_ssa_instr, pretty_print_terminator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::token::Token` [INFO] [stdout] --> src/ssa/block_builder.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::types::token::Token; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::types::Type` [INFO] [stdout] --> src/ssa/block_builder.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::types::types::Type; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HIRFunction`, `SSAExpr`, and `TempId` [INFO] [stdout] --> src/ssa/block_builder.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | hir_types::{HIRFunction, HIRInstr, Label, TempId}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] 16 | ssa_types::{SSAExpr, SSATempId, Terminator}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa::block_builder::BlockBuilder` [INFO] [stdout] --> src/ssa/cfg.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ssa::block_builder::BlockBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::num` [INFO] [stdout] --> src/ssa/cfg.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use core::num; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/ssa/cfg.rs:6:33 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `return` value [INFO] [stdout] --> src/ssa/cfg.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | return (self.0 < other.0); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 30 - return (self.0 < other.0); [INFO] [stdout] 30 + return self.0 < other.0 ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap` and `hash::Hash` [INFO] [stdout] --> src/ssa/dominator.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CFGNode` and `types::hir_types::Label` [INFO] [stdout] --> src/ssa/dominator.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | ssa::cfg::{CFG, CFGNode, DFSNumber, HashIndex}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | types::hir_types::Label, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash::Hash` [INFO] [stdout] --> src/ssa/liveness.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | hash::Hash, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `pretty_print_basic_block` and `pretty_print_ssa_blocks` [INFO] [stdout] --> src/ssa/ssa.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | block_builder::{pretty_print_ssa_blocks, BlockBuilder}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | ssa_types::{pretty_print_basic_block, pretty_print_basic_block_ssa, BasicBlock}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TempId` [INFO] [stdout] --> src/ssa/ssa_state.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::types::hir_types::{HIRInstr, TempId}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert` [INFO] [stdout] --> src/ssa/ssa_state.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::convert; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/ssa/cfg_test.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashSet; [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/ssa/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | mod cfg_test; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HIRInstr`, `Label`, `TempId`, `block_builder::BlockBuilder`, `cfg::CFG`, `literal::Literal`, `ssa_version::SSAVersion`, `token::Token`, and `types::Type` [INFO] [stdout] --> src/ssa/cfg_test.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | ssa::{block_builder::BlockBuilder, cfg::CFG, ssa_version::SSAVersion}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | types::{ [INFO] [stdout] 6 | hir_types::{HIRInstr, Label, TempId}, [INFO] [stdout] | ^^^^^^^^ ^^^^^ ^^^^^^ [INFO] [stdout] 7 | literal::Literal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | token::Token, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 9 | types::Type, [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/ssa/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | mod cfg_test; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa` [INFO] [stdout] --> src/ssa/dominator_test.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ssa; [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/ssa/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | mod dominator_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa::ssa_version` [INFO] [stdout] --> src/ssa/dominator_test.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ssa::ssa_version; [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/ssa/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | mod dominator_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::hir_types::TempId` [INFO] [stdout] --> src/ssa/dominator_test.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::types::hir_types::TempId; [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/ssa/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | mod dominator_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::token::Token` [INFO] [stdout] --> src/ssa/dominator_test.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::types::token::Token; [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/ssa/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | mod dominator_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::types::Type` [INFO] [stdout] --> src/ssa/dominator_test.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::types::types::Type; [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/ssa/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | mod dominator_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::literal::Literal` [INFO] [stdout] --> src/ssa/phi_insertion_test.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::types::literal::Literal; [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/ssa/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod phi_insertion_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::token::Token` [INFO] [stdout] --> src/ssa/phi_insertion_test.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::types::token::Token; [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/ssa/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod phi_insertion_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::types::Type` [INFO] [stdout] --> src/ssa/phi_insertion_test.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::types::types::Type; [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/ssa/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod phi_insertion_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TempId` [INFO] [stdout] --> src/ssa/phi_insertion_test.rs:12:41 [INFO] [stdout] | [INFO] [stdout] 12 | types::hir_types::{HIRInstr, Label, TempId}, [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/ssa/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod phi_insertion_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token::Token` [INFO] [stdout] --> src/type_checker/type_checker.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::types::{token::Token, token_type::TokenType, types::Type}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/types/typed_stmt.rs:55:30 [INFO] [stdout] | [INFO] [stdout] 55 | TypedStmt::Return(_, (val)) => { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 55 - TypedStmt::Return(_, (val)) => { [INFO] [stdout] 55 + TypedStmt::Return(_, val ) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::default` [INFO] [stdout] --> src/types/hir_types.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::default; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HIRFunction` [INFO] [stdout] --> src/types/ssa_types.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | hir_types::{HIRFunction, HIRInstr, Label, pretty_print_hir_instr}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/types/lir_types.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ssa_types::SSATempId` [INFO] [stdout] --> src/types/lir_types.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | ssa_types::SSATempId, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `write` [INFO] [stdout] --> src/types/x86_64.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | fmt::{self, write}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/assembly/register_allocation.rs:6:38 [INFO] [stdout] | [INFO] [stdout] 6 | assembly::spill_slot_allocator::{self, SpillSlotAllocator}, lir::{lir::LIRProgram, live_range_analyis::LiveRange}, types::{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/assembly/register_allocation.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let (i, (max_range)) = self [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 87 - let (i, (max_range)) = self [INFO] [stdout] 87 + let (i, max_range ) = self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/assembly/register_allocation.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | .max_by_key(|(_, (range))| range.end) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 91 - .max_by_key(|(_, (range))| range.end) [INFO] [stdout] 91 + .max_by_key(|(_, range )| range.end) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/hir/hir.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{default, vec}; [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: `token::Token` [INFO] [stdout] --> src/hir/hir.rs:7:77 [INFO] [stdout] | [INFO] [stdout] 7 | ... hir_types::*, literal::Literal, op::{BinaryOp, LogicalOp, UnaryOp}, token::Token, token_type::TokenType, typed_expr::{TypedExpr... [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/hir/hir.rs:148:28 [INFO] [stdout] | [INFO] [stdout] 148 | if (*return_type == Type::Void) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 148 - if (*return_type == Type::Void) { [INFO] [stdout] 148 + if *return_type == Type::Void { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/hir/hir.rs:161:24 [INFO] [stdout] | [INFO] [stdout] 161 | if (*return_type == Type::Void) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 161 - if (*return_type == Type::Void) { [INFO] [stdout] 161 + if *return_type == Type::Void { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/hir/hir.rs:183:27 [INFO] [stdout] | [INFO] [stdout] 183 | return Ok((vec![])); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - return Ok((vec![])); [INFO] [stdout] 183 + return Ok(vec![] ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `return` value [INFO] [stdout] --> src/hir/hir.rs:329:28 [INFO] [stdout] | [INFO] [stdout] 329 | return (Ok((vec, result_temp))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 329 - return (Ok((vec, result_temp))); [INFO] [stdout] 329 + return Ok((vec, result_temp)) ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hir::hir_error::HIRError` [INFO] [stdout] --> src/hir/hir_prop.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::hir::hir_error::HIRError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::type_checker::type_checker::TypeChecker` [INFO] [stdout] --> src/hir/hir_prop.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::type_checker::type_checker::TypeChecker; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::hir_types::HIRInstr` [INFO] [stdout] --> src/lir/lir.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::types::hir_types::HIRInstr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::types::Type` [INFO] [stdout] --> src/lir/lir.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::types::types::Type; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ssa::ssa::SSAProgram` [INFO] [stdout] --> src/lir/lir.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | ssa::ssa::SSAProgram, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `hash::Hash` and `iter::Map` [INFO] [stdout] --> src/lir/live_range_analyis.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | hash::Hash, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 4 | iter::Map, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::min` [INFO] [stdout] --> src/lir/live_range_analyis.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use itertools::min; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `op`, `self`, and `ssa::ssa::SSAContext` [INFO] [stdout] --> src/lir/live_range_analyis.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | lir::{self, lir::LIRProgram}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | ssa::ssa::SSAContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | op, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/lir/live_range_analyis.rs:120:24 [INFO] [stdout] | [INFO] [stdout] 120 | let p = if (idx < block.instrs.len()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 120 - let p = if (idx < block.instrs.len()) { [INFO] [stdout] 120 + let p = if idx < block.instrs.len() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/parser/parser.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/parser/parser.rs:88:23 [INFO] [stdout] | [INFO] [stdout] 88 | match (expr.as_ref()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 88 - match (expr.as_ref()) { [INFO] [stdout] 88 + match expr.as_ref() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:313:12 [INFO] [stdout] | [INFO] [stdout] 313 | if (self.match_tokens(&[TokenType::Equal])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 313 - if (self.match_tokens(&[TokenType::Equal])) { [INFO] [stdout] 313 + if self.match_tokens(&[TokenType::Equal]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/parser/parser.rs:339:15 [INFO] [stdout] | [INFO] [stdout] 339 | while (!self.is_at_end() && !self.check(&TokenType::RightParen)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 339 - while (!self.is_at_end() && !self.check(&TokenType::RightParen)) { [INFO] [stdout] 339 + while !self.is_at_end() && !self.check(&TokenType::RightParen) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:445:19 [INFO] [stdout] | [INFO] [stdout] 445 | } else if (self.match_tokens(&[TokenType::Var])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 445 - } else if (self.match_tokens(&[TokenType::Var])) { [INFO] [stdout] 445 + } else if self.match_tokens(&[TokenType::Var]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/parser/parser.rs:453:25 [INFO] [stdout] | [INFO] [stdout] 453 | condition = (self.expression()?); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 453 - condition = (self.expression()?); [INFO] [stdout] 453 + condition = self.expression()? ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/parser/parser.rs:455:25 [INFO] [stdout] | [INFO] [stdout] 455 | condition = (Expr::Literal(Literal::Bool(true))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 455 - condition = (Expr::Literal(Literal::Bool(true))); [INFO] [stdout] 455 + condition = Expr::Literal(Literal::Bool(true)) ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/parser/parser.rs:641:15 [INFO] [stdout] | [INFO] [stdout] 641 | while (self.match_tokens(&[TokenType::Bang, TokenType::Minus])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 641 - while (self.match_tokens(&[TokenType::Bang, TokenType::Minus])) { [INFO] [stdout] 641 + while self.match_tokens(&[TokenType::Bang, TokenType::Minus]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:652:16 [INFO] [stdout] | [INFO] [stdout] 652 | if (self.match_tokens(&[TokenType::LeftParen])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 652 - if (self.match_tokens(&[TokenType::LeftParen])) { [INFO] [stdout] 652 + if self.match_tokens(&[TokenType::LeftParen]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:654:23 [INFO] [stdout] | [INFO] [stdout] 654 | } else if (self.match_tokens(&[TokenType::Dot])) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 654 - } else if (self.match_tokens(&[TokenType::Dot])) { [INFO] [stdout] 654 + } else if self.match_tokens(&[TokenType::Dot]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/parser/parser.rs:749:15 [INFO] [stdout] | [INFO] [stdout] 749 | while (!self.is_at_end()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 749 - while (!self.is_at_end()) { [INFO] [stdout] 749 + while !self.is_at_end() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/parser/parser.rs:750:16 [INFO] [stdout] | [INFO] [stdout] 750 | if (self.previous().tokentype == TokenType::Semicolon) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 750 - if (self.previous().tokentype == TokenType::Semicolon) { [INFO] [stdout] 750 + if self.previous().tokentype == TokenType::Semicolon { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::parse_error::ParseError` [INFO] [stdout] --> src/parser/parser_prop_test.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use super::parse_error::ParseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::expr::Expr` [INFO] [stdout] --> src/parser/parser_prop_test.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::types::expr::Expr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::literal::Literal` [INFO] [stdout] --> src/parser/parser_prop_test.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::types::literal::Literal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::types::Type` [INFO] [stdout] --> src/parser/parser_prop_test.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::types::types::Type; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/parser_prop_test.rs:15:31 [INFO] [stdout] | [INFO] [stdout] 15 | (arb_literal()).prop_map(|(lit)| format!("{};", lit)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 15 - (arb_literal()).prop_map(|(lit)| format!("{};", lit)) [INFO] [stdout] 15 + (arb_literal()).prop_map(|lit| format!("{};", lit)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner/scanner.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | if (is_double) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 130 - if (is_double) { [INFO] [stdout] 130 + if is_double { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner/scanner.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | if (self.is_at_end()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 184 - if (self.is_at_end()) { [INFO] [stdout] 184 + if self.is_at_end() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::zip` [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::iter::zip; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let val = ("("); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 52 - let val = ("("); [INFO] [stdout] 52 + let val = "(" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:62:15 [INFO] [stdout] | [INFO] [stdout] 62 | let val = (")"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 62 - let val = (")"); [INFO] [stdout] 62 + let val = ")" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:72:15 [INFO] [stdout] | [INFO] [stdout] 72 | let val = ("{"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 72 - let val = ("{"); [INFO] [stdout] 72 + let val = "{" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:82:15 [INFO] [stdout] | [INFO] [stdout] 82 | let val = ("}"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 82 - let val = ("}"); [INFO] [stdout] 82 + let val = "}" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:92:15 [INFO] [stdout] | [INFO] [stdout] 92 | let val = (","); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 92 - let val = (","); [INFO] [stdout] 92 + let val = "," ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:102:15 [INFO] [stdout] | [INFO] [stdout] 102 | let val = ("."); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 102 - let val = ("."); [INFO] [stdout] 102 + let val = "." ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:109:15 [INFO] [stdout] | [INFO] [stdout] 109 | let val = ("-"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 109 - let val = ("-"); [INFO] [stdout] 109 + let val = "-" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:119:15 [INFO] [stdout] | [INFO] [stdout] 119 | let val = ("+"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 119 - let val = ("+"); [INFO] [stdout] 119 + let val = "+" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:125:15 [INFO] [stdout] | [INFO] [stdout] 125 | let val = ("|"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 125 - let val = ("|"); [INFO] [stdout] 125 + let val = "|" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:135:15 [INFO] [stdout] | [INFO] [stdout] 135 | let val = ("||"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 135 - let val = ("||"); [INFO] [stdout] 135 + let val = "||" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:142:15 [INFO] [stdout] | [INFO] [stdout] 142 | let val = ("var @ fun # 123 $"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 142 - let val = ("var @ fun # 123 $"); [INFO] [stdout] 142 + let val = "var @ fun # 123 $" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:156:15 [INFO] [stdout] | [INFO] [stdout] 156 | let val = (";"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 156 - let val = (";"); [INFO] [stdout] 156 + let val = ";" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:166:15 [INFO] [stdout] | [INFO] [stdout] 166 | let val = ("*"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 166 - let val = ("*"); [INFO] [stdout] 166 + let val = "*" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:173:15 [INFO] [stdout] | [INFO] [stdout] 173 | let val = ("x"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 173 - let val = ("x"); [INFO] [stdout] 173 + let val = "x" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:183:15 [INFO] [stdout] | [INFO] [stdout] 183 | let val = ("var"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - let val = ("var"); [INFO] [stdout] 183 + let val = "var" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:193:15 [INFO] [stdout] | [INFO] [stdout] 193 | let val = ("123"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 193 - let val = ("123"); [INFO] [stdout] 193 + let val = "123" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:203:15 [INFO] [stdout] | [INFO] [stdout] 203 | let val = ("45.67"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 203 - let val = ("45.67"); [INFO] [stdout] 203 + let val = "45.67" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:218:15 [INFO] [stdout] | [INFO] [stdout] 218 | let val = ("\"hello\""); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 218 - let val = ("\"hello\""); [INFO] [stdout] 218 + let val = "\"hello\"" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | let val = ("!"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 233 - let val = ("!"); [INFO] [stdout] 233 + let val = "!" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:240:15 [INFO] [stdout] | [INFO] [stdout] 240 | let val = ("!="); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 240 - let val = ("!="); [INFO] [stdout] 240 + let val = "!=" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:250:15 [INFO] [stdout] | [INFO] [stdout] 250 | let val = ("="); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 250 - let val = ("="); [INFO] [stdout] 250 + let val = "=" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:260:15 [INFO] [stdout] | [INFO] [stdout] 260 | let val = ("=="); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 260 - let val = ("=="); [INFO] [stdout] 260 + let val = "==" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:270:15 [INFO] [stdout] | [INFO] [stdout] 270 | let val = ("<"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 270 - let val = ("<"); [INFO] [stdout] 270 + let val = "<" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:277:15 [INFO] [stdout] | [INFO] [stdout] 277 | let val = ("<="); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 277 - let val = ("<="); [INFO] [stdout] 277 + let val = "<=" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:287:15 [INFO] [stdout] | [INFO] [stdout] 287 | let val = (">"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 287 - let val = (">"); [INFO] [stdout] 287 + let val = ">" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:297:15 [INFO] [stdout] | [INFO] [stdout] 297 | let val = (">="); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 297 - let val = (">="); [INFO] [stdout] 297 + let val = ">=" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:307:15 [INFO] [stdout] | [INFO] [stdout] 307 | let val = ("->"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 307 - let val = ("->"); [INFO] [stdout] 307 + let val = "->" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:317:15 [INFO] [stdout] | [INFO] [stdout] 317 | let val = ("// comment\nvar"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 317 - let val = ("// comment\nvar"); [INFO] [stdout] 317 + let val = "// comment\nvar" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:327:15 [INFO] [stdout] | [INFO] [stdout] 327 | let val = ("/* comment */ fun"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 327 - let val = ("/* comment */ fun"); [INFO] [stdout] 327 + let val = "/* comment */ fun" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:338:15 [INFO] [stdout] | [INFO] [stdout] 338 | let val = ("\"unterminated"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 338 - let val = ("\"unterminated"); [INFO] [stdout] 338 + let val = "\"unterminated" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/scanner/scanner_unit_tests.rs:347:15 [INFO] [stdout] | [INFO] [stdout] 347 | let val = ("@"); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 347 - let val = ("@"); [INFO] [stdout] 347 + let val = "@" ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::scan_error::ScanError` [INFO] [stdout] --> src/scanner/scanner_fuzz_tests.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use super::scan_error::ScanError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/ssa/block_builder.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa::cfg::CFG` [INFO] [stdout] --> src/ssa/block_builder.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::ssa::cfg::CFG; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::hir_types::pretty_print_hir_instr` [INFO] [stdout] --> src/ssa/block_builder.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::types::hir_types::pretty_print_hir_instr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SSAInstr`, `pretty_print_ssa_instr`, and `pretty_print_terminator` [INFO] [stdout] --> src/ssa/block_builder.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | BasicBlock, SSAInstr, pretty_print_basic_block, pretty_print_basic_block_ssa, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | pretty_print_ssa_instr, pretty_print_terminator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HIRFunction` and `SSAExpr` [INFO] [stdout] --> src/ssa/block_builder.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | hir_types::{HIRFunction, HIRInstr, Label, TempId}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 16 | ssa_types::{SSAExpr, SSATempId, Terminator}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa::block_builder::BlockBuilder` [INFO] [stdout] --> src/ssa/cfg.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ssa::block_builder::BlockBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::num` [INFO] [stdout] --> src/ssa/cfg.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use core::num; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/ssa/cfg.rs:6:33 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `return` value [INFO] [stdout] --> src/ssa/cfg.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | return (self.0 < other.0); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 30 - return (self.0 < other.0); [INFO] [stdout] 30 + return self.0 < other.0 ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap` and `hash::Hash` [INFO] [stdout] --> src/ssa/dominator.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CFGNode` and `types::hir_types::Label` [INFO] [stdout] --> src/ssa/dominator.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | ssa::cfg::{CFG, CFGNode, DFSNumber, HashIndex}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | types::hir_types::Label, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash::Hash` [INFO] [stdout] --> src/ssa/liveness.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | hash::Hash, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `pretty_print_basic_block` and `pretty_print_ssa_blocks` [INFO] [stdout] --> src/ssa/ssa.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | block_builder::{pretty_print_ssa_blocks, BlockBuilder}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | ssa_types::{pretty_print_basic_block, pretty_print_basic_block_ssa, BasicBlock}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TempId` [INFO] [stdout] --> src/ssa/ssa_state.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::types::hir_types::{HIRInstr, TempId}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert` [INFO] [stdout] --> src/ssa/ssa_state.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::convert; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa` [INFO] [stdout] --> src/ssa/dominator_test.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ssa; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ssa::ssa_version` [INFO] [stdout] --> src/ssa/dominator_test.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ssa::ssa_version; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::literal::Literal` [INFO] [stdout] --> src/ssa/phi_insertion_test.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::types::literal::Literal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/ssa/var_rename_test.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/ssa/var_rename_test.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token::Token` [INFO] [stdout] --> src/type_checker/type_checker.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::types::{token::Token, token_type::TokenType, types::Type}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/types/typed_stmt.rs:55:30 [INFO] [stdout] | [INFO] [stdout] 55 | TypedStmt::Return(_, (val)) => { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 55 - TypedStmt::Return(_, (val)) => { [INFO] [stdout] 55 + TypedStmt::Return(_, val ) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::default` [INFO] [stdout] --> src/types/hir_types.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::default; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HIRFunction` [INFO] [stdout] --> src/types/ssa_types.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | hir_types::{HIRFunction, HIRInstr, Label, pretty_print_hir_instr}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/types/lir_types.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ssa_types::SSATempId` [INFO] [stdout] --> src/types/lir_types.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | ssa_types::SSATempId, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `write` [INFO] [stdout] --> src/types/x86_64.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | fmt::{self, write}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/assembly/register_allocation.rs:6:38 [INFO] [stdout] | [INFO] [stdout] 6 | assembly::spill_slot_allocator::{self, SpillSlotAllocator}, lir::{lir::LIRProgram, live_range_analyis::LiveRange}, types::{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/assembly/register_allocation.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let (i, (max_range)) = self [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 87 - let (i, (max_range)) = self [INFO] [stdout] 87 + let (i, max_range ) = self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/assembly/register_allocation.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | .max_by_key(|(_, (range))| range.end) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 91 - .max_by_key(|(_, (range))| range.end) [INFO] [stdout] 91 + .max_by_key(|(_, range )| range.end) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/parser/parser.rs:529:9 [INFO] [stdout] | [INFO] [stdout] 522 | return Ok(statements); [INFO] [stdout] | --------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 529 | return Ok(statements); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/parser/parser.rs:529:9 [INFO] [stdout] | [INFO] [stdout] 522 | return Ok(statements); [INFO] [stdout] | --------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 529 | return Ok(statements); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/hir/hir.rs:132:27 [INFO] [stdout] | [INFO] [stdout] 132 | let (val, id) = self.lower_expr(typed_expr)?; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/hir/hir.rs:192:30 [INFO] [stdout] | [INFO] [stdout] 192 | TypedStmt::Break(token) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/hir/hir.rs:197:31 [INFO] [stdout] | [INFO] [stdout] 197 | TypedStmt::Return(token, typed_expr) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/hir/hir.rs:218:30 [INFO] [stdout] | [INFO] [stdout] 218 | TypedStmt::Class(token, typed_stmts) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `typed_stmts` [INFO] [stdout] --> src/hir/hir.rs:218:37 [INFO] [stdout] | [INFO] [stdout] 218 | TypedStmt::Class(token, typed_stmts) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typed_stmts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/hir/hir.rs:241:39 [INFO] [stdout] | [INFO] [stdout] 241 | TypedExprKind::Call(name, token, typed_args) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `typed_expr` [INFO] [stdout] --> src/hir/hir.rs:336:32 [INFO] [stdout] | [INFO] [stdout] 336 | TypedExprKind::Set(typed_expr, token, typed_expr1) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typed_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/hir/hir.rs:336:44 [INFO] [stdout] | [INFO] [stdout] 336 | TypedExprKind::Set(typed_expr, token, typed_expr1) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `typed_expr1` [INFO] [stdout] --> src/hir/hir.rs:336:51 [INFO] [stdout] | [INFO] [stdout] 336 | TypedExprKind::Set(typed_expr, token, typed_expr1) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typed_expr1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/hir/hir.rs:337:32 [INFO] [stdout] | [INFO] [stdout] 337 | TypedExprKind::Get(token, typed_expr) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `typed_expr` [INFO] [stdout] --> src/hir/hir.rs:337:39 [INFO] [stdout] | [INFO] [stdout] 337 | TypedExprKind::Get(token, typed_expr) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typed_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result_temp` [INFO] [stdout] --> src/hir/hir.rs:399:21 [INFO] [stdout] | [INFO] [stdout] 399 | let result_temp = self.fresh_temp(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_temp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hir/hir.rs:542:13 [INFO] [stdout] | [INFO] [stdout] 542 | for i in 0..amount { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hir/hir.rs:558:13 [INFO] [stdout] | [INFO] [stdout] 558 | for i in 0..amount { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> src/lir/lir.rs:54:18 [INFO] [stdout] | [INFO] [stdout] 54 | for (var, phi_node) in phis { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/lir/lir.rs:101:50 [INFO] [stdout] | [INFO] [stdout] 101 | let dests = moves.iter().map(|(dest, src)| dest).collect::>(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/lir/lir.rs:84:46 [INFO] [stdout] | [INFO] [stdout] 84 | fn insert_phi_moves_for_block(&mut self, label: &Label, phis: &HashMap) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> src/lir/lir.rs:89:14 [INFO] [stdout] | [INFO] [stdout] 89 | for (var, phi_node) in phis { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/lir/lir.rs:233:37 [INFO] [stdout] | [INFO] [stdout] 233 | Terminator::Return(opt, ty) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_idx` [INFO] [stdout] --> src/lir/live_range_analyis.rs:114:81 [INFO] [stdout] | [INFO] [stdout] 114 | fn post_backward_scan_pass(&mut self, block: &LIRBasicBlock, label: &Label, curr_idx: usize) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instr` [INFO] [stdout] --> src/lir/live_range_analyis.rs:119:19 [INFO] [stdout] | [INFO] [stdout] 119 | for (idx, instr) in block.instrs.iter().enumerate() { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_instr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_idx` [INFO] [stdout] --> src/lir/live_range_analyis.rs:141:75 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn backward_scan(&mut self, block: &LIRBasicBlock, label: &Label, curr_idx: usize) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_defs` [INFO] [stdout] --> src/lir/live_range_analyis.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | let current_defs: HashMap = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_defs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/lir/live_range_analyis.rs:290:10 [INFO] [stdout] | [INFO] [stdout] 290 | for (idx, lr) in live_ranges.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/parser/parser.rs:93:25 [INFO] [stdout] | [INFO] [stdout] 93 | Stmt::Print(expr) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `param` [INFO] [stdout] --> src/parser/parser.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | Stmt::Function(token, param, func_stmts, return_type) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_param` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/parser/parser.rs:97:54 [INFO] [stdout] | [INFO] [stdout] 97 | Stmt::Function(token, param, func_stmts, return_type) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/parser/parser.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | Stmt::Return(token, expr) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/parser/parser.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | Stmt::Break(token) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/parser/parser.rs:169:32 [INFO] [stdout] | [INFO] [stdout] 169 | Expr::Call(callee, token, args) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/parser/parser.rs:184:28 [INFO] [stdout] | [INFO] [stdout] 184 | Expr::Set(lhs, token, val) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/parser.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | let mut expr = self.or()?; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/scanner/scanner.rs:92:22 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some((i, ch)) = x { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/ssa/block_builder.rs:37:14 [INFO] [stdout] | [INFO] [stdout] 37 | for (label, block) in &self.block_instrs { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/ssa/block_builder.rs:166:54 [INFO] [stdout] | [INFO] [stdout] 166 | if let HIRInstr::StoreVar { var, src, ty } = instr { [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/ssa/block_builder.rs:166:59 [INFO] [stdout] | [INFO] [stdout] 166 | if let HIRInstr::StoreVar { var, src, ty } = instr { [INFO] [stdout] | ^^ help: try ignoring the field: `ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest` [INFO] [stdout] --> src/ssa/block_builder.rs:171:53 [INFO] [stdout] | [INFO] [stdout] 171 | if let HIRInstr::LoadVar { var, dest, ty } = instr { [INFO] [stdout] | ^^^^ help: try ignoring the field: `dest: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/ssa/block_builder.rs:171:59 [INFO] [stdout] | [INFO] [stdout] 171 | if let HIRInstr::LoadVar { var, dest, ty } = instr { [INFO] [stdout] | ^^ help: try ignoring the field: `ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parent_label` [INFO] [stdout] --> src/ssa/dominator.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | let parent_label = cfg.get_label(cfg.get_dfs_parents(v_hash).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/ssa/ssa_state.rs:311:31 [INFO] [stdout] | [INFO] [stdout] 311 | HIRInstr::Print { src, ty } => None, [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/ssa/ssa_state.rs:311:36 [INFO] [stdout] | [INFO] [stdout] 311 | HIRInstr::Print { src, ty } => None, [INFO] [stdout] | ^^ help: try ignoring the field: `ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/type_checker/type_checker.rs:64:17 [INFO] [stdout] | [INFO] [stdout] 64 | let x = self.pretty_print_typed_stmts(&typed_stmt, 0); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/type_checker/type_checker.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let mut typed_var_type: Type; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/type_checker/type_checker.rs:120:32 [INFO] [stdout] | [INFO] [stdout] 120 | if let Err(e) = val { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error` [INFO] [stdout] --> src/type_checker/type_checker.rs:145:32 [INFO] [stdout] | [INFO] [stdout] 145 | if let Err(error) = val { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/type_checker/type_checker.rs:184:28 [INFO] [stdout] | [INFO] [stdout] 184 | if let Err(e) = val { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/type_checker/type_checker.rs:202:32 [INFO] [stdout] | [INFO] [stdout] 202 | if let Err(e) = val { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/type_checker/type_checker.rs:359:25 [INFO] [stdout] | [INFO] [stdout] 359 | Stmt::Class(token, stmts) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmts` [INFO] [stdout] --> src/type_checker/type_checker.rs:359:32 [INFO] [stdout] | [INFO] [stdout] 359 | Stmt::Class(token, stmts) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_stmts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/type_checker/type_checker.rs:550:23 [INFO] [stdout] | [INFO] [stdout] 550 | Expr::Get(token, value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/type_checker/type_checker.rs:603:39 [INFO] [stdout] | [INFO] [stdout] 603 | TypedExprKind::Call(name, token, typed_exprs) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/type_checker/type_checker.rs:728:30 [INFO] [stdout] | [INFO] [stdout] 728 | TypedStmt::Break(token) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/type_checker/type_checker.rs:731:31 [INFO] [stdout] | [INFO] [stdout] 731 | TypedStmt::Return(token, typed_expr) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `typed_expr` [INFO] [stdout] --> src/type_checker/type_checker.rs:731:38 [INFO] [stdout] | [INFO] [stdout] 731 | TypedStmt::Return(token, typed_expr) => { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typed_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/type_checker/type_checker.rs:734:30 [INFO] [stdout] | [INFO] [stdout] 734 | TypedStmt::Class(token, typed_stmts) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `typed_stmts` [INFO] [stdout] --> src/type_checker/type_checker.rs:734:37 [INFO] [stdout] | [INFO] [stdout] 734 | TypedStmt::Class(token, typed_stmts) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typed_stmts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/types/literal.rs:13:24 [INFO] [stdout] | [INFO] [stdout] 13 | Literal::Float(f, string) => string.clone(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `items` [INFO] [stdout] --> src/types/types.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 56 | Type::Function(_, items, _) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/types/types.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | Type::Struct { name, fields } => todo!(), [INFO] [stdout] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fields` [INFO] [stdout] --> src/types/types.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | Type::Struct { name, fields } => todo!(), [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `fields: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/types/types.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | Type::Enum { name, variants } => todo!(), [INFO] [stdout] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variants` [INFO] [stdout] --> src/types/types.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | Type::Enum { name, variants } => todo!(), [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `variants: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/types/expr.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | _ => todo!("Other literal types"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/types/expr.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 62 | Literal::Bool(_) => Type::Bool, [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 63 | Literal::Int(_) => Type::Int, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 64 | Literal::String(_) => Type::String, [INFO] [stdout] | ------------------ matches some of the same values [INFO] [stdout] 65 | Literal::Float(_, _) => Type::Float, // if supported [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 68 | _ => todo!("Other literal types"), [INFO] [stdout] | ^ ...and 1 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/hir_types.rs:111:39 [INFO] [stdout] | [INFO] [stdout] 111 | HIRInstr::StoreVar { var, src, .. } => Some(var.lexeme.clone()), // this is the SSA-def [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/types/ssa_types.rs:223:34 [INFO] [stdout] | [INFO] [stdout] 223 | Terminator::Return(None, ty) => "RETURN".to_string(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cond` [INFO] [stdout] --> src/types/lir_types.rs:151:17 [INFO] [stdout] | [INFO] [stdout] 151 | cond, [INFO] [stdout] | ^^^^ help: try ignoring the field: `cond: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `virtual_reg` [INFO] [stdout] --> src/types/lir_types.rs:155:35 [INFO] [stdout] | [INFO] [stdout] 155 | LIRTerminator::Return(virtual_reg) => vec![], [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_virtual_reg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/types/lir_types.rs:160:33 [INFO] [stdout] | [INFO] [stdout] 160 | LIRTerminator::Jump(label) => vec![], [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `then_label` [INFO] [stdout] --> src/types/lir_types.rs:163:17 [INFO] [stdout] | [INFO] [stdout] 163 | then_label, [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `then_label: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_label` [INFO] [stdout] --> src/types/lir_types.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | else_label, [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `else_label: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | MovZX { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:166:26 [INFO] [stdout] | [INFO] [stdout] 166 | MovZX { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs` [INFO] [stdout] --> src/types/x86_64.rs:167:20 [INFO] [stdout] | [INFO] [stdout] 167 | Test { lhs, rhs } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `lhs: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/types/x86_64.rs:167:25 [INFO] [stdout] | [INFO] [stdout] 167 | Test { lhs, rhs } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `rhs: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:168:19 [INFO] [stdout] | [INFO] [stdout] 168 | Shl { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:168:24 [INFO] [stdout] | [INFO] [stdout] 168 | Shl { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:169:19 [INFO] [stdout] | [INFO] [stdout] 169 | Shr { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:169:24 [INFO] [stdout] | [INFO] [stdout] 169 | Shr { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | Sar { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:170:24 [INFO] [stdout] | [INFO] [stdout] 170 | Sar { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:171:19 [INFO] [stdout] | [INFO] [stdout] 171 | Neg { dst } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:172:19 [INFO] [stdout] | [INFO] [stdout] 172 | Inc { dst } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:173:19 [INFO] [stdout] | [INFO] [stdout] 173 | Dec { dst } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:174:19 [INFO] [stdout] | [INFO] [stdout] 174 | And { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | And { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:175:18 [INFO] [stdout] | [INFO] [stdout] 175 | Or { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:175:23 [INFO] [stdout] | [INFO] [stdout] 175 | Or { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:176:19 [INFO] [stdout] | [INFO] [stdout] 176 | Xor { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/types/x86_64.rs:176:24 [INFO] [stdout] | [INFO] [stdout] 176 | Xor { dst, src } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `src: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/types/x86_64.rs:177:19 [INFO] [stdout] | [INFO] [stdout] 177 | Not { dst } => todo!(), [INFO] [stdout] | ^^^ help: try ignoring the field: `dst: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lir_programs` [INFO] [stdout] --> src/assembly/register_allocation.rs:47:31 [INFO] [stdout] | [INFO] [stdout] 47 | fn linear_scan(&mut self, lir_programs: &Vec, live_ranges: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lir_programs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/assembly/register_allocation.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let (i, (max_range)) = self [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `fresh_temps` and `fresh_labels` are never used [INFO] [stdout] --> src/hir/hir.rs:540:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl HIR { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 540 | fn fresh_temps(&mut self, amount: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | fn fresh_labels(&mut self, amount: usize) -> Vec