[INFO] cloning repository https://github.com/nilq/hugorm [INFO] running `"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"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnilq%2Fhugorm'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5c83731777c341c7492245e415111f5ad386054c [INFO] checking nilq/hugorm against try#13f916f63bc6575d5ff1f989237dfabe88981368 for pr-69880 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnilq%2Fhugorm" "/workspace/builds/worker-4/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-4/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/nilq/hugorm on toolchain 13f916f63bc6575d5ff1f989237dfabe88981368 [INFO] running `"/workspace/cargo-home/bin/cargo" "+13f916f63bc6575d5ff1f989237dfabe88981368" "read-manifest" "--manifest-path" "Cargo.toml"` [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-4/source/Cargo.toml [INFO] crate git repo https://github.com/nilq/hugorm already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+13f916f63bc6575d5ff1f989237dfabe88981368" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+13f916f63bc6575d5ff1f989237dfabe88981368" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] ec95235b2b81ce9e689d3c3f82df4cd52e0d1e230dc4ad8782430276e1cbe65d [INFO] running `"docker" "start" "-a" "ec95235b2b81ce9e689d3c3f82df4cd52e0d1e230dc4ad8782430276e1cbe65d"` [INFO] [stderr] Checking colored v1.9.2 [INFO] [stderr] Checking hugorm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hugorm/lexer/lexer.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | matchers: Vec>>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Matcher<'l>` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hugorm/lexer/tokenizer.rs:92:49 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Matcher<'t>` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/hugorm/vm/vm.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `colored::Colorize` [INFO] [stderr] --> src/hugorm/vm/vm.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use colored::Colorize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/hugorm/vm/vm.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/hugorm/vm/vm.rs:109:35 [INFO] [stderr] | [INFO] [stderr] 109 | let new_top = (address + self.frames.last().unwrap() + size as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/hugorm/vm/vm.rs:320:27 [INFO] [stderr] | [INFO] [stderr] 320 | push!((&to_bytes!(ip => u32)) => self.calls, [self.calls_top; 4]); // address for the `ret` to return to [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::StatementNode::*` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | use self::StatementNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::TypeNode::*` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | use self::TypeNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::super::lexer::*` [INFO] [stderr] --> src/hugorm/vm/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | use self::super::lexer::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::super::source::Source` [INFO] [stderr] --> src/hugorm/vm/mod.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | use self::super::source::Source; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Display`, `Formatter`, `Write`, `self` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stderr] | ^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::ExpressionNode::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | use self::ExpressionNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::ExpressionNode::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:360:13 [INFO] [stderr] | [INFO] [stderr] 360 | use self::ExpressionNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::ExpressionNode::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | use self::ExpressionNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hugorm/lexer/lexer.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | matchers: Vec>>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Matcher<'l>` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hugorm/lexer/tokenizer.rs:92:49 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn try_match_token(&mut self, matcher: &Matcher<'t>) -> Result, ()> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Matcher<'t>` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/hugorm/vm/vm.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `colored::Colorize` [INFO] [stderr] --> src/hugorm/vm/vm.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use colored::Colorize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/hugorm/vm/vm.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/hugorm/vm/vm.rs:109:35 [INFO] [stderr] | [INFO] [stderr] 109 | let new_top = (address + self.frames.last().unwrap() + size as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/hugorm/vm/vm.rs:320:27 [INFO] [stderr] | [INFO] [stderr] 320 | push!((&to_bytes!(ip => u32)) => self.calls, [self.calls_top; 4]); // address for the `ret` to return to [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::StatementNode::*` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | use self::StatementNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::TypeNode::*` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | use self::TypeNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::super::lexer::*` [INFO] [stderr] --> src/hugorm/vm/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | use self::super::lexer::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::super::source::Source` [INFO] [stderr] --> src/hugorm/vm/mod.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | use self::super::source::Source; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Display`, `Formatter`, `Write`, `self` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fmt::{self, Display, Formatter, Write}; [INFO] [stderr] | ^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::ExpressionNode::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | use self::ExpressionNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::ExpressionNode::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:360:13 [INFO] [stderr] | [INFO] [stderr] 360 | use self::ExpressionNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::ExpressionNode::*` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | use self::ExpressionNode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hugorm/parser/parser.rs:403:13 [INFO] [stderr] | [INFO] [stderr] 366 | ref current => { [INFO] [stderr] | ----------- matches any value [INFO] [stderr] ... [INFO] [stderr] 403 | _ => Ok(expression), [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hugorm/vm/compiler.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | _ => (), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | _ => { [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `item` [INFO] [stderr] --> src/hugorm/lexer/tokenizer.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | if let Some(item) = self.items.get(self.index + 1) { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_item` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `backup_index` [INFO] [stderr] --> src/hugorm/parser/parser.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | let backup_index = self.index; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_backup_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size_to` [INFO] [stderr] --> src/hugorm/vm/vm.rs:242:25 [INFO] [stderr] | [INFO] [stderr] 242 | let size_to = bytecode[ip as usize]; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_size_to` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `param` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:101:21 [INFO] [stderr] | [INFO] [stderr] 101 | for (i, param) in params.iter().enumerate() { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_param` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `params` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:139:36 [INFO] [stderr] | [INFO] [stderr] 139 | Function(ref name, ref params, ref body) => { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_params` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:359:60 [INFO] [stderr] | [INFO] [stderr] 359 | fn visit_variable(&mut self, variable: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_pos` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:390:50 [INFO] [stderr] | [INFO] [stderr] 390 | fn visit_ass(&mut self, ass: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_pos` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | let mut bytecode = compiler.bytecode; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | push!(value => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ---------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:137:21 [INFO] [stderr] | [INFO] [stderr] 137 | push!(&to_bytes!(a.wrapping_add(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | push!(&to_bytes!(a + b => f64) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:163:21 [INFO] [stderr] | [INFO] [stderr] 163 | push!(&to_bytes!(a.wrapping_sub(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:176:21 [INFO] [stderr] | [INFO] [stderr] 176 | push!(&to_bytes!(a - b => f64) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:189:21 [INFO] [stderr] | [INFO] [stderr] 189 | push!(&to_bytes!(a.wrapping_mul(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:202:21 [INFO] [stderr] | [INFO] [stderr] 202 | push!(&to_bytes!(a.wrapping_div(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:215:21 [INFO] [stderr] | [INFO] [stderr] 215 | push!(&to_bytes!(a / b => f64) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:314:21 [INFO] [stderr] | [INFO] [stderr] 314 | push!(value => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ---------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:320:21 [INFO] [stderr] | [INFO] [stderr] 320 | push!((&to_bytes!(ip => u32)) => self.calls, [self.calls_top; 4]); // address for the `ret` to return to [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Weird` [INFO] [stderr] --> src/hugorm/error.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | Weird(T), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Note` [INFO] [stderr] --> src/hugorm/error.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | Note(T), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/hugorm/source.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn new(path: String) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_lexeme` [INFO] [stderr] --> src/hugorm/lexer/token.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn get_lexeme(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Char` [INFO] [stderr] --> src/hugorm/parser/ast.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | Char(char), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect_type` [INFO] [stderr] --> src/hugorm/parser/parser.rs:606:5 [INFO] [stderr] | [INFO] [stderr] 606 | fn expect_type(&self, token_type: TokenType) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect_lexeme` [INFO] [stderr] --> src/hugorm/parser/parser.rs:621:5 [INFO] [stderr] | [INFO] [stderr] 621 | fn expect_lexeme(&self, lexeme: &str) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Set` [INFO] [stderr] --> src/hugorm/vm/vm.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | Set = 0x03, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `JmpF` [INFO] [stderr] --> src/hugorm/vm/vm.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | JmpF = 0x04, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Jmp` [INFO] [stderr] --> src/hugorm/vm/vm.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | Jmp = 0x05, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Eq` [INFO] [stderr] --> src/hugorm/vm/vm.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | Eq = 0x06, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dump` [INFO] [stderr] --> src/hugorm/vm/vm.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Dump = 0x07, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DivI` [INFO] [stderr] --> src/hugorm/vm/vm.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | DivI = 0x16, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ConvIF` [INFO] [stderr] --> src/hugorm/vm/vm.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | ConvIF = 0x18, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ConvFI` [INFO] [stderr] --> src/hugorm/vm/vm.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | ConvFI = 0x19, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `frame_index` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | frame_index: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn from(table: HashMap) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `debug` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn debug(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn from(table: HashMap) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `assign_str` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `fetch_str` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn fetch_str(&self, name: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `current_frame` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn current_frame(&self) -> &Frame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `put_frame` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn put_frame(&mut self, frame: Frame) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_foreign_module` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn get_foreign_module(&self, id: &String) -> Option<&HashMap> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `import` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | pub fn import(&mut self, id: String, origin: HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Any` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | Any, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Id` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | Id(Rc), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Undeclared` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | Undeclared, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Immutable` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | Immutable, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Loop` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | Loop, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Nothing` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | Nothing, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `assign_str` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:409:5 [INFO] [stderr] | [INFO] [stderr] 409 | fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/hugorm/vm/vm.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_attributes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/hugorm/vm/compiler.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | compiler.compile(&ast); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:53:21 [INFO] [stderr] | [INFO] [stderr] 53 | vm.exec(bytecode.as_slice(), compiler.functions_i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/hugorm/parser/parser.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | self.new_line(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:156:21 [INFO] [stderr] | [INFO] [stderr] 156 | self.visit_statement(statement); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hugorm/parser/parser.rs:403:13 [INFO] [stderr] | [INFO] [stderr] 366 | ref current => { [INFO] [stderr] | ----------- matches any value [INFO] [stderr] ... [INFO] [stderr] 403 | _ => Ok(expression), [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hugorm/vm/compiler.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | _ => (), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | _ => { [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `item` [INFO] [stderr] --> src/hugorm/lexer/tokenizer.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | if let Some(item) = self.items.get(self.index + 1) { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_item` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `backup_index` [INFO] [stderr] --> src/hugorm/parser/parser.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | let backup_index = self.index; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_backup_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size_to` [INFO] [stderr] --> src/hugorm/vm/vm.rs:242:25 [INFO] [stderr] | [INFO] [stderr] 242 | let size_to = bytecode[ip as usize]; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_size_to` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `param` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:101:21 [INFO] [stderr] | [INFO] [stderr] 101 | for (i, param) in params.iter().enumerate() { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_param` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `params` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:139:36 [INFO] [stderr] | [INFO] [stderr] 139 | Function(ref name, ref params, ref body) => { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_params` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:359:60 [INFO] [stderr] | [INFO] [stderr] 359 | fn visit_variable(&mut self, variable: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_pos` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:390:50 [INFO] [stderr] | [INFO] [stderr] 390 | fn visit_ass(&mut self, ass: &StatementNode, pos: &Pos) -> Result<(), ()> { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_pos` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | let mut bytecode = compiler.bytecode; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | push!(value => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ---------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:137:21 [INFO] [stderr] | [INFO] [stderr] 137 | push!(&to_bytes!(a.wrapping_add(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | push!(&to_bytes!(a + b => f64) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:163:21 [INFO] [stderr] | [INFO] [stderr] 163 | push!(&to_bytes!(a.wrapping_sub(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:176:21 [INFO] [stderr] | [INFO] [stderr] 176 | push!(&to_bytes!(a - b => f64) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:189:21 [INFO] [stderr] | [INFO] [stderr] 189 | push!(&to_bytes!(a.wrapping_mul(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:202:21 [INFO] [stderr] | [INFO] [stderr] 202 | push!(&to_bytes!(a.wrapping_div(b) => i32) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:215:21 [INFO] [stderr] | [INFO] [stderr] 215 | push!(&to_bytes!(a / b => f64) => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ----------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:314:21 [INFO] [stderr] | [INFO] [stderr] 314 | push!(value => self.stack, [self.stack_top; size as u32]); [INFO] [stderr] | ---------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hugorm/vm/mod.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | let mut slice = &mut $target[$from as usize .. ($from + $size) as usize]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: src/hugorm/vm/vm.rs:320:21 [INFO] [stderr] | [INFO] [stderr] 320 | push!((&to_bytes!(ip => u32)) => self.calls, [self.calls_top; 4]); // address for the `ret` to return to [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Weird` [INFO] [stderr] --> src/hugorm/error.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | Weird(T), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Note` [INFO] [stderr] --> src/hugorm/error.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | Note(T), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/hugorm/source.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn new(path: String) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_lexeme` [INFO] [stderr] --> src/hugorm/lexer/token.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn get_lexeme(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Char` [INFO] [stderr] --> src/hugorm/parser/ast.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | Char(char), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect_type` [INFO] [stderr] --> src/hugorm/parser/parser.rs:606:5 [INFO] [stderr] | [INFO] [stderr] 606 | fn expect_type(&self, token_type: TokenType) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect_lexeme` [INFO] [stderr] --> src/hugorm/parser/parser.rs:621:5 [INFO] [stderr] | [INFO] [stderr] 621 | fn expect_lexeme(&self, lexeme: &str) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Set` [INFO] [stderr] --> src/hugorm/vm/vm.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | Set = 0x03, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `JmpF` [INFO] [stderr] --> src/hugorm/vm/vm.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | JmpF = 0x04, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Jmp` [INFO] [stderr] --> src/hugorm/vm/vm.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | Jmp = 0x05, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Eq` [INFO] [stderr] --> src/hugorm/vm/vm.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | Eq = 0x06, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dump` [INFO] [stderr] --> src/hugorm/vm/vm.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Dump = 0x07, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DivI` [INFO] [stderr] --> src/hugorm/vm/vm.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | DivI = 0x16, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ConvIF` [INFO] [stderr] --> src/hugorm/vm/vm.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | ConvIF = 0x18, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ConvFI` [INFO] [stderr] --> src/hugorm/vm/vm.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | ConvFI = 0x19, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `frame_index` [INFO] [stderr] --> src/hugorm/vm/compiler.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | frame_index: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn from(table: HashMap) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `debug` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn debug(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn from(table: HashMap) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `assign_str` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `fetch_str` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn fetch_str(&self, name: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `current_frame` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn current_frame(&self) -> &Frame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `put_frame` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn put_frame(&mut self, frame: Frame) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_foreign_module` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn get_foreign_module(&self, id: &String) -> Option<&HashMap> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `import` [INFO] [stderr] --> src/hugorm/visitor/symtab.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | pub fn import(&mut self, id: String, origin: HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Any` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | Any, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Id` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | Id(Rc), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Undeclared` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | Undeclared, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Immutable` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | Immutable, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Loop` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | Loop, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Nothing` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | Nothing, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `assign_str` [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:409:5 [INFO] [stderr] | [INFO] [stderr] 409 | fn assign_str(&mut self, name: &str, t: Type) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/hugorm/vm/vm.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_attributes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/hugorm/vm/compiler.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | compiler.compile(&ast); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:53:21 [INFO] [stderr] | [INFO] [stderr] 53 | vm.exec(bytecode.as_slice(), compiler.functions_i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/hugorm/parser/parser.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | self.new_line(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/hugorm/visitor/visitor.rs:156:21 [INFO] [stderr] | [INFO] [stderr] 156 | self.visit_statement(statement); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.48s [INFO] running `"docker" "inspect" "ec95235b2b81ce9e689d3c3f82df4cd52e0d1e230dc4ad8782430276e1cbe65d"` [INFO] running `"docker" "rm" "-f" "ec95235b2b81ce9e689d3c3f82df4cd52e0d1e230dc4ad8782430276e1cbe65d"` [INFO] [stdout] ec95235b2b81ce9e689d3c3f82df4cd52e0d1e230dc4ad8782430276e1cbe65d