[INFO] cloning repository https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnizamawscloud%2Faws-cloudformation-cloudformation-guard", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnizamawscloud%2Faws-cloudformation-cloudformation-guard'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ca562b92717448a68b720b3d7cb07f58d44de4d9
[INFO] checking nizamawscloud/aws-cloudformation-cloudformation-guard against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnizamawscloud%2Faws-cloudformation-cloudformation-guard" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard
[INFO] finished tweaking git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard
[INFO] tweaked toml for git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded indexmap v1.6.2
[INFO] [stderr]   Downloaded simple_logger v1.11.0
[INFO] [stderr]   Downloaded lambda_runtime v0.3.0
[INFO] [stderr]   Downloaded tracing-attributes v0.1.15
[INFO] [stderr]   Downloaded sharded-slab v0.1.1
[INFO] [stderr]   Downloaded enumflags2_derive v0.7.0
[INFO] [stderr]   Downloaded string-builder v0.2.0
[INFO] [stderr]   Downloaded futures-executor v0.3.15
[INFO] [stderr]   Downloaded enumflags2 v0.7.1
[INFO] [stderr]   Downloaded futures-channel v0.3.15
[INFO] [stderr]   Downloaded futures v0.3.15
[INFO] [stderr]   Downloaded itertools v0.4.19
[INFO] [stderr]   Downloaded tracing-subscriber v0.2.18
[INFO] [stderr]   Downloaded socket2 v0.4.0
[INFO] [stderr]   Downloaded mio v0.7.11
[INFO] [stderr]   Downloaded serde_yaml v0.8.17
[INFO] [stderr]   Downloaded futures-io v0.3.15
[INFO] [stderr]   Downloaded tokio-stream v0.1.6
[INFO] [stderr]   Downloaded futures-macro v0.3.15
[INFO] [stderr]   Downloaded hyper v0.14.8
[INFO] [stderr]   Downloaded tokio v1.6.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6d03211d2942d26f96fd80f9896b974b88d549bb525a49b0499359865d3f7eb4
[INFO] running `Command { std: "docker" "start" "-a" "6d03211d2942d26f96fd80f9896b974b88d549bb525a49b0499359865d3f7eb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d03211d2942d26f96fd80f9896b974b88d549bb525a49b0499359865d3f7eb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d03211d2942d26f96fd80f9896b974b88d549bb525a49b0499359865d3f7eb4", kill_on_drop: false }`
[INFO] [stdout] 6d03211d2942d26f96fd80f9896b974b88d549bb525a49b0499359865d3f7eb4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b9fdd6dc83f447064200739bf61442d94e02c7a1de057e7f1f827b949d42b7e3
[INFO] running `Command { std: "docker" "start" "-a" "b9fdd6dc83f447064200739bf61442d94e02c7a1de057e7f1f827b949d42b7e3", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]     Checking pin-project-lite v0.2.6
[INFO] [stderr]    Compiling futures-core v0.3.15
[INFO] [stderr]    Compiling indexmap v1.6.2
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]    Compiling serde_json v1.0.64
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]    Compiling futures-macro v0.3.15
[INFO] [stderr]    Compiling futures-task v0.3.15
[INFO] [stderr]    Compiling futures-channel v0.3.15
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking colored v1.9.3
[INFO] [stderr]    Compiling futures-util v0.3.15
[INFO] [stderr]     Checking bytes v1.0.1
[INFO] [stderr]     Checking futures-sink v0.3.15
[INFO] [stderr]     Checking bytecount v0.6.2
[INFO] [stderr]     Checking unicode-segmentation v1.7.1
[INFO] [stderr]     Checking colored v2.0.0
[INFO] [stderr]     Checking tracing-core v0.1.18
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]    Compiling tokio v1.6.1
[INFO] [stderr]     Checking slab v0.4.3
[INFO] [stderr]     Checking futures-io v0.3.15
[INFO] [stderr]     Checking itertools v0.4.19
[INFO] [stderr]     Checking heck v0.3.2
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking string-builder v0.2.0
[INFO] [stderr]     Checking mio v0.7.11
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling httparse v1.4.1
[INFO] [stderr]     Checking simple_logger v1.11.0
[INFO] [stderr]     Checking once_cell v1.7.2
[INFO] [stderr]     Checking sharded-slab v0.1.1
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking socket2 v0.4.0
[INFO] [stderr]     Checking thread_local v1.1.3
[INFO] [stderr]     Checking http v0.2.4
[INFO] [stderr]     Checking tracing-subscriber v0.2.18
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking http-body v0.4.2
[INFO] [stderr]     Checking nom_locate v2.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.126
[INFO] [stderr]    Compiling enumflags2_derive v0.7.0
[INFO] [stderr]    Compiling tokio-macros v1.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.15
[INFO] [stderr]    Compiling pin-project-internal v1.0.7
[INFO] [stderr]    Compiling async-stream-impl v0.3.2
[INFO] [stderr]     Checking async-stream v0.3.2
[INFO] [stderr]     Checking enumflags2 v0.7.1
[INFO] [stderr]     Checking tracing v0.1.26
[INFO] [stderr]     Checking pin-project v1.0.7
[INFO] [stderr]     Checking tracing-error v0.1.2
[INFO] [stderr]     Checking serde v1.0.126
[INFO] [stderr]     Checking tokio-stream v0.1.6
[INFO] [stderr]     Checking futures-executor v0.3.15
[INFO] [stderr]     Checking hyper v0.14.8
[INFO] [stderr]     Checking futures v0.3.15
[INFO] [stderr]     Checking serde_yaml v0.8.17
[INFO] [stderr]     Checking cfn-guard v2.0.3 (/opt/rustwide/workdir/guard)
[INFO] [stderr]     Checking lambda_runtime v0.3.0
[INFO] [stdout] warning: unused import: `WhenConditions`
[INFO] [stdout]  --> guard/src/rules/evaluate.rs:9:114
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar...
[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 label
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:684:12
[INFO] [stdout]     |
[INFO] [stdout] 684 |         Ok('outer: loop {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2087:23
[INFO] [stdout]      |
[INFO] [stdout] 2087 |     struct Reporter {};
[INFO] [stdout]      |                       ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2152:60
[INFO] [stdout]      |
[INFO] [stdout] 2152 |     struct Reporter<'a> { root: &'a dyn EvaluationContext };
[INFO] [stdout]      |                                                            ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> guard/src/rules/values_tests.rs:124:6
[INFO] [stdout]     |
[INFO] [stdout] 124 |     };
[INFO] [stdout]     |      ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> guard/src/rules/values_tests.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout] 217 |     struct DummyResolver{};
[INFO] [stdout]     |                           ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> guard/src/rules/path_value.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED`
[INFO] [stdout]   --> guard/src/commands/validate.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED};
[INFO] [stdout]    |                       ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regular_ordering`
[INFO] [stdout]   --> guard/src/commands/validate.rs:12:83
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering};
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Serialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_value`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status};
[INFO] [stdout]   |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rules::path_value::Path`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rules::path_value::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorKind` and `Error`
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind};
[INFO] [stdout]    |                            ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Ref`
[INFO] [stdout]  --> guard/src/commands/tracker.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::Ref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QueryPart`
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::common_test_helpers::DummyEval`
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender_tests.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::super::common_test_helpers::DummyEval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:40:22
[INFO] [stdout]    |
[INFO] [stdout] 40 |     struct Capture {};
[INFO] [stdout]    |                      ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> guard/src/migrate/parser.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rules::values::Value::Bool`
[INFO] [stdout]  --> guard/src/migrate/parser_tests.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::rules::values::Value::Bool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WhenConditions`
[INFO] [stdout]  --> guard/src/rules/evaluate.rs:9:114
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar...
[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 label
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:684:12
[INFO] [stdout]     |
[INFO] [stdout] 684 |         Ok('outer: loop {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> guard/src/rules/path_value.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED`
[INFO] [stdout]   --> guard/src/commands/validate.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED};
[INFO] [stdout]    |                       ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regular_ordering`
[INFO] [stdout]   --> guard/src/commands/validate.rs:12:83
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering};
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Serialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_value`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status};
[INFO] [stdout]   |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rules::path_value::Path`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rules::path_value::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorKind` and `Error`
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind};
[INFO] [stdout]    |                            ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Ref`
[INFO] [stdout]  --> guard/src/commands/tracker.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::Ref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QueryPart`
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> guard/src/migrate/parser.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> guard/src/commands/validate.rs:45:28
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut Write,
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut dyn Write,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> guard/src/commands/validate.rs:45:28
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut Write,
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut dyn Write,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> guard/src/rules/evaluate.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitFlag`
[INFO] [stdout]   --> guard/src/commands/validate.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitFlag`
[INFO] [stdout]   --> guard/src/commands/validate.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2089:36
[INFO] [stdout]      |
[INFO] [stdout] 2089 |         fn resolve_variable(&self, variable: &str) -> Result<Vec<&PathAwareValue>> {
[INFO] [stdout]      |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_name`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2093:31
[INFO] [stdout]      |
[INFO] [stdout] 2093 |         fn rule_status(&self, rule_name: &str) -> Result<Status> {
[INFO] [stdout]      |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2097:61
[INFO] [stdout]      |
[INFO] [stdout] 2097 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Statu...
[INFO] [stdout]      |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_type`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2117:36
[INFO] [stdout]      |
[INFO] [stdout] 2117 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]      |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2117:63
[INFO] [stdout]      |
[INFO] [stdout] 2117 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]      |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:86:41
[INFO] [stdout]    |
[INFO] [stdout] 86 |               skipped: HashSet<String>, longest_rule_len: usize) -> crate::rules::Result<()>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     longest_rule_len: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rules` is never read
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:936:5
[INFO] [stdout]     |
[INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> {
[INFO] [stdout]     |                   --------- field in this struct
[INFO] [stdout] 936 |     rules: &'s RulesFile<'loc>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RootScope` has a derived impl for the trait `Debug`, but this is 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: field `block_type` is never read
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1034:5
[INFO] [stdout]      |
[INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> {
[INFO] [stdout]      |                   ---------- field in this struct
[INFO] [stdout] 1034 |     block_type: &'s Block<'s, T>,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `comparison` is never used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1151:19
[INFO] [stdout]      |
[INFO] [stdout] 1129 | impl<'s> AutoReport<'s> {
[INFO] [stdout]      | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     pub(super) fn comparison(&mut self, status: Status, from: Option<PathAwareValue>, to: Option<PathAwareValue>, cmp: (CmpOperator, bool...
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhenGuardBlockClause` is never constructed
[INFO] [stdout]    --> guard/src/rules/exprs.rs:171:19
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub(crate) struct WhenGuardBlockClause<'loc> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `context`, `span`, and `kind` are never used
[INFO] [stdout]   --> guard/src/rules/parser.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl<'a> ParserError<'a> {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 46 |     pub(crate) fn context(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn span(&self) -> &Span<'a> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn kind(&self) -> nom::error::ErrorKind {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clauses` is never used
[INFO] [stdout]     --> guard/src/rules/parser.rs:1122:4
[INFO] [stdout]      |
[INFO] [stdout] 1122 | fn clauses(input: Span) -> IResult<Span, Conjunctions<GuardClause>> {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConjunctionsWrapper` is never constructed
[INFO] [stdout]     --> guard/src/rules/parser.rs:1532:19
[INFO] [stdout]      |
[INFO] [stdout] 1532 | pub(crate) struct ConjunctionsWrapper<'a>(pub(crate) Conjunctions<GuardClause<'a>>);
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_unary` and `is_binary` are never used
[INFO] [stdout]   --> guard/src/rules/values.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl CmpOperator {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 31 |     pub(crate) fn is_unary(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn is_binary(&self) -> bool { !self.is_unary() }
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_linked_hashmap` is never used
[INFO] [stdout]    --> guard/src/rules/values.rs:309:15
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub(super) fn make_linked_hashmap<'a, I>(values: I) -> IndexMap<String, Value>
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `drop_last` and `extend_with_value` are never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:92:19
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl Path {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub(crate) fn drop_last(&mut self) -> &mut Self {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) fn extend_with_value(&self, part: &Value) -> Result<Path, Error> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_scalar` is never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:675:19
[INFO] [stdout]     |
[INFO] [stdout] 634 | impl PathAwareValue {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub(crate) fn is_scalar(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALPHABETICAL` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const ALPHABETICAL: (&str, &str) = ("alphabetical", "a");
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAST_MODIFIED` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const LAST_MODIFIED: (&str, &str) = ("last-modified", "l");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULES` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const RULES: (&str, &str) = ("rules", "r");
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DATA: (&str, &str) = ("data", "d");
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_content` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) fn read_file_content(file: File) -> Result<String, std::io::Error> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_files` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) fn get_files<F>(file: &str, sort: F) -> Result<Vec<PathBuf>, Error>
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_files_with_filter` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) fn get_files_with_filter<S, F>(file: &str, sort: S, filter: F) -> Result<Vec<PathBuf>, Error>
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter` is never constructed
[INFO] [stdout]   --> guard/src/commands/files.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) struct Iter<'i, T, C>
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iterate_over` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<T, C>
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alpabetical` is never used
[INFO] [stdout]    --> guard/src/commands/files.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) fn alpabetical(first : &walkdir::DirEntry, second: &walkdir::DirEntry) -> Ordering {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `last_modified` is never used
[INFO] [stdout]    --> guard/src/commands/files.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) fn last_modified(first: &walkdir::DirEntry, second: &walkdir::DirEntry) -> Ordering {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regular_ordering` is never used
[INFO] [stdout]    --> guard/src/commands/files.rs:120:15
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub(crate) fn regular_ordering(_first: &walkdir::DirEntry, _second: &walkdir::DirEntry) -> Ordering {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) enum Type {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OutputFormatType` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) enum OutputFormatType {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub(crate) trait Reporter : Debug {
[INFO] [stdout]    |                  -------- method in this trait
[INFO] [stdout] 44 |     fn report(&self,
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Validate` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) struct Validate {}
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Validate {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 57 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_and_return_json` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn validate_and_return_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reporters`, `rules_file_name`, `data_file_name`, `verbose`, `print_json`, and `show_clause_failures` are never read
[INFO] [stdout]    --> guard/src/commands/validate.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) struct ConsoleReporter<'r> {
[INFO] [stdout]     |                   --------------- fields in this struct
[INFO] [stdout] 271 |     root_context: StackTracker<'r>,
[INFO] [stdout] 272 |     reporters: &'r Vec<Box<dyn Reporter + 'r>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 273 |     rules_file_name: &'r str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     data_file_name: &'r str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     verbose: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 276 |     print_json: bool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 277 |     show_clause_failures: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsoleReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indent_spaces` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn indent_spaces(indent: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_context` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:286:15
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub(super) fn print_context(cxt: &StatusContext, depth: usize) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_failing_clause` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:323:4
[INFO] [stdout]     |
[INFO] [stdout] 323 | fn print_failing_clause(rules_file_name: &str, rule: &StatusContext, longest: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 362 | impl<'r, 'loc> ConsoleReporter<'r> {
[INFO] [stdout]     | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn report(self) -> crate::rules::Result<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INDENT` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:434:7
[INFO] [stdout]     |
[INFO] [stdout] 434 | const INDENT: &str = "    ";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_against_data_input` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:464:4
[INFO] [stdout]     |
[INFO] [stdout] 464 | fn evaluate_against_data_input<'r>(data_type: Type,
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenericSummary` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct GenericSummary<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a> GenericSummary<'a> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub(crate) fn new<'r>(data_file_name: &'r str,
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleLineSummary` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | struct SingleLineSummary{}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retrieval_error_message` is never used
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn retrieval_error_message(rules_file: &str, data_file: &str, info: &NameInfo<'_>) -> crate::rules::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unary_error_message` is never used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn unary_error_message(rules_file: &str, data_file: &str, op_msg: &str, info: &NameInfo<'_>) -> crate::rules::Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_error_message` is never used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn binary_error_message(rules_file: &str, data_file: &str, op_msg: &str, info: &NameInfo<'_>) -> crate::rules::Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Comparison` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(super) struct Comparison {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NameInfo` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(super) struct NameInfo<'a> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GenericReporter` is never used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(super) trait GenericReporter: Debug {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StructureType` is never used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(super) enum StructureType {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructuredSummary` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub(super) struct StructuredSummary {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl StructuredSummary {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 63 |     pub(super) fn new(hierarchy_type: StructureType) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataOutput` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct DataOutput<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_name_info` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(super) fn extract_name_info<'a>(rule_name: &'a str,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `colored_string` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub(super) fn colored_string(status: Option<Status>) -> ColoredString {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_failing_clauses` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:174:15
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub(super) fn find_all_failing_clauses(context: &StatusContext) -> Vec<&StatusContext> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_compliant_skipped_info` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:199:15
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub(super) fn print_compliant_skipped_info(writer: &mut dyn Write,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_name_info` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:219:15
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub(super) fn print_name_info<R, U, B>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SummaryType` is never used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) enum SummaryType {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SummaryTable` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) struct SummaryTable<'r> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a> SummaryTable<'a> {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 28 |     pub(crate) fn new<'r>(rules_file_name: &'r str, data_file_name: &'r str, summary_type: BitFlags<SummaryType>) -> SummaryTable<'r> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_partition` is never used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn print_partition(writer: &mut dyn Write,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CfnReporter` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct CfnReporter<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> CfnReporter<'a> {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 31 |     pub(crate) fn new<'r>(data_file_name: &'r str,
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleLineReporter` is never constructed
[INFO] [stdout]    --> guard/src/commands/validate/cfn_reporter.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct SingleLineReporter {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rulegen` is never constructed
[INFO] [stdout]   --> guard/src/commands/rulegen.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct Rulegen {}
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/rulegen.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Rulegen {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 17 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_template_and_call_gen` is never used
[INFO] [stdout]   --> guard/src/commands/rulegen.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn parse_template_and_call_gen(template_contents: &str) -> HashMap<String, HashMap<String, HashSet<String>>>{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_rules` is never used
[INFO] [stdout]   --> guard/src/commands/rulegen.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn gen_rules(cfn_resources: HashMap<String, Value>) -> HashMap<String, HashMap<String, HashSet<String>>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_rules` is never used
[INFO] [stdout]    --> guard/src/commands/rulegen.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn print_rules(rule_map : HashMap<String, HashMap<String, HashSet<String>>>, mut writer : Box<dyn std::io::Write>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Test` is never constructed
[INFO] [stdout]   --> guard/src/commands/test.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct Test {}
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/test.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Test {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 26 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestExpectations` is never constructed
[INFO] [stdout]    --> guard/src/commands/test.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct TestExpectations {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestSpec` is never constructed
[INFO] [stdout]    --> guard/src/commands/test.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct TestSpec {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_with_data` is never used
[INFO] [stdout]    --> guard/src/commands/test.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn test_with_data(test_data_files: &[PathBuf], rules: &RulesFile<'_>, verbose: bool) -> Result<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_test_case_report` is never used
[INFO] [stdout]    --> guard/src/commands/test.rs:188:16
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub (crate) fn print_test_case_report(by_result: &HashMap<String, indexmap::IndexSet<String>>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseTree` is never constructed
[INFO] [stdout]  --> guard/src/commands/parse_tree.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) struct ParseTree {}
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/parse_tree.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl ParseTree {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 10 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Migrate` is never constructed
[INFO] [stdout]   --> guard/src/commands/migrate.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) struct Migrate {}
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Migrate {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 27 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `migrated_rules_by_type` is never used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) fn migrated_rules_by_type(rules: &[RuleLineType],
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_by_type` is never used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub(crate) fn aggregate_by_type(rules: &Vec<RuleLineType>) -> HashMap<TypeName, indexmap::IndexSet<&Clause>> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_resource_types_in_ruleset` is never used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:132:16
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub (crate) fn get_resource_types_in_ruleset(rules: &Vec<RuleLineType>) -> Result<Vec<TypeName>> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `migrate_rules` is never used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub (crate) fn migrate_rules(rules: Vec<RuleLineType>) -> Result<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataAppender` is never constructed
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(super) struct MetadataAppender<'d> {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DummyEval` is never constructed
[INFO] [stdout]  --> guard/src/commands/common_test_helpers.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) struct DummyEval{}
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Command` is never used
[INFO] [stdout]  --> guard/src/command.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) trait Command {
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OldGuardValues` is never used
[INFO] [stdout]   --> guard/src/migrate/parser.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum OldGuardValues {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Assignment` is never constructed
[INFO] [stdout]   --> guard/src/migrate/parser.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) struct Assignment {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CmpOperator` is never used
[INFO] [stdout]   --> guard/src/migrate/parser.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) enum CmpOperator {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PropertyComparison` is never constructed
[INFO] [stdout]   --> guard/src/migrate/parser.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub(crate) struct PropertyComparison {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BaseRule` is never constructed
[INFO] [stdout]    --> guard/src/migrate/parser.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub(crate) struct BaseRule {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConditionalRule` is never constructed
[INFO] [stdout]    --> guard/src/migrate/parser.rs:128:19
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub(crate) struct ConditionalRule {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rule` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub(crate) enum Rule {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Clause` is never constructed
[INFO] [stdout]    --> guard/src/migrate/parser.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub(crate) struct Clause {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuleLineType` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub(crate) enum RuleLineType {
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_variable_dereference` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub (crate) fn parse_variable_dereference(input: Span) -> IResult<Span, String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_complete_value` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:202:27
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub(in crate::migrate) fn parse_complete_value(input: Span) -> IResult<Span, Span> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `comment` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:216:27
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub(in crate::migrate) fn comment(input: Span) ->IResult<Span, String> {
[INFO] [stdout]     |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_old_guard_value` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub (in crate::migrate) fn parse_old_guard_value(input:Span) -> IResult<Span, OldGuardValues> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assignment` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:240:15
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub(crate) fn assignment(input: Span) -> IResult<Span, Assignment> {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_operator` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:267:27
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub(in crate::migrate) fn value_operator(input: Span) -> IResult<Span, CmpOperator> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `property_path` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:290:27
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub(in crate::migrate) fn property_path(input: Span) -> IResult<Span, String> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `property_comparison` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:297:27
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub(in crate::migrate) fn property_comparison(input: Span) -> IResult<Span, PropertyComparison> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `base_rule` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:315:27
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub(in crate::migrate) fn base_rule(input: Span) -> IResult<Span, BaseRule> {
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conditional_rule` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:339:27
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub(in crate::migrate) fn conditional_rule(input: Span) -> IResult<Span, ConditionalRule> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_message` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:361:27
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub(in crate::migrate) fn custom_message(input: Span) -> IResult<Span, String> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rule` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:368:27
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub(in crate::migrate) fn rule(input: Span) -> IResult<Span, Rule> {
[INFO] [stdout]     |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clause` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:381:27
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub(in crate::migrate) fn clause(input: Span) -> IResult<Span, Clause> {
[INFO] [stdout]     |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_line` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:388:27
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub(in crate::migrate) fn empty_line(input: Span) -> IResult<Span, RuleLineType> {
[INFO] [stdout]     |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rule_line` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:394:27
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub(in crate::migrate) fn rule_line(input: Span) ->IResult<Span, RuleLineType> {
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_rules_file` is never used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:408:15
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub(crate) fn parse_rules_file(input: &String, file_name: &String) -> Result<Vec<RuleLineType>, Error> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `str`, which is not FFI-safe
[INFO] [stdout]   --> guard/src/lib.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     data: &str,
[INFO] [stdout]    |           ^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using `*const u8` and a length instead
[INFO] [stdout]    = note: string slices have no C equivalent
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `str`, which is not FFI-safe
[INFO] [stdout]   --> guard/src/lib.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 |     rules: &str,
[INFO] [stdout]    |            ^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using `*const u8` and a length instead
[INFO] [stdout]    = note: string slices have no C equivalent
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `std::result::Result<std::string::String, errors::Error>`, which is not FFI-safe
[INFO] [stdout]   --> guard/src/lib.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | ) -> crate::rules::Result<String> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]    = note: enum has no representation hint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:950:9
[INFO] [stdout]     |
[INFO] [stdout] 950 | /         extract_variables(&rules.assignments,
[INFO] [stdout] 951 | |                           &mut literals,
[INFO] [stdout] 952 | |                           &mut pending);
[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] 950 |         let _ = extract_variables(&rules.assignments,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1046:9
[INFO] [stdout]      |
[INFO] [stdout] 1046 | /         extract_variables(&block_type.assignments,
[INFO] [stdout] 1047 | |                           &mut literals,
[INFO] [stdout] 1048 | |                           &mut pending);
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         let _ = extract_variables(&block_type.assignments,
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/rules/parser.rs:32:33
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span {
[INFO] [stdout]    |                                 ^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:645:27
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                           ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |        |       |     |
[INFO] [stdout]     |                           |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                           |        |       the same lifetime is hidden here
[INFO] [stdout]     |                           |        the same lifetime is hidden here
[INFO] [stdout]     |                           the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                               ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:659:26
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                          ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |        |       |     |
[INFO] [stdout]     |                          |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                          |        |       the same lifetime is hidden here
[INFO] [stdout]     |                          |        the same lifetime is hidden here
[INFO] [stdout]     |                          the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                              ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:843:40
[INFO] [stdout]     |
[INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>,
[INFO] [stdout]     |                                                     ---- the lifetime is named here
[INFO] [stdout] 842 |                          access: A,
[INFO] [stdout] 843 |                          mapper: M) -> IResult<Span<'loc>, T>
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^----^^^^^
[INFO] [stdout]     |                                        |            |
[INFO] [stdout]     |                                        |            the same lifetime is named here
[INFO] [stdout]     |                                        the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]     |
[INFO] [stdout] 843 |                          mapper: M) -> IResult<'loc, Span<'loc>, T>
[INFO] [stdout]     |                                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1040:87
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                              ----                                     ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                              |                                        |            |
[INFO] [stdout]      |                                              |                                        |            the same lifetime is named here
[INFO] [stdout]      |                                              the lifetime is named here               the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                                                                               +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1075:86
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                ----                                  ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                |                                     |            |
[INFO] [stdout]      |                                                |                                     |            the same lifetime is named here
[INFO] [stdout]      |                                                the lifetime is named here            the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                                                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/values.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let _ = write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/commands/files.rs:95:41
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<T, C>
[INFO] [stdout]    |                                         ^^^^^^^^^^                   ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<'_, T, C>
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 reader.read_to_string(&mut context);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 let _ = reader.read_to_string(&mut context);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | /         match &self.hierarchy_type {
[INFO] [stdout] 97 | |             StructureType::JSON => writeln!(writer, "{}", serde_json::to_string(&value)?),
[INFO] [stdout] 98 | |             StructureType::YAML => writeln!(writer, "{}", serde_yaml::to_string(&value)?),
[INFO] [stdout] 99 | |         };
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let _ = match &self.hierarchy_type {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let _ = writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let _ = writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let _ = writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/cfn_reporter.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/rulegen.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |             write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 202 |             let _ = write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             let _ = writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |         writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let _ = writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let _ = writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |         writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let _ = writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let _ = writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let _ = writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `query:` in this pattern is redundant
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender.rs:42:59
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...                   let AccessQuery { query: query, match_all: all } =
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ help: use shorthand field pattern: `query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let _ = writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking cfn-guard-lambda v2.0.3 (/opt/rustwide/workdir/guard-lambda)
[INFO] [stdout] warning: unused variable: `clause`
[INFO] [stdout]     --> guard/src/rules/parser_tests.rs:4121:17
[INFO] [stdout]      |
[INFO] [stdout] 4121 |     let (_span, clause) = rule_block_clause(from_str2(when_inside_when))?;
[INFO] [stdout]      |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clause`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> guard-lambda/src/main.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Err(e) => (e.to_string()),
[INFO] [stdout]    |                       ^             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -             Err(e) => (e.to_string()),
[INFO] [stdout] 39 +             Err(e) => e.to_string(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> guard-lambda/src/main.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Err(e) => (e.to_string()),
[INFO] [stdout]    |                       ^             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -             Err(e) => (e.to_string()),
[INFO] [stdout] 39 +             Err(e) => e.to_string(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:86:41
[INFO] [stdout]    |
[INFO] [stdout] 86 |               skipped: HashSet<String>, longest_rule_len: usize) -> crate::rules::Result<()>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     longest_rule_len: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WhenConditions`
[INFO] [stdout]  --> guard/src/rules/evaluate.rs:9:114
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar...
[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 label
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:684:12
[INFO] [stdout]     |
[INFO] [stdout] 684 |         Ok('outer: loop {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> guard/src/rules/path_value.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED`
[INFO] [stdout]   --> guard/src/commands/validate.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED};
[INFO] [stdout]    |                       ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regular_ordering`
[INFO] [stdout]   --> guard/src/commands/validate.rs:12:83
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering};
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Serialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_value`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status};
[INFO] [stdout]   |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rules::path_value::Path`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rules::path_value::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorKind` and `Error`
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind};
[INFO] [stdout]    |                            ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Ref`
[INFO] [stdout]  --> guard/src/commands/tracker.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::Ref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QueryPart`
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> guard/src/migrate/parser.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:42:36
[INFO] [stdout]    |
[INFO] [stdout] 42 |         fn resolve_variable(&self, variable: &str) -> Result<Vec<&PathAwareValue>> {
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_name`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |         fn rule_status(&self, rule_name: &str) -> Result<Status> {
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_type`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:34
[INFO] [stdout]    |
[INFO] [stdout] 50 | ...   fn end_evaluation(&self, eval_type: EvaluationType, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareV...
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:61
[INFO] [stdout]    |
[INFO] [stdout] 50 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Statu...
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:89
[INFO] [stdout]    |
[INFO] [stdout] 50 | ...e, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Status>, _cmp: Option<(CmpOper...
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:119
[INFO] [stdout]    |
[INFO] [stdout] 50 | ...g, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Status>, _cmp: Option<(CmpOperator, bool)>) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:147
[INFO] [stdout]    |
[INFO] [stdout] 50 | ... to: Option<PathAwareValue>, status: Option<Status>, _cmp: Option<(CmpOperator, bool)>) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_type`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:57:36
[INFO] [stdout]    |
[INFO] [stdout] 57 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]    |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:57:63
[INFO] [stdout]    |
[INFO] [stdout] 57 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]    |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> guard/src/commands/validate.rs:45:28
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut Write,
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut dyn Write,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WhenConditions`
[INFO] [stdout]  --> guard/src/rules/evaluate.rs:9:114
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar...
[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 label
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:684:12
[INFO] [stdout]     |
[INFO] [stdout] 684 |         Ok('outer: loop {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2087:23
[INFO] [stdout]      |
[INFO] [stdout] 2087 |     struct Reporter {};
[INFO] [stdout]      |                       ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2152:60
[INFO] [stdout]      |
[INFO] [stdout] 2152 |     struct Reporter<'a> { root: &'a dyn EvaluationContext };
[INFO] [stdout]      |                                                            ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rules` is never read
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:936:5
[INFO] [stdout]     |
[INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> {
[INFO] [stdout]     |                   --------- field in this struct
[INFO] [stdout] 936 |     rules: &'s RulesFile<'loc>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RootScope` has a derived impl for the trait `Debug`, but this is 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: field `block_type` is never read
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1034:5
[INFO] [stdout]      |
[INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> {
[INFO] [stdout]      |                   ---------- field in this struct
[INFO] [stdout] 1034 |     block_type: &'s Block<'s, T>,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `comparison` is never used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1151:19
[INFO] [stdout]      |
[INFO] [stdout] 1129 | impl<'s> AutoReport<'s> {
[INFO] [stdout]      | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     pub(super) fn comparison(&mut self, status: Status, from: Option<PathAwareValue>, to: Option<PathAwareValue>, cmp: (CmpOperator, bool...
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableResolver` is never constructed
[INFO] [stdout]    --> guard/src/rules/evaluate_tests.rs:884:8
[INFO] [stdout]     |
[INFO] [stdout] 884 | struct VariableResolver<'a, 'b>(&'a dyn EvaluationContext, HashMap<String, Vec<&'b PathAwareValue>>);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhenGuardBlockClause` is never constructed
[INFO] [stdout]    --> guard/src/rules/exprs.rs:171:19
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub(crate) struct WhenGuardBlockClause<'loc> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `context`, `span`, and `kind` are never used
[INFO] [stdout]   --> guard/src/rules/parser.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl<'a> ParserError<'a> {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 46 |     pub(crate) fn context(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn span(&self) -> &Span<'a> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn kind(&self) -> nom::error::ErrorKind {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConjunctionsWrapper` is never constructed
[INFO] [stdout]     --> guard/src/rules/parser.rs:1532:19
[INFO] [stdout]      |
[INFO] [stdout] 1532 | pub(crate) struct ConjunctionsWrapper<'a>(pub(crate) Conjunctions<GuardClause<'a>>);
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_unary` and `is_binary` are never used
[INFO] [stdout]   --> guard/src/rules/values.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl CmpOperator {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 31 |     pub(crate) fn is_unary(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn is_binary(&self) -> bool { !self.is_unary() }
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `drop_last` and `extend_with_value` are never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:92:19
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl Path {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub(crate) fn drop_last(&mut self) -> &mut Self {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) fn extend_with_value(&self, part: &Value) -> Result<Path, Error> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_scalar` is never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:675:19
[INFO] [stdout]     |
[INFO] [stdout] 634 | impl PathAwareValue {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub(crate) fn is_scalar(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_MULTIPLE` is never used
[INFO] [stdout]   --> guard/src/rules/path_value_tests.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const SAMPLE_MULTIPLE : &str = r#"{
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALPHABETICAL` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const ALPHABETICAL: (&str, &str) = ("alphabetical", "a");
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAST_MODIFIED` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const LAST_MODIFIED: (&str, &str) = ("last-modified", "l");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULES` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const RULES: (&str, &str) = ("rules", "r");
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DATA: (&str, &str) = ("data", "d");
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_files` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) fn get_files<F>(file: &str, sort: F) -> Result<Vec<PathBuf>, Error>
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_files_with_filter` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) fn get_files_with_filter<S, F>(file: &str, sort: S, filter: F) -> Result<Vec<PathBuf>, Error>
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter` is never constructed
[INFO] [stdout]   --> guard/src/commands/files.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) struct Iter<'i, T, C>
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iterate_over` is never used
[INFO] [stdout]   --> guard/src/commands/files.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<T, C>
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alpabetical` is never used
[INFO] [stdout]    --> guard/src/commands/files.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) fn alpabetical(first : &walkdir::DirEntry, second: &walkdir::DirEntry) -> Ordering {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `last_modified` is never used
[INFO] [stdout]    --> guard/src/commands/files.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) fn last_modified(first: &walkdir::DirEntry, second: &walkdir::DirEntry) -> Ordering {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regular_ordering` is never used
[INFO] [stdout]    --> guard/src/commands/files.rs:120:15
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub(crate) fn regular_ordering(_first: &walkdir::DirEntry, _second: &walkdir::DirEntry) -> Ordering {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) enum Type {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OutputFormatType` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) enum OutputFormatType {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub(crate) trait Reporter : Debug {
[INFO] [stdout]    |                  -------- method in this trait
[INFO] [stdout] 44 |     fn report(&self,
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Validate` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) struct Validate {}
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> guard/src/rules/values_tests.rs:124:6
[INFO] [stdout]     |
[INFO] [stdout] 124 |     };
[INFO] [stdout]     |      ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Validate {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 57 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_and_return_json` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn validate_and_return_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> guard/src/rules/values_tests.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout] 217 |     struct DummyResolver{};
[INFO] [stdout]     |                           ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reporters`, `rules_file_name`, `data_file_name`, `verbose`, `print_json`, and `show_clause_failures` are never read
[INFO] [stdout]    --> guard/src/commands/validate.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) struct ConsoleReporter<'r> {
[INFO] [stdout]     |                   --------------- fields in this struct
[INFO] [stdout] 271 |     root_context: StackTracker<'r>,
[INFO] [stdout] 272 |     reporters: &'r Vec<Box<dyn Reporter + 'r>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 273 |     rules_file_name: &'r str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     data_file_name: &'r str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     verbose: bool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 276 |     print_json: bool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 277 |     show_clause_failures: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsoleReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indent_spaces` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn indent_spaces(indent: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_context` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:286:15
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub(super) fn print_context(cxt: &StatusContext, depth: usize) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_failing_clause` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:323:4
[INFO] [stdout]     |
[INFO] [stdout] 323 | fn print_failing_clause(rules_file_name: &str, rule: &StatusContext, longest: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 362 | impl<'r, 'loc> ConsoleReporter<'r> {
[INFO] [stdout]     | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn report(self) -> crate::rules::Result<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INDENT` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:434:7
[INFO] [stdout]     |
[INFO] [stdout] 434 | const INDENT: &str = "    ";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_against_data_input` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:464:4
[INFO] [stdout]     |
[INFO] [stdout] 464 | fn evaluate_against_data_input<'r>(data_type: Type,
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenericSummary` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct GenericSummary<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a> GenericSummary<'a> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub(crate) fn new<'r>(data_file_name: &'r str,
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleLineSummary` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | struct SingleLineSummary{}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retrieval_error_message` is never used
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn retrieval_error_message(rules_file: &str, data_file: &str, info: &NameInfo<'_>) -> crate::rules::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unary_error_message` is never used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn unary_error_message(rules_file: &str, data_file: &str, op_msg: &str, info: &NameInfo<'_>) -> crate::rules::Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_error_message` is never used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn binary_error_message(rules_file: &str, data_file: &str, op_msg: &str, info: &NameInfo<'_>) -> crate::rules::Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Comparison` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(super) struct Comparison {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NameInfo` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(super) struct NameInfo<'a> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GenericReporter` is never used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(super) trait GenericReporter: Debug {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StructureType` is never used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(super) enum StructureType {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructuredSummary` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub(super) struct StructuredSummary {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl StructuredSummary {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 63 |     pub(super) fn new(hierarchy_type: StructureType) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataOutput` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct DataOutput<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_name_info` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(super) fn extract_name_info<'a>(rule_name: &'a str,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `colored_string` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub(super) fn colored_string(status: Option<Status>) -> ColoredString {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_failing_clauses` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:174:15
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub(super) fn find_all_failing_clauses(context: &StatusContext) -> Vec<&StatusContext> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_compliant_skipped_info` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:199:15
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub(super) fn print_compliant_skipped_info(writer: &mut dyn Write,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_name_info` is never used
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:219:15
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub(super) fn print_name_info<R, U, B>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SummaryType` is never used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) enum SummaryType {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SummaryTable` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) struct SummaryTable<'r> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a> SummaryTable<'a> {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 28 |     pub(crate) fn new<'r>(rules_file_name: &'r str, data_file_name: &'r str, summary_type: BitFlags<SummaryType>) -> SummaryTable<'r> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_partition` is never used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn print_partition(writer: &mut dyn Write,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CfnReporter` is never constructed
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct CfnReporter<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> CfnReporter<'a> {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 31 |     pub(crate) fn new<'r>(data_file_name: &'r str,
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleLineReporter` is never constructed
[INFO] [stdout]    --> guard/src/commands/validate/cfn_reporter.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct SingleLineReporter {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rulegen` is never constructed
[INFO] [stdout]   --> guard/src/commands/rulegen.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct Rulegen {}
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/rulegen.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Rulegen {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 17 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_rules` is never used
[INFO] [stdout]    --> guard/src/commands/rulegen.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn print_rules(rule_map : HashMap<String, HashMap<String, HashSet<String>>>, mut writer : Box<dyn std::io::Write>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Test` is never constructed
[INFO] [stdout]   --> guard/src/commands/test.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct Test {}
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/test.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Test {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 26 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestExpectations` is never constructed
[INFO] [stdout]    --> guard/src/commands/test.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct TestExpectations {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestSpec` is never constructed
[INFO] [stdout]    --> guard/src/commands/test.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct TestSpec {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_with_data` is never used
[INFO] [stdout]    --> guard/src/commands/test.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn test_with_data(test_data_files: &[PathBuf], rules: &RulesFile<'_>, verbose: bool) -> Result<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_test_case_report` is never used
[INFO] [stdout]    --> guard/src/commands/test.rs:188:16
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub (crate) fn print_test_case_report(by_result: &HashMap<String, indexmap::IndexSet<String>>) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseTree` is never constructed
[INFO] [stdout]  --> guard/src/commands/parse_tree.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) struct ParseTree {}
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/parse_tree.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl ParseTree {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 10 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Migrate` is never constructed
[INFO] [stdout]   --> guard/src/commands/migrate.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) struct Migrate {}
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Migrate {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 27 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DummyEval` is never constructed
[INFO] [stdout]  --> guard/src/commands/common_test_helpers.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) struct DummyEval{}
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Command` is never used
[INFO] [stdout]  --> guard/src/command.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) trait Command {
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> guard/src/rules/path_value.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED`
[INFO] [stdout]   --> guard/src/commands/validate.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED};
[INFO] [stdout]    |                       ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regular_ordering`
[INFO] [stdout]   --> guard/src/commands/validate.rs:12:83
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering};
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/generic_summary.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Serialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_value`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status};
[INFO] [stdout]   |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rules::path_value::Path`
[INFO] [stdout]  --> guard/src/commands/validate/common.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rules::path_value::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> guard/src/commands/validate/cfn_reporter.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorKind` and `Error`
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind};
[INFO] [stdout]    |                            ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Ref`
[INFO] [stdout]  --> guard/src/commands/tracker.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::Ref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QueryPart`
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::common_test_helpers::DummyEval`
[INFO] [stdout]  --> guard/src/commands/aws_meta_appender_tests.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::super::common_test_helpers::DummyEval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:40:22
[INFO] [stdout]    |
[INFO] [stdout] 40 |     struct Capture {};
[INFO] [stdout]    |                      ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> guard/src/migrate/parser.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rules::values::Value::Bool`
[INFO] [stdout]  --> guard/src/migrate/parser_tests.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::rules::values::Value::Bool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `str`, which is not FFI-safe
[INFO] [stdout]   --> guard/src/lib.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     data: &str,
[INFO] [stdout]    |           ^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using `*const u8` and a length instead
[INFO] [stdout]    = note: string slices have no C equivalent
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `str`, which is not FFI-safe
[INFO] [stdout]   --> guard/src/lib.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 |     rules: &str,
[INFO] [stdout]    |            ^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using `*const u8` and a length instead
[INFO] [stdout]    = note: string slices have no C equivalent
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `std::result::Result<std::string::String, errors::Error>`, which is not FFI-safe
[INFO] [stdout]   --> guard/src/lib.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | ) -> crate::rules::Result<String> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]    = note: enum has no representation hint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:950:9
[INFO] [stdout]     |
[INFO] [stdout] 950 | /         extract_variables(&rules.assignments,
[INFO] [stdout] 951 | |                           &mut literals,
[INFO] [stdout] 952 | |                           &mut pending);
[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] 950 |         let _ = extract_variables(&rules.assignments,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1046:9
[INFO] [stdout]      |
[INFO] [stdout] 1046 | /         extract_variables(&block_type.assignments,
[INFO] [stdout] 1047 | |                           &mut literals,
[INFO] [stdout] 1048 | |                           &mut pending);
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         let _ = extract_variables(&block_type.assignments,
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/rules/parser.rs:32:33
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span {
[INFO] [stdout]    |                                 ^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:645:27
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                           ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |        |       |     |
[INFO] [stdout]     |                           |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                           |        |       the same lifetime is hidden here
[INFO] [stdout]     |                           |        the same lifetime is hidden here
[INFO] [stdout]     |                           the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                               ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:659:26
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                          ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |        |       |     |
[INFO] [stdout]     |                          |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                          |        |       the same lifetime is hidden here
[INFO] [stdout]     |                          |        the same lifetime is hidden here
[INFO] [stdout]     |                          the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                              ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:843:40
[INFO] [stdout]     |
[INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>,
[INFO] [stdout]     |                                                     ---- the lifetime is named here
[INFO] [stdout] 842 |                          access: A,
[INFO] [stdout] 843 |                          mapper: M) -> IResult<Span<'loc>, T>
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^----^^^^^
[INFO] [stdout]     |                                        |            |
[INFO] [stdout]     |                                        |            the same lifetime is named here
[INFO] [stdout]     |                                        the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]     |
[INFO] [stdout] 843 |                          mapper: M) -> IResult<'loc, Span<'loc>, T>
[INFO] [stdout]     |                                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1040:87
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                              ----                                     ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                              |                                        |            |
[INFO] [stdout]      |                                              |                                        |            the same lifetime is named here
[INFO] [stdout]      |                                              the lifetime is named here               the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                                                                               +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1075:86
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                ----                                  ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                |                                     |            |
[INFO] [stdout]      |                                                |                                     |            the same lifetime is named here
[INFO] [stdout]      |                                                the lifetime is named here            the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                                                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser_tests.rs:827:27
[INFO] [stdout]     |
[INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec<QueryPart> {
[INFO] [stdout]     |                           ^^^^          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec<QueryPart<'_>> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/values.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let _ = write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/commands/files.rs:95:41
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<T, C>
[INFO] [stdout]    |                                         ^^^^^^^^^^                   ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<'_, T, C>
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 reader.read_to_string(&mut context);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 let _ = reader.read_to_string(&mut context);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | /         match &self.hierarchy_type {
[INFO] [stdout] 97 | |             StructureType::JSON => writeln!(writer, "{}", serde_json::to_string(&value)?),
[INFO] [stdout] 98 | |             StructureType::YAML => writeln!(writer, "{}", serde_yaml::to_string(&value)?),
[INFO] [stdout] 99 | |         };
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let _ = match &self.hierarchy_type {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let _ = writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let _ = writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let _ = writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/cfn_reporter.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/rulegen.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |             write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 202 |             let _ = write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             let _ = writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |         writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let _ = writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let _ = writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |         writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let _ = writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let _ = writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let _ = writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `query:` in this pattern is redundant
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender.rs:42:59
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...                   let AccessQuery { query: query, match_all: all } =
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ help: use shorthand field pattern: `query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let _ = writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> guard/src/commands/validate.rs:45:28
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut Write,
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |               writer: &mut dyn Write,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> guard/src/rules/evaluate.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitFlag`
[INFO] [stdout]   --> guard/src/commands/validate.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:86:41
[INFO] [stdout]    |
[INFO] [stdout] 86 |               skipped: HashSet<String>, longest_rule_len: usize) -> crate::rules::Result<()>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     longest_rule_len: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitFlag`
[INFO] [stdout]   --> guard/src/commands/validate.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2089:36
[INFO] [stdout]      |
[INFO] [stdout] 2089 |         fn resolve_variable(&self, variable: &str) -> Result<Vec<&PathAwareValue>> {
[INFO] [stdout]      |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_name`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2093:31
[INFO] [stdout]      |
[INFO] [stdout] 2093 |         fn rule_status(&self, rule_name: &str) -> Result<Status> {
[INFO] [stdout]      |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2097:61
[INFO] [stdout]      |
[INFO] [stdout] 2097 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Statu...
[INFO] [stdout]      |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_type`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2117:36
[INFO] [stdout]      |
[INFO] [stdout] 2117 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]      |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]     --> guard/src/rules/evaluate_tests.rs:2117:63
[INFO] [stdout]      |
[INFO] [stdout] 2117 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]      |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rules` is never read
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:936:5
[INFO] [stdout]     |
[INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> {
[INFO] [stdout]     |                   --------- field in this struct
[INFO] [stdout] 936 |     rules: &'s RulesFile<'loc>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RootScope` has a derived impl for the trait `Debug`, but this is 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: field `block_type` is never read
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1034:5
[INFO] [stdout]      |
[INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> {
[INFO] [stdout]      |                   ---------- field in this struct
[INFO] [stdout] 1034 |     block_type: &'s Block<'s, T>,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `comparison` is never used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1151:19
[INFO] [stdout]      |
[INFO] [stdout] 1129 | impl<'s> AutoReport<'s> {
[INFO] [stdout]      | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     pub(super) fn comparison(&mut self, status: Status, from: Option<PathAwareValue>, to: Option<PathAwareValue>, cmp: (CmpOperator, bool...
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhenGuardBlockClause` is never constructed
[INFO] [stdout]    --> guard/src/rules/exprs.rs:171:19
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub(crate) struct WhenGuardBlockClause<'loc> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `context`, `span`, and `kind` are never used
[INFO] [stdout]   --> guard/src/rules/parser.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl<'a> ParserError<'a> {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 46 |     pub(crate) fn context(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn span(&self) -> &Span<'a> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn kind(&self) -> nom::error::ErrorKind {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clauses` is never used
[INFO] [stdout]     --> guard/src/rules/parser.rs:1122:4
[INFO] [stdout]      |
[INFO] [stdout] 1122 | fn clauses(input: Span) -> IResult<Span, Conjunctions<GuardClause>> {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConjunctionsWrapper` is never constructed
[INFO] [stdout]     --> guard/src/rules/parser.rs:1532:19
[INFO] [stdout]      |
[INFO] [stdout] 1532 | pub(crate) struct ConjunctionsWrapper<'a>(pub(crate) Conjunctions<GuardClause<'a>>);
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_binary` is never used
[INFO] [stdout]   --> guard/src/rules/values.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl CmpOperator {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn is_binary(&self) -> bool { !self.is_unary() }
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_linked_hashmap` is never used
[INFO] [stdout]    --> guard/src/rules/values.rs:309:15
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub(super) fn make_linked_hashmap<'a, I>(values: I) -> IndexMap<String, Value>
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `drop_last` and `extend_with_value` are never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:92:19
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl Path {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub(crate) fn drop_last(&mut self) -> &mut Self {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) fn extend_with_value(&self, part: &Value) -> Result<Path, Error> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_scalar` is never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:675:19
[INFO] [stdout]     |
[INFO] [stdout] 634 | impl PathAwareValue {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub(crate) fn is_scalar(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULES` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const RULES: (&str, &str) = ("rules", "r");
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DATA: (&str, &str) = ("data", "d");
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_and_return_json` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn validate_and_return_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_file_name` is never read
[INFO] [stdout]    --> guard/src/commands/validate.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) struct ConsoleReporter<'r> {
[INFO] [stdout]     |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 274 |     data_file_name: &'r str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsoleReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_result_json` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 362 | impl<'r, 'loc> ConsoleReporter<'r> {
[INFO] [stdout]     | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn get_result_json(self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output_format_type` is never read
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct GenericSummary<'a> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     output_format_type: OutputFormatType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenericSummary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output_format_type` is never read
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct CfnReporter<'a> {
[INFO] [stdout]    |                   ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     output_format_type: OutputFormatType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CfnReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_and_return_json` is never used
[INFO] [stdout]   --> guard/src/commands/helper.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn validate_and_return_json(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_resource_types_in_ruleset` is never used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:132:16
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub (crate) fn get_resource_types_in_ruleset(rules: &Vec<RuleLineType>) -> Result<Vec<TypeName>> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DummyEval` is never constructed
[INFO] [stdout]  --> guard/src/commands/common_test_helpers.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) struct DummyEval{}
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:950:9
[INFO] [stdout]     |
[INFO] [stdout] 950 | /         extract_variables(&rules.assignments,
[INFO] [stdout] 951 | |                           &mut literals,
[INFO] [stdout] 952 | |                           &mut pending);
[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] 950 |         let _ = extract_variables(&rules.assignments,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1046:9
[INFO] [stdout]      |
[INFO] [stdout] 1046 | /         extract_variables(&block_type.assignments,
[INFO] [stdout] 1047 | |                           &mut literals,
[INFO] [stdout] 1048 | |                           &mut pending);
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         let _ = extract_variables(&block_type.assignments,
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/rules/parser.rs:32:33
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span {
[INFO] [stdout]    |                                 ^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:645:27
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                           ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |        |       |     |
[INFO] [stdout]     |                           |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                           |        |       the same lifetime is hidden here
[INFO] [stdout]     |                           |        the same lifetime is hidden here
[INFO] [stdout]     |                           the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                               ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:659:26
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                          ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |        |       |     |
[INFO] [stdout]     |                          |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                          |        |       the same lifetime is hidden here
[INFO] [stdout]     |                          |        the same lifetime is hidden here
[INFO] [stdout]     |                          the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                              ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:843:40
[INFO] [stdout]     |
[INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>,
[INFO] [stdout]     |                                                     ---- the lifetime is named here
[INFO] [stdout] 842 |                          access: A,
[INFO] [stdout] 843 |                          mapper: M) -> IResult<Span<'loc>, T>
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^----^^^^^
[INFO] [stdout]     |                                        |            |
[INFO] [stdout]     |                                        |            the same lifetime is named here
[INFO] [stdout]     |                                        the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]     |
[INFO] [stdout] 843 |                          mapper: M) -> IResult<'loc, Span<'loc>, T>
[INFO] [stdout]     |                                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1040:87
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                              ----                                     ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                              |                                        |            |
[INFO] [stdout]      |                                              |                                        |            the same lifetime is named here
[INFO] [stdout]      |                                              the lifetime is named here               the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                                                                               +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1075:86
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                ----                                  ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                |                                     |            |
[INFO] [stdout]      |                                                |                                     |            the same lifetime is named here
[INFO] [stdout]      |                                                the lifetime is named here            the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                                                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/values.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let _ = write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/commands/files.rs:95:41
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<T, C>
[INFO] [stdout]    |                                         ^^^^^^^^^^                   ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<'_, T, C>
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 reader.read_to_string(&mut context);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 let _ = reader.read_to_string(&mut context);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | /         match &self.hierarchy_type {
[INFO] [stdout] 97 | |             StructureType::JSON => writeln!(writer, "{}", serde_json::to_string(&value)?),
[INFO] [stdout] 98 | |             StructureType::YAML => writeln!(writer, "{}", serde_yaml::to_string(&value)?),
[INFO] [stdout] 99 | |         };
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let _ = match &self.hierarchy_type {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let _ = writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let _ = writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let _ = writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/cfn_reporter.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/rulegen.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |             write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 202 |             let _ = write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             let _ = writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |         writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let _ = writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let _ = writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |         writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let _ = writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let _ = writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let _ = writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `query:` in this pattern is redundant
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender.rs:42:59
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...                   let AccessQuery { query: query, match_all: all } =
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ help: use shorthand field pattern: `query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let _ = writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clause`
[INFO] [stdout]     --> guard/src/rules/parser_tests.rs:4121:17
[INFO] [stdout]      |
[INFO] [stdout] 4121 |     let (_span, clause) = rule_block_clause(from_str2(when_inside_when))?;
[INFO] [stdout]      |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clause`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:86:41
[INFO] [stdout]    |
[INFO] [stdout] 86 |               skipped: HashSet<String>, longest_rule_len: usize) -> crate::rules::Result<()>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `longest_rule_len`
[INFO] [stdout]    --> guard/src/commands/validate/common.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     longest_rule_len: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:42:36
[INFO] [stdout]    |
[INFO] [stdout] 42 |         fn resolve_variable(&self, variable: &str) -> Result<Vec<&PathAwareValue>> {
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_name`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |         fn rule_status(&self, rule_name: &str) -> Result<Status> {
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_type`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:34
[INFO] [stdout]    |
[INFO] [stdout] 50 | ...   fn end_evaluation(&self, eval_type: EvaluationType, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareV...
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:61
[INFO] [stdout]    |
[INFO] [stdout] 50 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Statu...
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:89
[INFO] [stdout]    |
[INFO] [stdout] 50 | ...e, context: &str, msg: String, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Status>, _cmp: Option<(CmpOper...
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:119
[INFO] [stdout]    |
[INFO] [stdout] 50 | ...g, from: Option<PathAwareValue>, to: Option<PathAwareValue>, status: Option<Status>, _cmp: Option<(CmpOperator, bool)>) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:50:147
[INFO] [stdout]    |
[INFO] [stdout] 50 | ... to: Option<PathAwareValue>, status: Option<Status>, _cmp: Option<(CmpOperator, bool)>) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_type`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:57:36
[INFO] [stdout]    |
[INFO] [stdout] 57 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]    |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender_tests.rs:57:63
[INFO] [stdout]    |
[INFO] [stdout] 57 |         fn start_evaluation(&self, eval_type: EvaluationType, context: &str) {
[INFO] [stdout]    |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rules` is never read
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:936:5
[INFO] [stdout]     |
[INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> {
[INFO] [stdout]     |                   --------- field in this struct
[INFO] [stdout] 936 |     rules: &'s RulesFile<'loc>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RootScope` has a derived impl for the trait `Debug`, but this is 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: field `block_type` is never read
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1034:5
[INFO] [stdout]      |
[INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> {
[INFO] [stdout]      |                   ---------- field in this struct
[INFO] [stdout] 1034 |     block_type: &'s Block<'s, T>,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `comparison` is never used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1151:19
[INFO] [stdout]      |
[INFO] [stdout] 1129 | impl<'s> AutoReport<'s> {
[INFO] [stdout]      | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     pub(super) fn comparison(&mut self, status: Status, from: Option<PathAwareValue>, to: Option<PathAwareValue>, cmp: (CmpOperator, bool...
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableResolver` is never constructed
[INFO] [stdout]    --> guard/src/rules/evaluate_tests.rs:884:8
[INFO] [stdout]     |
[INFO] [stdout] 884 | struct VariableResolver<'a, 'b>(&'a dyn EvaluationContext, HashMap<String, Vec<&'b PathAwareValue>>);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhenGuardBlockClause` is never constructed
[INFO] [stdout]    --> guard/src/rules/exprs.rs:171:19
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub(crate) struct WhenGuardBlockClause<'loc> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `context`, `span`, and `kind` are never used
[INFO] [stdout]   --> guard/src/rules/parser.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl<'a> ParserError<'a> {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 46 |     pub(crate) fn context(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn span(&self) -> &Span<'a> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn kind(&self) -> nom::error::ErrorKind {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConjunctionsWrapper` is never constructed
[INFO] [stdout]     --> guard/src/rules/parser.rs:1532:19
[INFO] [stdout]      |
[INFO] [stdout] 1532 | pub(crate) struct ConjunctionsWrapper<'a>(pub(crate) Conjunctions<GuardClause<'a>>);
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_binary` is never used
[INFO] [stdout]   --> guard/src/rules/values.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl CmpOperator {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn is_binary(&self) -> bool { !self.is_unary() }
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `drop_last` and `extend_with_value` are never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:92:19
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl Path {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub(crate) fn drop_last(&mut self) -> &mut Self {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) fn extend_with_value(&self, part: &Value) -> Result<Path, Error> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_scalar` is never used
[INFO] [stdout]    --> guard/src/rules/path_value.rs:675:19
[INFO] [stdout]     |
[INFO] [stdout] 634 | impl PathAwareValue {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub(crate) fn is_scalar(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_MULTIPLE` is never used
[INFO] [stdout]   --> guard/src/rules/path_value_tests.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const SAMPLE_MULTIPLE : &str = r#"{
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULES` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const RULES: (&str, &str) = ("rules", "r");
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA` is never used
[INFO] [stdout]   --> guard/src/commands/mod.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DATA: (&str, &str) = ("data", "d");
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_and_return_json` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn validate_and_return_json(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_file_name` is never read
[INFO] [stdout]    --> guard/src/commands/validate.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) struct ConsoleReporter<'r> {
[INFO] [stdout]     |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 274 |     data_file_name: &'r str,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsoleReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_result_json` is never used
[INFO] [stdout]    --> guard/src/commands/validate.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 362 | impl<'r, 'loc> ConsoleReporter<'r> {
[INFO] [stdout]     | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn get_result_json(self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output_format_type` is never read
[INFO] [stdout]   --> guard/src/commands/validate/generic_summary.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct GenericSummary<'a> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     output_format_type: OutputFormatType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenericSummary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output_format_type` is never read
[INFO] [stdout]   --> guard/src/commands/validate/cfn_reporter.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct CfnReporter<'a> {
[INFO] [stdout]    |                   ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     output_format_type: OutputFormatType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CfnReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_and_return_json` is never used
[INFO] [stdout]   --> guard/src/commands/helper.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn validate_and_return_json(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DummyEval` is never constructed
[INFO] [stdout]  --> guard/src/commands/common_test_helpers.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) struct DummyEval{}
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/evaluate.rs:950:9
[INFO] [stdout]     |
[INFO] [stdout] 950 | /         extract_variables(&rules.assignments,
[INFO] [stdout] 951 | |                           &mut literals,
[INFO] [stdout] 952 | |                           &mut pending);
[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] 950 |         let _ = extract_variables(&rules.assignments,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> guard/src/rules/evaluate.rs:1046:9
[INFO] [stdout]      |
[INFO] [stdout] 1046 | /         extract_variables(&block_type.assignments,
[INFO] [stdout] 1047 | |                           &mut literals,
[INFO] [stdout] 1048 | |                           &mut pending);
[INFO] [stdout]      | |_______________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         let _ = extract_variables(&block_type.assignments,
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/rules/parser.rs:32:33
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span {
[INFO] [stdout]    |                                 ^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:645:27
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                           ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |        |       |     |
[INFO] [stdout]     |                           |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                           |        |       the same lifetime is hidden here
[INFO] [stdout]     |                           |        the same lifetime is hidden here
[INFO] [stdout]     |                           the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                               ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:659:26
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult<Span, &str> {
[INFO] [stdout]     |                          ^^^^     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                          |        |       |     |
[INFO] [stdout]     |                          |        |       |     the same lifetime is elided here
[INFO] [stdout]     |                          |        |       the same lifetime is hidden here
[INFO] [stdout]     |                          |        the same lifetime is hidden here
[INFO] [stdout]     |                          the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> {
[INFO] [stdout]     |                              ++++             +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser.rs:843:40
[INFO] [stdout]     |
[INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>,
[INFO] [stdout]     |                                                     ---- the lifetime is named here
[INFO] [stdout] 842 |                          access: A,
[INFO] [stdout] 843 |                          mapper: M) -> IResult<Span<'loc>, T>
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^----^^^^^
[INFO] [stdout]     |                                        |            |
[INFO] [stdout]     |                                        |            the same lifetime is named here
[INFO] [stdout]     |                                        the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]     |
[INFO] [stdout] 843 |                          mapper: M) -> IResult<'loc, Span<'loc>, T>
[INFO] [stdout]     |                                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1040:87
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                              ----                                     ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                              |                                        |            |
[INFO] [stdout]      |                                              |                                        |            the same lifetime is named here
[INFO] [stdout]      |                                              the lifetime is named here               the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions<E>>
[INFO] [stdout]      |                                                                                               +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> guard/src/rules/parser.rs:1075:86
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                ----                                  ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                |                                     |            |
[INFO] [stdout]      |                                                |                                     |            the same lifetime is named here
[INFO] [stdout]      |                                                the lifetime is named here            the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'loc`
[INFO] [stdout]      |
[INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions<E>>
[INFO] [stdout]      |                                                                                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> guard/src/rules/parser_tests.rs:827:27
[INFO] [stdout]     |
[INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec<QueryPart> {
[INFO] [stdout]     |                           ^^^^          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec<QueryPart<'_>> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/rules/values.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let _ = write!(f, "{},{}", range.lower, range.upper);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> guard/src/commands/files.rs:95:41
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<T, C>
[INFO] [stdout]    |                                         ^^^^^^^^^^                   ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) fn iterate_over<T, C>(files: &[PathBuf], converter: C) -> Iter<'_, T, C>
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 reader.read_to_string(&mut context);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 let _ = reader.read_to_string(&mut context);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/generic_summary.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/common.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | /         match &self.hierarchy_type {
[INFO] [stdout] 97 | |             StructureType::JSON => writeln!(writer, "{}", serde_json::to_string(&value)?),
[INFO] [stdout] 98 | |             StructureType::YAML => writeln!(writer, "{}", serde_yaml::to_string(&value)?),
[INFO] [stdout] 99 | |         };
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let _ = match &self.hierarchy_type {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let _ = writeln!(writer, "{}", "SKIP rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let _ = writeln!(writer, "{}", "PASS rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/validate/summary_table.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let _ = writeln!(writer, "{}", "FAILED rules".bold());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/validate/cfn_reporter.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             writeln!(writer, "--");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let _ = writeln!(writer, "--");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/rulegen.rs:202:13
[INFO] [stdout]     |
[INFO] [stdout] 202 |             write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 202 |             let _ = write!(writer,"{}", generated_rules);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             let _ = writeln!(&mut migrated, "{}", assignment);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> guard/src/commands/migrate.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |         writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let _ = writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let _ = writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |         writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let _ = writeln!(&mut migrated, "    %{} {{", each_type);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let _ = writeln!(&mut migrated, "        {}", *each_clause);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/commands/migrate.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let _ = writeln!(&mut migrated, "    }}\n}}\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `query:` in this pattern is redundant
[INFO] [stdout]   --> guard/src/commands/aws_meta_appender.rs:42:59
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...                   let AccessQuery { query: query, match_all: all } =
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ help: use shorthand field pattern: `query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let _ = writeln!(f, "when {} {{", self.when_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> guard/src/migrate/parser.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = writeln!(f, "            {}", self.check_condition);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.01s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "b9fdd6dc83f447064200739bf61442d94e02c7a1de057e7f1f827b949d42b7e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b9fdd6dc83f447064200739bf61442d94e02c7a1de057e7f1f827b949d42b7e3", kill_on_drop: false }`
[INFO] [stdout] b9fdd6dc83f447064200739bf61442d94e02c7a1de057e7f1f827b949d42b7e3
