[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#f21fbac535ab2c3bc50db20547f4d48477357103 for pr-143193 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnizamawscloud%2Faws-cloudformation-cloudformation-guard" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-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-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard on toolchain f21fbac535ab2c3bc50db20547f4d48477357103 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f21fbac535ab2c3bc50db20547f4d48477357103" "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" "+f21fbac535ab2c3bc50db20547f4d48477357103" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded string-builder v0.2.0 [INFO] [stderr] Downloaded enumflags2 v0.7.1 [INFO] [stderr] Downloaded enumflags2_derive v0.7.0 [INFO] [stderr] Downloaded itertools v0.4.19 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+f21fbac535ab2c3bc50db20547f4d48477357103" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 977f223bba56aa6e380aedbdc343f1d2fb09d71dfed63ceaed881fca8da21f43 [INFO] running `Command { std: "docker" "start" "-a" "977f223bba56aa6e380aedbdc343f1d2fb09d71dfed63ceaed881fca8da21f43", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "977f223bba56aa6e380aedbdc343f1d2fb09d71dfed63ceaed881fca8da21f43", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "977f223bba56aa6e380aedbdc343f1d2fb09d71dfed63ceaed881fca8da21f43", kill_on_drop: false }` [INFO] [stdout] 977f223bba56aa6e380aedbdc343f1d2fb09d71dfed63ceaed881fca8da21f43 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+f21fbac535ab2c3bc50db20547f4d48477357103" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2416e3433bd25ec1a7ceee034b5e3d5304ee8c996d183c90453ee2bdb372d73b [INFO] running `Command { std: "docker" "start" "-a" "2416e3433bd25ec1a7ceee034b5e3d5304ee8c996d183c90453ee2bdb372d73b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.26 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling syn v1.0.72 [INFO] [stderr] Compiling libc v0.2.94 [INFO] [stderr] Compiling memchr v2.4.0 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Compiling serde v1.0.126 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Checking pin-project-lite v0.2.6 [INFO] [stderr] Checking itoa v0.4.7 [INFO] [stderr] Compiling futures-core v0.3.15 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Checking hashbrown v0.9.1 [INFO] [stderr] Compiling serde_json v1.0.64 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Compiling futures-task v0.3.15 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling futures-channel v0.3.15 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling indexmap v1.6.2 [INFO] [stderr] Compiling nom v5.1.2 [INFO] [stderr] Compiling futures-macro v0.3.15 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Compiling futures-util v0.3.15 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking bytecount v0.6.2 [INFO] [stderr] Checking dtoa v0.4.8 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking futures-sink v0.3.15 [INFO] [stderr] Checking unicode-segmentation v1.7.1 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking bytes v1.0.1 [INFO] [stderr] Checking heck v0.3.2 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Compiling tokio v1.6.1 [INFO] [stderr] Checking tracing-core v0.1.18 [INFO] [stderr] Checking string-builder v0.2.0 [INFO] [stderr] Checking itertools v0.4.19 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking futures-io v0.3.15 [INFO] [stderr] Checking slab v0.4.3 [INFO] [stderr] Compiling httparse v1.4.1 [INFO] [stderr] Checking once_cell v1.7.2 [INFO] [stderr] Checking sharded-slab v0.1.1 [INFO] [stderr] Checking try-lock v0.2.3 [INFO] [stderr] Checking httpdate v1.0.1 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking tower-service v0.3.1 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Checking thread_local v1.1.3 [INFO] [stderr] Checking http v0.2.4 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking mio v0.7.11 [INFO] [stderr] Checking socket2 v0.4.0 [INFO] [stderr] Checking tracing-subscriber v0.2.18 [INFO] [stderr] Checking colored v1.9.3 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking colored v2.0.0 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking simple_logger v1.11.0 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking nom_locate v2.1.0 [INFO] [stderr] Checking http-body v0.4.2 [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 tracing-error v0.1.2 [INFO] [stderr] Checking pin-project v1.0.7 [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)]` 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)]` 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 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)]` 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)]` 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)]` 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: 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` 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: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | skipped: HashSet, 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)]` 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 variable: `variable` [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2089:36 [INFO] [stdout] | [INFO] [stdout] 2089 | fn resolve_variable(&self, variable: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` 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 { [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, to: Option, status: Option 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)]` 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, to: Option, 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> { [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>); [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 [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 { [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 { [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(file: &str, sort: F) -> Result, 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(file: &str, sort: S, filter: F) -> Result, 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(files: &[PathBuf], converter: C) -> Iter [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>, [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 { [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 { [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 { [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) -> 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( [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) -> 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>>{ [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) -> HashMap>> { [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>>, mut writer : Box) { [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 { [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>) { [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) -> HashMap> { [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) -> Result> { [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) -> Result { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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 { [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, 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`, which is not FFI-safe [INFO] [stdout] --> guard/src/lib.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | ) -> crate::rules::Result { [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)]` 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: lifetime flowing from input to output with different syntax can be 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 lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:841:53 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ^^^^ this lifetime flows to the output [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ---------------------- [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:46 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:48 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [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: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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: 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)]` 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)]` 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 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)]` 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)]` 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)]` 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)]` 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)]` on by default [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 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` 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 variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | skipped: HashSet, 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> { [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 { [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, to: Option guard/src/commands/aws_meta_appender_tests.rs:50:61 [INFO] [stdout] | [INFO] [stdout] 50 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option, to: Option, status: Option guard/src/commands/aws_meta_appender_tests.rs:50:89 [INFO] [stdout] | [INFO] [stdout] 50 | ...e, context: &str, msg: String, from: Option, to: Option, status: Option, _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, to: Option, status: Option, _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, status: Option, _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)]` 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, to: Option, 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>); [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>); [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 { [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(file: &str, sort: F) -> Result, 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(file: &str, sort: S, filter: F) -> Result, 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(files: &[PathBuf], converter: C) -> Iter [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>, [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 { [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 { [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 { [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) -> 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( [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) -> 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>>, mut writer : Box) { [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 { [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>) { [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: `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`, which is not FFI-safe [INFO] [stdout] --> guard/src/lib.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | ) -> crate::rules::Result { [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)]` 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: lifetime flowing from input to output with different syntax can be 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 lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:841:53 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ^^^^ this lifetime flows to the output [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ---------------------- [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:46 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:48 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser_tests.rs:827:27 [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec { [INFO] [stdout] | ^^^^ --------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec> { [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: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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 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> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` 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 { [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, to: Option, status: Option 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, 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)]` 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)]` 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, to: Option, 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> { [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>); [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 [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 { [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) -> Result> { [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)]` 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: lifetime flowing from input to output with different syntax can be 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 lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:841:53 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ^^^^ this lifetime flows to the output [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ---------------------- [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:46 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:48 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [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: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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, 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> { [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 { [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, to: Option guard/src/commands/aws_meta_appender_tests.rs:50:61 [INFO] [stdout] | [INFO] [stdout] 50 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option, to: Option, status: Option guard/src/commands/aws_meta_appender_tests.rs:50:89 [INFO] [stdout] | [INFO] [stdout] 50 | ...e, context: &str, msg: String, from: Option, to: Option, status: Option, _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, to: Option, status: Option, _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, status: Option, _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)]` 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, to: Option, 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>); [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>); [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 { [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)]` 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: lifetime flowing from input to output with different syntax can be 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 lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ------------------- [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:841:53 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ^^^^ this lifetime flows to the output [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ---------------------- [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:46 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output the lifetimes get resolved as `'loc` [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:48 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ^^^^ ------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'loc` [INFO] [stdout] | | the lifetimes get resolved as `'loc` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to 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> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/rules/parser_tests.rs:827:27 [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec { [INFO] [stdout] | ^^^^ --------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec> { [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: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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 34.15s [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 1` [INFO] running `Command { std: "docker" "inspect" "2416e3433bd25ec1a7ceee034b5e3d5304ee8c996d183c90453ee2bdb372d73b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2416e3433bd25ec1a7ceee034b5e3d5304ee8c996d183c90453ee2bdb372d73b", kill_on_drop: false }` [INFO] [stdout] 2416e3433bd25ec1a7ceee034b5e3d5304ee8c996d183c90453ee2bdb372d73b