[INFO] cloning repository https://github.com/green-ogre/hydra [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/green-ogre/hydra" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgreen-ogre%2Fhydra", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgreen-ogre%2Fhydra'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8692a60f54ccf3a4f79b4cbfdd3e3f261c68c2d9 [INFO] building green-ogre/hydra against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgreen-ogre%2Fhydra" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/green-ogre/hydra on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/green-ogre/hydra [INFO] finished tweaking git repo https://github.com/green-ogre/hydra [INFO] tweaked toml for git repo https://github.com/green-ogre/hydra written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/green-ogre/hydra already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] be0230665c7a32371d0dcdce47c0e9db89f1b515f547dc63c62d7be50bb0fa5b [INFO] running `Command { std: "docker" "start" "-a" "be0230665c7a32371d0dcdce47c0e9db89f1b515f547dc63c62d7be50bb0fa5b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "be0230665c7a32371d0dcdce47c0e9db89f1b515f547dc63c62d7be50bb0fa5b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be0230665c7a32371d0dcdce47c0e9db89f1b515f547dc63c62d7be50bb0fa5b", kill_on_drop: false }` [INFO] [stdout] be0230665c7a32371d0dcdce47c0e9db89f1b515f547dc63c62d7be50bb0fa5b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] adadd89b9534b18e7ea48d26bf680e68788b786b3dd68507a9143b1c5a75f9c0 [INFO] running `Command { std: "docker" "start" "-a" "adadd89b9534b18e7ea48d26bf680e68788b786b3dd68507a9143b1c5a75f9c0", kill_on_drop: false }` [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling colored v2.1.0 [INFO] [stderr] Compiling hydra v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `os::unix::process::CommandExt`, `path::PathBuf`, `process::Command`, and `str::FromStr` [INFO] [stdout] --> src/main.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{os::unix::process::CommandExt, path::PathBuf, process::Command, str::FromStr}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ast.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | _ => panic!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/ast.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 202 | Self::Ret(ret) => { [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 209 | Self::Lit(lit) => lit.ty.clone(), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 210 | Self::Call(call) => match &call.output { [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 215 | Self::Empty => None, [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 224 | _ => panic!(), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:358:29 [INFO] [stdout] | [INFO] [stdout] 358 | pub fn walk_ref(visitor: &mut V, r: &mut Ref) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/ast.rs:358:46 [INFO] [stdout] | [INFO] [stdout] 358 | pub fn walk_ref(visitor: &mut V, r: &mut Ref) {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:360:30 [INFO] [stdout] | [INFO] [stdout] 360 | pub fn walk_call(visitor: &mut V, call: &mut Call) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `call` [INFO] [stdout] --> src/ast.rs:360:47 [INFO] [stdout] | [INFO] [stdout] 360 | pub fn walk_call(visitor: &mut V, call: &mut Call) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_call` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:362:29 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn walk_pat(visitor: &mut V, pat: &mut Pat) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pat` [INFO] [stdout] --> src/ast.rs:362:46 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn walk_pat(visitor: &mut V, pat: &mut Pat) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:385:34 [INFO] [stdout] | [INFO] [stdout] 385 | pub fn walk_fn_param(visitor: &mut V, param: &mut Param) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `param` [INFO] [stdout] --> src/ast.rs:385:51 [INFO] [stdout] | [INFO] [stdout] 385 | pub fn walk_fn_param(visitor: &mut V, param: &mut Param) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_param` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:413:29 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn walk_lit(visitor: &mut V, lit: &mut Lit) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ast.rs:413:46 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn walk_lit(visitor: &mut V, lit: &mut Lit) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:419:29 [INFO] [stdout] | [INFO] [stdout] 419 | pub fn walk_let(visitor: &mut V, lt: &mut Let) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lt` [INFO] [stdout] --> src/ast.rs:419:46 [INFO] [stdout] | [INFO] [stdout] 419 | pub fn walk_let(visitor: &mut V, lt: &mut Let) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_lt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scope` [INFO] [stdout] --> src/ast.rs:601:18 [INFO] [stdout] | [INFO] [stdout] 601 | pub fn parse_ast(scope: &mut Scope) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_scope` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> src/compiler.rs:94:23 [INFO] [stdout] | [INFO] [stdout] 94 | Self::Ptr(var) => todo!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `secondary` [INFO] [stdout] --> src/compiler.rs:564:13 [INFO] [stdout] | [INFO] [stdout] 564 | let secondary = match reg { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secondary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `call` [INFO] [stdout] --> src/compiler.rs:591:24 [INFO] [stdout] | [INFO] [stdout] 591 | Expr::Call(call) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_call` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs` [INFO] [stdout] --> src/compiler.rs:592:23 [INFO] [stdout] | [INFO] [stdout] 592 | Expr::Add(lhs, rhs) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/compiler.rs:592:28 [INFO] [stdout] | [INFO] [stdout] 592 | Expr::Add(lhs, rhs) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/compiler.rs:761:36 [INFO] [stdout] | [INFO] [stdout] 761 | Some(Expr::Ref(r)) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs` [INFO] [stdout] --> src/compiler.rs:776:36 [INFO] [stdout] | [INFO] [stdout] 776 | Some(Expr::Add(lhs, rhs)) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/compiler.rs:776:41 [INFO] [stdout] | [INFO] [stdout] 776 | Some(Expr::Add(lhs, rhs)) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `call` is never used [INFO] [stdout] --> src/ast.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl FnDecl { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 15 | pub fn call(&self) -> Call { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ident`, `input`, and `output` are never read [INFO] [stdout] --> src/ast.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Call { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 26 | pub ident: Ident, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 27 | pub input: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 28 | pub output: FnType, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Call` 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 `size_aligned` is never used [INFO] [stdout] --> src/ast.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Call { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn size_aligned(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Ident` is never constructed [INFO] [stdout] --> src/ast.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub enum Pat { [INFO] [stdout] | --- variant in this enum [INFO] [stdout] 50 | Ident(Ident), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pat` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Add` is never constructed [INFO] [stdout] --> src/ast.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct Add { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Add` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Ty` is never constructed [INFO] [stdout] --> src/ast.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum FnType { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 66 | Ty(Type), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnType` 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 `size` is never used [INFO] [stdout] --> src/ast.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl ArrayTy { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 76 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Array`, `Slice`, and `Ptr` are never constructed [INFO] [stdout] --> src/ast.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub enum Type { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 85 | Array(ArrayTy), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | // [ Ptr(Array(_)) ] [ len ] [INFO] [stdout] 87 | Slice(Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | Ptr(Box), [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: methods `size`, `is_ptr`, and `can_coerce` are never used [INFO] [stdout] --> src/ast.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl Type { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 102 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn is_ptr(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn can_coerce(&self, other: &Type) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `int` and `with_type` are never used [INFO] [stdout] --> src/ast.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 142 | impl Lit { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 143 | pub fn int(val: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn with_type(mut self, ty: Type) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Int` is never constructed [INFO] [stdout] --> src/ast.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 159 | pub enum LitKind { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] 160 | Int, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LitKind` 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 `Curly` and `Paren` are never constructed [INFO] [stdout] --> src/ast.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 167 | pub enum Delim { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 168 | Curly, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 169 | Paren, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Delim` 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: associated items `new` and `value` are never used [INFO] [stdout] --> src/ast.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 172 | impl Ident { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 173 | pub fn new(ident: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn value(&self) -> &String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lhs`, `ty`, and `rhs` are never read [INFO] [stdout] --> src/ast.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 183 | pub struct Let { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 184 | pub lhs: Ident, [INFO] [stdout] | ^^^ [INFO] [stdout] 185 | pub ty: Type, [INFO] [stdout] | ^^ [INFO] [stdout] 186 | pub rhs: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Let` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Ret`, `Lit`, `Call`, `Ref`, `Add`, and `Empty` are never constructed [INFO] [stdout] --> src/ast.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 190 | pub enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 191 | Ret(Option>), [INFO] [stdout] | ^^^ [INFO] [stdout] 192 | Lit(Lit), [INFO] [stdout] | ^^^ [INFO] [stdout] 193 | Call(Call), [INFO] [stdout] | ^^^^ [INFO] [stdout] 194 | Ref(Ref), [INFO] [stdout] | ^^^ [INFO] [stdout] 195 | Add(Box, Box), [INFO] [stdout] | ^^^ [INFO] [stdout] 196 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate_type` is never used [INFO] [stdout] --> src/ast.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 199 | impl Expr { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 200 | pub fn evaluate_type(&self, ctx: &mut ScopeCtx) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ident` and `ty` are never read [INFO] [stdout] --> src/ast.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 230 | pub struct Var { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 231 | pub ident: Ident, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 232 | pub ty: Type, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Var` 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 `vars` and `fns` are never read [INFO] [stdout] --> src/ast.rs:237:9 [INFO] [stdout] | [INFO] [stdout] 236 | pub struct ScopeCtx { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 237 | pub vars: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 238 | pub fns: Vec, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScopeCtx` 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: methods `find_var` and `find_fn` are never used [INFO] [stdout] --> src/ast.rs:242:12 [INFO] [stdout] | [INFO] [stdout] 241 | impl ScopeCtx { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 242 | pub fn find_var(&self, ident: &Ident) -> Option<&Var> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn find_fn(&self, ident: &Ident) -> Option<&FnDecl> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ident` and `ty` are never read [INFO] [stdout] --> src/ast.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 253 | pub struct Ref { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 254 | pub ident: Ident, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 255 | pub ty: Type, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pgrm` is never constructed [INFO] [stdout] --> src/ast.rs:258:12 [INFO] [stdout] | [INFO] [stdout] 258 | pub struct Pgrm { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Fn` is never constructed [INFO] [stdout] --> src/ast.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 263 | pub enum Item { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 264 | Fn(Func), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Item` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Expr`, `Let`, `Item`, `InlineAsm`, and `Empty` are never constructed [INFO] [stdout] --> src/ast.rs:269:5 [INFO] [stdout] | [INFO] [stdout] 268 | pub enum Stmt { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 269 | Expr(Expr), [INFO] [stdout] | ^^^^ [INFO] [stdout] 270 | Let(Let), [INFO] [stdout] | ^^^ [INFO] [stdout] 271 | Item(Item), [INFO] [stdout] | ^^^^ [INFO] [stdout] 272 | InlineAsm(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 273 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ast` is never used [INFO] [stdout] --> src/ast.rs:601:8 [INFO] [stdout] | [INFO] [stdout] 601 | pub fn parse_ast(scope: &mut Scope) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/compiler.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn compile(mut scope: Scope) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SVar` is never constructed [INFO] [stdout] --> src/compiler.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | struct SVar { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Locality` is never used [INFO] [stdout] --> src/compiler.rs:55:6 [INFO] [stdout] | [INFO] [stdout] 55 | enum Locality { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Var` is never used [INFO] [stdout] --> src/compiler.rs:61:6 [INFO] [stdout] | [INFO] [stdout] 61 | enum Var { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `offset`, and `val_size` are never used [INFO] [stdout] --> src/compiler.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 66 | impl Var { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 67 | pub fn new(var: SVar) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn offset(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn val_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SFrame` is never constructed [INFO] [stdout] --> src/compiler.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | struct SFrame { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SFrame` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `push`, `get`, `size`, and `size_aligned` are never used [INFO] [stdout] --> src/compiler.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 107 | impl SFrame { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 108 | pub fn push(&mut self, var: Ident, ty: Type, locality: Locality) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get(&self, var: &Ident) -> Option<&SVar> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn size_aligned(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SFrameVisitor` is never constructed [INFO] [stdout] --> src/compiler.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct SFrameVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SFrameVisitor` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SVarRef` is never constructed [INFO] [stdout] --> src/compiler.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | struct SVarRef { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_with_offset` are never used [INFO] [stdout] --> src/compiler.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 178 | impl SVarRef { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 179 | pub fn new(var: &SVar) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn new_with_offset(var: &SVar, offset: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SVarDeref` is never constructed [INFO] [stdout] --> src/compiler.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | struct SVarDeref { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_with_offset` are never used [INFO] [stdout] --> src/compiler.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 222 | impl SVarDeref { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 223 | pub fn new(var: &SVar) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn new_with_offset(var: &SVar, offset: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SDeref` is never constructed [INFO] [stdout] --> src/compiler.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | struct SDeref { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/compiler.rs:265:12 [INFO] [stdout] | [INFO] [stdout] 264 | impl SDeref { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 265 | pub fn new(size: Size, offset: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CStr` is never constructed [INFO] [stdout] --> src/compiler.rs:279:8 [INFO] [stdout] | [INFO] [stdout] 279 | struct CStr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Const` is never used [INFO] [stdout] --> src/compiler.rs:284:6 [INFO] [stdout] | [INFO] [stdout] 284 | enum Const { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Global` is never constructed [INFO] [stdout] --> src/compiler.rs:290:8 [INFO] [stdout] | [INFO] [stdout] 290 | struct Global { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Global` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FnDeclVisitor` is never constructed [INFO] [stdout] --> src/compiler.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | struct FnDeclVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnDeclVisitor` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `find` is never used [INFO] [stdout] --> src/compiler.rs:307:12 [INFO] [stdout] | [INFO] [stdout] 306 | impl FnDeclVisitor { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 307 | pub fn find(&self, ident: &Ident) -> Option<&FnDecl> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ast2AsmVisitor` is never constructed [INFO] [stdout] --> src/compiler.rs:320:8 [INFO] [stdout] | [INFO] [stdout] 320 | struct Ast2AsmVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ast2AsmVisitor` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Asm` is never used [INFO] [stdout] --> src/compiler.rs:327:7 [INFO] [stdout] | [INFO] [stdout] 327 | trait Asm { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Reg` is never used [INFO] [stdout] --> src/compiler.rs:352:6 [INFO] [stdout] | [INFO] [stdout] 352 | enum Reg { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegSized` is never constructed [INFO] [stdout] --> src/compiler.rs:395:8 [INFO] [stdout] | [INFO] [stdout] 395 | struct RegSized(Reg, Size); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/compiler.rs:425:12 [INFO] [stdout] | [INFO] [stdout] 424 | impl Ast2AsmVisitor { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 425 | pub fn write(&mut self, str: &str) -> &mut Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | pub fn asm(&mut self, asm: impl Asm) -> &mut Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | pub fn comment(&mut self, cmt: &str) -> &mut Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn section(&mut self, str: &str) -> &mut Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | pub fn grow_stack(&mut self, bytes: usize) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 447 | pub fn shrink_stack(&mut self, bytes: usize) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 464 | pub fn mov(&mut self, src: impl Asm, dst: impl Asm) -> &mut Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | pub fn var(&self, ident: &Ident) -> &SVar { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 479 | pub fn call(&mut self, call: &Call) -> &mut Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 563 | pub fn evaluate_expr_to_reg(&mut self, expr: &Expr, reg: Reg) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 603 | pub fn clear_memory(&mut self, ident: &Ident) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | pub fn zero_reg(&mut self, reg: Reg) -> &mut Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 633 | pub fn add_usize(&mut self, lhs: Reg, rhs: usize, size: Size) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 639 | pub fn add_reg(&mut self, lhs: Reg, rhs: Reg, size: Size) -> &mut Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 648 | pub fn add(&mut self, lhs: &Expr, rhs: &Expr) -> &mut Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_parse` is never used [INFO] [stdout] --> src/parse.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn test_parse() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_raw` is never used [INFO] [stdout] --> src/parse.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn parse_raw(raw: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `interpret_buf` is never used [INFO] [stdout] --> src/parse.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn interpret_buf(buf: &mut String, tokens: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/token.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Token { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 24 | pub fn new(ty: TokenType) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn ident(ident: Ident) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn lit(lit: Lit) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn ty(t: Type) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn extract_ident(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn extract_lit(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn extract_ty(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/token.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 70 | Plus, [INFO] [stdout] | ^^^^ [INFO] [stdout] 71 | Let, [INFO] [stdout] | ^^^ [INFO] [stdout] 72 | Equals, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 73 | Return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 74 | Fn, [INFO] [stdout] | ^^ [INFO] [stdout] 75 | SemiColon, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 76 | Colon, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 77 | Comma, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 78 | OpenDelim(Delim), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 79 | CloseDelim(Delim), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 80 | Lit(Lit), [INFO] [stdout] | ^^^ [INFO] [stdout] 81 | Type(Type), [INFO] [stdout] | ^^^^ [INFO] [stdout] 82 | Ident(Ident), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | Ptr, [INFO] [stdout] | ^^^ [INFO] [stdout] 84 | InlineAsm(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` 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: struct `Tokenizer` is never constructed [INFO] [stdout] --> src/token.rs:88:8 [INFO] [stdout] | [INFO] [stdout] 88 | struct Tokenizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/token.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 92 | impl Tokenizer { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 93 | pub fn new(mut tokens: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn get(&self, index: usize) -> Option<&Token> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn slice_until(&self, ty: TokenType) -> Option<&[Token]> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn take_until(&mut self, ty: TokenType) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn skip(&mut self, n: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | fn find(&self, ty: TokenType) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn next_token(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn peek_next(&self) -> Option<&Token> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn expect(&mut self, ty: TokenType) -> Result<&mut Self, TmpError> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn parse_while( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn parse_expr(&mut self, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn next_ident(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn next_lit(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn next_ty(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn is_next_then( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn is_next(&self, ty: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Err` is never used [INFO] [stdout] --> src/token.rs:230:10 [INFO] [stdout] | [INFO] [stdout] 230 | pub type Err = dyn Error + 'static; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tokens` is never used [INFO] [stdout] --> src/token.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn parse_tokens(tokens: Vec) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_scope` is never used [INFO] [stdout] --> src/token.rs:237:4 [INFO] [stdout] | [INFO] [stdout] 237 | fn parse_scope(tokenizer: &mut Tokenizer, ctx: Option) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_call` is never used [INFO] [stdout] --> src/token.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn parse_call( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_pat` is never used [INFO] [stdout] --> src/token.rs:368:4 [INFO] [stdout] | [INFO] [stdout] 368 | fn parse_pat(tokenizer: &mut Tokenizer) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ty_maybe` is never used [INFO] [stdout] --> src/token.rs:379:4 [INFO] [stdout] | [INFO] [stdout] 379 | fn parse_ty_maybe(tokenizer: &mut Tokenizer) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_expr` is never used [INFO] [stdout] --> src/token.rs:392:4 [INFO] [stdout] | [INFO] [stdout] 392 | fn parse_expr(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_stmt` is never used [INFO] [stdout] --> src/token.rs:466:4 [INFO] [stdout] | [INFO] [stdout] 466 | fn parse_stmt(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_param` is never used [INFO] [stdout] --> src/token.rs:493:4 [INFO] [stdout] | [INFO] [stdout] 493 | fn parse_param(tokenizer: &mut Tokenizer) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fn_decl` is never used [INFO] [stdout] --> src/token.rs:503:4 [INFO] [stdout] | [INFO] [stdout] 503 | fn parse_fn_decl(tokenizer: &mut Tokenizer) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fn` is never used [INFO] [stdout] --> src/token.rs:531:4 [INFO] [stdout] | [INFO] [stdout] 531 | fn parse_fn(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_return` is never used [INFO] [stdout] --> src/token.rs:559:4 [INFO] [stdout] | [INFO] [stdout] 559 | fn parse_return(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_let` is never used [INFO] [stdout] --> src/token.rs:573:4 [INFO] [stdout] | [INFO] [stdout] 573 | fn parse_let(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.29s [INFO] running `Command { std: "docker" "inspect" "adadd89b9534b18e7ea48d26bf680e68788b786b3dd68507a9143b1c5a75f9c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "adadd89b9534b18e7ea48d26bf680e68788b786b3dd68507a9143b1c5a75f9c0", kill_on_drop: false }` [INFO] [stdout] adadd89b9534b18e7ea48d26bf680e68788b786b3dd68507a9143b1c5a75f9c0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] daca533cbf384f958ce398a3748fdd071c90d91c30edc5121ebf298735f75480 [INFO] running `Command { std: "docker" "start" "-a" "daca533cbf384f958ce398a3748fdd071c90d91c30edc5121ebf298735f75480", kill_on_drop: false }` [INFO] [stderr] Compiling hydra v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `os::unix::process::CommandExt`, `path::PathBuf`, `process::Command`, and `str::FromStr` [INFO] [stdout] --> src/main.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{os::unix::process::CommandExt, path::PathBuf, process::Command, str::FromStr}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ast.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | _ => panic!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/ast.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 202 | Self::Ret(ret) => { [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 209 | Self::Lit(lit) => lit.ty.clone(), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 210 | Self::Call(call) => match &call.output { [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 215 | Self::Empty => None, [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 224 | _ => panic!(), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:358:29 [INFO] [stdout] | [INFO] [stdout] 358 | pub fn walk_ref(visitor: &mut V, r: &mut Ref) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/ast.rs:358:46 [INFO] [stdout] | [INFO] [stdout] 358 | pub fn walk_ref(visitor: &mut V, r: &mut Ref) {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:360:30 [INFO] [stdout] | [INFO] [stdout] 360 | pub fn walk_call(visitor: &mut V, call: &mut Call) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `call` [INFO] [stdout] --> src/ast.rs:360:47 [INFO] [stdout] | [INFO] [stdout] 360 | pub fn walk_call(visitor: &mut V, call: &mut Call) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_call` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:362:29 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn walk_pat(visitor: &mut V, pat: &mut Pat) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pat` [INFO] [stdout] --> src/ast.rs:362:46 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn walk_pat(visitor: &mut V, pat: &mut Pat) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:385:34 [INFO] [stdout] | [INFO] [stdout] 385 | pub fn walk_fn_param(visitor: &mut V, param: &mut Param) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `param` [INFO] [stdout] --> src/ast.rs:385:51 [INFO] [stdout] | [INFO] [stdout] 385 | pub fn walk_fn_param(visitor: &mut V, param: &mut Param) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_param` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:413:29 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn walk_lit(visitor: &mut V, lit: &mut Lit) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ast.rs:413:46 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn walk_lit(visitor: &mut V, lit: &mut Lit) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visitor` [INFO] [stdout] --> src/ast.rs:419:29 [INFO] [stdout] | [INFO] [stdout] 419 | pub fn walk_let(visitor: &mut V, lt: &mut Let) {} [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visitor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lt` [INFO] [stdout] --> src/ast.rs:419:46 [INFO] [stdout] | [INFO] [stdout] 419 | pub fn walk_let(visitor: &mut V, lt: &mut Let) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_lt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scope` [INFO] [stdout] --> src/ast.rs:601:18 [INFO] [stdout] | [INFO] [stdout] 601 | pub fn parse_ast(scope: &mut Scope) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_scope` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> src/compiler.rs:94:23 [INFO] [stdout] | [INFO] [stdout] 94 | Self::Ptr(var) => todo!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `secondary` [INFO] [stdout] --> src/compiler.rs:564:13 [INFO] [stdout] | [INFO] [stdout] 564 | let secondary = match reg { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secondary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `call` [INFO] [stdout] --> src/compiler.rs:591:24 [INFO] [stdout] | [INFO] [stdout] 591 | Expr::Call(call) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_call` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs` [INFO] [stdout] --> src/compiler.rs:592:23 [INFO] [stdout] | [INFO] [stdout] 592 | Expr::Add(lhs, rhs) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/compiler.rs:592:28 [INFO] [stdout] | [INFO] [stdout] 592 | Expr::Add(lhs, rhs) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/compiler.rs:761:36 [INFO] [stdout] | [INFO] [stdout] 761 | Some(Expr::Ref(r)) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs` [INFO] [stdout] --> src/compiler.rs:776:36 [INFO] [stdout] | [INFO] [stdout] 776 | Some(Expr::Add(lhs, rhs)) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> src/compiler.rs:776:41 [INFO] [stdout] | [INFO] [stdout] 776 | Some(Expr::Add(lhs, rhs)) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `call` is never used [INFO] [stdout] --> src/ast.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl FnDecl { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 15 | pub fn call(&self) -> Call { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ident`, `input`, and `output` are never read [INFO] [stdout] --> src/ast.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Call { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 26 | pub ident: Ident, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 27 | pub input: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 28 | pub output: FnType, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Call` 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 `size_aligned` is never used [INFO] [stdout] --> src/ast.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Call { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn size_aligned(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Ident` is never constructed [INFO] [stdout] --> src/ast.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub enum Pat { [INFO] [stdout] | --- variant in this enum [INFO] [stdout] 50 | Ident(Ident), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pat` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Add` is never constructed [INFO] [stdout] --> src/ast.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct Add { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Add` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Ty` is never constructed [INFO] [stdout] --> src/ast.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum FnType { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 66 | Ty(Type), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnType` 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 `size` is never used [INFO] [stdout] --> src/ast.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl ArrayTy { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 76 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Array`, `Slice`, and `Ptr` are never constructed [INFO] [stdout] --> src/ast.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub enum Type { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 85 | Array(ArrayTy), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | // [ Ptr(Array(_)) ] [ len ] [INFO] [stdout] 87 | Slice(Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | Ptr(Box), [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: methods `size`, `is_ptr`, and `can_coerce` are never used [INFO] [stdout] --> src/ast.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl Type { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 102 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn is_ptr(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn can_coerce(&self, other: &Type) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `int` and `with_type` are never used [INFO] [stdout] --> src/ast.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 142 | impl Lit { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 143 | pub fn int(val: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn with_type(mut self, ty: Type) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Int` is never constructed [INFO] [stdout] --> src/ast.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 159 | pub enum LitKind { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] 160 | Int, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LitKind` 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 `Curly` and `Paren` are never constructed [INFO] [stdout] --> src/ast.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 167 | pub enum Delim { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 168 | Curly, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 169 | Paren, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Delim` 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: associated items `new` and `value` are never used [INFO] [stdout] --> src/ast.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 172 | impl Ident { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 173 | pub fn new(ident: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn value(&self) -> &String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lhs`, `ty`, and `rhs` are never read [INFO] [stdout] --> src/ast.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 183 | pub struct Let { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 184 | pub lhs: Ident, [INFO] [stdout] | ^^^ [INFO] [stdout] 185 | pub ty: Type, [INFO] [stdout] | ^^ [INFO] [stdout] 186 | pub rhs: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Let` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Ret`, `Lit`, `Call`, `Ref`, `Add`, and `Empty` are never constructed [INFO] [stdout] --> src/ast.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 190 | pub enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 191 | Ret(Option>), [INFO] [stdout] | ^^^ [INFO] [stdout] 192 | Lit(Lit), [INFO] [stdout] | ^^^ [INFO] [stdout] 193 | Call(Call), [INFO] [stdout] | ^^^^ [INFO] [stdout] 194 | Ref(Ref), [INFO] [stdout] | ^^^ [INFO] [stdout] 195 | Add(Box, Box), [INFO] [stdout] | ^^^ [INFO] [stdout] 196 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate_type` is never used [INFO] [stdout] --> src/ast.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 199 | impl Expr { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 200 | pub fn evaluate_type(&self, ctx: &mut ScopeCtx) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ident` and `ty` are never read [INFO] [stdout] --> src/ast.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 230 | pub struct Var { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 231 | pub ident: Ident, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 232 | pub ty: Type, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Var` 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 `vars` and `fns` are never read [INFO] [stdout] --> src/ast.rs:237:9 [INFO] [stdout] | [INFO] [stdout] 236 | pub struct ScopeCtx { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 237 | pub vars: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 238 | pub fns: Vec, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScopeCtx` 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: methods `find_var` and `find_fn` are never used [INFO] [stdout] --> src/ast.rs:242:12 [INFO] [stdout] | [INFO] [stdout] 241 | impl ScopeCtx { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 242 | pub fn find_var(&self, ident: &Ident) -> Option<&Var> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn find_fn(&self, ident: &Ident) -> Option<&FnDecl> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ident` and `ty` are never read [INFO] [stdout] --> src/ast.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 253 | pub struct Ref { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 254 | pub ident: Ident, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 255 | pub ty: Type, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pgrm` is never constructed [INFO] [stdout] --> src/ast.rs:258:12 [INFO] [stdout] | [INFO] [stdout] 258 | pub struct Pgrm { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Fn` is never constructed [INFO] [stdout] --> src/ast.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 263 | pub enum Item { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 264 | Fn(Func), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Item` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Expr`, `Let`, `Item`, `InlineAsm`, and `Empty` are never constructed [INFO] [stdout] --> src/ast.rs:269:5 [INFO] [stdout] | [INFO] [stdout] 268 | pub enum Stmt { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 269 | Expr(Expr), [INFO] [stdout] | ^^^^ [INFO] [stdout] 270 | Let(Let), [INFO] [stdout] | ^^^ [INFO] [stdout] 271 | Item(Item), [INFO] [stdout] | ^^^^ [INFO] [stdout] 272 | InlineAsm(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 273 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ast` is never used [INFO] [stdout] --> src/ast.rs:601:8 [INFO] [stdout] | [INFO] [stdout] 601 | pub fn parse_ast(scope: &mut Scope) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/compiler.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn compile(mut scope: Scope) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SVar` is never constructed [INFO] [stdout] --> src/compiler.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | struct SVar { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Locality` is never used [INFO] [stdout] --> src/compiler.rs:55:6 [INFO] [stdout] | [INFO] [stdout] 55 | enum Locality { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Var` is never used [INFO] [stdout] --> src/compiler.rs:61:6 [INFO] [stdout] | [INFO] [stdout] 61 | enum Var { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `offset`, and `val_size` are never used [INFO] [stdout] --> src/compiler.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 66 | impl Var { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 67 | pub fn new(var: SVar) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn offset(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn val_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SFrame` is never constructed [INFO] [stdout] --> src/compiler.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | struct SFrame { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SFrame` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `push`, `get`, `size`, and `size_aligned` are never used [INFO] [stdout] --> src/compiler.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 107 | impl SFrame { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 108 | pub fn push(&mut self, var: Ident, ty: Type, locality: Locality) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get(&self, var: &Ident) -> Option<&SVar> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn size_aligned(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SFrameVisitor` is never constructed [INFO] [stdout] --> src/compiler.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct SFrameVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SFrameVisitor` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SVarRef` is never constructed [INFO] [stdout] --> src/compiler.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | struct SVarRef { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_with_offset` are never used [INFO] [stdout] --> src/compiler.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 178 | impl SVarRef { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 179 | pub fn new(var: &SVar) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn new_with_offset(var: &SVar, offset: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SVarDeref` is never constructed [INFO] [stdout] --> src/compiler.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | struct SVarDeref { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_with_offset` are never used [INFO] [stdout] --> src/compiler.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 222 | impl SVarDeref { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 223 | pub fn new(var: &SVar) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn new_with_offset(var: &SVar, offset: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SDeref` is never constructed [INFO] [stdout] --> src/compiler.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | struct SDeref { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/compiler.rs:265:12 [INFO] [stdout] | [INFO] [stdout] 264 | impl SDeref { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 265 | pub fn new(size: Size, offset: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CStr` is never constructed [INFO] [stdout] --> src/compiler.rs:279:8 [INFO] [stdout] | [INFO] [stdout] 279 | struct CStr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Const` is never used [INFO] [stdout] --> src/compiler.rs:284:6 [INFO] [stdout] | [INFO] [stdout] 284 | enum Const { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Global` is never constructed [INFO] [stdout] --> src/compiler.rs:290:8 [INFO] [stdout] | [INFO] [stdout] 290 | struct Global { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Global` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FnDeclVisitor` is never constructed [INFO] [stdout] --> src/compiler.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | struct FnDeclVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnDeclVisitor` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `find` is never used [INFO] [stdout] --> src/compiler.rs:307:12 [INFO] [stdout] | [INFO] [stdout] 306 | impl FnDeclVisitor { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 307 | pub fn find(&self, ident: &Ident) -> Option<&FnDecl> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ast2AsmVisitor` is never constructed [INFO] [stdout] --> src/compiler.rs:320:8 [INFO] [stdout] | [INFO] [stdout] 320 | struct Ast2AsmVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ast2AsmVisitor` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Asm` is never used [INFO] [stdout] --> src/compiler.rs:327:7 [INFO] [stdout] | [INFO] [stdout] 327 | trait Asm { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Reg` is never used [INFO] [stdout] --> src/compiler.rs:352:6 [INFO] [stdout] | [INFO] [stdout] 352 | enum Reg { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegSized` is never constructed [INFO] [stdout] --> src/compiler.rs:395:8 [INFO] [stdout] | [INFO] [stdout] 395 | struct RegSized(Reg, Size); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/compiler.rs:425:12 [INFO] [stdout] | [INFO] [stdout] 424 | impl Ast2AsmVisitor { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 425 | pub fn write(&mut self, str: &str) -> &mut Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | pub fn asm(&mut self, asm: impl Asm) -> &mut Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | pub fn comment(&mut self, cmt: &str) -> &mut Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn section(&mut self, str: &str) -> &mut Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | pub fn grow_stack(&mut self, bytes: usize) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 447 | pub fn shrink_stack(&mut self, bytes: usize) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 464 | pub fn mov(&mut self, src: impl Asm, dst: impl Asm) -> &mut Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | pub fn var(&self, ident: &Ident) -> &SVar { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 479 | pub fn call(&mut self, call: &Call) -> &mut Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 563 | pub fn evaluate_expr_to_reg(&mut self, expr: &Expr, reg: Reg) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 603 | pub fn clear_memory(&mut self, ident: &Ident) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | pub fn zero_reg(&mut self, reg: Reg) -> &mut Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 633 | pub fn add_usize(&mut self, lhs: Reg, rhs: usize, size: Size) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 639 | pub fn add_reg(&mut self, lhs: Reg, rhs: Reg, size: Size) -> &mut Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 648 | pub fn add(&mut self, lhs: &Expr, rhs: &Expr) -> &mut Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_parse` is never used [INFO] [stdout] --> src/parse.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn test_parse() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_raw` is never used [INFO] [stdout] --> src/parse.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn parse_raw(raw: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `interpret_buf` is never used [INFO] [stdout] --> src/parse.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn interpret_buf(buf: &mut String, tokens: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `ident`, `lit`, `ty`, `extract_ident`, `extract_lit`, and `extract_ty` are never used [INFO] [stdout] --> src/token.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Token { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn ident(ident: Ident) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn lit(lit: Lit) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn ty(t: Type) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn extract_ident(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn extract_lit(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn extract_ty(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/token.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 70 | Plus, [INFO] [stdout] 71 | Let, [INFO] [stdout] | ^^^ [INFO] [stdout] 72 | Equals, [INFO] [stdout] 73 | Return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 74 | Fn, [INFO] [stdout] | ^^ [INFO] [stdout] 75 | SemiColon, [INFO] [stdout] 76 | Colon, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 77 | Comma, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 78 | OpenDelim(Delim), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 79 | CloseDelim(Delim), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 80 | Lit(Lit), [INFO] [stdout] | ^^^ [INFO] [stdout] 81 | Type(Type), [INFO] [stdout] | ^^^^ [INFO] [stdout] 82 | Ident(Ident), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 83 | Ptr, [INFO] [stdout] | ^^^ [INFO] [stdout] 84 | InlineAsm(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` 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 methods are never used [INFO] [stdout] --> src/token.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 92 | impl Tokenizer { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn get(&self, index: usize) -> Option<&Token> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn peek_next(&self) -> Option<&Token> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn expect(&mut self, ty: TokenType) -> Result<&mut Self, TmpError> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn parse_while( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn parse_expr(&mut self, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn next_ident(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn next_lit(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn next_ty(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn is_next_then( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn is_next(&self, ty: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Err` is never used [INFO] [stdout] --> src/token.rs:230:10 [INFO] [stdout] | [INFO] [stdout] 230 | pub type Err = dyn Error + 'static; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tokens` is never used [INFO] [stdout] --> src/token.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn parse_tokens(tokens: Vec) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_scope` is never used [INFO] [stdout] --> src/token.rs:237:4 [INFO] [stdout] | [INFO] [stdout] 237 | fn parse_scope(tokenizer: &mut Tokenizer, ctx: Option) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_call` is never used [INFO] [stdout] --> src/token.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn parse_call( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_pat` is never used [INFO] [stdout] --> src/token.rs:368:4 [INFO] [stdout] | [INFO] [stdout] 368 | fn parse_pat(tokenizer: &mut Tokenizer) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ty_maybe` is never used [INFO] [stdout] --> src/token.rs:379:4 [INFO] [stdout] | [INFO] [stdout] 379 | fn parse_ty_maybe(tokenizer: &mut Tokenizer) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_expr` is never used [INFO] [stdout] --> src/token.rs:392:4 [INFO] [stdout] | [INFO] [stdout] 392 | fn parse_expr(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_stmt` is never used [INFO] [stdout] --> src/token.rs:466:4 [INFO] [stdout] | [INFO] [stdout] 466 | fn parse_stmt(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_param` is never used [INFO] [stdout] --> src/token.rs:493:4 [INFO] [stdout] | [INFO] [stdout] 493 | fn parse_param(tokenizer: &mut Tokenizer) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fn_decl` is never used [INFO] [stdout] --> src/token.rs:503:4 [INFO] [stdout] | [INFO] [stdout] 503 | fn parse_fn_decl(tokenizer: &mut Tokenizer) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fn` is never used [INFO] [stdout] --> src/token.rs:531:4 [INFO] [stdout] | [INFO] [stdout] 531 | fn parse_fn(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_return` is never used [INFO] [stdout] --> src/token.rs:559:4 [INFO] [stdout] | [INFO] [stdout] 559 | fn parse_return(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_let` is never used [INFO] [stdout] --> src/token.rs:573:4 [INFO] [stdout] | [INFO] [stdout] 573 | fn parse_let(tokenizer: &mut Tokenizer, ctx: &mut ScopeCtx) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.89s [INFO] running `Command { std: "docker" "inspect" "daca533cbf384f958ce398a3748fdd071c90d91c30edc5121ebf298735f75480", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "daca533cbf384f958ce398a3748fdd071c90d91c30edc5121ebf298735f75480", kill_on_drop: false }` [INFO] [stdout] daca533cbf384f958ce398a3748fdd071c90d91c30edc5121ebf298735f75480