[INFO] cloning repository https://github.com/Gadersd/ic [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Gadersd/ic" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGadersd%2Fic", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGadersd%2Fic'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 56916fdce6b6931b72e0d5d9a28d9001cb9949ea [INFO] building Gadersd/ic against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGadersd%2Fic" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Gadersd/ic on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Gadersd/ic [INFO] finished tweaking git repo https://github.com/Gadersd/ic [INFO] tweaked toml for git repo https://github.com/Gadersd/ic written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Gadersd/ic already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ef927a73900b0e084609290220e95dd3df4acaf522448102d6c7a1b76b024649 [INFO] running `Command { std: "docker" "start" "-a" "ef927a73900b0e084609290220e95dd3df4acaf522448102d6c7a1b76b024649", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ef927a73900b0e084609290220e95dd3df4acaf522448102d6c7a1b76b024649", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ef927a73900b0e084609290220e95dd3df4acaf522448102d6c7a1b76b024649", kill_on_drop: false }` [INFO] [stdout] ef927a73900b0e084609290220e95dd3df4acaf522448102d6c7a1b76b024649 [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 -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8f9ca24456ebbd464ce5357d33c1e6bd288dcb2dcc7ec6259ff6978529ffeb4d [INFO] running `Command { std: "docker" "start" "-a" "8f9ca24456ebbd464ce5357d33c1e6bd288dcb2dcc7ec6259ff6978529ffeb4d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling ic v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the feature `inherent_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(inherent_associated_types)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #8995 for more information [INFO] [stdout] = note: `#[warn(incomplete_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/parser.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lexical::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/parser.rs:784:5 [INFO] [stdout] | [INFO] [stdout] 784 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alphanumeric` and `Duplicator` [INFO] [stdout] --> src/unrust/affine.rs:2:46 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::{self, Node, Constructor, Duplicator, Alphanumeric, Redex, Book}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Operator` [INFO] [stdout] --> src/unrust/affine.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> src/unrust/core.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/unrust/global.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/unrust/parse.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Book`, `Constructor`, `Duplicator`, `Node`, `Redex`, and `self` [INFO] [stdout] --> src/unrust/parse.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::parser::{self, Node, Constructor, Duplicator, Alphanumeric, Redex, Book}; [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/allocator.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 273 | / loop { [INFO] [stdout] 274 | | let id_range = self.allocator.read().unwrap().allocate_u64s_from_iter(xs.clone()); [INFO] [stdout] 275 | | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] 276 | | return (EntityId(start_id), EntityId(end_id)) [INFO] [stdout] ... | [INFO] [stdout] 281 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 282 | [INFO] [stdout] 283 | panic!(); [INFO] [stdout] | ^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:491:14 [INFO] [stdout] | [INFO] [stdout] 491 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:491:21 [INFO] [stdout] | [INFO] [stdout] 491 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `redex` [INFO] [stdout] --> src/runtime.rs:517:31 [INFO] [stdout] | [INFO] [stdout] 517 | fn reduce_void(&mut self, redex: Pair) -> Option<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_redex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_binary` [INFO] [stdout] --> src/runtime.rs:529:13 [INFO] [stdout] | [INFO] [stdout] 529 | let tag_binary = port_binary.get_tag(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> src/runtime.rs:603:13 [INFO] [stdout] | [INFO] [stdout] 603 | let tag = port_1.get_tag(); // tags should be the same [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:640:21 [INFO] [stdout] | [INFO] [stdout] 640 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_1` [INFO] [stdout] --> src/runtime.rs:642:14 [INFO] [stdout] | [INFO] [stdout] 642 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_2` [INFO] [stdout] --> src/runtime.rs:642:25 [INFO] [stdout] | [INFO] [stdout] 642 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:687:14 [INFO] [stdout] | [INFO] [stdout] 687 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:687:21 [INFO] [stdout] | [INFO] [stdout] 687 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_1` [INFO] [stdout] --> src/runtime.rs:689:14 [INFO] [stdout] | [INFO] [stdout] 689 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_2` [INFO] [stdout] --> src/runtime.rs:689:25 [INFO] [stdout] | [INFO] [stdout] 689 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_id` [INFO] [stdout] --> src/allocator.rs:151:27 [INFO] [stdout] | [INFO] [stdout] 151 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_id` [INFO] [stdout] --> src/allocator.rs:196:27 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_id` [INFO] [stdout] --> src/allocator.rs:196:37 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/lexical.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let mut k = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lexical.rs:142:66 [INFO] [stdout] | [INFO] [stdout] 142 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lexical.rs:146:66 [INFO] [stdout] | [INFO] [stdout] 146 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lexical.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | let mut k = 0; [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: `tag_2` [INFO] [stdout] --> src/numeric.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/numeric.rs:219:80 [INFO] [stdout] | [INFO] [stdout] 219 | Numeric::Sym(op) => 22u32 | (( Operator::iter().enumerate().find(|(i, o)| op == o).unwrap().0 as u32) << 5 ), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/affine.rs:67:100 [INFO] [stdout] | [INFO] [stdout] 67 | fn make_function_affine(function: Function, function_names: &BTreeSet, mut namer: &mut UniqueNamer) -> (Funct... [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unrust/core.rs:156:67 [INFO] [stdout] | [INFO] [stdout] 156 | let elements: Vec<_> = elements.into_iter().map(|(name, expr)| [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/unrust/core.rs:199:77 [INFO] [stdout] | [INFO] [stdout] 199 | ... let variant_idx = g_enum.elements.iter().enumerate().find(|(i, (name, _))| name == &enum_.struct_.name).map(|(i, _)| i).unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unrust/core.rs:203:59 [INFO] [stdout] | [INFO] [stdout] 203 | ... let elements = elements.into_iter().map(|(name, expr)| CoreExpression::from_expression(expr, namer, add_functions, functions, struc... [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/unrust/core.rs:379:28 [INFO] [stdout] | [INFO] [stdout] 379 | elems.sort_by_key(|(n, t)| order.iter().enumerate().find(|(_, no)| no == &n).map(|(i, _)| i).unwrap()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/global.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | let mut namer = UniqueNamer { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/global.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn to_core(mut self) -> GlobalProgram { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `undefined_vars` [INFO] [stdout] --> src/unrust/check.rs:64:26 [INFO] [stdout] | [INFO] [stdout] 64 | let (program, _, undefined_vars) = program.map_vars( [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_undefined_vars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/unrust/check.rs:189:27 [INFO] [stdout] | [INFO] [stdout] 189 | NativeNumber::F24(x) => Ok(()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut functions = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/unrust/parse.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | let (program, s) = Self::parse(text_cursor)?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut parameters = Vec::with_capacity(self.parameters.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/unrust/parse.rs:620:74 [INFO] [stdout] | [INFO] [stdout] 620 | let native_num = NativeNumber::try_from(num.s.as_str()).map_err(|e| ParseError::new(s.index, "Unable to parse number".into()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:776:13 [INFO] [stdout] | [INFO] [stdout] 776 | let mut statements = Vec::with_capacity(self.statements.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:853:13 [INFO] [stdout] | [INFO] [stdout] 853 | let mut elements = Vec::with_capacity(self.elements.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:945:13 [INFO] [stdout] | [INFO] [stdout] 945 | let mut parameters = Vec::with_capacity(self.parameters.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1033:13 [INFO] [stdout] | [INFO] [stdout] 1033 | let mut elements = Vec::with_capacity(self.elements.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field` [INFO] [stdout] --> src/unrust/parse.rs:1191:58 [INFO] [stdout] | [INFO] [stdout] 1191 | pub fn get_variant_field_index(&self, variant: &str, field: &str) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_field` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1226:13 [INFO] [stdout] | [INFO] [stdout] 1226 | let mut else_ifs = Vec::with_capacity(self.else_ifs.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1330:13 [INFO] [stdout] | [INFO] [stdout] 1330 | let mut arguments = Vec::with_capacity(self.arguments.len()); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/unrust/parse.rs:1468:53 [INFO] [stdout] | [INFO] [stdout] 1468 | let val = text.parse().map_err(|e| ParseError::new(s.index, "Unable to parse alphanumeric".into()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1489:13 [INFO] [stdout] | [INFO] [stdout] 1489 | let mut cases = Vec::with_capacity(self.cases.len()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1579:13 [INFO] [stdout] | [INFO] [stdout] 1579 | let mut cases = Vec::with_capacity(self.cases.len()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `last_token` is assigned to, but never used [INFO] [stdout] --> src/unrust/lexical.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | let mut last_token = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_last_token` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/unrust/lexical.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 231 | let mut k = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `last_token` is never read [INFO] [stdout] --> src/unrust/lexical.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | last_token = Some(token.clone()); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/unrust/lexical.rs:238:66 [INFO] [stdout] | [INFO] [stdout] 238 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/lexical.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | let mut k = 0; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_dup` is never used [INFO] [stdout] --> src/parser.rs:622:8 [INFO] [stdout] | [INFO] [stdout] 621 | impl Duplicator { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 622 | fn has_dup(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_value` is never used [INFO] [stdout] --> src/parser.rs:744:8 [INFO] [stdout] | [INFO] [stdout] 722 | impl Numeric { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 744 | fn to_value(&self) -> Value { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `operator_iter` is never used [INFO] [stdout] --> src/unrust/lexical.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | fn operator_iter() -> impl Iterator + Clone { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `call` should have an upper case name [INFO] [stdout] --> src/runtime.rs:417:15 [INFO] [stdout] | [INFO] [stdout] 417 | const call: u8 = 0; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CALL` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `void` should have an upper case name [INFO] [stdout] --> src/runtime.rs:418:15 [INFO] [stdout] | [INFO] [stdout] 418 | const void: u8 = 1; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `VOID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `erase` should have an upper case name [INFO] [stdout] --> src/runtime.rs:419:15 [INFO] [stdout] | [INFO] [stdout] 419 | const erase: u8 = 2; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `ERASE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `commute` should have an upper case name [INFO] [stdout] --> src/runtime.rs:420:15 [INFO] [stdout] | [INFO] [stdout] 420 | const commute: u8 = 3; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `COMMUTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `annihilate` should have an upper case name [INFO] [stdout] --> src/runtime.rs:421:15 [INFO] [stdout] | [INFO] [stdout] 421 | const annihilate: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ANNIHILATE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `operator` should have an upper case name [INFO] [stdout] --> src/runtime.rs:422:15 [INFO] [stdout] | [INFO] [stdout] 422 | const operator: u8 = 5; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `OPERATOR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `switch` should have an upper case name [INFO] [stdout] --> src/runtime.rs:423:15 [INFO] [stdout] | [INFO] [stdout] 423 | const switch: u8 = 6; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `SWITCH` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `link` should have an upper case name [INFO] [stdout] --> src/runtime.rs:424:15 [INFO] [stdout] | [INFO] [stdout] 424 | const link: u8 = 7; // I think this is impossible [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `LINK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `dispatch_table` should have an upper case name [INFO] [stdout] --> src/runtime.rs:426:15 [INFO] [stdout] | [INFO] [stdout] 426 | const dispatch_table: [[u8; 8]; 8] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `DISPATCH_TABLE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `call` should have an upper case name [INFO] [stdout] --> src/runtime.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | call => self.reduce_call(redex)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CALL` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `void` should have an upper case name [INFO] [stdout] --> src/runtime.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | void => self.reduce_void(redex)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `VOID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `erase` should have an upper case name [INFO] [stdout] --> src/runtime.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | erase => self.reduce_erase(redex)?, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `ERASE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `commute` should have an upper case name [INFO] [stdout] --> src/runtime.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | commute => self.reduce_commute(redex)?, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `COMMUTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `annihilate` should have an upper case name [INFO] [stdout] --> src/runtime.rs:447:13 [INFO] [stdout] | [INFO] [stdout] 447 | annihilate => self.reduce_annihilate(redex)?, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ANNIHILATE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `operator` should have an upper case name [INFO] [stdout] --> src/runtime.rs:448:13 [INFO] [stdout] | [INFO] [stdout] 448 | operator => self.reduce_operator(redex)?, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `OPERATOR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `switch` should have an upper case name [INFO] [stdout] --> src/runtime.rs:449:13 [INFO] [stdout] | [INFO] [stdout] 449 | switch => self.reduce_switch(redex)?, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `SWITCH` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `link` should have an upper case name [INFO] [stdout] --> src/runtime.rs:450:13 [INFO] [stdout] | [INFO] [stdout] 450 | link => self.link(port_1, port_2)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `LINK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_u24` should have an upper case name [INFO] [stdout] --> src/parser.rs:849:11 [INFO] [stdout] | [INFO] [stdout] 849 | const max_u24: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_U24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_i24` should have an upper case name [INFO] [stdout] --> src/parser.rs:860:11 [INFO] [stdout] | [INFO] [stdout] 860 | const max_i24: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min_i24` should have an upper case name [INFO] [stdout] --> src/parser.rs:861:11 [INFO] [stdout] | [INFO] [stdout] 861 | const min_i24: i32 = -(1 << 23); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MIN_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:173:19 [INFO] [stdout] | [INFO] [stdout] 173 | const max: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MAX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/unrust/check.rs:174:16 [INFO] [stdout] | [INFO] [stdout] 174 | if x >= 0 && x <= max { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:181:19 [INFO] [stdout] | [INFO] [stdout] 181 | const max: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MAX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:182:19 [INFO] [stdout] | [INFO] [stdout] 182 | const min: i32 = -(1 << 23); [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MIN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_u24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:703:11 [INFO] [stdout] | [INFO] [stdout] 703 | const max_u24: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_U24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_i24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:714:11 [INFO] [stdout] | [INFO] [stdout] 714 | const max_i24: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min_i24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:715:11 [INFO] [stdout] | [INFO] [stdout] 715 | const min_i24: i32 = -max_i24; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MIN_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary1` [INFO] [stdout] --> src/main.rs:163:27 [INFO] [stdout] | [INFO] [stdout] 163 | (Either::Left(nullary1), Either::Left(nullary2)) => {self.handle_nullary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary2` [INFO] [stdout] --> src/main.rs:163:51 [INFO] [stdout] | [INFO] [stdout] 163 | (Either::Left(nullary1), Either::Left(nullary2)) => {self.handle_nullary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary` [INFO] [stdout] --> src/main.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | (Either::Left(nullary), Either::Right(binary)) => {self.handle_nullary_binary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary` [INFO] [stdout] --> src/main.rs:164:51 [INFO] [stdout] | [INFO] [stdout] 164 | (Either::Left(nullary), Either::Right(binary)) => {self.handle_nullary_binary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary` [INFO] [stdout] --> src/main.rs:165:28 [INFO] [stdout] | [INFO] [stdout] 165 | (Either::Right(binary), Either::Left(nullary)) => {self.handle_nullary_binary_interaction(port_id2, port_id1);}, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary` [INFO] [stdout] --> src/main.rs:165:50 [INFO] [stdout] | [INFO] [stdout] 165 | (Either::Right(binary), Either::Left(nullary)) => {self.handle_nullary_binary_interaction(port_id2, port_id1);}, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary1` [INFO] [stdout] --> src/main.rs:166:28 [INFO] [stdout] | [INFO] [stdout] 166 | (Either::Right(binary1), Either::Right(binary2)) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary2` [INFO] [stdout] --> src/main.rs:166:52 [INFO] [stdout] | [INFO] [stdout] 166 | (Either::Right(binary1), Either::Right(binary2)) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PortID` is never constructed [INFO] [stdout] --> src/main.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct PortID { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_primary` is never used [INFO] [stdout] --> src/main.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl PortID { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 8 | pub fn is_primary(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connection` is never constructed [INFO] [stdout] --> src/main.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct Connection { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Nullary` is never constructed [INFO] [stdout] --> src/main.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | struct Nullary { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Binary` is never constructed [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | struct Binary { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Either` is never used [INFO] [stdout] --> src/main.rs:30:6 [INFO] [stdout] | [INFO] [stdout] 30 | enum Either { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Combinator` is never used [INFO] [stdout] --> src/main.rs:36:6 [INFO] [stdout] | [INFO] [stdout] 36 | enum Combinator { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_inner`, `get_inner_mut`, `num_ports`, `get_connection`, and `get_connection_mut` are never used [INFO] [stdout] --> src/main.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl Combinator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 48 | pub fn get_inner(&self) -> Either<&Nullary, &Binary> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn get_inner_mut(&mut self) -> Either<&mut Nullary, &mut Binary> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn num_ports(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_connection(&self, port: u8) -> Option<&Connection> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn get_connection_mut(&mut self, port: u8) -> Option<&mut Connection> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ICRuntime` is never constructed [INFO] [stdout] --> src/main.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | struct ICRuntime { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/main.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl ICRuntime { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 134 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn handle_interaction(&mut self) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn handle_nullary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | fn handle_nullary_binary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | fn handle_different_binary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 361 | fn handle_same_binary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn add_combinator(&mut self, combinator: Combinator) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | pub fn wire_free_ports(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 457 | pub fn is_port_free(&self, id: PortID) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 464 | pub fn get_connection(&self, id: PortID) -> Option<&Connection> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EntityId` is never constructed [INFO] [stdout] --> src/main.rs:477:8 [INFO] [stdout] | [INFO] [stdout] 477 | struct EntityId(usize); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EntityStore` is never constructed [INFO] [stdout] --> src/main.rs:479:8 [INFO] [stdout] | [INFO] [stdout] 479 | struct EntityStore { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_entity`, `get_entity_mut`, `add_entity`, `remove_entity`, and `is_entity_free` are never used [INFO] [stdout] --> src/main.rs:485:12 [INFO] [stdout] | [INFO] [stdout] 484 | impl EntityStore { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 485 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 492 | pub fn get_entity(&self, id: EntityId) -> Option<&T> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 496 | pub fn get_entity_mut(&mut self, id: EntityId) -> Option<&mut T> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 500 | pub fn add_entity(&mut self, x: T) -> EntityId { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 511 | pub fn remove_entity(&mut self, id: EntityId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 521 | pub fn is_entity_free(&self, id: EntityId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.65s [INFO] running `Command { std: "docker" "inspect" "8f9ca24456ebbd464ce5357d33c1e6bd288dcb2dcc7ec6259ff6978529ffeb4d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f9ca24456ebbd464ce5357d33c1e6bd288dcb2dcc7ec6259ff6978529ffeb4d", kill_on_drop: false }` [INFO] [stdout] 8f9ca24456ebbd464ce5357d33c1e6bd288dcb2dcc7ec6259ff6978529ffeb4d [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 -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c6da6ab39bbe77bab2bf573772caf8329bb1caac76c66aab9288ba7a12ee4854 [INFO] running `Command { std: "docker" "start" "-a" "c6da6ab39bbe77bab2bf573772caf8329bb1caac76c66aab9288ba7a12ee4854", kill_on_drop: false }` [INFO] [stdout] warning: the feature `inherent_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(inherent_associated_types)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #8995 for more information [INFO] [stdout] = note: `#[warn(incomplete_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/parser.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lexical::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/parser.rs:784:5 [INFO] [stdout] | [INFO] [stdout] 784 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alphanumeric` and `Duplicator` [INFO] [stdout] --> src/unrust/affine.rs:2:46 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::{self, Node, Constructor, Duplicator, Alphanumeric, Redex, Book}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Operator` [INFO] [stdout] --> src/unrust/affine.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> src/unrust/core.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/unrust/global.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/unrust/parse.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Book`, `Constructor`, `Duplicator`, `Node`, `Redex`, and `self` [INFO] [stdout] --> src/unrust/parse.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::parser::{self, Node, Constructor, Duplicator, Alphanumeric, Redex, Book}; [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/allocator.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 273 | / loop { [INFO] [stdout] 274 | | let id_range = self.allocator.read().unwrap().allocate_u64s_from_iter(xs.clone()); [INFO] [stdout] 275 | | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] 276 | | return (EntityId(start_id), EntityId(end_id)) [INFO] [stdout] ... | [INFO] [stdout] 281 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 282 | [INFO] [stdout] 283 | panic!(); [INFO] [stdout] | ^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:491:14 [INFO] [stdout] | [INFO] [stdout] 491 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:491:21 [INFO] [stdout] | [INFO] [stdout] 491 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `redex` [INFO] [stdout] --> src/runtime.rs:517:31 [INFO] [stdout] | [INFO] [stdout] 517 | fn reduce_void(&mut self, redex: Pair) -> Option<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_redex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_binary` [INFO] [stdout] --> src/runtime.rs:529:13 [INFO] [stdout] | [INFO] [stdout] 529 | let tag_binary = port_binary.get_tag(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> src/runtime.rs:603:13 [INFO] [stdout] | [INFO] [stdout] 603 | let tag = port_1.get_tag(); // tags should be the same [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:640:21 [INFO] [stdout] | [INFO] [stdout] 640 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_1` [INFO] [stdout] --> src/runtime.rs:642:14 [INFO] [stdout] | [INFO] [stdout] 642 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_2` [INFO] [stdout] --> src/runtime.rs:642:25 [INFO] [stdout] | [INFO] [stdout] 642 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:687:14 [INFO] [stdout] | [INFO] [stdout] 687 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:687:21 [INFO] [stdout] | [INFO] [stdout] 687 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_1` [INFO] [stdout] --> src/runtime.rs:689:14 [INFO] [stdout] | [INFO] [stdout] 689 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_2` [INFO] [stdout] --> src/runtime.rs:689:25 [INFO] [stdout] | [INFO] [stdout] 689 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_id` [INFO] [stdout] --> src/allocator.rs:151:27 [INFO] [stdout] | [INFO] [stdout] 151 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_id` [INFO] [stdout] --> src/allocator.rs:196:27 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_id` [INFO] [stdout] --> src/allocator.rs:196:37 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/lexical.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let mut k = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lexical.rs:142:66 [INFO] [stdout] | [INFO] [stdout] 142 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lexical.rs:146:66 [INFO] [stdout] | [INFO] [stdout] 146 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lexical.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | let mut k = 0; [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: `tag_2` [INFO] [stdout] --> src/numeric.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/numeric.rs:219:80 [INFO] [stdout] | [INFO] [stdout] 219 | Numeric::Sym(op) => 22u32 | (( Operator::iter().enumerate().find(|(i, o)| op == o).unwrap().0 as u32) << 5 ), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/affine.rs:67:100 [INFO] [stdout] | [INFO] [stdout] 67 | fn make_function_affine(function: Function, function_names: &BTreeSet, mut namer: &mut UniqueNamer) -> (Funct... [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unrust/core.rs:156:67 [INFO] [stdout] | [INFO] [stdout] 156 | let elements: Vec<_> = elements.into_iter().map(|(name, expr)| [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/unrust/core.rs:199:77 [INFO] [stdout] | [INFO] [stdout] 199 | ... let variant_idx = g_enum.elements.iter().enumerate().find(|(i, (name, _))| name == &enum_.struct_.name).map(|(i, _)| i).unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unrust/core.rs:203:59 [INFO] [stdout] | [INFO] [stdout] 203 | ... let elements = elements.into_iter().map(|(name, expr)| CoreExpression::from_expression(expr, namer, add_functions, functions, struc... [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/unrust/core.rs:379:28 [INFO] [stdout] | [INFO] [stdout] 379 | elems.sort_by_key(|(n, t)| order.iter().enumerate().find(|(_, no)| no == &n).map(|(i, _)| i).unwrap()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/global.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | let mut namer = UniqueNamer { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/global.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn to_core(mut self) -> GlobalProgram { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `undefined_vars` [INFO] [stdout] --> src/unrust/check.rs:64:26 [INFO] [stdout] | [INFO] [stdout] 64 | let (program, _, undefined_vars) = program.map_vars( [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_undefined_vars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/unrust/check.rs:189:27 [INFO] [stdout] | [INFO] [stdout] 189 | NativeNumber::F24(x) => Ok(()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut functions = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/unrust/parse.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | let (program, s) = Self::parse(text_cursor)?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut parameters = Vec::with_capacity(self.parameters.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/unrust/parse.rs:620:74 [INFO] [stdout] | [INFO] [stdout] 620 | let native_num = NativeNumber::try_from(num.s.as_str()).map_err(|e| ParseError::new(s.index, "Unable to parse number".into()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ic v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:776:13 [INFO] [stdout] | [INFO] [stdout] 776 | let mut statements = Vec::with_capacity(self.statements.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:853:13 [INFO] [stdout] | [INFO] [stdout] 853 | let mut elements = Vec::with_capacity(self.elements.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:945:13 [INFO] [stdout] | [INFO] [stdout] 945 | let mut parameters = Vec::with_capacity(self.parameters.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1033:13 [INFO] [stdout] | [INFO] [stdout] 1033 | let mut elements = Vec::with_capacity(self.elements.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field` [INFO] [stdout] --> src/unrust/parse.rs:1191:58 [INFO] [stdout] | [INFO] [stdout] 1191 | pub fn get_variant_field_index(&self, variant: &str, field: &str) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_field` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1226:13 [INFO] [stdout] | [INFO] [stdout] 1226 | let mut else_ifs = Vec::with_capacity(self.else_ifs.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1330:13 [INFO] [stdout] | [INFO] [stdout] 1330 | let mut arguments = Vec::with_capacity(self.arguments.len()); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/unrust/parse.rs:1468:53 [INFO] [stdout] | [INFO] [stdout] 1468 | let val = text.parse().map_err(|e| ParseError::new(s.index, "Unable to parse alphanumeric".into()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1489:13 [INFO] [stdout] | [INFO] [stdout] 1489 | let mut cases = Vec::with_capacity(self.cases.len()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1579:13 [INFO] [stdout] | [INFO] [stdout] 1579 | let mut cases = Vec::with_capacity(self.cases.len()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `last_token` is assigned to, but never used [INFO] [stdout] --> src/unrust/lexical.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | let mut last_token = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_last_token` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/unrust/lexical.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 231 | let mut k = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `last_token` is never read [INFO] [stdout] --> src/unrust/lexical.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | last_token = Some(token.clone()); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/unrust/lexical.rs:238:66 [INFO] [stdout] | [INFO] [stdout] 238 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/lexical.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | let mut k = 0; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_dup` is never used [INFO] [stdout] --> src/parser.rs:622:8 [INFO] [stdout] | [INFO] [stdout] 621 | impl Duplicator { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 622 | fn has_dup(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_value` is never used [INFO] [stdout] --> src/parser.rs:744:8 [INFO] [stdout] | [INFO] [stdout] 722 | impl Numeric { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 744 | fn to_value(&self) -> Value { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `operator_iter` is never used [INFO] [stdout] --> src/unrust/lexical.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | fn operator_iter() -> impl Iterator + Clone { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `call` should have an upper case name [INFO] [stdout] --> src/runtime.rs:417:15 [INFO] [stdout] | [INFO] [stdout] 417 | const call: u8 = 0; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CALL` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `void` should have an upper case name [INFO] [stdout] --> src/runtime.rs:418:15 [INFO] [stdout] | [INFO] [stdout] 418 | const void: u8 = 1; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `VOID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `erase` should have an upper case name [INFO] [stdout] --> src/runtime.rs:419:15 [INFO] [stdout] | [INFO] [stdout] 419 | const erase: u8 = 2; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `ERASE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `commute` should have an upper case name [INFO] [stdout] --> src/runtime.rs:420:15 [INFO] [stdout] | [INFO] [stdout] 420 | const commute: u8 = 3; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `COMMUTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `annihilate` should have an upper case name [INFO] [stdout] --> src/runtime.rs:421:15 [INFO] [stdout] | [INFO] [stdout] 421 | const annihilate: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ANNIHILATE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `operator` should have an upper case name [INFO] [stdout] --> src/runtime.rs:422:15 [INFO] [stdout] | [INFO] [stdout] 422 | const operator: u8 = 5; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `OPERATOR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `switch` should have an upper case name [INFO] [stdout] --> src/runtime.rs:423:15 [INFO] [stdout] | [INFO] [stdout] 423 | const switch: u8 = 6; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `SWITCH` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `link` should have an upper case name [INFO] [stdout] --> src/runtime.rs:424:15 [INFO] [stdout] | [INFO] [stdout] 424 | const link: u8 = 7; // I think this is impossible [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `LINK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `dispatch_table` should have an upper case name [INFO] [stdout] --> src/runtime.rs:426:15 [INFO] [stdout] | [INFO] [stdout] 426 | const dispatch_table: [[u8; 8]; 8] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `DISPATCH_TABLE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `call` should have an upper case name [INFO] [stdout] --> src/runtime.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | call => self.reduce_call(redex)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CALL` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `void` should have an upper case name [INFO] [stdout] --> src/runtime.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | void => self.reduce_void(redex)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `VOID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `erase` should have an upper case name [INFO] [stdout] --> src/runtime.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | erase => self.reduce_erase(redex)?, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `ERASE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `commute` should have an upper case name [INFO] [stdout] --> src/runtime.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | commute => self.reduce_commute(redex)?, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `COMMUTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `annihilate` should have an upper case name [INFO] [stdout] --> src/runtime.rs:447:13 [INFO] [stdout] | [INFO] [stdout] 447 | annihilate => self.reduce_annihilate(redex)?, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ANNIHILATE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `operator` should have an upper case name [INFO] [stdout] --> src/runtime.rs:448:13 [INFO] [stdout] | [INFO] [stdout] 448 | operator => self.reduce_operator(redex)?, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `OPERATOR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `switch` should have an upper case name [INFO] [stdout] --> src/runtime.rs:449:13 [INFO] [stdout] | [INFO] [stdout] 449 | switch => self.reduce_switch(redex)?, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `SWITCH` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `link` should have an upper case name [INFO] [stdout] --> src/runtime.rs:450:13 [INFO] [stdout] | [INFO] [stdout] 450 | link => self.link(port_1, port_2)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `LINK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_u24` should have an upper case name [INFO] [stdout] --> src/parser.rs:849:11 [INFO] [stdout] | [INFO] [stdout] 849 | const max_u24: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_U24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_i24` should have an upper case name [INFO] [stdout] --> src/parser.rs:860:11 [INFO] [stdout] | [INFO] [stdout] 860 | const max_i24: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min_i24` should have an upper case name [INFO] [stdout] --> src/parser.rs:861:11 [INFO] [stdout] | [INFO] [stdout] 861 | const min_i24: i32 = -(1 << 23); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MIN_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:173:19 [INFO] [stdout] | [INFO] [stdout] 173 | const max: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MAX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/unrust/check.rs:174:16 [INFO] [stdout] | [INFO] [stdout] 174 | if x >= 0 && x <= max { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:181:19 [INFO] [stdout] | [INFO] [stdout] 181 | const max: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MAX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:182:19 [INFO] [stdout] | [INFO] [stdout] 182 | const min: i32 = -(1 << 23); [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MIN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_u24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:703:11 [INFO] [stdout] | [INFO] [stdout] 703 | const max_u24: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_U24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_i24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:714:11 [INFO] [stdout] | [INFO] [stdout] 714 | const max_i24: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min_i24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:715:11 [INFO] [stdout] | [INFO] [stdout] 715 | const min_i24: i32 = -max_i24; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MIN_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary1` [INFO] [stdout] --> src/main.rs:163:27 [INFO] [stdout] | [INFO] [stdout] 163 | (Either::Left(nullary1), Either::Left(nullary2)) => {self.handle_nullary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary2` [INFO] [stdout] --> src/main.rs:163:51 [INFO] [stdout] | [INFO] [stdout] 163 | (Either::Left(nullary1), Either::Left(nullary2)) => {self.handle_nullary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary` [INFO] [stdout] --> src/main.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | (Either::Left(nullary), Either::Right(binary)) => {self.handle_nullary_binary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary` [INFO] [stdout] --> src/main.rs:164:51 [INFO] [stdout] | [INFO] [stdout] 164 | (Either::Left(nullary), Either::Right(binary)) => {self.handle_nullary_binary_interaction(port_id1, port_id2);}, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary` [INFO] [stdout] --> src/main.rs:165:28 [INFO] [stdout] | [INFO] [stdout] 165 | (Either::Right(binary), Either::Left(nullary)) => {self.handle_nullary_binary_interaction(port_id2, port_id1);}, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nullary` [INFO] [stdout] --> src/main.rs:165:50 [INFO] [stdout] | [INFO] [stdout] 165 | (Either::Right(binary), Either::Left(nullary)) => {self.handle_nullary_binary_interaction(port_id2, port_id1);}, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary1` [INFO] [stdout] --> src/main.rs:166:28 [INFO] [stdout] | [INFO] [stdout] 166 | (Either::Right(binary1), Either::Right(binary2)) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binary2` [INFO] [stdout] --> src/main.rs:166:52 [INFO] [stdout] | [INFO] [stdout] 166 | (Either::Right(binary1), Either::Right(binary2)) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PortID` is never constructed [INFO] [stdout] --> src/main.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct PortID { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_primary` is never used [INFO] [stdout] --> src/main.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl PortID { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 8 | pub fn is_primary(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connection` is never constructed [INFO] [stdout] --> src/main.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct Connection { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Nullary` is never constructed [INFO] [stdout] --> src/main.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | struct Nullary { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Binary` is never constructed [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | struct Binary { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Either` is never used [INFO] [stdout] --> src/main.rs:30:6 [INFO] [stdout] | [INFO] [stdout] 30 | enum Either { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Combinator` is never used [INFO] [stdout] --> src/main.rs:36:6 [INFO] [stdout] | [INFO] [stdout] 36 | enum Combinator { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_inner`, `get_inner_mut`, `num_ports`, `get_connection`, and `get_connection_mut` are never used [INFO] [stdout] --> src/main.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl Combinator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 48 | pub fn get_inner(&self) -> Either<&Nullary, &Binary> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn get_inner_mut(&mut self) -> Either<&mut Nullary, &mut Binary> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn num_ports(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_connection(&self, port: u8) -> Option<&Connection> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn get_connection_mut(&mut self, port: u8) -> Option<&mut Connection> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ICRuntime` is never constructed [INFO] [stdout] --> src/main.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | struct ICRuntime { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/main.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl ICRuntime { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 134 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn handle_interaction(&mut self) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn handle_nullary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | fn handle_nullary_binary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | fn handle_different_binary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 361 | fn handle_same_binary_interaction(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn add_combinator(&mut self, combinator: Combinator) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | pub fn wire_free_ports(&mut self, port_id1: PortID, port_id2: PortID) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 457 | pub fn is_port_free(&self, id: PortID) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 464 | pub fn get_connection(&self, id: PortID) -> Option<&Connection> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EntityId` is never constructed [INFO] [stdout] --> src/main.rs:477:8 [INFO] [stdout] | [INFO] [stdout] 477 | struct EntityId(usize); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EntityStore` is never constructed [INFO] [stdout] --> src/main.rs:479:8 [INFO] [stdout] | [INFO] [stdout] 479 | struct EntityStore { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_entity`, `get_entity_mut`, `add_entity`, `remove_entity`, and `is_entity_free` are never used [INFO] [stdout] --> src/main.rs:485:12 [INFO] [stdout] | [INFO] [stdout] 484 | impl EntityStore { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 485 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 492 | pub fn get_entity(&self, id: EntityId) -> Option<&T> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 496 | pub fn get_entity_mut(&mut self, id: EntityId) -> Option<&mut T> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 500 | pub fn add_entity(&mut self, x: T) -> EntityId { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 511 | pub fn remove_entity(&mut self, id: EntityId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 521 | pub fn is_entity_free(&self, id: EntityId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `inherent_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(inherent_associated_types)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #8995 for more information [INFO] [stdout] = note: `#[warn(incomplete_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/parser.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lexical::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/parser.rs:784:5 [INFO] [stdout] | [INFO] [stdout] 784 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alphanumeric` and `Duplicator` [INFO] [stdout] --> src/unrust/affine.rs:2:46 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::{self, Node, Constructor, Duplicator, Alphanumeric, Redex, Book}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Operator` [INFO] [stdout] --> src/unrust/affine.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> src/unrust/core.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/unrust/global.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/unrust/parse.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::numeric::{self, Operator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Book`, `Constructor`, `Duplicator`, `Node`, `Redex`, and `self` [INFO] [stdout] --> src/unrust/parse.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::parser::{self, Node, Constructor, Duplicator, Alphanumeric, Redex, Book}; [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::unrust::lexical::*` [INFO] [stdout] --> src/unrust/test.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::unrust::lexical::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/allocator.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 273 | / loop { [INFO] [stdout] 274 | | let id_range = self.allocator.read().unwrap().allocate_u64s_from_iter(xs.clone()); [INFO] [stdout] 275 | | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] 276 | | return (EntityId(start_id), EntityId(end_id)) [INFO] [stdout] ... | [INFO] [stdout] 281 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 282 | [INFO] [stdout] 283 | panic!(); [INFO] [stdout] | ^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:491:14 [INFO] [stdout] | [INFO] [stdout] 491 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:491:21 [INFO] [stdout] | [INFO] [stdout] 491 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `redex` [INFO] [stdout] --> src/runtime.rs:517:31 [INFO] [stdout] | [INFO] [stdout] 517 | fn reduce_void(&mut self, redex: Pair) -> Option<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_redex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_binary` [INFO] [stdout] --> src/runtime.rs:529:13 [INFO] [stdout] | [INFO] [stdout] 529 | let tag_binary = port_binary.get_tag(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_binary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> src/runtime.rs:603:13 [INFO] [stdout] | [INFO] [stdout] 603 | let tag = port_1.get_tag(); // tags should be the same [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:640:21 [INFO] [stdout] | [INFO] [stdout] 640 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_1` [INFO] [stdout] --> src/runtime.rs:642:14 [INFO] [stdout] | [INFO] [stdout] 642 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_2` [INFO] [stdout] --> src/runtime.rs:642:25 [INFO] [stdout] | [INFO] [stdout] 642 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_1` [INFO] [stdout] --> src/runtime.rs:687:14 [INFO] [stdout] | [INFO] [stdout] 687 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag_2` [INFO] [stdout] --> src/runtime.rs:687:21 [INFO] [stdout] | [INFO] [stdout] 687 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_1` [INFO] [stdout] --> src/runtime.rs:689:14 [INFO] [stdout] | [INFO] [stdout] 689 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address_2` [INFO] [stdout] --> src/runtime.rs:689:25 [INFO] [stdout] | [INFO] [stdout] 689 | let (address_1, address_2) = (port_1.get_value(), port_2.get_value()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_id` [INFO] [stdout] --> src/allocator.rs:151:27 [INFO] [stdout] | [INFO] [stdout] 151 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start_id` [INFO] [stdout] --> src/allocator.rs:196:27 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_id` [INFO] [stdout] --> src/allocator.rs:196:37 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some( (start_id, end_id) ) = id_range { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/lexical.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let mut k = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lexical.rs:142:66 [INFO] [stdout] | [INFO] [stdout] 142 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lexical.rs:146:66 [INFO] [stdout] | [INFO] [stdout] 146 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lexical.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | let mut k = 0; [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: `tag_2` [INFO] [stdout] --> src/numeric.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | let (tag_1, tag_2) = (port_1.get_tag(), port_2.get_tag()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tag_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/numeric.rs:219:80 [INFO] [stdout] | [INFO] [stdout] 219 | Numeric::Sym(op) => 22u32 | (( Operator::iter().enumerate().find(|(i, o)| op == o).unwrap().0 as u32) << 5 ), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/affine.rs:67:100 [INFO] [stdout] | [INFO] [stdout] 67 | fn make_function_affine(function: Function, function_names: &BTreeSet, mut namer: &mut UniqueNamer) -> (Funct... [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unrust/core.rs:156:67 [INFO] [stdout] | [INFO] [stdout] 156 | let elements: Vec<_> = elements.into_iter().map(|(name, expr)| [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/unrust/core.rs:199:77 [INFO] [stdout] | [INFO] [stdout] 199 | ... let variant_idx = g_enum.elements.iter().enumerate().find(|(i, (name, _))| name == &enum_.struct_.name).map(|(i, _)| i).unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unrust/core.rs:203:59 [INFO] [stdout] | [INFO] [stdout] 203 | ... let elements = elements.into_iter().map(|(name, expr)| CoreExpression::from_expression(expr, namer, add_functions, functions, struc... [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/unrust/core.rs:379:28 [INFO] [stdout] | [INFO] [stdout] 379 | elems.sort_by_key(|(n, t)| order.iter().enumerate().find(|(_, no)| no == &n).map(|(i, _)| i).unwrap()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/global.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | let mut namer = UniqueNamer { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/global.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn to_core(mut self) -> GlobalProgram { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `undefined_vars` [INFO] [stdout] --> src/unrust/check.rs:64:26 [INFO] [stdout] | [INFO] [stdout] 64 | let (program, _, undefined_vars) = program.map_vars( [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_undefined_vars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/unrust/check.rs:189:27 [INFO] [stdout] | [INFO] [stdout] 189 | NativeNumber::F24(x) => Ok(()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut functions = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/unrust/parse.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | let (program, s) = Self::parse(text_cursor)?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut parameters = Vec::with_capacity(self.parameters.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/unrust/parse.rs:620:74 [INFO] [stdout] | [INFO] [stdout] 620 | let native_num = NativeNumber::try_from(num.s.as_str()).map_err(|e| ParseError::new(s.index, "Unable to parse number".into()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:776:13 [INFO] [stdout] | [INFO] [stdout] 776 | let mut statements = Vec::with_capacity(self.statements.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:853:13 [INFO] [stdout] | [INFO] [stdout] 853 | let mut elements = Vec::with_capacity(self.elements.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:945:13 [INFO] [stdout] | [INFO] [stdout] 945 | let mut parameters = Vec::with_capacity(self.parameters.len()); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1033:13 [INFO] [stdout] | [INFO] [stdout] 1033 | let mut elements = Vec::with_capacity(self.elements.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field` [INFO] [stdout] --> src/unrust/parse.rs:1191:58 [INFO] [stdout] | [INFO] [stdout] 1191 | pub fn get_variant_field_index(&self, variant: &str, field: &str) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_field` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1226:13 [INFO] [stdout] | [INFO] [stdout] 1226 | let mut else_ifs = Vec::with_capacity(self.else_ifs.len()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1330:13 [INFO] [stdout] | [INFO] [stdout] 1330 | let mut arguments = Vec::with_capacity(self.arguments.len()); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/unrust/parse.rs:1468:53 [INFO] [stdout] | [INFO] [stdout] 1468 | let val = text.parse().map_err(|e| ParseError::new(s.index, "Unable to parse alphanumeric".into()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1489:13 [INFO] [stdout] | [INFO] [stdout] 1489 | let mut cases = Vec::with_capacity(self.cases.len()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/parse.rs:1579:13 [INFO] [stdout] | [INFO] [stdout] 1579 | let mut cases = Vec::with_capacity(self.cases.len()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `last_token` is assigned to, but never used [INFO] [stdout] --> src/unrust/lexical.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | let mut last_token = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_last_token` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/unrust/lexical.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 231 | let mut k = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `last_token` is never read [INFO] [stdout] --> src/unrust/lexical.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | last_token = Some(token.clone()); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/unrust/lexical.rs:238:66 [INFO] [stdout] | [INFO] [stdout] 238 | parse_fixed_token(&s[i..], token.as_str()).map(|(s, e)| (token, e)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unrust/lexical.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | let mut k = 0; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_dup` is never used [INFO] [stdout] --> src/parser.rs:622:8 [INFO] [stdout] | [INFO] [stdout] 621 | impl Duplicator { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 622 | fn has_dup(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_value` is never used [INFO] [stdout] --> src/parser.rs:744:8 [INFO] [stdout] | [INFO] [stdout] 722 | impl Numeric { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 744 | fn to_value(&self) -> Value { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `operator_iter` is never used [INFO] [stdout] --> src/unrust/lexical.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | fn operator_iter() -> impl Iterator + Clone { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `call` should have an upper case name [INFO] [stdout] --> src/runtime.rs:417:15 [INFO] [stdout] | [INFO] [stdout] 417 | const call: u8 = 0; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CALL` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `void` should have an upper case name [INFO] [stdout] --> src/runtime.rs:418:15 [INFO] [stdout] | [INFO] [stdout] 418 | const void: u8 = 1; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `VOID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `erase` should have an upper case name [INFO] [stdout] --> src/runtime.rs:419:15 [INFO] [stdout] | [INFO] [stdout] 419 | const erase: u8 = 2; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `ERASE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `commute` should have an upper case name [INFO] [stdout] --> src/runtime.rs:420:15 [INFO] [stdout] | [INFO] [stdout] 420 | const commute: u8 = 3; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `COMMUTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `annihilate` should have an upper case name [INFO] [stdout] --> src/runtime.rs:421:15 [INFO] [stdout] | [INFO] [stdout] 421 | const annihilate: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ANNIHILATE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `operator` should have an upper case name [INFO] [stdout] --> src/runtime.rs:422:15 [INFO] [stdout] | [INFO] [stdout] 422 | const operator: u8 = 5; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `OPERATOR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `switch` should have an upper case name [INFO] [stdout] --> src/runtime.rs:423:15 [INFO] [stdout] | [INFO] [stdout] 423 | const switch: u8 = 6; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `SWITCH` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `link` should have an upper case name [INFO] [stdout] --> src/runtime.rs:424:15 [INFO] [stdout] | [INFO] [stdout] 424 | const link: u8 = 7; // I think this is impossible [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `LINK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `dispatch_table` should have an upper case name [INFO] [stdout] --> src/runtime.rs:426:15 [INFO] [stdout] | [INFO] [stdout] 426 | const dispatch_table: [[u8; 8]; 8] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `DISPATCH_TABLE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `call` should have an upper case name [INFO] [stdout] --> src/runtime.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | call => self.reduce_call(redex)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CALL` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `void` should have an upper case name [INFO] [stdout] --> src/runtime.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | void => self.reduce_void(redex)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `VOID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `erase` should have an upper case name [INFO] [stdout] --> src/runtime.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | erase => self.reduce_erase(redex)?, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `ERASE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `commute` should have an upper case name [INFO] [stdout] --> src/runtime.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | commute => self.reduce_commute(redex)?, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `COMMUTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `annihilate` should have an upper case name [INFO] [stdout] --> src/runtime.rs:447:13 [INFO] [stdout] | [INFO] [stdout] 447 | annihilate => self.reduce_annihilate(redex)?, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ANNIHILATE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `operator` should have an upper case name [INFO] [stdout] --> src/runtime.rs:448:13 [INFO] [stdout] | [INFO] [stdout] 448 | operator => self.reduce_operator(redex)?, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `OPERATOR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `switch` should have an upper case name [INFO] [stdout] --> src/runtime.rs:449:13 [INFO] [stdout] | [INFO] [stdout] 449 | switch => self.reduce_switch(redex)?, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `SWITCH` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `link` should have an upper case name [INFO] [stdout] --> src/runtime.rs:450:13 [INFO] [stdout] | [INFO] [stdout] 450 | link => self.link(port_1, port_2)?, [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `LINK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_u24` should have an upper case name [INFO] [stdout] --> src/parser.rs:849:11 [INFO] [stdout] | [INFO] [stdout] 849 | const max_u24: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_U24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_i24` should have an upper case name [INFO] [stdout] --> src/parser.rs:860:11 [INFO] [stdout] | [INFO] [stdout] 860 | const max_i24: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min_i24` should have an upper case name [INFO] [stdout] --> src/parser.rs:861:11 [INFO] [stdout] | [INFO] [stdout] 861 | const min_i24: i32 = -(1 << 23); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MIN_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:173:19 [INFO] [stdout] | [INFO] [stdout] 173 | const max: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MAX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/unrust/check.rs:174:16 [INFO] [stdout] | [INFO] [stdout] 174 | if x >= 0 && x <= max { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:181:19 [INFO] [stdout] | [INFO] [stdout] 181 | const max: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MAX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min` should have an upper case name [INFO] [stdout] --> src/unrust/check.rs:182:19 [INFO] [stdout] | [INFO] [stdout] 182 | const min: i32 = -(1 << 23); [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `MIN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_u24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:703:11 [INFO] [stdout] | [INFO] [stdout] 703 | const max_u24: u32 = 1 << 24 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_U24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `max_i24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:714:11 [INFO] [stdout] | [INFO] [stdout] 714 | const max_i24: i32 = 1 << 23 - 1; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MAX_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `min_i24` should have an upper case name [INFO] [stdout] --> src/unrust/parse.rs:715:11 [INFO] [stdout] | [INFO] [stdout] 715 | const min_i24: i32 = -max_i24; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `MIN_I24` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.88s [INFO] running `Command { std: "docker" "inspect" "c6da6ab39bbe77bab2bf573772caf8329bb1caac76c66aab9288ba7a12ee4854", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c6da6ab39bbe77bab2bf573772caf8329bb1caac76c66aab9288ba7a12ee4854", kill_on_drop: false }` [INFO] [stdout] c6da6ab39bbe77bab2bf573772caf8329bb1caac76c66aab9288ba7a12ee4854