[INFO] cloning repository https://github.com/jgbyrne/jann
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jgbyrne/jann" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjgbyrne%2Fjann", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjgbyrne%2Fjann'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fa34c444275a47af80d278cd92e52c828716c168
[INFO] checking jgbyrne/jann against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjgbyrne%2Fjann" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jgbyrne/jann
[INFO] finished tweaking git repo https://github.com/jgbyrne/jann
[INFO] tweaked toml for git repo https://github.com/jgbyrne/jann written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jgbyrne/jann on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jgbyrne/jann 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded constant_time_eq v0.1.3
[INFO] [stderr]   Downloaded redox_users v0.3.0
[INFO] [stderr]   Downloaded argon2rs v0.2.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 68d7a3c907a7d8b25f337aced9f6cd62163ad710fe0ad191f2897fe6c63cfc58
[INFO] running `Command { std: "docker" "start" "-a" "68d7a3c907a7d8b25f337aced9f6cd62163ad710fe0ad191f2897fe6c63cfc58", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "68d7a3c907a7d8b25f337aced9f6cd62163ad710fe0ad191f2897fe6c63cfc58", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68d7a3c907a7d8b25f337aced9f6cd62163ad710fe0ad191f2897fe6c63cfc58", kill_on_drop: false }`
[INFO] [stdout] 68d7a3c907a7d8b25f337aced9f6cd62163ad710fe0ad191f2897fe6c63cfc58
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e730ee750936ee67399c593c8a0ef077d9459d7b19ef715051ef2efc5ab33227
[INFO] running `Command { std: "docker" "start" "-a" "e730ee750936ee67399c593c8a0ef077d9459d7b19ef715051ef2efc5ab33227", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.60
[INFO] [stderr]     Checking same-file v1.0.2
[INFO] [stderr]     Checking walkdir v2.1.4
[INFO] [stderr]     Checking dirs-sys v0.3.4
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking jann v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util`
[INFO] [stdout]  --> src/com.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use util;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/com.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PL_TAG` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     PL_TAG(String, String),
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `PlTag`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PL_STAGE` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     PL_STAGE(String, String),
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `PlStage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DO_STDIN` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     DO_STDIN { switches: Switches },
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `DoStdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DO_FILE` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     DO_FILE { switches: Switches, file: String },
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `DoFile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParseTreeNode`, `ParseTree`, `TokenType`, and `Token`
[INFO] [stdout]  --> src/invoke.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use parse::{ParseTree, ParseTreeNode, PTNodeType, Token, TokenType};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^^^              ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/exec.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::{Path, PathBuf, Component};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/exec.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse`
[INFO] [stdout]   --> src/exec.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use parse;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TokenType`
[INFO] [stdout]  --> src/inter.rs:2:58
[INFO] [stdout]   |
[INFO] [stdout] 2 | use parse::{ParseTree, ParseTreeNode, PTNodeType, Token, TokenType};
[INFO] [stdout]   |                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util`
[INFO] [stdout]  --> src/com.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use util;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/com.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PL_TAG` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     PL_TAG(String, String),
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `PlTag`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PL_STAGE` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     PL_STAGE(String, String),
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `PlStage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DO_STDIN` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     DO_STDIN { switches: Switches },
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `DoStdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DO_FILE` should have an upper camel case name
[INFO] [stdout]   --> src/com.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     DO_FILE { switches: Switches, file: String },
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `DoFile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParseTreeNode`, `ParseTree`, `TokenType`, and `Token`
[INFO] [stdout]  --> src/invoke.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use parse::{ParseTree, ParseTreeNode, PTNodeType, Token, TokenType};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^^^              ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/exec.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::{Path, PathBuf, Component};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/exec.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse`
[INFO] [stdout]   --> src/exec.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use parse;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TokenType`
[INFO] [stdout]  --> src/inter.rs:2:58
[INFO] [stdout]   |
[INFO] [stdout] 2 | use parse::{ParseTree, ParseTreeNode, PTNodeType, Token, TokenType};
[INFO] [stdout]   |                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `jann_bin`
[INFO] [stdout]    --> src/com.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let jann_bin = args.next();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jann_bin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `jann_bin`
[INFO] [stdout]    --> src/com.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let jann_bin = args.next();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jann_bin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/invoke.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 | ...                   let mut node: inter::LinkNode = inv.art.node(*block_id);
[INFO] [stdout]    |                           ----^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/invoke.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let mut main_line = self.index.get(inv.pl_name.as_str()).unwrap_or_else( | | {
[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/invoke.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 | ...                   let mut node: inter::LinkNode = inv.art.node(*block_id);
[INFO] [stdout]    |                           ----^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/invoke.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let mut main_line = self.index.get(inv.pl_name.as_str()).unwrap_or_else( | | {
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inv`
[INFO] [stdout]   --> src/exec.rs:20:30
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn command<'inv, 'src: 'inv>(inv: &invoke::Invocation<'src>,
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_inv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inv`
[INFO] [stdout]   --> src/exec.rs:20:30
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn command<'inv, 'src: 'inv>(inv: &invoke::Invocation<'src>,
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_inv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exec.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let mut block_children = node.children();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/exec.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |             let name  = &node.children()[1];
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exec.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let mut block_children = node.children();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/exec.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |             let name  = &node.children()[1];
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_cmps`
[INFO] [stdout]    --> src/deploy.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let src_cmps: Vec<Component> = src.components().collect();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_cmps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_cmps`
[INFO] [stdout]    --> src/deploy.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let src_cmps: Vec<Component> = src.components().collect();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_cmps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rprint` is never used
[INFO] [stdout]    --> src/parse.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl ParseTreeNode {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 290 |     fn rprint(&self, tree: &ParseTree, n: usize) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_tree` is never used
[INFO] [stdout]    --> src/parse.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl ParseTree {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn print_tree(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `foreptr` is never read
[INFO] [stdout]    --> src/parse.rs:347:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | struct Parser<'log, 'src: 'log> {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 347 |     foreptr: usize,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek` and `node` are never used
[INFO] [stdout]    --> src/parse.rs:393:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | impl<'log, 'src> Parser<'log, 'src> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 393 |     fn peek(&mut self, n: usize) -> &Token<'src> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     fn node(&mut self, parent: usize, nt: PTNodeType, tok_id: usize) -> usize {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_string` is never used
[INFO] [stdout]   --> src/exec.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn component_string(c: &Component) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Name` and `JName` are never constructed
[INFO] [stdout]   --> src/inter.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Value<'src> {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  9 |     Name(&'src str),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     JName(&'src str),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_type` is never used
[INFO] [stdout]   --> src/inter.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl<'int, 'src: 'int> LinkNode<'int, 'src> {
[INFO] [stdout]    | ------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn expect_type(&self, nt: &PTNodeType) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rprint` is never used
[INFO] [stdout]    --> src/parse.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl ParseTreeNode {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 290 |     fn rprint(&self, tree: &ParseTree, n: usize) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parse.rs:16:46
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn single(src: &'src str, ptr: usize) -> Span {
[INFO] [stdout]    |                     ----                     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'src`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn single(src: &'src str, ptr: usize) -> Span<'src> {
[INFO] [stdout]    |                                                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_tree` is never used
[INFO] [stdout]    --> src/parse.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl ParseTree {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn print_tree(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `foreptr` is never read
[INFO] [stdout]    --> src/parse.rs:347:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | struct Parser<'log, 'src: 'log> {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 347 |     foreptr: usize,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parse.rs:20:46
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn begin(src: &'src str, lptr: usize) -> Span {
[INFO] [stdout]    |                    ----                      ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'src`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn begin(src: &'src str, lptr: usize) -> Span<'src> {
[INFO] [stdout]    |                                                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek` and `node` are never used
[INFO] [stdout]    --> src/parse.rs:393:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | impl<'log, 'src> Parser<'log, 'src> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 393 |     fn peek(&mut self, n: usize) -> &Token<'src> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     fn node(&mut self, parent: usize, nt: PTNodeType, tok_id: usize) -> usize {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_string` is never used
[INFO] [stdout]   --> src/exec.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn component_string(c: &Component) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Name` and `JName` are never constructed
[INFO] [stdout]   --> src/inter.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Value<'src> {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  9 |     Name(&'src str),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     JName(&'src str),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_type` is never used
[INFO] [stdout]   --> src/inter.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl<'int, 'src: 'int> LinkNode<'int, 'src> {
[INFO] [stdout]    | ------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn expect_type(&self, nt: &PTNodeType) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parse.rs:16:46
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn single(src: &'src str, ptr: usize) -> Span {
[INFO] [stdout]    |                     ----                     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'src`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn single(src: &'src str, ptr: usize) -> Span<'src> {
[INFO] [stdout]    |                                                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parse.rs:20:46
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn begin(src: &'src str, lptr: usize) -> Span {
[INFO] [stdout]    |                    ----                      ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'src`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn begin(src: &'src str, lptr: usize) -> Span<'src> {
[INFO] [stdout]    |                                                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/exec.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 env::set_current_dir(cur);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let _ = env::set_current_dir(cur);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NONE` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let NONE = 0;
[INFO] [stdout]     |         ^^^^ help: convert the identifier to snake case: `none`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `LBRACE` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let LBRACE = 1;
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `lbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RBRACE` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let RBRACE = 2;
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `rbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WITHIN` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let WITHIN = 3;
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `within`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/inter.rs:219:23
[INFO] [stdout]     |
[INFO] [stdout] 219 |         _ => { panic!(format!("Bad Value {:?}", node.ptn.nt)); }
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 219 -         _ => { panic!(format!("Bad Value {:?}", node.ptn.nt)); }
[INFO] [stdout] 219 +         _ => { panic!("Bad Value {:?}", node.ptn.nt); }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_FF` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub OW_FF: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `ow_ff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_DD` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub OW_DD: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `ow_dd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_FD` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub OW_FD: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `ow_fd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_DF` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub OW_DF: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `ow_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `INTER` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub INTER: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `inter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/exec.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 env::set_current_dir(cur);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let _ = env::set_current_dir(cur);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NONE` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let NONE = 0;
[INFO] [stdout]     |         ^^^^ help: convert the identifier to snake case: `none`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `LBRACE` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let LBRACE = 1;
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `lbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RBRACE` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let RBRACE = 2;
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `rbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WITHIN` should have a snake case name
[INFO] [stdout]    --> src/inter.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let WITHIN = 3;
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `within`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/inter.rs:219:23
[INFO] [stdout]     |
[INFO] [stdout] 219 |         _ => { panic!(format!("Bad Value {:?}", node.ptn.nt)); }
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 219 -         _ => { panic!(format!("Bad Value {:?}", node.ptn.nt)); }
[INFO] [stdout] 219 +         _ => { panic!("Bad Value {:?}", node.ptn.nt); }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_FF` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub OW_FF: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `ow_ff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_DD` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub OW_DD: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `ow_dd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_FD` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub OW_FD: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `ow_fd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `OW_DF` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub OW_DF: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `ow_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `INTER` should have a snake case name
[INFO] [stdout]   --> src/deploy.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub INTER: bool,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `inter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.46s
[INFO] running `Command { std: "docker" "inspect" "e730ee750936ee67399c593c8a0ef077d9459d7b19ef715051ef2efc5ab33227", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e730ee750936ee67399c593c8a0ef077d9459d7b19ef715051ef2efc5ab33227", kill_on_drop: false }`
[INFO] [stdout] e730ee750936ee67399c593c8a0ef077d9459d7b19ef715051ef2efc5ab33227
