[INFO] cloning repository https://github.com/coolio986/nova
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/coolio986/nova" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoolio986%2Fnova", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoolio986%2Fnova'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a5c6e8c733e5933017622b1c1e8ea718c90b1f51
[INFO] checking coolio986/nova against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoolio986%2Fnova" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/coolio986/nova
[INFO] finished tweaking git repo https://github.com/coolio986/nova
[INFO] tweaked toml for git repo https://github.com/coolio986/nova written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/coolio986/nova on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/coolio986/nova 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94
[INFO] running `Command { std: "docker" "start" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling inkwell v0.8.0
[INFO] [stderr]    Compiling nova-compiler v0.2.0 (/opt/rustwide/workdir/nova-compiler)
[INFO] [stderr]     Checking nova-runtime v0.2.0 (/opt/rustwide/workdir/nova-runtime)
[INFO] [stderr] warning: nova-compiler@0.2.0: LLVM 21.1.8 detected
[INFO] [stderr]    Compiling llvm-sys v211.0.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling inkwell_internals v0.13.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> nova-compiler/src/codegen.rs:626:45
[INFO] [stdout]     |
[INFO] [stdout] 626 |                     .insert(p.name.clone(), (*expr.clone()));
[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] 626 -                     .insert(p.name.clone(), (*expr.clone()));
[INFO] [stdout] 626 +                     .insert(p.name.clone(), *expr.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> nova-compiler/src/codegen.rs:626:45
[INFO] [stdout]     |
[INFO] [stdout] 626 |                     .insert(p.name.clone(), (*expr.clone()));
[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] 626 -                     .insert(p.name.clone(), (*expr.clone()));
[INFO] [stdout] 626 +                     .insert(p.name.clone(), *expr.clone());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `base` is never read
[INFO] [stdout]    --> nova-compiler/src/parser.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |             base = Some(first);   // refine: first entry is base if it's a class name
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `base` is never read
[INFO] [stdout]    --> nova-compiler/src/parser.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |             base = Some(first);   // refine: first entry is base if it's a class name
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> nova-compiler/src/main.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let mut fallback: Vec<String> = args.iter().filter(|a| *a != "-fuse-ld=lld").cloned().collect();
[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: variant `Bool` is never constructed
[INFO] [stdout]  --> nova-compiler/src/lexer.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 5 |     // Literals
[INFO] [stdout] 6 |     Int(i64), Float(f64), Bool(bool), Str(String), InterpStr(Vec<InterpPart>),
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TokenKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TypeParam` is never constructed
[INFO] [stdout]   --> nova-compiler/src/ast.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Type {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     TypeParam(String),             // T  inside a generic decl
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `type_args` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:79:54
[INFO] [stdout]    |
[INFO] [stdout] 79 |     Call       { callee: Box<Expr>, args: Vec<Expr>, type_args: Vec<Type> },
[INFO] [stdout]    |     ---- field in this variant                       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `type_args` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:80:67
[INFO] [stdout]    |
[INFO] [stdout] 80 |     MethodCall { obj: Box<Expr>, method: String, args: Vec<Expr>, type_args: Vec<Type> },
[INFO] [stdout]    |     ---------- field in this variant                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |     Lambda { params: Vec<LambdaParam>, body: LambdaBody },
[INFO] [stdout]    |     ------   ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:91:28
[INFO] [stdout]    |
[INFO] [stdout] 91 |     Is  { expr: Box<Expr>, ty: Type },
[INFO] [stdout]    |     --                     ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 92 |     As  { expr: Box<Expr>, ty: Type },
[INFO] [stdout]    |     --                     ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ArrayLit` and `Cast` are never constructed
[INFO] [stdout]   --> nova-compiler/src/ast.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum ExprKind {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 84 |     ArrayLit { elements: Vec<Expr> },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     Cast{ ty: Type, expr: Box<Expr> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `ty` are never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:99:30
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct LambdaParam { pub name: String, pub ty: Option<Type> }
[INFO] [stdout]    |            -----------       ^^^^              ^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LambdaParam` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_const` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:124:67
[INFO] [stdout]     |
[INFO] [stdout] 124 |     VarDecl { name: String, ty: Option<Type>, init: Option<Expr>, is_const: bool },
[INFO] [stdout]     |     ------- field in this variant                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StmtKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `var_ty` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:134:28
[INFO] [stdout]     |
[INFO] [stdout] 134 |     Foreach { var: String, var_ty: Option<Type>, iter: Expr, body: Vec<Stmt> },
[INFO] [stdout]     |     -------                ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StmtKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `param` and `bounds` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:150:33
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct TypeConstraint { pub param: String, pub bounds: Vec<Type> }
[INFO] [stdout]     |            --------------       ^^^^^              ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeConstraint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_ref`, `is_out`, `is_params`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct Param {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub is_ref:    bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 158 |     pub is_out:    bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 159 |     pub is_params: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 160 |     pub span:      Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Param` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Full` is never constructed
[INFO] [stdout]    --> nova-compiler/src/ast.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub enum PropertyBody {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 171 |     Full { get: Option<Vec<Stmt>>, set: Option<Vec<Stmt>> },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PropertyBody` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access`, `is_static`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct PropertyDecl {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 176 |     pub access:    Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 177 |     pub is_static: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub span:      Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PropertyDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access`, `is_static`, `is_readonly`, `is_const`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct FieldDecl {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 187 |     pub access:     Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 188 |     pub is_static:  bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 189 |     pub is_readonly:bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 190 |     pub is_const:   bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub span:       Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FieldDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct MethodDecl {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 202 |     pub access:      Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 203 |     pub is_static:   bool,
[INFO] [stdout] 204 |     pub is_virtual:  bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 205 |     pub is_override: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 206 |     pub is_abstract: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 207 |     pub is_async:    bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub type_params: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 212 |     pub params:      Vec<Param>,
[INFO] [stdout] 213 |     pub constraints: Vec<TypeConstraint>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MethodDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `access` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct ConstructorDecl {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 220 |     pub access:    Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConstructorDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `type_params`, `constraints`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub struct ClassDecl {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub type_params:  Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub constraints:  Vec<TypeConstraint>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub span:         Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `type_params`, `bases`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct InterfaceDecl {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub type_params: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 251 |     pub bases:       Vec<Type>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub span:        Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct NamespaceDecl {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub span:       Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NamespaceDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usings` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub struct Program {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 268 |     pub usings:         Vec<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Program` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_ir_to_file` is never used
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:3018:12
[INFO] [stdout]      |
[INFO] [stdout]  141 | impl<'ctx> Codegen<'ctx> {
[INFO] [stdout]      | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3018 |     pub fn write_ir_to_file(&self, path: &str) -> Result<(), String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1240:31
[INFO] [stdout]      |
[INFO] [stdout] 1240 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[self.ctx.i32_type().const_int(0, false), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[<inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(0, false)), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1240:79
[INFO] [stdout]      |
[INFO] [stdout] 1240 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[self.ctx.i32_type().const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(2, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1262:31
[INFO] [stdout]      |
[INFO] [stdout] 1262 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[self.ctx.i32_type().const_int(0, false), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[<inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(0, false)), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1262:79
[INFO] [stdout]      |
[INFO] [stdout] 1262 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[self.ctx.i32_type().const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(3, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1268:76
[INFO] [stdout]      |
[INFO] [stdout] 1268 |                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2.into()], "list_slot").unwrap()
[INFO] [stdout]      |                                                                            ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1268 -                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2.into()], "list_slot").unwrap()
[INFO] [stdout] 1268 +                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2], "list_slot").unwrap()
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1268 -                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2.into()], "list_slot").unwrap()
[INFO] [stdout] 1268 +                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx2)], "list_slot").unwrap()
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1275:67
[INFO] [stdout]      |
[INFO] [stdout] 1275 | ...                   .build_in_bounds_gep(i64t, arr_ptr, &[idx2.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                             ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1275 -                             .build_in_bounds_gep(i64t, arr_ptr, &[idx2.into()], "arr_elt_ptr")
[INFO] [stdout] 1275 +                             .build_in_bounds_gep(i64t, arr_ptr, &[idx2], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1275 -                             .build_in_bounds_gep(i64t, arr_ptr, &[idx2.into()], "arr_elt_ptr")
[INFO] [stdout] 1275 +                             .build_in_bounds_gep(i64t, arr_ptr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx2)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1594:63
[INFO] [stdout]      |
[INFO] [stdout] 1594 | ...                   .build_in_bounds_gep(i64t, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1594 -                             .build_in_bounds_gep(i64t, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1594 +                             .build_in_bounds_gep(i64t, arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1594 -                             .build_in_bounds_gep(i64t, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1594 +                             .build_in_bounds_gep(i64t, arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1602:63
[INFO] [stdout]      |
[INFO] [stdout] 1602 | ...                   .build_in_bounds_gep(ptrt, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1602 -                             .build_in_bounds_gep(ptrt, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1602 +                             .build_in_bounds_gep(ptrt, arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1602 -                             .build_in_bounds_gep(ptrt, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1602 +                             .build_in_bounds_gep(ptrt, arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1749:23
[INFO] [stdout]      |
[INFO] [stdout] 1749 |                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1749:56
[INFO] [stdout]      |
[INFO] [stdout] 1749 |                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1892:27
[INFO] [stdout]      |
[INFO] [stdout] 1892 |                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1892:60
[INFO] [stdout]      |
[INFO] [stdout] 1892 |                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1922:78
[INFO] [stdout]      |
[INFO] [stdout] 1922 | ...                   .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1922 -                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1922 +                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1922 -                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1922 +                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1931:101
[INFO] [stdout]      |
[INFO] [stdout] 1931 | ...                   .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                                                               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1931 -                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1931 +                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1931 -                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1931 +                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2000:19
[INFO] [stdout]      |
[INFO] [stdout] 2000 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2000:52
[INFO] [stdout]      |
[INFO] [stdout] 2000 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2118:19
[INFO] [stdout]      |
[INFO] [stdout] 2118 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2118:52
[INFO] [stdout]      |
[INFO] [stdout] 2118 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2418:23
[INFO] [stdout]      |
[INFO] [stdout] 2418 |                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[i32t.const_int(0, false), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2418:56
[INFO] [stdout]      |
[INFO] [stdout] 2418 |                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2492:19
[INFO] [stdout]      |
[INFO] [stdout] 2492 |                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[i32t.const_int(0, false), i32t.const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2492:52
[INFO] [stdout]      |
[INFO] [stdout] 2492 |                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(2, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2502:19
[INFO] [stdout]      |
[INFO] [stdout] 2502 |                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[i32t.const_int(0, false), i32t.const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2502:52
[INFO] [stdout]      |
[INFO] [stdout] 2502 |                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(3, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2514:23
[INFO] [stdout]      |
[INFO] [stdout] 2514 |                     &[i64t.const_int(idx as u64, false).into()],
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2514 -                     &[i64t.const_int(idx as u64, false).into()],
[INFO] [stdout] 2514 +                     &[i64t.const_int(idx as u64, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2514 -                     &[i64t.const_int(idx as u64, false).into()],
[INFO] [stdout] 2514 +                     &[<inkwell::values::IntValue<'_> as Into<_>>::into(i64t.const_int(idx as u64, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2831:19
[INFO] [stdout]      |
[INFO] [stdout] 2831 |                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[i32t.const_int(0, false), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2831:52
[INFO] [stdout]      |
[INFO] [stdout] 2831 |                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> nova-compiler/src/main.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let mut fallback: Vec<String> = args.iter().filter(|a| *a != "-fuse-ld=lld").cloned().collect();
[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: variant `Bool` is never constructed
[INFO] [stdout]  --> nova-compiler/src/lexer.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 5 |     // Literals
[INFO] [stdout] 6 |     Int(i64), Float(f64), Bool(bool), Str(String), InterpStr(Vec<InterpPart>),
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TokenKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TypeParam` is never constructed
[INFO] [stdout]   --> nova-compiler/src/ast.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Type {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     TypeParam(String),             // T  inside a generic decl
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `type_args` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:79:54
[INFO] [stdout]    |
[INFO] [stdout] 79 |     Call       { callee: Box<Expr>, args: Vec<Expr>, type_args: Vec<Type> },
[INFO] [stdout]    |     ---- field in this variant                       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `type_args` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:80:67
[INFO] [stdout]    |
[INFO] [stdout] 80 |     MethodCall { obj: Box<Expr>, method: String, args: Vec<Expr>, type_args: Vec<Type> },
[INFO] [stdout]    |     ---------- field in this variant                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |     Lambda { params: Vec<LambdaParam>, body: LambdaBody },
[INFO] [stdout]    |     ------   ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:91:28
[INFO] [stdout]    |
[INFO] [stdout] 91 |     Is  { expr: Box<Expr>, ty: Type },
[INFO] [stdout]    |     --                     ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 92 |     As  { expr: Box<Expr>, ty: Type },
[INFO] [stdout]    |     --                     ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ArrayLit` and `Cast` are never constructed
[INFO] [stdout]   --> nova-compiler/src/ast.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum ExprKind {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 84 |     ArrayLit { elements: Vec<Expr> },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     Cast{ ty: Type, expr: Box<Expr> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `ty` are never read
[INFO] [stdout]   --> nova-compiler/src/ast.rs:99:30
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct LambdaParam { pub name: String, pub ty: Option<Type> }
[INFO] [stdout]    |            -----------       ^^^^              ^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LambdaParam` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_const` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:124:67
[INFO] [stdout]     |
[INFO] [stdout] 124 |     VarDecl { name: String, ty: Option<Type>, init: Option<Expr>, is_const: bool },
[INFO] [stdout]     |     ------- field in this variant                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StmtKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `var_ty` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:134:28
[INFO] [stdout]     |
[INFO] [stdout] 134 |     Foreach { var: String, var_ty: Option<Type>, iter: Expr, body: Vec<Stmt> },
[INFO] [stdout]     |     -------                ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StmtKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `param` and `bounds` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:150:33
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct TypeConstraint { pub param: String, pub bounds: Vec<Type> }
[INFO] [stdout]     |            --------------       ^^^^^              ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeConstraint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_ref`, `is_out`, `is_params`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct Param {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub is_ref:    bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 158 |     pub is_out:    bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 159 |     pub is_params: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 160 |     pub span:      Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Param` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Full` is never constructed
[INFO] [stdout]    --> nova-compiler/src/ast.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub enum PropertyBody {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 171 |     Full { get: Option<Vec<Stmt>>, set: Option<Vec<Stmt>> },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PropertyBody` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access`, `is_static`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct PropertyDecl {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 176 |     pub access:    Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 177 |     pub is_static: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub span:      Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PropertyDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `access`, `is_static`, `is_readonly`, `is_const`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct FieldDecl {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 187 |     pub access:     Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 188 |     pub is_static:  bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 189 |     pub is_readonly:bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 190 |     pub is_const:   bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub span:       Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FieldDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct MethodDecl {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 202 |     pub access:      Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 203 |     pub is_static:   bool,
[INFO] [stdout] 204 |     pub is_virtual:  bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 205 |     pub is_override: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 206 |     pub is_abstract: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 207 |     pub is_async:    bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub type_params: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 212 |     pub params:      Vec<Param>,
[INFO] [stdout] 213 |     pub constraints: Vec<TypeConstraint>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MethodDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `access` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct ConstructorDecl {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 220 |     pub access:    Access,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConstructorDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `type_params`, `constraints`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub struct ClassDecl {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub type_params:  Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub constraints:  Vec<TypeConstraint>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub span:         Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `type_params`, `bases`, and `span` are never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct InterfaceDecl {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub type_params: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 251 |     pub bases:       Vec<Type>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub span:        Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct NamespaceDecl {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub span:       Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NamespaceDecl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usings` is never read
[INFO] [stdout]    --> nova-compiler/src/ast.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub struct Program {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 268 |     pub usings:         Vec<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Program` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_ir_to_file` is never used
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:3018:12
[INFO] [stdout]      |
[INFO] [stdout]  141 | impl<'ctx> Codegen<'ctx> {
[INFO] [stdout]      | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3018 |     pub fn write_ir_to_file(&self, path: &str) -> Result<(), String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: nova-compiler@0.2.0: LLVM 21.1.8 detected
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1240:31
[INFO] [stdout]      |
[INFO] [stdout] 1240 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[self.ctx.i32_type().const_int(0, false), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[<inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(0, false)), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nova-compiler` (bin "novac") due to 27 previous errors; 26 warnings emitted
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1240:79
[INFO] [stdout]      |
[INFO] [stdout] 1240 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1240 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(2, false).into()],
[INFO] [stdout] 1240 +                             &[self.ctx.i32_type().const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(2, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1262:31
[INFO] [stdout]      |
[INFO] [stdout] 1262 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[self.ctx.i32_type().const_int(0, false), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[<inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(0, false)), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1262:79
[INFO] [stdout]      |
[INFO] [stdout] 1262 | ...                   &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1262 -                             &[self.ctx.i32_type().const_int(0, false).into(), self.ctx.i32_type().const_int(3, false).into()],
[INFO] [stdout] 1262 +                             &[self.ctx.i32_type().const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(self.ctx.i32_type().const_int(3, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1268:76
[INFO] [stdout]      |
[INFO] [stdout] 1268 |                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2.into()], "list_slot").unwrap()
[INFO] [stdout]      |                                                                            ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1268 -                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2.into()], "list_slot").unwrap()
[INFO] [stdout] 1268 +                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2], "list_slot").unwrap()
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1268 -                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[idx2.into()], "list_slot").unwrap()
[INFO] [stdout] 1268 +                         self.builder.build_in_bounds_gep(ptrt, data_ptr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx2)], "list_slot").unwrap()
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1275:67
[INFO] [stdout]      |
[INFO] [stdout] 1275 | ...                   .build_in_bounds_gep(i64t, arr_ptr, &[idx2.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                             ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1275 -                             .build_in_bounds_gep(i64t, arr_ptr, &[idx2.into()], "arr_elt_ptr")
[INFO] [stdout] 1275 +                             .build_in_bounds_gep(i64t, arr_ptr, &[idx2], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1275 -                             .build_in_bounds_gep(i64t, arr_ptr, &[idx2.into()], "arr_elt_ptr")
[INFO] [stdout] 1275 +                             .build_in_bounds_gep(i64t, arr_ptr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx2)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1594:63
[INFO] [stdout]      |
[INFO] [stdout] 1594 | ...                   .build_in_bounds_gep(i64t, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1594 -                             .build_in_bounds_gep(i64t, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1594 +                             .build_in_bounds_gep(i64t, arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1594 -                             .build_in_bounds_gep(i64t, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1594 +                             .build_in_bounds_gep(i64t, arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1602:63
[INFO] [stdout]      |
[INFO] [stdout] 1602 | ...                   .build_in_bounds_gep(ptrt, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1602 -                             .build_in_bounds_gep(ptrt, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1602 +                             .build_in_bounds_gep(ptrt, arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1602 -                             .build_in_bounds_gep(ptrt, arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1602 +                             .build_in_bounds_gep(ptrt, arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1749:23
[INFO] [stdout]      |
[INFO] [stdout] 1749 |                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1749:56
[INFO] [stdout]      |
[INFO] [stdout] 1749 |                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1749 -                     &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1749 +                     &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1892:27
[INFO] [stdout]      |
[INFO] [stdout] 1892 |                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1892:60
[INFO] [stdout]      |
[INFO] [stdout] 1892 |                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1892 -                         &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 1892 +                         &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1922:78
[INFO] [stdout]      |
[INFO] [stdout] 1922 | ...                   .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1922 -                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1922 +                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1922 -                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1922 +                             .build_in_bounds_gep(self.ctx.i64_type(), arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:1931:101
[INFO] [stdout]      |
[INFO] [stdout] 1931 | ...                   .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout]      |                                                                                               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1931 -                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1931 +                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1931 -                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[idx_i64.into()], "arr_elt_ptr")
[INFO] [stdout] 1931 +                             .build_in_bounds_gep(self.ctx.ptr_type(AddressSpace::default()), arr, &[<inkwell::values::IntValue<'_> as Into<_>>::into(idx_i64)], "arr_elt_ptr")
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2000:19
[INFO] [stdout]      |
[INFO] [stdout] 2000 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2000:52
[INFO] [stdout]      |
[INFO] [stdout] 2000 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2000 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()], "fptr").unwrap() };
[INFO] [stdout] 2000 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))], "fptr").unwrap() };
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2118:19
[INFO] [stdout]      |
[INFO] [stdout] 2118 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[i32t.const_int(0, false), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2118:52
[INFO] [stdout]      |
[INFO] [stdout] 2118 |                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2118 -                 &[i32t.const_int(0, false).into(), i32t.const_int(fi as u64, false).into()],
[INFO] [stdout] 2118 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(fi as u64, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2418:23
[INFO] [stdout]      |
[INFO] [stdout] 2418 |                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[i32t.const_int(0, false), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2418:56
[INFO] [stdout]      |
[INFO] [stdout] 2418 |                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2418 -                     &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2418 +                     &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2492:19
[INFO] [stdout]      |
[INFO] [stdout] 2492 |                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[i32t.const_int(0, false), i32t.const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(2, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2492:52
[INFO] [stdout]      |
[INFO] [stdout] 2492 |                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2492 -                 &[i32t.const_int(0, false).into(), i32t.const_int(2, false).into()],
[INFO] [stdout] 2492 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(2, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2502:19
[INFO] [stdout]      |
[INFO] [stdout] 2502 |                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[i32t.const_int(0, false), i32t.const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(3, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2502:52
[INFO] [stdout]      |
[INFO] [stdout] 2502 |                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2502 -                 &[i32t.const_int(0, false).into(), i32t.const_int(3, false).into()],
[INFO] [stdout] 2502 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(3, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2514:23
[INFO] [stdout]      |
[INFO] [stdout] 2514 |                     &[i64t.const_int(idx as u64, false).into()],
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2514 -                     &[i64t.const_int(idx as u64, false).into()],
[INFO] [stdout] 2514 +                     &[i64t.const_int(idx as u64, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2514 -                     &[i64t.const_int(idx as u64, false).into()],
[INFO] [stdout] 2514 +                     &[<inkwell::values::IntValue<'_> as Into<_>>::into(i64t.const_int(idx as u64, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2831:19
[INFO] [stdout]      |
[INFO] [stdout] 2831 |                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[i32t.const_int(0, false), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[<inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false)), i32t.const_int(0, false).into()],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `inkwell::values::IntValue<'_>`
[INFO] [stdout]     --> nova-compiler/src/codegen.rs:2831:52
[INFO] [stdout]      |
[INFO] [stdout] 2831 |                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout]      |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false)],
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2831 -                 &[i32t.const_int(0, false).into(), i32t.const_int(0, false).into()],
[INFO] [stdout] 2831 +                 &[i32t.const_int(0, false).into(), <inkwell::values::IntValue<'_> as Into<_>>::into(i32t.const_int(0, false))],
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: nova-compiler@0.2.0: LLVM 21.1.8 detected
[INFO] [stderr] error: could not compile `nova-compiler` (bin "novac" test) due to 27 previous errors; 26 warnings emitted
[INFO] [stderr] warning: unused dependency `clap`
[INFO] [stderr]   --> nova-compiler/Cargo.toml:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | clap    = { version = "4",   features = ["derive"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `clap`
[INFO] [stderr] warning: `nova-compiler` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94", kill_on_drop: false }`
[INFO] [stdout] 0f1ac8d1a54b56e4d3e18892bb70eb77c04813ab2ab05f139cece91c9915bc94
