[INFO] cloning repository https://github.com/hatellezp/foxidation
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hatellezp/foxidation" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhatellezp%2Ffoxidation", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhatellezp%2Ffoxidation'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e43df1c33a2067b082292122e00040709c90536c
[INFO] checking hatellezp/foxidation against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhatellezp%2Ffoxidation" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/hatellezp/foxidation
[INFO] finished tweaking git repo https://github.com/hatellezp/foxidation
[INFO] tweaked toml for git repo https://github.com/hatellezp/foxidation written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hatellezp/foxidation 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/hatellezp/foxidation 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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded paw-attributes v1.0.2
[INFO] [stderr]   Downloaded paw v1.0.0
[INFO] [stderr]   Downloaded paw-raw v1.0.0
[INFO] [stderr]   Downloaded structopt-derive v0.4.15
[INFO] [stderr]   Downloaded structopt v0.3.22
[INFO] [stderr]   Downloaded libc v0.2.99
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] baa6bcbe25436c94725d760415c1f61fe588b4e65491c4642466c9364f21d397
[INFO] running `Command { std: "docker" "start" "-a" "baa6bcbe25436c94725d760415c1f61fe588b4e65491c4642466c9364f21d397", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "baa6bcbe25436c94725d760415c1f61fe588b4e65491c4642466c9364f21d397", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "baa6bcbe25436c94725d760415c1f61fe588b4e65491c4642466c9364f21d397", kill_on_drop: false }`
[INFO] [stdout] baa6bcbe25436c94725d760415c1f61fe588b4e65491c4642466c9364f21d397
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] c2972f639d6f42aa5ded58189333695a7a50da1592f50460efe7ed20a82f7d86
[INFO] running `Command { std: "docker" "start" "-a" "c2972f639d6f42aa5ded58189333695a7a50da1592f50460efe7ed20a82f7d86", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling libc v0.2.99
[INFO] [stderr]     Checking paw-raw v1.0.0
[INFO] [stderr]     Checking pad v0.1.6
[INFO] [stderr]     Checking unicode-segmentation v1.8.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking colored v2.0.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]    Compiling paw-attributes v1.0.2
[INFO] [stderr]    Compiling structopt-derive v0.4.15
[INFO] [stderr]     Checking paw v1.0.0
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking structopt v0.3.22
[INFO] [stderr]     Checking parser_learning v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/core/expression.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, Ordering};
[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: `std::iter::FromIterator`
[INFO] [stdout]  --> src/core/expression.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ColoredString`
[INFO] [stdout]   --> src/core/expression.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use colored::{ColoredString, Colorize};
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::types::Type::Equivalence`
[INFO] [stdout]   --> src/core/expression.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::core::types::Type::Equivalence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExpressionEval` and `LiteralEval`
[INFO] [stdout]   --> src/core/expression.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::core::types::{ExpressionEval, Grounded, LiteralEval, Type};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]   --> src/core/expression.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::fmt;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Literal::*`
[INFO] [stdout]    --> src/core/expression.rs:827:13
[INFO] [stdout]     |
[INFO] [stdout] 827 |         use Literal::*;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ColoredString`
[INFO] [stdout]  --> src/core/literal.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use colored::{ColoredString, Colorize};
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::types::Result::*`
[INFO] [stdout]   --> src/parser/parser.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use crate::core::types::Result::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::filter::Filter`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::core::filter::Filter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/core/expression.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, Ordering};
[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: `std::iter::FromIterator`
[INFO] [stdout]  --> src/core/expression.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ColoredString`
[INFO] [stdout]   --> src/core/expression.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use colored::{ColoredString, Colorize};
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::types::Type::Equivalence`
[INFO] [stdout]   --> src/core/expression.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::core::types::Type::Equivalence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExpressionEval` and `LiteralEval`
[INFO] [stdout]   --> src/core/expression.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::core::types::{ExpressionEval, Grounded, LiteralEval, Type};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]   --> src/core/expression.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::fmt;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Literal::*`
[INFO] [stdout]    --> src/core/expression.rs:827:13
[INFO] [stdout]     |
[INFO] [stdout] 827 |         use Literal::*;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ColoredString`
[INFO] [stdout]  --> src/core/literal.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use colored::{ColoredString, Colorize};
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::types::Result::*`
[INFO] [stdout]   --> src/parser/parser.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use crate::core::types::Result::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::filter::Filter`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::core::filter::Filter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_b`
[INFO] [stdout]    --> src/core/expression.rs:774:29
[INFO] [stdout]     |
[INFO] [stdout] 774 |                         let new_b = Expression::nnot(expr2.deref().clone());
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_new_b`
[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/core/expression.rs:939:27
[INFO] [stdout]     |
[INFO] [stdout] 939 |                     (Some(mut atoms1), Some(atoms2)) => {
[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/core/expression.rs:1013:25
[INFO] [stdout]      |
[INFO] [stdout] 1013 |                     let mut create_valuation = {
[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/core/expression.rs:1014:29
[INFO] [stdout]      |
[INFO] [stdout] 1014 |                         let mut valuation = |expr: &Expression, bools: &[bool]| {
[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/core/expression.rs:1039:29
[INFO] [stdout]      |
[INFO] [stdout] 1039 |                         let mut inner_valuation = create_valuation;
[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/core/expression.rs:1040:29
[INFO] [stdout]      |
[INFO] [stdout] 1040 |                         let mut partial =
[INFO] [stdout]      |                             ----^^^^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `print_true_table`
[INFO] [stdout]    --> src/core/expression.rs:990:9
[INFO] [stdout]     |
[INFO] [stdout] 990 |         print_true_table: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_print_true_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/core/expression.rs:1107:13
[INFO] [stdout]      |
[INFO] [stdout] 1107 |         let mut create_valuation = {
[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/core/expression.rs:1108:17
[INFO] [stdout]      |
[INFO] [stdout] 1108 |             let mut valuation = |expr: &Expression, bools: &[bool]| {
[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/core/expression.rs:1170:17
[INFO] [stdout]      |
[INFO] [stdout] 1170 |             let mut inner_valuation = create_valuation;
[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/core/expression.rs:1171:17
[INFO] [stdout]      |
[INFO] [stdout] 1171 |             let mut partial = |expr: &Expression| inner_valuation(expr, global_filter.filter());
[INFO] [stdout]      |                 ----^^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_expr_len`
[INFO] [stdout]     --> src/core/expression.rs:1178:21
[INFO] [stdout]      |
[INFO] [stdout] 1178 |                 let sub_expr_len = sub_exprs_length[i];
[INFO] [stdout]      |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_expr_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/core/literal.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |             _ => 5,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/core/literal.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             RelName(_, _) | FuncName(_, _) | FormName(_, _) => 23,
[INFO] [stdout]     |             ----------------------------------------------- matches some of the same values
[INFO] [stdout] 250 |             Var(_) | Integer(_) | Constant(_) => 23, // TODO: verify that blue counts this
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] 251 |             Function(li, lis) => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 257 |             _ => 5,
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_b`
[INFO] [stdout]    --> src/core/expression.rs:774:29
[INFO] [stdout]     |
[INFO] [stdout] 774 |                         let new_b = Expression::nnot(expr2.deref().clone());
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_new_b`
[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/core/expression.rs:939:27
[INFO] [stdout]     |
[INFO] [stdout] 939 |                     (Some(mut atoms1), Some(atoms2)) => {
[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/core/expression.rs:1013:25
[INFO] [stdout]      |
[INFO] [stdout] 1013 |                     let mut create_valuation = {
[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/core/expression.rs:1014:29
[INFO] [stdout]      |
[INFO] [stdout] 1014 |                         let mut valuation = |expr: &Expression, bools: &[bool]| {
[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/core/expression.rs:1039:29
[INFO] [stdout]      |
[INFO] [stdout] 1039 |                         let mut inner_valuation = create_valuation;
[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/core/expression.rs:1040:29
[INFO] [stdout]      |
[INFO] [stdout] 1040 |                         let mut partial =
[INFO] [stdout]      |                             ----^^^^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `print_true_table`
[INFO] [stdout]    --> src/core/expression.rs:990:9
[INFO] [stdout]     |
[INFO] [stdout] 990 |         print_true_table: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_print_true_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/core/expression.rs:1107:13
[INFO] [stdout]      |
[INFO] [stdout] 1107 |         let mut create_valuation = {
[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/core/expression.rs:1108:17
[INFO] [stdout]      |
[INFO] [stdout] 1108 |             let mut valuation = |expr: &Expression, bools: &[bool]| {
[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/core/expression.rs:1170:17
[INFO] [stdout]      |
[INFO] [stdout] 1170 |             let mut inner_valuation = create_valuation;
[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/core/expression.rs:1171:17
[INFO] [stdout]      |
[INFO] [stdout] 1171 |             let mut partial = |expr: &Expression| inner_valuation(expr, global_filter.filter());
[INFO] [stdout]      |                 ----^^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_expr_len`
[INFO] [stdout]     --> src/core/expression.rs:1178:21
[INFO] [stdout]      |
[INFO] [stdout] 1178 |                 let sub_expr_len = sub_exprs_length[i];
[INFO] [stdout]      |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_expr_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/core/literal.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |             _ => 5,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/core/literal.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             RelName(_, _) | FuncName(_, _) | FormName(_, _) => 23,
[INFO] [stdout]     |             ----------------------------------------------- matches some of the same values
[INFO] [stdout] 250 |             Var(_) | Integer(_) | Constant(_) => 23, // TODO: verify that blue counts this
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] 251 |             Function(li, lis) => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 257 |             _ => 5,
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/main.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (context, expressions) = parser::parser::parse_file(&unparsed_file);
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PartialEquality` and `GeneralEquality` are never constructed
[INFO] [stdout]   --> src/core/expression.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum Expression {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     PartialEquality(Literal, Box<Expression>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     GeneralEquality(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/core/expression.rs:638:12
[INFO] [stdout]      |
[INFO] [stdout]  307 | impl Expression {
[INFO] [stdout]      | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  638 |     pub fn npartialequality(a: &Literal, b: Expression) -> Expression {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  642 |     pub fn ngeneralequality(a: Expression, b: Expression) -> Expression {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  874 |     pub fn is_atomic(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1278 |     pub fn is_guarded(&self) -> bool {false}
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 1279 |     pub fn variables(&self) -> Vec<Literal> {vec![]}
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 1280 |     pub fn bound_variables(&self) -> Vec<Literal> {vec![]}
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 1281 |     pub fn free_variables(&self) -> Vec<Literal> {vec![]}
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 1282 |     pub fn reduce(&mut self) {}
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/core/filter.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Filter {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn noo(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn lo(&self) -> usize {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn uo(&self) -> usize {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn filter_index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn filter_mut(&mut self) -> &mut Vec<bool> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn cc(&self) -> (usize, usize, usize, usize) {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LiteralEval` is never used
[INFO] [stdout]   --> src/core/types.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub type LiteralEval = dyn Fn(&Literal) -> Grounded;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExpressionEval` is never used
[INFO] [stdout]   --> src/core/types.rs:61:10
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub type ExpressionEval = dyn Fn(&Expression) -> Option<bool>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IN_CHAR` is never used
[INFO] [stdout]  --> src/mathsymbols.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const IN_CHAR: char = '\u{2208}';
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTIN_CHAR` is never used
[INFO] [stdout]  --> src/mathsymbols.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const NOTIN_CHAR: char = '\u{2209}';
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROVE_CHAR` is never used
[INFO] [stdout]  --> src/mathsymbols.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const PROVE_CHAR: char = '\u{22A2}';
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTPROVE_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const NOTPROVE_CHAR: char = '\u{22AC}';
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MODEL_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const MODEL_CHAR: char = '\u{22A8}';
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTMODEL_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const NOTMODEL_CHAR: char = '\u{22AD}';
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMPLIES_LEFT_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const IMPLIES_LEFT_CHAR: char = '\u{21D0}';
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_number` is never used
[INFO] [stdout]    --> src/parser/parser.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn parse_number(p: &Pair<Rule>) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_word` is never used
[INFO] [stdout]    --> src/parser/parser.rs:569:8
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub fn parse_word<'a>(p: &'a Pair<Rule>) -> &'a str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_word_periods` is never used
[INFO] [stdout]    --> src/parser/parser.rs:581:8
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub fn parse_word_periods(p: &Pair<Rule>) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/literal.rs:222:65
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let there_are_higher_symbols = literals.iter().any(|x| x.deref().is_higher_symbol());
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Literal` does not implement `Deref`, so calling `deref` on `&Literal` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 222 -         let there_are_higher_symbols = literals.iter().any(|x| x.deref().is_higher_symbol());
[INFO] [stdout] 222 +         let there_are_higher_symbols = literals.iter().any(|x| x.is_higher_symbol());
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Literal`, implement `Clone` for it
[INFO] [stdout]     |
[INFO] [stdout]  12 + #[derive(Clone)]
[INFO] [stdout]  13 | pub enum Literal {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/main.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (context, expressions) = parser::parser::parse_file(&unparsed_file);
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PartialEquality` and `GeneralEquality` are never constructed
[INFO] [stdout]   --> src/core/expression.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum Expression {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     PartialEquality(Literal, Box<Expression>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     GeneralEquality(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/core/expression.rs:638:12
[INFO] [stdout]      |
[INFO] [stdout]  307 | impl Expression {
[INFO] [stdout]      | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  638 |     pub fn npartialequality(a: &Literal, b: Expression) -> Expression {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  642 |     pub fn ngeneralequality(a: Expression, b: Expression) -> Expression {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  874 |     pub fn is_atomic(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1278 |     pub fn is_guarded(&self) -> bool {false}
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 1279 |     pub fn variables(&self) -> Vec<Literal> {vec![]}
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 1280 |     pub fn bound_variables(&self) -> Vec<Literal> {vec![]}
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 1281 |     pub fn free_variables(&self) -> Vec<Literal> {vec![]}
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 1282 |     pub fn reduce(&mut self) {}
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/core/filter.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Filter {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn noo(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn lo(&self) -> usize {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn uo(&self) -> usize {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn filter_index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn filter_mut(&mut self) -> &mut Vec<bool> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn cc(&self) -> (usize, usize, usize, usize) {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LiteralEval` is never used
[INFO] [stdout]   --> src/core/types.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub type LiteralEval = dyn Fn(&Literal) -> Grounded;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExpressionEval` is never used
[INFO] [stdout]   --> src/core/types.rs:61:10
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub type ExpressionEval = dyn Fn(&Expression) -> Option<bool>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IN_CHAR` is never used
[INFO] [stdout]  --> src/mathsymbols.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const IN_CHAR: char = '\u{2208}';
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTIN_CHAR` is never used
[INFO] [stdout]  --> src/mathsymbols.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const NOTIN_CHAR: char = '\u{2209}';
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROVE_CHAR` is never used
[INFO] [stdout]  --> src/mathsymbols.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const PROVE_CHAR: char = '\u{22A2}';
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTPROVE_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const NOTPROVE_CHAR: char = '\u{22AC}';
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MODEL_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const MODEL_CHAR: char = '\u{22A8}';
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTMODEL_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const NOTMODEL_CHAR: char = '\u{22AD}';
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMPLIES_LEFT_CHAR` is never used
[INFO] [stdout]   --> src/mathsymbols.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const IMPLIES_LEFT_CHAR: char = '\u{21D0}';
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_number` is never used
[INFO] [stdout]    --> src/parser/parser.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn parse_number(p: &Pair<Rule>) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_word` is never used
[INFO] [stdout]    --> src/parser/parser.rs:569:8
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub fn parse_word<'a>(p: &'a Pair<Rule>) -> &'a str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_word_periods` is never used
[INFO] [stdout]    --> src/parser/parser.rs:581:8
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub fn parse_word_periods(p: &Pair<Rule>) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/literal.rs:222:65
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let there_are_higher_symbols = literals.iter().any(|x| x.deref().is_higher_symbol());
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Literal` does not implement `Deref`, so calling `deref` on `&Literal` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 222 -         let there_are_higher_symbols = literals.iter().any(|x| x.deref().is_higher_symbol());
[INFO] [stdout] 222 +         let there_are_higher_symbols = literals.iter().any(|x| x.is_higher_symbol());
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Literal`, implement `Clone` for it
[INFO] [stdout]     |
[INFO] [stdout]  12 + #[derive(Clone)]
[INFO] [stdout]  13 | pub enum Literal {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.53s
[INFO] running `Command { std: "docker" "inspect" "c2972f639d6f42aa5ded58189333695a7a50da1592f50460efe7ed20a82f7d86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2972f639d6f42aa5ded58189333695a7a50da1592f50460efe7ed20a82f7d86", kill_on_drop: false }`
[INFO] [stdout] c2972f639d6f42aa5ded58189333695a7a50da1592f50460efe7ed20a82f7d86
