[INFO] cloning repository https://github.com/nilq/hugorm [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nilq/hugorm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnilq%2Fhugorm", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnilq%2Fhugorm'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e93fc25e6f46d56686aafa8c2c6f0cbdffdd6376 [INFO] checking nilq/hugorm against master#8365fcb2b840c95eeb0bc377af8bd498fad22245 for pr-145605 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnilq%2Fhugorm" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/nilq/hugorm [INFO] finished tweaking git repo https://github.com/nilq/hugorm [INFO] tweaked toml for git repo https://github.com/nilq/hugorm written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nilq/hugorm on toolchain 8365fcb2b840c95eeb0bc377af8bd498fad22245 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8365fcb2b840c95eeb0bc377af8bd498fad22245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/nilq/hugorm 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" "+8365fcb2b840c95eeb0bc377af8bd498fad22245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded gag v0.1.10 [INFO] [stderr] Downloaded flamer v0.3.0 [INFO] [stderr] Downloaded rustyline-derive v0.3.1 [INFO] [stderr] Downloaded ahash v0.3.2 [INFO] [stderr] Downloaded zub v0.3.14 [INFO] [stderr] Downloaded rustyline v6.1.2 [INFO] [stderr] Downloaded im-rc v14.3.0 [INFO] [stderr] Downloaded syn v1.0.19 [INFO] [stderr] Downloaded flame v0.2.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+8365fcb2b840c95eeb0bc377af8bd498fad22245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 552c174d0e397ca51eadaf02b1175a4adac66b9f45176fb516add5dbc45cf585 [INFO] running `Command { std: "docker" "start" "-a" "552c174d0e397ca51eadaf02b1175a4adac66b9f45176fb516add5dbc45cf585", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "552c174d0e397ca51eadaf02b1175a4adac66b9f45176fb516add5dbc45cf585", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "552c174d0e397ca51eadaf02b1175a4adac66b9f45176fb516add5dbc45cf585", kill_on_drop: false }` [INFO] [stdout] 552c174d0e397ca51eadaf02b1175a4adac66b9f45176fb516add5dbc45cf585 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+8365fcb2b840c95eeb0bc377af8bd498fad22245" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3d89c793b0f9b87239dc5697851d64b216c113d7cd4cb10e4b67587e89d08ba1 [INFO] running `Command { std: "docker" "start" "-a" "3d89c793b0f9b87239dc5697851d64b216c113d7cd4cb10e4b67587e89d08ba1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.66 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling proc-macro2 v1.0.12 [INFO] [stderr] Compiling ryu v1.0.4 [INFO] [stderr] Compiling serde v1.0.106 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.19 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Checking ppv-lite86 v0.2.6 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling version_check v0.9.1 [INFO] [stderr] Compiling quote v1.0.4 [INFO] [stderr] Compiling itoa v0.4.5 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling im-rc v14.3.0 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking bitmaps v2.1.0 [INFO] [stderr] Compiling hashbrown v0.7.2 [INFO] [stderr] Compiling memchr v2.3.2 [INFO] [stderr] Compiling lazy_static v0.2.11 [INFO] [stderr] Compiling thread-id v3.3.0 [INFO] [stderr] Compiling nix v0.17.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking dirs-sys v0.3.4 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand_xoshiro v0.4.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking ahash v0.3.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking sized-chunks v0.5.3 [INFO] [stderr] Checking remove_dir_all v0.5.2 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking colored v1.9.3 [INFO] [stderr] Checking dirs v2.0.2 [INFO] [stderr] Checking tempfile v3.1.0 [INFO] [stderr] Checking unicode-segmentation v1.6.0 [INFO] [stderr] Checking unicode-width v0.1.7 [INFO] [stderr] Checking utf8parse v0.2.0 [INFO] [stderr] Checking fnv v1.0.6 [INFO] [stderr] Checking gag v0.1.10 [INFO] [stderr] Checking statrs v0.12.0 [INFO] [stderr] Checking serde_json v1.0.52 [INFO] [stderr] Compiling serde_derive v1.0.106 [INFO] [stderr] Compiling rustyline-derive v0.3.1 [INFO] [stderr] Checking rustyline v6.1.2 [INFO] [stderr] Compiling flame v0.2.2 [INFO] [stderr] Compiling flamer v0.3.0 [INFO] [stderr] Checking zub v0.3.14 [INFO] [stderr] Checking hugorm v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Formatter`, and `self` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::mem; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::ExpressionNode::*` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | use self::ExpressionNode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::ir::*` [INFO] [stdout] --> src/hugorm/prelude/math.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use zub::ir::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:92:49 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &dyn Matcher<'t>) -> Result, ()> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Formatter`, and `self` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::mem; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::ExpressionNode::*` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | use self::ExpressionNode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::ir::*` [INFO] [stdout] --> src/hugorm/prelude/math.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use zub::ir::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:92:49 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &dyn Matcher<'t>) -> Result, ()> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | if let Some(item) = self.items.get(self.index + 1) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/hugorm/parser/parser.rs:538:21 [INFO] [stdout] | [INFO] [stdout] 538 | c => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | if let Some(item) = self.items.get(self.index + 1) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/hugorm/parser/parser.rs:538:21 [INFO] [stdout] | [INFO] [stdout] 538 | c => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:425:13 [INFO] [stdout] | [INFO] [stdout] 425 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:425:13 [INFO] [stdout] | [INFO] [stdout] 134 | Use(ref path) => { [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 173 | Expression(ref expr) => { [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 183 | Declaration(..) => self.visit_variable(&statement.node, &statement.pos), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 184 | Assignment(..) => self.visit_ass(&statement.node, &statement.pos), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 425 | _ => { [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fun` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:419:31 [INFO] [stdout] | [INFO] [stdout] 419 | ConstFunction(ref fun) => return Err(response!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_fun` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | let mut binding = Binding::local(name, self.depth, self.function_depth); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `caller` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:919:22 [INFO] [stdout] | [INFO] [stdout] 919 | Call(ref caller, ref args) => Type::from(TypeNode::Any), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_caller` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:919:34 [INFO] [stdout] | [INFO] [stdout] 919 | Call(ref caller, ref args) => Type::from(TypeNode::Any), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `heap` [INFO] [stdout] --> src/hugorm/prelude/math.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | fn student(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_heap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/lib.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... Ok(n) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/lib.rs:55:56 [INFO] [stdout] | [INFO] [stdout] 55 | fn prompt(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:425:13 [INFO] [stdout] | [INFO] [stdout] 425 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:425:13 [INFO] [stdout] | [INFO] [stdout] 134 | Use(ref path) => { [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 173 | Expression(ref expr) => { [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 183 | Declaration(..) => self.visit_variable(&statement.node, &statement.pos), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 184 | Assignment(..) => self.visit_ass(&statement.node, &statement.pos), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 425 | _ => { [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fun` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:419:31 [INFO] [stdout] | [INFO] [stdout] 419 | ConstFunction(ref fun) => return Err(response!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_fun` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `root` [INFO] [stdout] --> src/lib.rs:98:25 [INFO] [stdout] | [INFO] [stdout] 98 | fn run_file(path: &str, root: &String) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/lib.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn run(path: &str, content: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_file` is never used [INFO] [stdout] --> src/lib.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn run_file(path: &str, root: &String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Response` is never used [INFO] [stdout] --> src/hugorm/error.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Response { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FilePath` is never constructed [INFO] [stdout] --> src/hugorm/source.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct FilePath(pub String); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Source` is never constructed [INFO] [stdout] --> src/hugorm/source.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Source { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `from` are never used [INFO] [stdout] --> src/hugorm/source.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Source { [INFO] [stdout] | ----------- associated functions in this implementation [INFO] [stdout] 24 | pub fn new(path: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn from(path: &str, lines: Vec) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Lexer<'l> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `default`, and `match_token` are never used [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl<'l> Lexer<'l> { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new(tokenizer: Tokenizer<'l>, source: &'l Source) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn default(data: Vec, source: &'l Source) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn match_token(&mut self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Matcher` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub trait Matcher<'t> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommentMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct CommentMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConstantStringMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct ConstantStringMatcher { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl ConstantStringMatcher { [INFO] [stdout] | -------------------------- associated function in this implementation [INFO] [stdout] 66 | pub fn new(token_type: TokenType, constants: &'static [&'static str]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConstantCharMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct ConstantCharMatcher { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl ConstantCharMatcher { [INFO] [stdout] | ------------------------ associated function in this implementation [INFO] [stdout] 107 | pub fn new(token_type: TokenType, constants: &'static [char]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StringLiteralMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 137 | pub struct StringLiteralMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IdentifierMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:255:12 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct IdentifierMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NumberLiteralMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:275:12 [INFO] [stdout] | [INFO] [stdout] 275 | pub struct NumberLiteralMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KeyMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:343:12 [INFO] [stdout] | [INFO] [stdout] 343 | pub struct KeyMatcher { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:349:12 [INFO] [stdout] | [INFO] [stdout] 348 | impl KeyMatcher { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 349 | pub fn new(token_type: TokenType, constants: &'static [&'static str]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EOLMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:382:12 [INFO] [stdout] | [INFO] [stdout] 382 | pub struct EOLMatcher; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WhitespaceMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:398:12 [INFO] [stdout] | [INFO] [stdout] 398 | pub struct WhitespaceMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TokenType` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum TokenType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pos` is never constructed [INFO] [stdout] --> src/hugorm/lexer/token.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Pos(pub (usize, String), pub (usize, usize)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_lexeme` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Pos { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 45 | pub fn get_lexeme(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Token` is never constructed [INFO] [stdout] --> src/hugorm/lexer/token.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 91 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Snapshot` is never constructed [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Snapshot { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Snapshot { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 10 | fn new(index: usize, pos: (usize, usize)) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tokenizer` is never constructed [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Tokenizer<'t> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl<'t> Tokenizer<'t> { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 25 | pub fn new(items: Vec, source: &'t Source) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn end(&self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn advance(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn advance_n(&mut self, n: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn peek_range(&self, n: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn peek_n(&self, n: usize) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn peek(&self) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn take_snapshot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn peek_snapshot(&self) -> Option<&Snapshot> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn rollback_snapshot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn commit_snapshot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn last_position(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn collect_while(&mut self, func: fn(char) -> bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `StatementNode` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum StatementNode { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Statement` is never constructed [INFO] [stdout] --> src/hugorm/parser/ast.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Statement { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 29 | impl Statement { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 30 | pub fn new(node: StatementNode, pos: Pos) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExpressionNode` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | pub enum ExpressionNode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Expression` is never constructed [INFO] [stdout] --> src/hugorm/parser/ast.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct Expression { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:67:10 [INFO] [stdout] | [INFO] [stdout] 66 | impl Expression { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 67 | pub fn new(node: ExpressionNode, pos: Pos) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operator` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:78:10 [INFO] [stdout] | [INFO] [stdout] 78 | pub enum Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `is_right_ass`, `is_compoundable`, `from_str`, and `as_str` are never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:83:10 [INFO] [stdout] | [INFO] [stdout] 82 | impl Operator { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 83 | pub fn is_right_ass(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn is_compoundable(operator: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn from_str(operator: &str) -> Option<(Operator, u8)> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parser` is never constructed [INFO] [stdout] --> src/hugorm/parser/parser.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Parser<'p> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/parser/parser.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl<'p> Parser<'p> { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(tokens: Vec, source: &'p Source) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn parse(&mut self) -> Result, ()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn parse_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 608 | fn try_parse_compound(&mut self, left: &Expression) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | fn parse_body(&mut self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 680 | fn parse_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 690 | fn parse_atom(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 871 | fn parse_postfix(&mut self, expression: Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 976 | fn parse_binary(&mut self, left: Expression, min_prec: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1011 | fn new_line(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1031 | fn next_newline(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1039 | fn get_indent(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1043 | fn is_dedent(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1047 | fn next(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1061 | fn remaining(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1065 | fn current_position(&self) -> Pos { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1071 | fn span_from(&self, left_position: Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1088 | fn current(&self) -> Token { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1096 | fn eat(&mut self) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1103 | fn eat_lexeme(&mut self, lexeme: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1122 | fn eat_type(&mut self, token_type: &TokenType) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1141 | fn current_lexeme(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1145 | fn current_type(&self) -> TokenType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1149 | fn expect_type(&self, token_type: TokenType) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1164 | fn expect_lexeme(&self, lexeme: &str) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1265 | fn parse_block_of( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Frame` is never constructed [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Frame { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Frame { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 16 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn from(table: HashMap) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn get(&self, name: &String) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn insert_interface(&mut self, name: String, interface: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn get_interface(&self, name: String) -> Option<&Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn assign(&mut self, name: String, t: Type) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn debug(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SymTab` is never constructed [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct SymTab { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl SymTab { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn from(table: HashMap) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn assign(&mut self, name: String, t: Type) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn fetch(&self, name: &String) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn fetch_str(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn current_frame(&self) -> &Frame { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn current_frame_mut(&mut self) -> &mut Frame { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn put_frame(&mut self, frame: Frame) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn push(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn pop(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn pop_cache(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn fetch_cache(&self, name: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn get_foreign_module(&self, id: &String) -> Option<&HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn import(&mut self, id: String, origin: HashMap) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `VarPos` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub type VarPos = Binding; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeNode` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum TypeNode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeMode` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum TypeMode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Type` is never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Type { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `from`, and `set_offset` are never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Type { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 46 | pub fn new(node: TypeNode, mode: TypeMode) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn from(node: TypeNode) -> Type { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_offset(&mut self, offset: VarPos) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Inside` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:64:10 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum Inside { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Visitor` is never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct Visitor<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl<'a> Visitor<'a> { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 82 | pub fn new(source: &'a Source, root: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn from(source: &'a Source, symtab: SymTab, root: String) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn set_global(&mut self, name: &str, t: TypeNode) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn visit(&mut self, ast: &Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn build(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn visit_statement(&mut self, statement: &Statement) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 436 | fn find_module(&mut self, path: &String, root: &String, statement: &Statement) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 466 | fn compile_expression(&mut self, expression: &Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 677 | pub fn visit_expression(&mut self, expression: &Expression) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | pub fn type_expression(&mut self, expression: &Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 927 | fn visit_variable(&mut self, variable: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 972 | fn visit_ass(&mut self, ass: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1017 | fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1021 | fn assign(&mut self, name: String, t: Type) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1025 | fn push_scope(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1031 | fn pop_scope(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `include_math` is never used [INFO] [stdout] --> src/hugorm/prelude/math.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn include_math(visitor: &mut Visitor, vm: &mut VM) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum` is never used [INFO] [stdout] --> src/hugorm/prelude/math.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn sum(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `student` is never used [INFO] [stdout] --> src/hugorm/prelude/math.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn student(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | let mut binding = Binding::local(name, self.depth, self.function_depth); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `caller` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:919:22 [INFO] [stdout] | [INFO] [stdout] 919 | Call(ref caller, ref args) => Type::from(TypeNode::Any), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_caller` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:919:34 [INFO] [stdout] | [INFO] [stdout] 919 | Call(ref caller, ref args) => Type::from(TypeNode::Any), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `heap` [INFO] [stdout] --> src/hugorm/prelude/math.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | fn student(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_heap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/lib.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... Ok(n) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/lib.rs:55:56 [INFO] [stdout] | [INFO] [stdout] 55 | fn prompt(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `root` [INFO] [stdout] --> src/lib.rs:98:25 [INFO] [stdout] | [INFO] [stdout] 98 | fn run_file(path: &str, root: &String) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/lib.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn run(path: &str, content: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_file` is never used [INFO] [stdout] --> src/lib.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn run_file(path: &str, root: &String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Response` is never used [INFO] [stdout] --> src/hugorm/error.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Response { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FilePath` is never constructed [INFO] [stdout] --> src/hugorm/source.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct FilePath(pub String); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Source` is never constructed [INFO] [stdout] --> src/hugorm/source.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Source { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `from` are never used [INFO] [stdout] --> src/hugorm/source.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Source { [INFO] [stdout] | ----------- associated functions in this implementation [INFO] [stdout] 24 | pub fn new(path: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn from(path: &str, lines: Vec) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Lexer<'l> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `default`, and `match_token` are never used [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl<'l> Lexer<'l> { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new(tokenizer: Tokenizer<'l>, source: &'l Source) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn default(data: Vec, source: &'l Source) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn match_token(&mut self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Matcher` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub trait Matcher<'t> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommentMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct CommentMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConstantStringMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct ConstantStringMatcher { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl ConstantStringMatcher { [INFO] [stdout] | -------------------------- associated function in this implementation [INFO] [stdout] 66 | pub fn new(token_type: TokenType, constants: &'static [&'static str]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConstantCharMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct ConstantCharMatcher { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl ConstantCharMatcher { [INFO] [stdout] | ------------------------ associated function in this implementation [INFO] [stdout] 107 | pub fn new(token_type: TokenType, constants: &'static [char]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StringLiteralMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 137 | pub struct StringLiteralMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IdentifierMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:255:12 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct IdentifierMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NumberLiteralMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:275:12 [INFO] [stdout] | [INFO] [stdout] 275 | pub struct NumberLiteralMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KeyMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:343:12 [INFO] [stdout] | [INFO] [stdout] 343 | pub struct KeyMatcher { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:349:12 [INFO] [stdout] | [INFO] [stdout] 348 | impl KeyMatcher { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 349 | pub fn new(token_type: TokenType, constants: &'static [&'static str]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EOLMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:382:12 [INFO] [stdout] | [INFO] [stdout] 382 | pub struct EOLMatcher; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WhitespaceMatcher` is never constructed [INFO] [stdout] --> src/hugorm/lexer/matcher.rs:398:12 [INFO] [stdout] | [INFO] [stdout] 398 | pub struct WhitespaceMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TokenType` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum TokenType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pos` is never constructed [INFO] [stdout] --> src/hugorm/lexer/token.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Pos(pub (usize, String), pub (usize, usize)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_lexeme` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Pos { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 45 | pub fn get_lexeme(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Token` is never constructed [INFO] [stdout] --> src/hugorm/lexer/token.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 91 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Snapshot` is never constructed [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Snapshot { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Snapshot { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 10 | fn new(index: usize, pos: (usize, usize)) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tokenizer` is never constructed [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Tokenizer<'t> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl<'t> Tokenizer<'t> { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 25 | pub fn new(items: Vec, source: &'t Source) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn end(&self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn advance(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn advance_n(&mut self, n: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn peek_range(&self, n: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn peek_n(&self, n: usize) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn peek(&self) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn take_snapshot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn peek_snapshot(&self) -> Option<&Snapshot> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn rollback_snapshot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn commit_snapshot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn last_position(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn collect_while(&mut self, func: fn(char) -> bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `StatementNode` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum StatementNode { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Statement` is never constructed [INFO] [stdout] --> src/hugorm/parser/ast.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Statement { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 29 | impl Statement { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 30 | pub fn new(node: StatementNode, pos: Pos) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExpressionNode` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | pub enum ExpressionNode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Expression` is never constructed [INFO] [stdout] --> src/hugorm/parser/ast.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct Expression { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:67:10 [INFO] [stdout] | [INFO] [stdout] 66 | impl Expression { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 67 | pub fn new(node: ExpressionNode, pos: Pos) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operator` is never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:78:10 [INFO] [stdout] | [INFO] [stdout] 78 | pub enum Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `is_right_ass`, `is_compoundable`, `from_str`, and `as_str` are never used [INFO] [stdout] --> src/hugorm/parser/ast.rs:83:10 [INFO] [stdout] | [INFO] [stdout] 82 | impl Operator { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 83 | pub fn is_right_ass(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn is_compoundable(operator: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn from_str(operator: &str) -> Option<(Operator, u8)> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parser` is never constructed [INFO] [stdout] --> src/hugorm/parser/parser.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Parser<'p> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/parser/parser.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl<'p> Parser<'p> { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(tokens: Vec, source: &'p Source) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn parse(&mut self) -> Result, ()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn parse_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 608 | fn try_parse_compound(&mut self, left: &Expression) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | fn parse_body(&mut self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 680 | fn parse_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 690 | fn parse_atom(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 871 | fn parse_postfix(&mut self, expression: Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 976 | fn parse_binary(&mut self, left: Expression, min_prec: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1011 | fn new_line(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1031 | fn next_newline(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1039 | fn get_indent(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1043 | fn is_dedent(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1047 | fn next(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1061 | fn remaining(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1065 | fn current_position(&self) -> Pos { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1071 | fn span_from(&self, left_position: Pos) -> Pos { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1088 | fn current(&self) -> Token { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1096 | fn eat(&mut self) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1103 | fn eat_lexeme(&mut self, lexeme: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1122 | fn eat_type(&mut self, token_type: &TokenType) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1141 | fn current_lexeme(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1145 | fn current_type(&self) -> TokenType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1149 | fn expect_type(&self, token_type: TokenType) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1164 | fn expect_lexeme(&self, lexeme: &str) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1265 | fn parse_block_of( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Frame` is never constructed [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Frame { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Frame { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 16 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn from(table: HashMap) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn get(&self, name: &String) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn insert_interface(&mut self, name: String, interface: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn get_interface(&self, name: String) -> Option<&Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn assign(&mut self, name: String, t: Type) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn debug(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SymTab` is never constructed [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct SymTab { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl SymTab { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn from(table: HashMap) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn assign(&mut self, name: String, t: Type) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn fetch(&self, name: &String) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn fetch_str(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn current_frame(&self) -> &Frame { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn current_frame_mut(&mut self) -> &mut Frame { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn put_frame(&mut self, frame: Frame) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn push(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn pop(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn pop_cache(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn fetch_cache(&self, name: &String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn get_foreign_module(&self, id: &String) -> Option<&HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn import(&mut self, id: String, origin: HashMap) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `VarPos` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub type VarPos = Binding; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeNode` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum TypeNode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeMode` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum TypeMode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Type` is never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Type { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `from`, and `set_offset` are never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Type { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 46 | pub fn new(node: TypeNode, mode: TypeMode) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn from(node: TypeNode) -> Type { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_offset(&mut self, offset: VarPos) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Inside` is never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:64:10 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum Inside { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Visitor` is never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct Visitor<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl<'a> Visitor<'a> { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 82 | pub fn new(source: &'a Source, root: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn from(source: &'a Source, symtab: SymTab, root: String) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn set_global(&mut self, name: &str, t: TypeNode) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn visit(&mut self, ast: &Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn build(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn visit_statement(&mut self, statement: &Statement) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 436 | fn find_module(&mut self, path: &String, root: &String, statement: &Statement) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 466 | fn compile_expression(&mut self, expression: &Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 677 | pub fn visit_expression(&mut self, expression: &Expression) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | pub fn type_expression(&mut self, expression: &Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 927 | fn visit_variable(&mut self, variable: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 972 | fn visit_ass(&mut self, ass: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1017 | fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1021 | fn assign(&mut self, name: String, t: Type) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1025 | fn push_scope(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1031 | fn pop_scope(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `include_math` is never used [INFO] [stdout] --> src/hugorm/prelude/math.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn include_math(visitor: &mut Visitor, vm: &mut VM) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum` is never used [INFO] [stdout] --> src/hugorm/prelude/math.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn sum(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `student` is never used [INFO] [stdout] --> src/hugorm/prelude/math.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn student(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Formatter`, and `self` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::mem; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::ExpressionNode::*` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | use self::ExpressionNode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::ir::*` [INFO] [stdout] --> src/hugorm/prelude/math.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use zub::ir::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::compiler::*` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use zub::compiler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::ir::*` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use zub::ir::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::metadata` [INFO] [stdout] --> src/main.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use std::fs::metadata; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Formatter`, and `self` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::mem; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::ExpressionNode::*` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | use self::ExpressionNode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::ir::*` [INFO] [stdout] --> src/hugorm/prelude/math.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use zub::ir::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::compiler::*` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use zub::compiler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zub::ir::*` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use zub::ir::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::metadata` [INFO] [stdout] --> src/main.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use std::fs::metadata; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:92:49 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &dyn Matcher<'t>) -> Result, ()> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/lexer.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 | matchers: Vec>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:92:49 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 92 | pub fn try_match_token(&mut self, matcher: &dyn Matcher<'t>) -> Result, ()> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/main.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | if let Some(item) = self.items.get(self.index + 1) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/hugorm/parser/parser.rs:538:21 [INFO] [stdout] | [INFO] [stdout] 538 | c => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:425:13 [INFO] [stdout] | [INFO] [stdout] 425 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:425:13 [INFO] [stdout] | [INFO] [stdout] 134 | Use(ref path) => { [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 173 | Expression(ref expr) => { [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 183 | Declaration(..) => self.visit_variable(&statement.node, &statement.pos), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 184 | Assignment(..) => self.visit_ass(&statement.node, &statement.pos), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 425 | _ => { [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fun` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:419:31 [INFO] [stdout] | [INFO] [stdout] 419 | ConstFunction(ref fun) => return Err(response!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_fun` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | let mut binding = Binding::local(name, self.depth, self.function_depth); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `caller` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:919:22 [INFO] [stdout] | [INFO] [stdout] 919 | Call(ref caller, ref args) => Type::from(TypeNode::Any), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_caller` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:919:34 [INFO] [stdout] | [INFO] [stdout] 919 | Call(ref caller, ref args) => Type::from(TypeNode::Any), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `heap` [INFO] [stdout] --> src/hugorm/prelude/math.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | fn student(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_heap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/main.rs:78:32 [INFO] [stdout] | [INFO] [stdout] 78 | ... Ok(n) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/main.rs:74:56 [INFO] [stdout] | [INFO] [stdout] 74 | fn prompt(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prompt` is never used [INFO] [stdout] --> src/main.rs:74:24 [INFO] [stdout] | [INFO] [stdout] 74 | fn prompt(heap: &mut Heap, args: &[Value]) -> Value { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Note` is never constructed [INFO] [stdout] --> src/hugorm/error.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Response { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | Note(T), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_lexeme` is never used [INFO] [stdout] --> src/hugorm/lexer/token.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Pos { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 45 | pub fn get_lexeme(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Const` is never constructed [INFO] [stdout] --> src/hugorm/parser/ast.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum StatementNode { [INFO] [stdout] | ------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | Const(String, Expression), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatementNode` 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 `min_prec` is never read [INFO] [stdout] --> src/hugorm/parser/parser.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Parser<'p> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 14 | min_prec: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `expect_type` and `expect_lexeme` are never used [INFO] [stdout] --> src/hugorm/parser/parser.rs:1149:8 [INFO] [stdout] | [INFO] [stdout] 17 | impl<'p> Parser<'p> { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1149 | fn expect_type(&self, token_type: TokenType) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1164 | fn expect_lexeme(&self, lexeme: &str) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `debug` are never used [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Frame { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn from(table: HashMap) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn debug(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `foreign_imports` is never read [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct SymTab { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 66 | pub foreign_imports: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SymTab` 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 associated items are never used [INFO] [stdout] --> src/hugorm/visitor/symtab.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl SymTab { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn from(table: HashMap) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn fetch_str(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn put_frame(&mut self, frame: Frame) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn pop_cache(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn get_foreign_module(&self, id: &String) -> Option<&HashMap> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn import(&mut self, id: String, origin: HashMap) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Char` is never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum TypeNode { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 26 | Char, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TypeNode` 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 `Undeclared` and `Immutable` are never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum TypeMode { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 33 | Undeclared, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | Immutable, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TypeMode` 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 `Nothing` is never constructed [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum Inside { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 67 | Nothing, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Inside` 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 `repl` and `root` are never read [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct Visitor<'a> { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 77 | pub repl: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 78 | pub root: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `assign_str` are never used [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl<'a> Visitor<'a> { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn from(source: &'a Source, symtab: SymTab, root: String) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1017 | fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/hugorm/visitor/visitor.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude` [INFO] [stdout] --> src/main.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> src/hugorm/lexer/tokenizer.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | if let Some(item) = self.items.get(self.index + 1) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/hugorm/parser/parser.rs:538:21 [INFO] [stdout] | [INFO] [stdout] 538 | c => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `hugorm` (bin "hugorm" test); 15 warnings emitted [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] No space left on device (os error 28) [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] failed to parse process output: `/opt/rustwide/rustup-home/toolchains/8365fcb2b840c95eeb0bc377af8bd498fad22245/bin/rustc --crate-name hugorm --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=c0a9dc6c9d05b76e -C extra-filename=-4332746bf9026ddd --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern colored=/opt/rustwide/target/debug/deps/libcolored-83a85c4b047e2fe0.rmeta --extern gag=/opt/rustwide/target/debug/deps/libgag-b88db452d1a06ea9.rmeta --extern hugorm=/opt/rustwide/target/debug/deps/libhugorm-1b94fdefba6b2d9c.rmeta --extern rustyline=/opt/rustwide/target/debug/deps/librustyline-b9007aa487879f43.rmeta --extern rustyline_derive=/opt/rustwide/target/debug/deps/librustyline_derive-8764d00353185aef.so --extern statrs=/opt/rustwide/target/debug/deps/libstatrs-49bfdb4b14b63c09.rmeta --extern zub=/opt/rustwide/target/debug/deps/libzub-80d3639fd0596958.rmeta --cap-lints=forbid` (exit status: 1) [INFO] running `Command { std: "docker" "inspect" "3d89c793b0f9b87239dc5697851d64b216c113d7cd4cb10e4b67587e89d08ba1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d89c793b0f9b87239dc5697851d64b216c113d7cd4cb10e4b67587e89d08ba1", kill_on_drop: false }` [INFO] [stdout] 3d89c793b0f9b87239dc5697851d64b216c113d7cd4cb10e4b67587e89d08ba1