[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] testing nizamawscloud/aws-cloudformation-cloudformation-guard against beta-2025-09-21 for beta-1.91-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnizamawscloud%2Faws-cloudformation-cloudformation-guard" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/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-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nizamawscloud/aws-cloudformation-cloudformation-guard on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5ebb64441001ef19df98228aeb428c5d952e2ce4b8e014edaf1e61839e1b7df3 [INFO] running `Command { std: "docker" "start" "-a" "5ebb64441001ef19df98228aeb428c5d952e2ce4b8e014edaf1e61839e1b7df3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5ebb64441001ef19df98228aeb428c5d952e2ce4b8e014edaf1e61839e1b7df3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5ebb64441001ef19df98228aeb428c5d952e2ce4b8e014edaf1e61839e1b7df3", kill_on_drop: false }` [INFO] [stdout] 5ebb64441001ef19df98228aeb428c5d952e2ce4b8e014edaf1e61839e1b7df3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4bf9ccd26dfdba541a77ee944fdce574591c6a0f12e0b70d46815657f4d3ab96 [INFO] running `Command { std: "docker" "start" "-a" "4bf9ccd26dfdba541a77ee944fdce574591c6a0f12e0b70d46815657f4d3ab96", 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] Compiling pin-project-lite v0.2.6 [INFO] [stderr] Compiling futures-core v0.3.15 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling serde v1.0.126 [INFO] [stderr] Compiling futures-channel v0.3.15 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling futures-task v0.3.15 [INFO] [stderr] Compiling itoa v0.4.7 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling bytes v1.0.1 [INFO] [stderr] Compiling futures-sink v0.3.15 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Compiling tracing-core v0.1.18 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling futures-macro v0.3.15 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling futures-util v0.3.15 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling indexmap v1.6.2 [INFO] [stderr] Compiling tokio v1.6.1 [INFO] [stderr] Compiling serde_json v1.0.64 [INFO] [stderr] Compiling slab v0.4.3 [INFO] [stderr] Compiling hashbrown v0.9.1 [INFO] [stderr] Compiling futures-io v0.3.15 [INFO] [stderr] Compiling once_cell v1.7.2 [INFO] [stderr] Compiling httparse v1.4.1 [INFO] [stderr] Compiling linked-hash-map v0.5.4 [INFO] [stderr] Compiling unicode-width v0.1.8 [INFO] [stderr] Compiling nom v5.1.2 [INFO] [stderr] Compiling http v0.2.4 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling thread_local v1.1.3 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling sharded-slab v0.1.1 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling vec_map v0.8.2 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling mio v0.7.11 [INFO] [stderr] Compiling colored v1.9.3 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling dtoa v0.4.8 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling try-lock v0.2.3 [INFO] [stderr] Compiling ansi_term v0.11.0 [INFO] [stderr] Compiling bytecount v0.6.2 [INFO] [stderr] Compiling want v0.3.0 [INFO] [stderr] Compiling tracing-subscriber v0.2.18 [INFO] [stderr] Compiling clap v2.33.3 [INFO] [stderr] Compiling walkdir v2.3.2 [INFO] [stderr] Compiling heck v0.3.2 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling colored v2.0.0 [INFO] [stderr] Compiling socket2 v0.4.0 [INFO] [stderr] Compiling tower-service v0.3.1 [INFO] [stderr] Compiling httpdate v1.0.1 [INFO] [stderr] Compiling itertools v0.4.19 [INFO] [stderr] Compiling string-builder v0.2.0 [INFO] [stderr] Compiling simple_logger v1.11.0 [INFO] [stderr] Compiling http-body v0.4.2 [INFO] [stderr] Compiling nom_locate v2.1.0 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling tracing-attributes v0.1.15 [INFO] [stderr] Compiling tokio-macros v1.2.0 [INFO] [stderr] Compiling enumflags2_derive v0.7.0 [INFO] [stderr] Compiling pin-project-internal v1.0.7 [INFO] [stderr] Compiling async-stream-impl v0.3.2 [INFO] [stderr] Compiling async-stream v0.3.2 [INFO] [stderr] Compiling enumflags2 v0.7.1 [INFO] [stderr] Compiling tracing v0.1.26 [INFO] [stderr] Compiling pin-project v1.0.7 [INFO] [stderr] Compiling tracing-error v0.1.2 [INFO] [stderr] Compiling futures-executor v0.3.15 [INFO] [stderr] Compiling futures v0.3.15 [INFO] [stderr] Compiling tokio-stream v0.1.6 [INFO] [stderr] Compiling hyper v0.14.8 [INFO] [stderr] Compiling serde_yaml v0.8.17 [INFO] [stderr] Compiling cfn-guard v2.0.3 (/opt/rustwide/workdir/guard) [INFO] [stdout] warning: unused import: `WhenConditions` [INFO] [stdout] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stdout] | [INFO] [stdout] 684 | Ok('outer: loop { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> guard/src/rules/path_value.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED` [INFO] [stdout] --> guard/src/commands/validate.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regular_ordering` [INFO] [stdout] --> guard/src/commands/validate.rs:12:83 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path_value` [INFO] [stdout] --> guard/src/commands/validate/common.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rules::path_value::Path` [INFO] [stdout] --> guard/src/commands/validate/common.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::rules::path_value::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Ref` [INFO] [stdout] --> guard/src/commands/tracker.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::Ref; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `QueryPart` [INFO] [stdout] --> guard/src/commands/aws_meta_appender.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> guard/src/migrate/parser.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> guard/src/commands/validate.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut Write, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut dyn Write, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> guard/src/rules/evaluate.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitFlag` [INFO] [stdout] --> guard/src/commands/validate.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling lambda_runtime v0.3.0 [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | longest_rule_len: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rules` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:936:5 [INFO] [stdout] | [INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 936 | rules: &'s RulesFile<'loc>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RootScope` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_type` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stdout] | [INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1034 | block_type: &'s Block<'s, T>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `comparison` is never used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stdout] | [INFO] [stdout] 1129 | impl<'s> AutoReport<'s> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stdout] | [INFO] [stdout] 1046 | / extract_variables(&block_type.assignments, [INFO] [stdout] 1047 | | &mut literals, [INFO] [stdout] 1048 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:843:40 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ---- the lifetime is named here [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is named here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:87 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:86 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/values.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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] Compiling 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 39 - Err(e) => (e.to_string()), [INFO] [stdout] 39 + Err(e) => e.to_string(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WhenConditions` [INFO] [stdout] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stdout] | [INFO] [stdout] 684 | Ok('outer: loop { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> guard/src/rules/path_value.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED` [INFO] [stdout] --> guard/src/commands/validate.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regular_ordering` [INFO] [stdout] --> guard/src/commands/validate.rs:12:83 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path_value` [INFO] [stdout] --> guard/src/commands/validate/common.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rules::path_value::Path` [INFO] [stdout] --> guard/src/commands/validate/common.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::rules::path_value::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Ref` [INFO] [stdout] --> guard/src/commands/tracker.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::Ref; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `QueryPart` [INFO] [stdout] --> guard/src/commands/aws_meta_appender.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> guard/src/migrate/parser.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> guard/src/commands/validate.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut Write, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut dyn Write, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> guard/src/rules/evaluate.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitFlag` [INFO] [stdout] --> guard/src/commands/validate.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | skipped: HashSet, longest_rule_len: usize) -> crate::rules::Result<()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | longest_rule_len: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rules` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:936:5 [INFO] [stdout] | [INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 936 | rules: &'s RulesFile<'loc>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RootScope` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_type` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stdout] | [INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1034 | block_type: &'s Block<'s, T>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `comparison` is never used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stdout] | [INFO] [stdout] 1129 | impl<'s> AutoReport<'s> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stdout] | [INFO] [stdout] 1046 | / extract_variables(&block_type.assignments, [INFO] [stdout] 1047 | | &mut literals, [INFO] [stdout] 1048 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:843:40 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ---- the lifetime is named here [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is named here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:87 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:86 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/values.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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 39.20s [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 2` [INFO] running `Command { std: "docker" "inspect" "4bf9ccd26dfdba541a77ee944fdce574591c6a0f12e0b70d46815657f4d3ab96", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4bf9ccd26dfdba541a77ee944fdce574591c6a0f12e0b70d46815657f4d3ab96", kill_on_drop: false }` [INFO] [stdout] 4bf9ccd26dfdba541a77ee944fdce574591c6a0f12e0b70d46815657f4d3ab96 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ff16997bbb815ed2f7bb804802f8c1c9da695e5371dce422de33511a603a2b84 [INFO] running `Command { std: "docker" "start" "-a" "ff16997bbb815ed2f7bb804802f8c1c9da695e5371dce422de33511a603a2b84", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `WhenConditions` [INFO] [stdout] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stdout] | [INFO] [stdout] 684 | Ok('outer: loop { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> guard/src/rules/path_value.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED` [INFO] [stdout] --> guard/src/commands/validate.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regular_ordering` [INFO] [stdout] --> guard/src/commands/validate.rs:12:83 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path_value` [INFO] [stdout] --> guard/src/commands/validate/common.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rules::path_value::Path` [INFO] [stdout] --> guard/src/commands/validate/common.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::rules::path_value::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Ref` [INFO] [stdout] --> guard/src/commands/tracker.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::Ref; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `QueryPart` [INFO] [stdout] --> guard/src/commands/aws_meta_appender.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> guard/src/migrate/parser.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> guard/src/commands/validate.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut Write, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut dyn Write, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> guard/src/rules/evaluate.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitFlag` [INFO] [stdout] --> guard/src/commands/validate.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | skipped: HashSet, longest_rule_len: usize) -> crate::rules::Result<()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | longest_rule_len: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rules` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:936:5 [INFO] [stdout] | [INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 936 | rules: &'s RulesFile<'loc>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RootScope` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_type` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stdout] | [INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1034 | block_type: &'s Block<'s, T>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `comparison` is never used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stdout] | [INFO] [stdout] 1129 | impl<'s> AutoReport<'s> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stdout] | [INFO] [stdout] 1046 | / extract_variables(&block_type.assignments, [INFO] [stdout] 1047 | | &mut literals, [INFO] [stdout] 1048 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:843:40 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ---- the lifetime is named here [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is named here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:87 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:86 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/values.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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] Compiling cfn-guard v2.0.3 (/opt/rustwide/workdir/guard) [INFO] [stdout] warning: unused import: `WhenConditions` [INFO] [stdout] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stdout] | [INFO] [stdout] 684 | Ok('outer: loop { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> guard/src/rules/path_value.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED` [INFO] [stdout] --> guard/src/commands/validate.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regular_ordering` [INFO] [stdout] --> guard/src/commands/validate.rs:12:83 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path_value` [INFO] [stdout] --> guard/src/commands/validate/common.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rules::path_value::Path` [INFO] [stdout] --> guard/src/commands/validate/common.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::rules::path_value::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Ref` [INFO] [stdout] --> guard/src/commands/tracker.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::Ref; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `QueryPart` [INFO] [stdout] --> guard/src/commands/aws_meta_appender.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::rules::exprs::{QueryPart, AccessQuery}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> guard/src/migrate/parser.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> guard/src/commands/validate.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut Write, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut dyn Write, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> guard/src/rules/evaluate.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitFlag` [INFO] [stdout] --> guard/src/commands/validate.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 21 | use enumflags2::{BitFlag, BitFlags}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | skipped: HashSet, longest_rule_len: usize) -> crate::rules::Result<()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `longest_rule_len` [INFO] [stdout] --> guard/src/commands/validate/common.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | longest_rule_len: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rules` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:936:5 [INFO] [stdout] | [INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 936 | rules: &'s RulesFile<'loc>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RootScope` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_type` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stdout] | [INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1034 | block_type: &'s Block<'s, T>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `comparison` is never used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stdout] | [INFO] [stdout] 1129 | impl<'s> AutoReport<'s> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stdout] | [INFO] [stdout] 1046 | / extract_variables(&block_type.assignments, [INFO] [stdout] 1047 | | &mut literals, [INFO] [stdout] 1048 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:843:40 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ---- the lifetime is named here [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is named here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:87 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:86 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/values.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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] Compiling cfn-guard-lambda v2.0.3 (/opt/rustwide/workdir/guard-lambda) [INFO] [stdout] warning: unused import: `WhenConditions` [INFO] [stdout] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stdout] | [INFO] [stdout] 684 | Ok('outer: loop { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2087:23 [INFO] [stdout] | [INFO] [stdout] 2087 | struct Reporter {}; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2152:60 [INFO] [stdout] | [INFO] [stdout] 2152 | struct Reporter<'a> { root: &'a dyn EvaluationContext }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> guard/src/rules/values_tests.rs:124:6 [INFO] [stdout] | [INFO] [stdout] 124 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> guard/src/rules/values_tests.rs:217:27 [INFO] [stdout] | [INFO] [stdout] 217 | struct DummyResolver{}; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> guard/src/rules/path_value.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED` [INFO] [stdout] --> guard/src/commands/validate.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regular_ordering` [INFO] [stdout] --> guard/src/commands/validate.rs:12:83 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> guard/src/commands/validate/generic_summary.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path_value` [INFO] [stdout] --> guard/src/commands/validate/common.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{EvaluationType, path_value, Status}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rules::path_value::Path` [INFO] [stdout] --> guard/src/commands/validate/common.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::rules::path_value::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use colored::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> guard/src/commands/validate/cfn_reporter.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::rules::errors::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WhenConditions` [INFO] [stdout] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stdout] | [INFO] [stdout] 684 | Ok('outer: loop { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2087:23 [INFO] [stdout] | [INFO] [stdout] 2087 | struct Reporter {}; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2152:60 [INFO] [stdout] | [INFO] [stdout] 2152 | struct Reporter<'a> { root: &'a dyn EvaluationContext }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 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: 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: unnecessary parentheses around match arm expression [INFO] [stdout] --> guard-lambda/src/main.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | Err(e) => (e.to_string()), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 39 - Err(e) => (e.to_string()), [INFO] [stdout] 39 + Err(e) => e.to_string(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused 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)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut dyn Write, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> guard/src/commands/validate.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut Write, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | writer: &mut dyn Write, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rule_name` [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2093:31 [INFO] [stdout] | [INFO] [stdout] 2093 | fn rule_status(&self, rule_name: &str) -> Result { [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 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rule_name` [INFO] [stdout] --> guard/src/rules/evaluate_tests.rs:2093:31 [INFO] [stdout] | [INFO] [stdout] 2093 | fn rule_status(&self, rule_name: &str) -> Result { [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: `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: `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: `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: 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_type` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stdout] | [INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1034 | block_type: &'s Block<'s, T>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `comparison` is never used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stdout] | [INFO] [stdout] 1129 | impl<'s> AutoReport<'s> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stdout] | [INFO] [stdout] 1046 | / extract_variables(&block_type.assignments, [INFO] [stdout] 1047 | | &mut literals, [INFO] [stdout] 1048 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:843:40 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ---- the lifetime is named here [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is named here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:87 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:86 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rules` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:936:5 [INFO] [stdout] | [INFO] [stdout] 935 | pub(crate) struct RootScope<'s, 'loc> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 936 | rules: &'s RulesFile<'loc>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RootScope` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block_type` is never read [INFO] [stdout] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stdout] | [INFO] [stdout] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 1034 | block_type: &'s Block<'s, T>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `comparison` is never used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stdout] | [INFO] [stdout] 1129 | impl<'s> AutoReport<'s> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, to: Option, cmp: (CmpOperator, bool... [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser_tests.rs:827:27 [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec { [INFO] [stdout] | ^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec> { [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: 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: 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: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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: `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/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 `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:950:9 [INFO] [stdout] | [INFO] [stdout] 950 | / extract_variables(&rules.assignments, [INFO] [stdout] 951 | | &mut literals, [INFO] [stdout] 952 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stdout] | [INFO] [stdout] 1046 | / extract_variables(&block_type.assignments, [INFO] [stdout] 1047 | | &mut literals, [INFO] [stdout] 1048 | | &mut pending); [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stdout] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:645:27 [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:659:26 [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | | [INFO] [stdout] | | | | the same lifetime is elided here [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is hidden here [INFO] [stdout] | the lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stdout] | ++++ +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:843:40 [INFO] [stdout] | [INFO] [stdout] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stdout] | ---- the lifetime is named here [INFO] [stdout] 842 | access: A, [INFO] [stdout] 843 | mapper: M) -> IResult, T> [INFO] [stdout] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is named here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1040:87 [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult<'loc, Span<'loc>, Conjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser.rs:1075:86 [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stdout] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is named here [INFO] [stdout] | the lifetime is named here the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'loc` [INFO] [stdout] | [INFO] [stdout] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/rules/parser_tests.rs:827:27 [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec { [INFO] [stdout] | ^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 827 | fn to_query_part(vec: Vec<&str>) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> guard/src/rules/values.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = write!(f, "{},{}", range.lower, range.upper); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> guard/src/commands/files.rs:95:41 [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 95 | pub(crate) fn iterate_over(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 `test` profile [unoptimized + debuginfo] target(s) in 8.40s [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 2` [INFO] running `Command { std: "docker" "inspect" "ff16997bbb815ed2f7bb804802f8c1c9da695e5371dce422de33511a603a2b84", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff16997bbb815ed2f7bb804802f8c1c9da695e5371dce422de33511a603a2b84", kill_on_drop: false }` [INFO] [stdout] ff16997bbb815ed2f7bb804802f8c1c9da695e5371dce422de33511a603a2b84 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 359512cfbe06c2d5e1e2be2d0cb190d7d76eda2bd6241a7faf82c541b5b2a87c [INFO] running `Command { std: "docker" "start" "-a" "359512cfbe06c2d5e1e2be2d0cb190d7d76eda2bd6241a7faf82c541b5b2a87c", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `WhenConditions` [INFO] [stderr] --> guard/src/rules/evaluate.rs:9:114 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::rules::exprs::{GuardClause, GuardNamedRuleClause, QueryPart, RuleClause, TypeBlock, BlockGuardClause, WhenConditions, WhenGuar... [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> guard/src/rules/evaluate.rs:684:12 [INFO] [stderr] | [INFO] [stderr] 684 | Ok('outer: loop { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Write` [INFO] [stderr] --> guard/src/rules/path_value.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::fmt::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ALPHABETICAL` and `LAST_MODIFIED` [INFO] [stderr] --> guard/src/commands/validate.rs:10:23 [INFO] [stderr] | [INFO] [stderr] 10 | use crate::commands::{ALPHABETICAL, LAST_MODIFIED}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `regular_ordering` [INFO] [stderr] --> guard/src/commands/validate.rs:12:83 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::commands::files::{alpabetical, get_files, iterate_over, last_modified, regular_ordering}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `colored::*` [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use colored::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::Serialize` [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use serde::Serialize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `itertools::Itertools` [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use itertools::Itertools; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `path_value` [INFO] [stderr] --> guard/src/commands/validate/common.rs:5:36 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::rules::{EvaluationType, path_value, Status}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::rules::path_value::Path` [INFO] [stderr] --> guard/src/commands/validate/common.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::rules::path_value::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `colored::*` [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use colored::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind` and `Error` [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:13:28 [INFO] [stderr] | [INFO] [stderr] 13 | use crate::rules::errors::{Error, ErrorKind}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::Ref` [INFO] [stderr] --> guard/src/commands/tracker.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::cell::Ref; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `QueryPart` [INFO] [stderr] --> guard/src/commands/aws_meta_appender.rs:3:27 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::rules::exprs::{QueryPart, AccessQuery}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> guard/src/migrate/parser.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> guard/src/commands/validate.rs:45:28 [INFO] [stderr] | [INFO] [stderr] 45 | writer: &mut Write, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stderr] | [INFO] [stderr] 45 | writer: &mut dyn Write, [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: unused import: `colored::Colorize` [INFO] [stderr] --> guard/src/rules/evaluate.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use colored::Colorize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BitFlag` [INFO] [stderr] --> guard/src/commands/validate.rs:21:18 [INFO] [stderr] | [INFO] [stderr] 21 | use enumflags2::{BitFlag, BitFlags}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `longest_rule_len` [INFO] [stderr] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stderr] | [INFO] [stderr] 86 | skipped: HashSet, longest_rule_len: usize) -> crate::rules::Result<()> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `longest_rule_len` [INFO] [stderr] --> guard/src/commands/validate/common.rs:222:5 [INFO] [stderr] | [INFO] [stderr] 222 | longest_rule_len: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stderr] [INFO] [stderr] warning: field `rules` is never read [INFO] [stderr] --> guard/src/rules/evaluate.rs:936:5 [INFO] [stderr] | [INFO] [stderr] 935 | pub(crate) struct RootScope<'s, 'loc> { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] 936 | rules: &'s RulesFile<'loc>, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RootScope` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `block_type` is never read [INFO] [stderr] --> guard/src/rules/evaluate.rs:1034:5 [INFO] [stderr] | [INFO] [stderr] 1033 | pub(crate) struct BlockScope<'s, T> { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] 1034 | block_type: &'s Block<'s, T>, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `comparison` is never used [INFO] [stderr] --> guard/src/rules/evaluate.rs:1151:19 [INFO] [stderr] | [INFO] [stderr] 1129 | impl<'s> AutoReport<'s> { [INFO] [stderr] | ----------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 1151 | pub(super) fn comparison(&mut self, status: Status, from: Option, to: Option, cmp: (CmpOperator, bool... [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `WhenGuardBlockClause` is never constructed [INFO] [stderr] --> guard/src/rules/exprs.rs:171:19 [INFO] [stderr] | [INFO] [stderr] 171 | pub(crate) struct WhenGuardBlockClause<'loc> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `context`, `span`, and `kind` are never used [INFO] [stderr] --> guard/src/rules/parser.rs:46:19 [INFO] [stderr] | [INFO] [stderr] 45 | impl<'a> ParserError<'a> { [INFO] [stderr] | ------------------------ methods in this implementation [INFO] [stderr] 46 | pub(crate) fn context(&self) -> &str { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | pub(crate) fn span(&self) -> &Span<'a> { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 54 | pub(crate) fn kind(&self) -> nom::error::ErrorKind { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `clauses` is never used [INFO] [stderr] --> guard/src/rules/parser.rs:1122:4 [INFO] [stderr] | [INFO] [stderr] 1122 | fn clauses(input: Span) -> IResult> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ConjunctionsWrapper` is never constructed [INFO] [stderr] --> guard/src/rules/parser.rs:1532:19 [INFO] [stderr] | [INFO] [stderr] 1532 | pub(crate) struct ConjunctionsWrapper<'a>(pub(crate) Conjunctions>); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `is_unary` and `is_binary` are never used [INFO] [stderr] --> guard/src/rules/values.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 30 | impl CmpOperator { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] 31 | pub(crate) fn is_unary(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 42 | pub(crate) fn is_binary(&self) -> bool { !self.is_unary() } [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `make_linked_hashmap` is never used [INFO] [stderr] --> guard/src/rules/values.rs:309:15 [INFO] [stderr] | [INFO] [stderr] 309 | pub(super) fn make_linked_hashmap<'a, I>(values: I) -> IndexMap [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `drop_last` and `extend_with_value` are never used [INFO] [stderr] --> guard/src/rules/path_value.rs:92:19 [INFO] [stderr] | [INFO] [stderr] 75 | impl Path { [INFO] [stderr] | --------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 92 | pub(crate) fn drop_last(&mut self) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 101 | pub(crate) fn extend_with_value(&self, part: &Value) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `is_scalar` is never used [INFO] [stderr] --> guard/src/rules/path_value.rs:675:19 [INFO] [stderr] | [INFO] [stderr] 634 | impl PathAwareValue { [INFO] [stderr] | ------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 675 | pub(crate) fn is_scalar(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ALPHABETICAL` is never used [INFO] [stderr] --> guard/src/commands/mod.rs:16:18 [INFO] [stderr] | [INFO] [stderr] 16 | pub(crate) const ALPHABETICAL: (&str, &str) = ("alphabetical", "a"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `LAST_MODIFIED` is never used [INFO] [stderr] --> guard/src/commands/mod.rs:17:18 [INFO] [stderr] | [INFO] [stderr] 17 | pub(crate) const LAST_MODIFIED: (&str, &str) = ("last-modified", "l"); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RULES` is never used [INFO] [stderr] --> guard/src/commands/mod.rs:18:18 [INFO] [stderr] | [INFO] [stderr] 18 | pub(crate) const RULES: (&str, &str) = ("rules", "r"); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `DATA` is never used [INFO] [stderr] --> guard/src/commands/mod.rs:19:18 [INFO] [stderr] | [INFO] [stderr] 19 | pub(crate) const DATA: (&str, &str) = ("data", "d"); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `read_file_content` is never used [INFO] [stderr] --> guard/src/commands/files.rs:10:15 [INFO] [stderr] | [INFO] [stderr] 10 | pub(crate) fn read_file_content(file: File) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_files` is never used [INFO] [stderr] --> guard/src/commands/files.rs:17:15 [INFO] [stderr] | [INFO] [stderr] 17 | pub(crate) fn get_files(file: &str, sort: F) -> Result, Error> [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_files_with_filter` is never used [INFO] [stderr] --> guard/src/commands/files.rs:37:15 [INFO] [stderr] | [INFO] [stderr] 37 | pub(crate) fn get_files_with_filter(file: &str, sort: S, filter: F) -> Result, Error> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Iter` is never constructed [INFO] [stderr] --> guard/src/commands/files.rs:64:19 [INFO] [stderr] | [INFO] [stderr] 64 | pub(crate) struct Iter<'i, T, C> [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `iterate_over` is never used [INFO] [stderr] --> guard/src/commands/files.rs:95:15 [INFO] [stderr] | [INFO] [stderr] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `alpabetical` is never used [INFO] [stderr] --> guard/src/commands/files.rs:103:15 [INFO] [stderr] | [INFO] [stderr] 103 | pub(crate) fn alpabetical(first : &walkdir::DirEntry, second: &walkdir::DirEntry) -> Ordering { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `last_modified` is never used [INFO] [stderr] --> guard/src/commands/files.rs:107:15 [INFO] [stderr] | [INFO] [stderr] 107 | pub(crate) fn last_modified(first: &walkdir::DirEntry, second: &walkdir::DirEntry) -> Ordering { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `regular_ordering` is never used [INFO] [stderr] --> guard/src/commands/files.rs:120:15 [INFO] [stderr] | [INFO] [stderr] 120 | pub(crate) fn regular_ordering(_first: &walkdir::DirEntry, _second: &walkdir::DirEntry) -> Ordering { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Type` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:31:17 [INFO] [stderr] | [INFO] [stderr] 31 | pub(crate) enum Type { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `OutputFormatType` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | pub(crate) enum OutputFormatType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `report` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:44:8 [INFO] [stderr] | [INFO] [stderr] 43 | pub(crate) trait Reporter : Debug { [INFO] [stderr] | -------- method in this trait [INFO] [stderr] 44 | fn report(&self, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Validate` is never constructed [INFO] [stderr] --> guard/src/commands/validate.rs:54:19 [INFO] [stderr] | [INFO] [stderr] 54 | pub(crate) struct Validate {} [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:57:19 [INFO] [stderr] | [INFO] [stderr] 56 | impl Validate { [INFO] [stderr] | ------------- associated function in this implementation [INFO] [stderr] 57 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `validate_and_return_json` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:238:8 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn validate_and_return_json( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `reporters`, `rules_file_name`, `data_file_name`, `verbose`, `print_json`, and `show_clause_failures` are never read [INFO] [stderr] --> guard/src/commands/validate.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 270 | pub(crate) struct ConsoleReporter<'r> { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] 271 | root_context: StackTracker<'r>, [INFO] [stderr] 272 | reporters: &'r Vec>, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 273 | rules_file_name: &'r str, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 274 | data_file_name: &'r str, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 275 | verbose: bool, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 276 | print_json: bool, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 277 | show_clause_failures: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ConsoleReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `indent_spaces` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:280:4 [INFO] [stderr] | [INFO] [stderr] 280 | fn indent_spaces(indent: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_context` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:286:15 [INFO] [stderr] | [INFO] [stderr] 286 | pub(super) fn print_context(cxt: &StatusContext, depth: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_failing_clause` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:323:4 [INFO] [stderr] | [INFO] [stderr] 323 | fn print_failing_clause(rules_file_name: &str, rule: &StatusContext, longest: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `report` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:381:8 [INFO] [stderr] | [INFO] [stderr] 362 | impl<'r, 'loc> ConsoleReporter<'r> { [INFO] [stderr] | ---------------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 381 | fn report(self) -> crate::rules::Result<()> { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `INDENT` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:434:7 [INFO] [stderr] | [INFO] [stderr] 434 | const INDENT: &str = " "; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `evaluate_against_data_input` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:464:4 [INFO] [stderr] | [INFO] [stderr] 464 | fn evaluate_against_data_input<'r>(data_type: Type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `GenericSummary` is never constructed [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 17 | pub(crate) struct GenericSummary<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:25:19 [INFO] [stderr] | [INFO] [stderr] 24 | impl<'a> GenericSummary<'a> { [INFO] [stderr] | --------------------------- associated function in this implementation [INFO] [stderr] 25 | pub(crate) fn new<'r>(data_file_name: &'r str, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SingleLineSummary` is never constructed [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:97:8 [INFO] [stderr] | [INFO] [stderr] 97 | struct SingleLineSummary{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `retrieval_error_message` is never used [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:99:4 [INFO] [stderr] | [INFO] [stderr] 99 | fn retrieval_error_message(rules_file: &str, data_file: &str, info: &NameInfo<'_>) -> crate::rules::Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `unary_error_message` is never used [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:109:4 [INFO] [stderr] | [INFO] [stderr] 109 | fn unary_error_message(rules_file: &str, data_file: &str, op_msg: &str, info: &NameInfo<'_>) -> crate::rules::Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `binary_error_message` is never used [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:121:4 [INFO] [stderr] | [INFO] [stderr] 121 | fn binary_error_message(rules_file: &str, data_file: &str, op_msg: &str, info: &NameInfo<'_>) -> crate::rules::Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Comparison` is never constructed [INFO] [stderr] --> guard/src/commands/validate/common.rs:16:19 [INFO] [stderr] | [INFO] [stderr] 16 | pub(super) struct Comparison { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `NameInfo` is never constructed [INFO] [stderr] --> guard/src/commands/validate/common.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 31 | pub(super) struct NameInfo<'a> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `GenericReporter` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:40:18 [INFO] [stderr] | [INFO] [stderr] 40 | pub(super) trait GenericReporter: Debug { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `StructureType` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | pub(super) enum StructureType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `StructuredSummary` is never constructed [INFO] [stderr] --> guard/src/commands/validate/common.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | pub(super) struct StructuredSummary { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:63:19 [INFO] [stderr] | [INFO] [stderr] 62 | impl StructuredSummary { [INFO] [stderr] | ---------------------- associated function in this implementation [INFO] [stderr] 63 | pub(super) fn new(hierarchy_type: StructureType) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DataOutput` is never constructed [INFO] [stderr] --> guard/src/commands/validate/common.rs:71:8 [INFO] [stderr] | [INFO] [stderr] 71 | struct DataOutput<'a> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `extract_name_info` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:108:15 [INFO] [stderr] | [INFO] [stderr] 108 | pub(super) fn extract_name_info<'a>(rule_name: &'a str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `colored_string` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:162:15 [INFO] [stderr] | [INFO] [stderr] 162 | pub(super) fn colored_string(status: Option) -> ColoredString { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_all_failing_clauses` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:174:15 [INFO] [stderr] | [INFO] [stderr] 174 | pub(super) fn find_all_failing_clauses(context: &StatusContext) -> Vec<&StatusContext> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_compliant_skipped_info` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:199:15 [INFO] [stderr] | [INFO] [stderr] 199 | pub(super) fn print_compliant_skipped_info(writer: &mut dyn Write, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_name_info` is never used [INFO] [stderr] --> guard/src/commands/validate/common.rs:219:15 [INFO] [stderr] | [INFO] [stderr] 219 | pub(super) fn print_name_info( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `SummaryType` is never used [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | pub(super) enum SummaryType { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SummaryTable` is never constructed [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | pub(super) struct SummaryTable<'r> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:28:19 [INFO] [stderr] | [INFO] [stderr] 27 | impl<'a> SummaryTable<'a> { [INFO] [stderr] | ------------------------- associated function in this implementation [INFO] [stderr] 28 | pub(crate) fn new<'r>(rules_file_name: &'r str, data_file_name: &'r str, summary_type: BitFlags) -> SummaryTable<'r> { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_partition` is never used [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:35:4 [INFO] [stderr] | [INFO] [stderr] 35 | fn print_partition(writer: &mut dyn Write, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CfnReporter` is never constructed [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub(crate) struct CfnReporter<'a> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 30 | impl<'a> CfnReporter<'a> { [INFO] [stderr] | ------------------------ associated function in this implementation [INFO] [stderr] 31 | pub(crate) fn new<'r>(data_file_name: &'r str, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SingleLineReporter` is never constructed [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:110:8 [INFO] [stderr] | [INFO] [stderr] 110 | struct SingleLineReporter {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Rulegen` is never constructed [INFO] [stderr] --> guard/src/commands/rulegen.rs:14:19 [INFO] [stderr] | [INFO] [stderr] 14 | pub(crate) struct Rulegen {} [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/rulegen.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 16 | impl Rulegen { [INFO] [stderr] | ------------ associated function in this implementation [INFO] [stderr] 17 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_template_and_call_gen` is never used [INFO] [stderr] --> guard/src/commands/rulegen.rs:52:8 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn parse_template_and_call_gen(template_contents: &str) -> HashMap>>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `gen_rules` is never used [INFO] [stderr] --> guard/src/commands/rulegen.rs:81:4 [INFO] [stderr] | [INFO] [stderr] 81 | fn gen_rules(cfn_resources: HashMap) -> HashMap>> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_rules` is never used [INFO] [stderr] --> guard/src/commands/rulegen.rs:172:4 [INFO] [stderr] | [INFO] [stderr] 172 | fn print_rules(rule_map : HashMap>>, mut writer : Box) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Test` is never constructed [INFO] [stderr] --> guard/src/commands/test.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub(crate) struct Test {} [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/test.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 25 | impl Test { [INFO] [stderr] | --------- associated function in this implementation [INFO] [stderr] 26 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TestExpectations` is never constructed [INFO] [stderr] --> guard/src/commands/test.rs:107:8 [INFO] [stderr] | [INFO] [stderr] 107 | struct TestExpectations { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TestSpec` is never constructed [INFO] [stderr] --> guard/src/commands/test.rs:112:8 [INFO] [stderr] | [INFO] [stderr] 112 | struct TestSpec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `test_with_data` is never used [INFO] [stderr] --> guard/src/commands/test.rs:118:4 [INFO] [stderr] | [INFO] [stderr] 118 | fn test_with_data(test_data_files: &[PathBuf], rules: &RulesFile<'_>, verbose: bool) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_test_case_report` is never used [INFO] [stderr] --> guard/src/commands/test.rs:188:16 [INFO] [stderr] | [INFO] [stderr] 188 | pub (crate) fn print_test_case_report(by_result: &HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ParseTree` is never constructed [INFO] [stderr] --> guard/src/commands/parse_tree.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) struct ParseTree {} [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/parse_tree.rs:10:19 [INFO] [stderr] | [INFO] [stderr] 9 | impl ParseTree { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] 10 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Migrate` is never constructed [INFO] [stderr] --> guard/src/commands/migrate.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | pub(crate) struct Migrate {} [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> guard/src/commands/migrate.rs:27:19 [INFO] [stderr] | [INFO] [stderr] 26 | impl Migrate { [INFO] [stderr] | ------------ associated function in this implementation [INFO] [stderr] 27 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `migrated_rules_by_type` is never used [INFO] [stderr] --> guard/src/commands/migrate.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | pub(crate) fn migrated_rules_by_type(rules: &[RuleLineType], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `aggregate_by_type` is never used [INFO] [stderr] --> guard/src/commands/migrate.rs:110:15 [INFO] [stderr] | [INFO] [stderr] 110 | pub(crate) fn aggregate_by_type(rules: &Vec) -> HashMap> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_resource_types_in_ruleset` is never used [INFO] [stderr] --> guard/src/commands/migrate.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | pub (crate) fn get_resource_types_in_ruleset(rules: &Vec) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `migrate_rules` is never used [INFO] [stderr] --> guard/src/commands/migrate.rs:149:16 [INFO] [stderr] | [INFO] [stderr] 149 | pub (crate) fn migrate_rules(rules: Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MetadataAppender` is never constructed [INFO] [stderr] --> guard/src/commands/aws_meta_appender.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | pub(super) struct MetadataAppender<'d> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DummyEval` is never constructed [INFO] [stderr] --> guard/src/commands/common_test_helpers.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | pub(super) struct DummyEval{} [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `Command` is never used [INFO] [stderr] --> guard/src/command.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | pub(crate) trait Command { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `OldGuardValues` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:21:10 [INFO] [stderr] | [INFO] [stderr] 21 | pub enum OldGuardValues { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Assignment` is never constructed [INFO] [stderr] --> guard/src/migrate/parser.rs:44:19 [INFO] [stderr] | [INFO] [stderr] 44 | pub(crate) struct Assignment { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `CmpOperator` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) enum CmpOperator { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `PropertyComparison` is never constructed [INFO] [stderr] --> guard/src/migrate/parser.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | pub(crate) struct PropertyComparison { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `BaseRule` is never constructed [INFO] [stderr] --> guard/src/migrate/parser.rs:109:19 [INFO] [stderr] | [INFO] [stderr] 109 | pub(crate) struct BaseRule { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ConditionalRule` is never constructed [INFO] [stderr] --> guard/src/migrate/parser.rs:128:19 [INFO] [stderr] | [INFO] [stderr] 128 | pub(crate) struct ConditionalRule { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Rule` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:143:17 [INFO] [stderr] | [INFO] [stderr] 143 | pub(crate) enum Rule { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Clause` is never constructed [INFO] [stderr] --> guard/src/migrate/parser.rs:157:19 [INFO] [stderr] | [INFO] [stderr] 157 | pub(crate) struct Clause { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `RuleLineType` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:171:17 [INFO] [stderr] | [INFO] [stderr] 171 | pub(crate) enum RuleLineType { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_variable_dereference` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:195:16 [INFO] [stderr] | [INFO] [stderr] 195 | pub (crate) fn parse_variable_dereference(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_complete_value` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:202:27 [INFO] [stderr] | [INFO] [stderr] 202 | pub(in crate::migrate) fn parse_complete_value(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `comment` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:216:27 [INFO] [stderr] | [INFO] [stderr] 216 | pub(in crate::migrate) fn comment(input: Span) ->IResult { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_old_guard_value` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:222:28 [INFO] [stderr] | [INFO] [stderr] 222 | pub (in crate::migrate) fn parse_old_guard_value(input:Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `assignment` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:240:15 [INFO] [stderr] | [INFO] [stderr] 240 | pub(crate) fn assignment(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `value_operator` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:267:27 [INFO] [stderr] | [INFO] [stderr] 267 | pub(in crate::migrate) fn value_operator(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `property_path` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:290:27 [INFO] [stderr] | [INFO] [stderr] 290 | pub(in crate::migrate) fn property_path(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `property_comparison` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:297:27 [INFO] [stderr] | [INFO] [stderr] 297 | pub(in crate::migrate) fn property_comparison(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `base_rule` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:315:27 [INFO] [stderr] | [INFO] [stderr] 315 | pub(in crate::migrate) fn base_rule(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `conditional_rule` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:339:27 [INFO] [stderr] | [INFO] [stderr] 339 | pub(in crate::migrate) fn conditional_rule(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `custom_message` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:361:27 [INFO] [stderr] | [INFO] [stderr] 361 | pub(in crate::migrate) fn custom_message(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rule` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:368:27 [INFO] [stderr] | [INFO] [stderr] 368 | pub(in crate::migrate) fn rule(input: Span) -> IResult { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `clause` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:381:27 [INFO] [stderr] | [INFO] [stderr] 381 | pub(in crate::migrate) fn clause(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `empty_line` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:388:27 [INFO] [stderr] | [INFO] [stderr] 388 | pub(in crate::migrate) fn empty_line(input: Span) -> IResult { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rule_line` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:394:27 [INFO] [stderr] | [INFO] [stderr] 394 | pub(in crate::migrate) fn rule_line(input: Span) ->IResult { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_rules_file` is never used [INFO] [stderr] --> guard/src/migrate/parser.rs:408:15 [INFO] [stderr] | [INFO] [stderr] 408 | pub(crate) fn parse_rules_file(input: &String, file_name: &String) -> Result, Error> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `extern` fn uses type `str`, which is not FFI-safe [INFO] [stderr] --> guard/src/lib.rs:10:11 [INFO] [stderr] | [INFO] [stderr] 10 | data: &str, [INFO] [stderr] | ^^^^ not FFI-safe [INFO] [stderr] | [INFO] [stderr] = help: consider using `*const u8` and a length instead [INFO] [stderr] = note: string slices have no C equivalent [INFO] [stderr] = note: `#[warn(improper_ctypes_definitions)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `extern` fn uses type `str`, which is not FFI-safe [INFO] [stderr] --> guard/src/lib.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | rules: &str, [INFO] [stderr] | ^^^^ not FFI-safe [INFO] [stderr] | [INFO] [stderr] = help: consider using `*const u8` and a length instead [INFO] [stderr] = note: string slices have no C equivalent [INFO] [stderr] [INFO] [stderr] warning: `extern` fn uses type `std::result::Result`, which is not FFI-safe [INFO] [stderr] --> guard/src/lib.rs:12:6 [INFO] [stderr] | [INFO] [stderr] 12 | ) -> crate::rules::Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe [INFO] [stderr] | [INFO] [stderr] = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum [INFO] [stderr] = note: enum has no representation hint [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/rules/evaluate.rs:950:9 [INFO] [stderr] | [INFO] [stderr] 950 | / extract_variables(&rules.assignments, [INFO] [stderr] 951 | | &mut literals, [INFO] [stderr] 952 | | &mut pending); [INFO] [stderr] | |_______________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 950 | let _ = extract_variables(&rules.assignments, [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/rules/evaluate.rs:1046:9 [INFO] [stderr] | [INFO] [stderr] 1046 | / extract_variables(&block_type.assignments, [INFO] [stderr] 1047 | | &mut literals, [INFO] [stderr] 1048 | | &mut pending); [INFO] [stderr] | |_______________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 1046 | let _ = extract_variables(&block_type.assignments, [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser.rs:32:33 [INFO] [stderr] | [INFO] [stderr] 32 | pub(crate) fn from_str2(in_str: &str) -> Span { [INFO] [stderr] | ^^^^ ^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 32 | pub(crate) fn from_str2(in_str: &str) -> Span<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser.rs:645:27 [INFO] [stderr] | [INFO] [stderr] 645 | fn extract_message(input: Span) -> IResult { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | | | [INFO] [stderr] | | | | the same lifetime is elided here [INFO] [stderr] | | | the same lifetime is hidden here [INFO] [stderr] | | the same lifetime is hidden here [INFO] [stderr] | the lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 645 | fn extract_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stderr] | ++++ +++ ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser.rs:659:26 [INFO] [stderr] | [INFO] [stderr] 659 | fn custom_message(input: Span) -> IResult { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | | | [INFO] [stderr] | | | | the same lifetime is elided here [INFO] [stderr] | | | the same lifetime is hidden here [INFO] [stderr] | | the same lifetime is hidden here [INFO] [stderr] | the lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 659 | fn custom_message(input: Span<'_>) -> IResult<'_, Span<'_>, &str> { [INFO] [stderr] | ++++ +++ ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser.rs:843:40 [INFO] [stderr] | [INFO] [stderr] 841 | fn clause_with_map<'loc, A, M, T: 'loc>(input: Span<'loc>, [INFO] [stderr] | ---- the lifetime is named here [INFO] [stderr] 842 | access: A, [INFO] [stderr] 843 | mapper: M) -> IResult, T> [INFO] [stderr] | ^^^^^^^^^^^^^----^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is named here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'loc` [INFO] [stderr] | [INFO] [stderr] 843 | mapper: M) -> IResult<'loc, Span<'loc>, T> [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser.rs:1040:87 [INFO] [stderr] | [INFO] [stderr] 1040 | fn cnf_clauses<'loc, T, E, F, M>(input: Span<'loc>, f: F, _m: M, _non_empty: bool) -> IResult, Conjunctions> [INFO] [stderr] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | | [INFO] [stderr] | | | the same lifetime is named here [INFO] [stderr] | the lifetime is named here the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'loc` [INFO] [stderr] | [INFO] [stderr] 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] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser.rs:1075:86 [INFO] [stderr] | [INFO] [stderr] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult, Disjunctions> [INFO] [stderr] | ---- ^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | | [INFO] [stderr] | | | the same lifetime is named here [INFO] [stderr] | the lifetime is named here the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'loc` [INFO] [stderr] | [INFO] [stderr] 1075 | fn disjunction_clauses<'loc, E, F>(input: Span<'loc>, parser: F, non_empty: bool) -> IResult<'loc, Span<'loc>, Disjunctions> [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/rules/values.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | write!(f, "{},{}", range.lower, range.upper); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 155 | let _ = write!(f, "{},{}", range.lower, range.upper); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> guard/src/commands/files.rs:95:41 [INFO] [stderr] | [INFO] [stderr] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 95 | pub(crate) fn iterate_over(files: &[PathBuf], converter: C) -> Iter<'_, T, C> [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate.rs:135:17 [INFO] [stderr] | [INFO] [stderr] 135 | reader.read_to_string(&mut context); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 135 | let _ = reader.read_to_string(&mut context); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | writeln!(writer, "--"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 145 | let _ = writeln!(writer, "--"); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate/common.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match &self.hierarchy_type { [INFO] [stderr] 97 | | StructureType::JSON => writeln!(writer, "{}", serde_json::to_string(&value)?), [INFO] [stderr] 98 | | StructureType::YAML => writeln!(writer, "{}", serde_yaml::to_string(&value)?), [INFO] [stderr] 99 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 96 | let _ = match &self.hierarchy_type { [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | writeln!(writer, "{}", "SKIP rules".bold()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 70 | let _ = writeln!(writer, "{}", "SKIP rules".bold()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | writeln!(writer, "{}", "PASS rules".bold()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 76 | let _ = writeln!(writer, "{}", "PASS rules".bold()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate/summary_table.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | writeln!(writer, "{}", "FAILED rules".bold()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 81 | let _ = writeln!(writer, "{}", "FAILED rules".bold()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | writeln!(writer, "--"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 125 | let _ = writeln!(writer, "--"); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/rulegen.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | write!(writer,"{}", generated_rules); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 202 | let _ = write!(writer,"{}", generated_rules); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/migrate.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | writeln!(&mut migrated, "{}", assignment); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 92 | let _ = writeln!(&mut migrated, "{}", assignment); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/migrate.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 99 | let _ = writeln!(&mut migrated, "let {} = Resources.*[ Type == \"{}\" ]", each_type, each_type.type_name); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/migrate.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 100 | let _ = writeln!(&mut migrated, "rule {name}_checks WHEN %{name} NOT EMPTY {{", name=each_type); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/migrate.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | writeln!(&mut migrated, " %{} {{", each_type); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 101 | let _ = writeln!(&mut migrated, " %{} {{", each_type); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/migrate.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | writeln!(&mut migrated, " {}", *each_clause); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 103 | let _ = writeln!(&mut migrated, " {}", *each_clause); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/commands/migrate.rs:105:9 [INFO] [stderr] | [INFO] [stderr] 105 | writeln!(&mut migrated, " }}\n}}\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 105 | let _ = writeln!(&mut migrated, " }}\n}}\n"); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: the `query:` in this pattern is redundant [INFO] [stderr] --> guard/src/commands/aws_meta_appender.rs:42:59 [INFO] [stderr] | [INFO] [stderr] 42 | ... let AccessQuery { query: query, match_all: all } = [INFO] [stderr] | ^^^^^^^^^^^^ help: use shorthand field pattern: `query` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/migrate/parser.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | writeln!(f, "when {} {{", self.when_condition); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 135 | let _ = writeln!(f, "when {} {{", self.when_condition); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> guard/src/migrate/parser.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | writeln!(f, " {}", self.check_condition); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 136 | let _ = writeln!(f, " {}", self.check_condition); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `cfn-guard` (lib) generated 159 warnings (run `cargo fix --lib -p cfn-guard` to apply 24 suggestions) [INFO] [stderr] warning: method `is_binary` is never used [INFO] [stderr] --> guard/src/rules/values.rs:42:19 [INFO] [stderr] | [INFO] [stderr] 30 | impl CmpOperator { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 42 | pub(crate) fn is_binary(&self) -> bool { !self.is_unary() } [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `data_file_name` is never read [INFO] [stderr] --> guard/src/commands/validate.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 270 | pub(crate) struct ConsoleReporter<'r> { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 274 | data_file_name: &'r str, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ConsoleReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `get_result_json` is never used [INFO] [stderr] --> guard/src/commands/validate.rs:375:12 [INFO] [stderr] | [INFO] [stderr] 362 | impl<'r, 'loc> ConsoleReporter<'r> { [INFO] [stderr] | ---------------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 375 | pub fn get_result_json(self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `output_format_type` is never read [INFO] [stderr] --> guard/src/commands/validate/generic_summary.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 17 | pub(crate) struct GenericSummary<'a> { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 20 | output_format_type: OutputFormatType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `GenericSummary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `output_format_type` is never read [INFO] [stderr] --> guard/src/commands/validate/cfn_reporter.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub(crate) struct CfnReporter<'a> { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 26 | output_format_type: OutputFormatType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CfnReporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `validate_and_return_json` is never used [INFO] [stderr] --> guard/src/commands/helper.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn validate_and_return_json( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:2087:23 [INFO] [stderr] | [INFO] [stderr] 2087 | struct Reporter {}; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:2152:60 [INFO] [stderr] | [INFO] [stderr] 2152 | struct Reporter<'a> { root: &'a dyn EvaluationContext }; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> guard/src/rules/values_tests.rs:124:6 [INFO] [stderr] | [INFO] [stderr] 124 | }; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> guard/src/rules/values_tests.rs:217:27 [INFO] [stderr] | [INFO] [stderr] 217 | struct DummyResolver{}; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::super::common_test_helpers::DummyEval` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use super::super::common_test_helpers::DummyEval; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:40:22 [INFO] [stderr] | [INFO] [stderr] 40 | struct Capture {}; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::rules::values::Value::Bool` [INFO] [stderr] --> guard/src/migrate/parser_tests.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::rules::values::Value::Bool; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `variable` [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:2089:36 [INFO] [stderr] | [INFO] [stderr] 2089 | fn resolve_variable(&self, variable: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rule_name` [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:2093:31 [INFO] [stderr] | [INFO] [stderr] 2093 | fn rule_status(&self, rule_name: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:2097:61 [INFO] [stderr] | [INFO] [stderr] 2097 | ... eval_type: EvaluationType, context: &str, msg: String, from: Option, to: Option, status: Option guard/src/rules/evaluate_tests.rs:2117:36 [INFO] [stderr] | [INFO] [stderr] 2117 | fn start_evaluation(&self, eval_type: EvaluationType, context: &str) { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:2117:63 [INFO] [stderr] | [INFO] [stderr] 2117 | fn start_evaluation(&self, eval_type: EvaluationType, context: &str) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clause` [INFO] [stderr] --> guard/src/rules/parser_tests.rs:4121:17 [INFO] [stderr] | [INFO] [stderr] 4121 | let (_span, clause) = rule_block_clause(from_str2(when_inside_when))?; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clause` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `longest_rule_len` [INFO] [stderr] --> guard/src/commands/validate/common.rs:86:41 [INFO] [stderr] | [INFO] [stderr] 86 | skipped: HashSet, longest_rule_len: usize) -> crate::rules::Result<()> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_longest_rule_len` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `variable` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:42:36 [INFO] [stderr] | [INFO] [stderr] 42 | fn resolve_variable(&self, variable: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rule_name` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:46:31 [INFO] [stderr] | [INFO] [stderr] 46 | fn rule_status(&self, rule_name: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `eval_type` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:50:34 [INFO] [stderr] | [INFO] [stderr] 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] [stderr] | [INFO] [stderr] 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] [stderr] | [INFO] [stderr] 50 | ...e, context: &str, msg: String, from: Option, to: Option, status: Option, _cmp: Option<(CmpOper... [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `to` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:50:119 [INFO] [stderr] | [INFO] [stderr] 50 | ...g, from: Option, to: Option, status: Option, _cmp: Option<(CmpOperator, bool)>) { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `status` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:50:147 [INFO] [stderr] | [INFO] [stderr] 50 | ... to: Option, status: Option, _cmp: Option<(CmpOperator, bool)>) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `eval_type` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:57:36 [INFO] [stderr] | [INFO] [stderr] 57 | fn start_evaluation(&self, eval_type: EvaluationType, context: &str) { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_type` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> guard/src/commands/aws_meta_appender_tests.rs:57:63 [INFO] [stderr] | [INFO] [stderr] 57 | fn start_evaluation(&self, eval_type: EvaluationType, context: &str) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: struct `VariableResolver` is never constructed [INFO] [stderr] --> guard/src/rules/evaluate_tests.rs:884:8 [INFO] [stderr] | [INFO] [stderr] 884 | struct VariableResolver<'a, 'b>(&'a dyn EvaluationContext, HashMap>); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SAMPLE_MULTIPLE` is never used [INFO] [stderr] --> guard/src/rules/path_value_tests.rs:20:7 [INFO] [stderr] | [INFO] [stderr] 20 | const SAMPLE_MULTIPLE : &str = r#"{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> guard/src/rules/parser_tests.rs:827:27 [INFO] [stderr] | [INFO] [stderr] 827 | fn to_query_part(vec: Vec<&str>) -> Vec { [INFO] [stderr] | ^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 827 | fn to_query_part(vec: Vec<&str>) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `cfn-guard` (bin "cfn-guard") generated 69 warnings (63 duplicates) [INFO] [stderr] warning: `cfn-guard` (bin "cfn-guard" test) generated 90 warnings (64 duplicates) (run `cargo fix --bin "cfn-guard" --tests` to apply 3 suggestions) [INFO] [stderr] warning: `cfn-guard` (lib test) generated 148 warnings (148 duplicates) [INFO] [stderr] warning: unnecessary parentheses around match arm expression [INFO] [stderr] --> guard-lambda/src/main.rs:39:23 [INFO] [stderr] | [INFO] [stderr] 39 | Err(e) => (e.to_string()), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 39 - Err(e) => (e.to_string()), [INFO] [stderr] 39 + Err(e) => e.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `cfn-guard-lambda` (bin "cfn-guard-lambda" test) generated 1 warning (run `cargo fix --bin "cfn-guard-lambda" --tests` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s [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 2` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cfn_guard-523e7d0d0cb5a3f4) [INFO] [stdout] [INFO] [stdout] running 120 tests [INFO] [stdout] test commands::migrate::migrate_tests::test_get_resource_types_in_ruleset ... ok [INFO] [stdout] test commands::aws_meta_appender::aws_meta_appender_tests::append_cdk_metadata_test ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_conditional_rules ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_basic_rules_with_custom_messages ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_basic_rules_disjunction ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_disjunction_conditional_clauses ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_disjunction_basic_clauses ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_comment_parse ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_conditional_rule ... ok [INFO] [stdout] test commands::rulegen::rulegen_tests::test_rulegen ... ok [INFO] [stdout] test commands::rulegen::rulegen_tests::test_rulegen_no_properties ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_base_rule ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_assignment ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_old_guard_values_integer ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_clause_with_message ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_conditional_rules_disjunction ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_property_path ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_prop_comparison ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_prop_comparison_invalid_operator_fail ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_property_path_stops_whitespace ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_value_cmp ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_old_guard_value_optional_message ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::block_evaluation_fail ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::ecs_iam_role_relationship_assetions ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_rules_different_types ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::double_projection_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::block_evaluation ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rules_not_in_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rule_clause_tests ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_disjunction_basic_and_conditional ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_field_type_array_or_single ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rule_clause_when_check ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_for_not_in ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_loop_atleast_one_eq ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_loop_all ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::guard_access_clause_test_all_up ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_rules_file_rule_error ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_rules_file ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::guard_access_clause_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_api_gateway ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_lists ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_guard_10_compatibility_and_diff ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_rule_with_range_test ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rules_file_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_multiple_valued_clause_reporting ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_multiple_valued_clause_reporting_var_access ... ok [INFO] [stdout] test rules::parser::parser_tests::is_list_check_parser_bug ... ok [INFO] [stdout] test rules::parser::parser_tests::block_parse_test ... ok [INFO] [stdout] test rules::parser::parser_tests::parse_regex_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_rulegen ... ok [INFO] [stdout] test rules::parser::parser_tests::parse_list_of_map ... ok [INFO] [stdout] test rules::parser::parser_tests::it_support_test ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_in_comparison_operator_for_list_of_lists ... ok [INFO] [stdout] test rules::parser::parser_tests::parse_rule_block_with_mixed_assignment ... ok [INFO] [stdout] test rules::parser::parser_tests::test_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_assignments ... ok [INFO] [stdout] test rules::parser::parser_tests::some_clause_parse ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::testing_iam_role_prov_serve ... ok [INFO] [stdout] test rules::parser::parser_tests::select_any_one_from_list_clauses ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_map_keys_function ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_rules_with_some_clauses ... ok [INFO] [stdout] test rules::parser::parser_tests::test_block_in_block_properties ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::testing_sg_rules_pro_serve ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_iam_subselections ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_support_for_atleast_one_match_clause ... ok [INFO] [stdout] test rules::parser::parser_tests::test_broken_lists ... ok [INFO] [stdout] test rules::parser::parser_tests::test_clause_failures ... ok [INFO] [stdout] test rules::parser::parser_tests::test_complex_predicate_clauses ... ok [INFO] [stdout] test rules::parser::parser_tests::test_block_properties ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_inner_when_skipped ... ok [INFO] [stdout] test rules::parser::parser_tests::test_dotted_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_incorrect_block_in_block_properties ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::embedded_when_clause_redshift_use_case_test ... ok [INFO] [stdout] test rules::parser::parser_tests::test_int_parse ... ok [INFO] [stdout] test rules::parser::parser_tests::test_int_parse_pos ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_s3_bucket_pro_serv ... ok [INFO] [stdout] test rules::parser::parser_tests::test_keys_keyword ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_float ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_regex ... ok [INFO] [stdout] test rules::parser::parser_tests::test_map_success_2 ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_string ... ok [INFO] [stdout] test rules::parser::parser_tests::test_other_operations ... ok [INFO] [stdout] test rules::parser::parser_tests::test_lists_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_string_rest ... ok [INFO] [stdout] test rules::parser::parser_tests::test_map_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_bool ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_scalar ... ok [INFO] [stdout] test rules::parser::parser_tests::test_map_key_part ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_string_from_scalar ... ok [INFO] [stdout] test rules::parser::parser_tests::test_range_type_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_try_from_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_value_cmp ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_value_with_comments ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rule_clauses ... ok [INFO] [stdout] test rules::parser::parser_tests::test_try_from_rule_block ... ok [INFO] [stdout] test rules::parser::parser_tests::test_predicate_clause_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_range_type_failures ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rules_file_default_rules ... ok [INFO] [stdout] test rules::parser::parser_tests::test_var_name_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_white_space_with_comments ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rule_block ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rule_block_clause ... ok [INFO] [stdout] test rules::path_value::path_value_tests::path_value_equivalent ... ok [INFO] [stdout] test rules::parser::parser_tests::when_inside_when_parse_test ... ok [INFO] [stdout] test rules::parser::parser_tests::test_type_block ... ok [INFO] [stdout] test rules::parser::parser_tests::test_type_name ... ok [INFO] [stdout] test rules::parser::parser_tests::test_var_name ... ok [INFO] [stdout] test rules::parser::parser_tests::test_clauses ... ok [INFO] [stdout] test rules::path_value::path_value_tests::it_support_evaluation_tests ... ok [INFO] [stdout] test rules::path_value::path_value_tests::some_filter_tests ... ok [INFO] [stdout] test rules::values::values_tests::test_convert_from_to_value ... ok [INFO] [stdout] test rules::values::values_tests::test_convert_into_json ... ok [INFO] [stdout] test rules::values::values_tests::test_parse_string_with_colon ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rules_file ... ok [INFO] [stdout] test rules::path_value::path_value_tests::path_value_queries ... ok [INFO] [stdout] test rules::path_value::path_value_tests::map_keys_filter_test ... ok [INFO] [stdout] test rules::values::values_tests::test_query_on_value ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_iam_statement_clauses ... ok [INFO] [stdout] test rules::values::values_tests::test_type_block_with_var_query_evaluation ... ok [INFO] [stdout] test rules::parser::parser_tests::test_clause_success ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 120 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cfn_guard-76c543f95cc0da89) [INFO] [stdout] [INFO] [stdout] running 120 tests [INFO] [stdout] test migrate::parser::parser_tests::test_base_rule ... ok [INFO] [stdout] test commands::rulegen::rulegen_tests::test_rulegen ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_disjunction_basic_clauses ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_disjunction_conditional_clauses ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_basic_rules_with_custom_messages ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_old_guard_value_optional_message ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_comment_parse ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_conditional_rules ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_basic_rules_disjunction ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_conditional_rules_disjunction ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_disjunction_basic_and_conditional ... ok [INFO] [stdout] test commands::aws_meta_appender::aws_meta_appender_tests::append_cdk_metadata_test ... ok [INFO] [stdout] test commands::rulegen::rulegen_tests::test_rulegen_no_properties ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_old_guard_values_integer ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_assignment ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_clause_with_message ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_conditional_rule ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_prop_comparison ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_rules_file ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_property_path ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_prop_comparison_invalid_operator_fail ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_parse_rules_file_rule_error ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_get_resource_types_in_ruleset ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_property_path_stops_whitespace ... ok [INFO] [stdout] test migrate::parser::parser_tests::test_value_cmp ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::ecs_iam_role_relationship_assetions ... ok [INFO] [stdout] test commands::migrate::migrate_tests::test_migrate_rules_different_types ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::block_evaluation ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::block_evaluation_fail ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rule_clause_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_field_type_array_or_single ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_for_not_in ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rules_not_in_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_lists ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_guard_10_compatibility_and_diff ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::double_projection_tests ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::guard_access_clause_test_all_up ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_in_comparison_operator_for_list_of_lists ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_rule_with_range_test ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_rulegen ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_multiple_valued_clause_reporting ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_multiple_valued_clause_reporting_var_access ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_rules_with_some_clauses ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_inner_when_skipped ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_loop_atleast_one_eq ... ok [INFO] [stdout] test rules::parser::parser_tests::is_list_check_parser_bug ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_support_for_atleast_one_match_clause ... ok [INFO] [stdout] test rules::parser::parser_tests::it_support_test ... ok [INFO] [stdout] test rules::parser::parser_tests::parse_list_of_map ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_compare_loop_all ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rule_clause_when_check ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_s3_bucket_pro_serv ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::testing_iam_role_prov_serve ... ok [INFO] [stdout] test rules::parser::parser_tests::some_clause_parse ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_api_gateway ... ok [INFO] [stdout] test rules::parser::parser_tests::parse_rule_block_with_mixed_assignment ... ok [INFO] [stdout] test rules::parser::parser_tests::select_any_one_from_list_clauses ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::guard_access_clause_tests ... ok [INFO] [stdout] test rules::parser::parser_tests::parse_regex_tests ... ok [INFO] [stdout] test rules::parser::parser_tests::test_assignments ... ok [INFO] [stdout] test rules::parser::parser_tests::test_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_dotted_access ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_map_keys_function ... ok [INFO] [stdout] test rules::parser::parser_tests::test_incorrect_block_in_block_properties ... ok [INFO] [stdout] test rules::parser::parser_tests::test_block_in_block_properties ... ok [INFO] [stdout] test rules::parser::parser_tests::test_clauses ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::testing_sg_rules_pro_serve ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_iam_subselections ... ok [INFO] [stdout] test rules::parser::parser_tests::test_block_properties ... ok [INFO] [stdout] test rules::parser::parser_tests::test_int_parse ... ok [INFO] [stdout] test rules::parser::parser_tests::test_broken_lists ... ok [INFO] [stdout] test rules::parser::parser_tests::block_parse_test ... ok [INFO] [stdout] test rules::parser::parser_tests::test_clause_failures ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::test_iam_statement_clauses ... ok [INFO] [stdout] test rules::parser::parser_tests::test_complex_predicate_clauses ... ok [INFO] [stdout] test rules::parser::parser_tests::test_int_parse_pos ... ok [INFO] [stdout] test rules::parser::parser_tests::test_keys_keyword ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_float ... ok [INFO] [stdout] test rules::parser::parser_tests::test_map_key_part ... ok [INFO] [stdout] test rules::parser::parser_tests::test_map_success_2 ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_regex ... ok [INFO] [stdout] test rules::parser::parser_tests::test_map_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_bool ... ok [INFO] [stdout] test rules::parser::parser_tests::test_other_operations ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_scalar ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_string_rest ... ok [INFO] [stdout] test rules::parser::parser_tests::test_lists_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_string ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_string_from_scalar ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rule_block_clause ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::rules_file_tests ... ok [INFO] [stdout] test rules::parser::parser_tests::test_parse_value_with_comments ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rules_file_default_rules ... ok [INFO] [stdout] test rules::parser::parser_tests::test_try_from_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rules_file ... ok [INFO] [stdout] test rules::parser::parser_tests::test_try_from_rule_block ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rule_clauses ... ok [INFO] [stdout] test rules::parser::parser_tests::test_type_name ... ok [INFO] [stdout] test rules::parser::parser_tests::test_value_cmp ... ok [INFO] [stdout] test rules::parser::parser_tests::test_predicate_clause_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_type_block ... ok [INFO] [stdout] test rules::parser::parser_tests::test_range_type_failures ... ok [INFO] [stdout] test rules::parser::parser_tests::test_range_type_success ... ok [INFO] [stdout] test rules::parser::parser_tests::test_rule_block ... ok [INFO] [stdout] test rules::parser::parser_tests::test_var_name ... ok [INFO] [stdout] test rules::parser::parser_tests::test_var_name_access ... ok [INFO] [stdout] test rules::parser::parser_tests::test_white_space_with_comments ... ok [INFO] [stdout] test rules::values::values_tests::test_convert_from_to_value ... ok [INFO] [stdout] test rules::path_value::path_value_tests::path_value_equivalent ... ok [INFO] [stdout] test rules::parser::parser_tests::when_inside_when_parse_test ... ok [INFO] [stdout] test rules::path_value::path_value_tests::path_value_queries ... ok [INFO] [stdout] test rules::path_value::path_value_tests::some_filter_tests ... ok [INFO] [stdout] test rules::values::values_tests::test_parse_string_with_colon ... ok [INFO] [stdout] test rules::path_value::path_value_tests::it_support_evaluation_tests ... ok [INFO] [stdout] test rules::values::values_tests::test_convert_into_json ... ok [INFO] [stdout] test rules::evaluate::evaluate_tests::embedded_when_clause_redshift_use_case_test ... ok [INFO] [stdout] test rules::path_value::path_value_tests::map_keys_filter_test ... ok [INFO] [stdout] test rules::values::values_tests::test_query_on_value ... ok [INFO] [stdout] test rules::values::values_tests::test_type_block_with_var_query_evaluation ... ok [INFO] [stdout] test rules::parser::parser_tests::test_clause_success ... ok [INFO] [stderr] Running tests/functional.rs (/opt/rustwide/target/debug/deps/functional-2f548ba8d290529a) [INFO] [stdout] [INFO] [stdout] test result: ok. 120 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tests::test_run_check ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- tests::test_run_check stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tests::test_run_check' (267) panicked at guard/tests/functional.rs:128:9: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: Array([Object({"eval_type": String("Rule"), "context": String("default"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Type"), "context": String("AWS::ApiGateway::Method"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Filter"), "context": String("Path=/Resources/VPC,Type=MapElement"), "msg": String("DEFAULT MESSAGE(PASS)"), "from": Null, "to": Null, "status": String("PASS"), "comparator": Null, "children": Array([Object({"eval_type": String("Conjunction"), "context": String("cfn_guard::rules::exprs::GuardClause"), "msg": String("DEFAULT MESSAGE(PASS)"), "from": Null, "to": Null, "status": String("PASS"), "comparator": Null, "children": Array([Object({"eval_type": String("Clause"), "context": String("Clause(Location[file:, line:1, column:14], Check: Type EQUALS String(\"AWS::ApiGateway::Method\"))"), "msg": String("DEFAULT MESSAGE(PASS)"), "from": Null, "to": Null, "status": String("PASS"), "comparator": Array([String("Eq"), Bool(false)]), "children": Array([])})])})])}), Object({"eval_type": String("Type"), "context": String("AWS::ApiGateway::Method#0(/Resources/VPC)"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Conjunction"), "context": String("cfn_guard::rules::exprs::GuardClause"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Clause"), "context": String("Clause(Location[file:lambda, line:1, column:27], Check: Properties.AuthorizationType EQUALS String(\"NONE\"))"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Object({"String": Array([String("/Resources/VPC/Properties/AuthorizationType"), String("10.0.0.0/24")])}), "to": Object({"String": Array([String("lambda/1/27/Clause/"), String("NONE")])}), "status": String("FAIL"), "comparator": Array([String("Eq"), Bool(false)]), "children": Array([])})])})])})])})])})]) [INFO] [stdout] right: Array([Object({"eval_type": String("Rule"), "context": String("default"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Type"), "context": String("AWS::ApiGateway::Method"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Filter"), "context": String("Path=/Resources/VPC,Type=MapElement"), "msg": String("DEFAULT MESSAGE(PASS)"), "from": Null, "to": Null, "status": String("PASS"), "comparator": Null, "children": Array([Object({"eval_type": String("Clause"), "context": String("Clause(Location[file:, line:1, column:14], Check: Type EQUALS String(\"AWS::ApiGateway::Method\"))"), "msg": String("DEFAULT MESSAGE(PASS)"), "from": Null, "to": Null, "status": String("PASS"), "comparator": Array([String("Eq"), Bool(false)]), "children": Array([])})])}), Object({"eval_type": String("Type"), "context": String("AWS::ApiGateway::Method#0(/Resources/VPC)"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Null, "to": Null, "status": String("FAIL"), "comparator": Null, "children": Array([Object({"eval_type": String("Clause"), "context": String("Clause(Location[file:lambda, line:1, column:27], Check: Properties.AuthorizationType EQUALS String(\"NONE\"))"), "msg": String("DEFAULT MESSAGE(FAIL)"), "from": Object({"String": Array([String("/Resources/VPC/Properties/AuthorizationType"), String("10.0.0.0/24")])}), "to": Object({"String": Array([String("lambda/1/27/Clause/"), String("NONE")])}), "status": String("FAIL"), "comparator": Array([String("Eq"), Bool(false)]), "children": Array([])})])})])})])})]) [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x65454706f3d2 - std::backtrace_rs::backtrace::libunwind::trace::hcab59e1e990fdc24 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x65454706f3d2 - std::backtrace_rs::backtrace::trace_unsynchronized::he24cc57f3d2f47b7 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x65454706f3d2 - std::sys::backtrace::_print_fmt::hf8d65ede198eeb54 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x65454706f3d2 - ::fmt::h67edf0e4d33c343c [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x6545470807bf - core::fmt::rt::Argument::fmt::hef94184842aeafdd [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x6545470807bf - core::fmt::write::hcf0c66b48a8fa606 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x65454703c831 - std::io::default_write_fmt::h69967ac0ba93195f [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x65454703c831 - std::io::Write::write_fmt::h8db9396209deaa1c [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x654547048892 - std::sys::backtrace::BacktraceLock::print::h07e5435aa717b414 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x65454704d43f - std::panicking::default_hook::{{closure}}::h91001850288db5f7 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x65454704d2d1 - std::panicking::default_hook::h2346dbb704ef5512 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x654546d9dc2e - as core::ops::function::Fn>::call::h18383b2e29377420 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 12: 0x654546d9dc2e - test::test_main_with_exit_callback::{{closure}}::h272d7ef99aef06dc [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x65454704daff - as core::ops::function::Fn>::call::h6dba6e441651a0d1 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 14: 0x65454704daff - std::panicking::panic_with_hook::hd2b063a6090d23a4 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x65454704d95a - std::panicking::panic_handler::{{closure}}::he666d95f139a333e [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:707:13 [INFO] [stdout] 16: 0x6545470489c9 - std::sys::backtrace::__rust_end_short_backtrace::h631ad224854ebee5 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x654547030d0d - __rustc[1d67440d6e82e4f]::rust_begin_unwind [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x654547088f10 - core::panicking::panic_fmt::h420ddb7fd73daf53 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x654547088d13 - core::panicking::assert_failed_inner::h448e1d534f4c3d4b [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:439:17 [INFO] [stdout] 20: 0x654546d7c478 - core::panicking::assert_failed::h2bcf774029355f6e [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:394:5 [INFO] [stdout] 21: 0x654546d7bb20 - functional::tests::test_run_check::h2cf7791f7c392aac [INFO] [stdout] at /opt/rustwide/workdir/guard/tests/functional.rs:128:9 [INFO] [stdout] 22: 0x654546d7bb97 - functional::tests::test_run_check::{{closure}}::hffc77d8b92f3dcaa [INFO] [stdout] at /opt/rustwide/workdir/guard/tests/functional.rs:9:24 [INFO] [stdout] 23: 0x654546d7be76 - core::ops::function::FnOnce::call_once::hde24b6c06ac7a809 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x654546d9d9eb - core::ops::function::FnOnce::call_once::h70887edf07a630ba [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x654546d9d9eb - test::__rust_begin_short_backtrace::h27763c4cbbdb8601 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x654546db3655 - test::run_test_in_process::{{closure}}::h4dc8bc6d5e3924d3 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x654546db3655 - as core::ops::function::FnOnce<()>>::call_once::h75905e8ffe81974f [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 28: 0x654546db3655 - std::panicking::catch_unwind::do_call::h0bc60366ba66eba5 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40 [INFO] [stdout] 29: 0x654546db3655 - std::panicking::catch_unwind::hae1ec7bf94407afa [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19 [INFO] [stdout] 30: 0x654546db3655 - std::panic::catch_unwind::h0f4ff4773d84d3cd [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x654546db3655 - test::run_test_in_process::h03fbc77ae48b3f10 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x654546db3655 - test::run_test::{{closure}}::h83476a9c453dc4d3 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x654546d89e44 - test::run_test::{{closure}}::h515482ad1e7fe7de [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x654546d89e44 - std::sys::backtrace::__rust_begin_short_backtrace::hed09f6ac5fe9d647 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 35: 0x654546d8d70a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h988e2cd969319888 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 36: 0x654546d8d70a - as core::ops::function::FnOnce<()>>::call_once::hd70e28dc46ec20be [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 37: 0x654546d8d70a - std::panicking::catch_unwind::do_call::hdc29e11311eb7655 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40 [INFO] [stdout] 38: 0x654546d8d70a - std::panicking::catch_unwind::h9e402d6a96fef41c [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19 [INFO] [stdout] 39: 0x654546d8d70a - std::panic::catch_unwind::h9213c0c54aec70e0 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x654546d8d70a - std::thread::Builder::spawn_unchecked_::{{closure}}::h6262965869ed2b87 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 41: 0x654546d8d70a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h05c05ed02619e462 [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x654547043b2f - as core::ops::function::FnOnce>::call_once::h2044e71c41d3958a [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1985:9 [INFO] [stdout] 43: 0x654547043b2f - std::sys::thread::unix::Thread::new::thread_start::hf277835320aa8e5a [INFO] [stdout] at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/thread/unix.rs:126:17 [INFO] [stdout] 44: 0x7b8cbea84aa4 - [INFO] [stdout] 45: 0x7b8cbeb11a34 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] tests::test_run_check [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p cfn-guard --test functional` [INFO] running `Command { std: "docker" "inspect" "359512cfbe06c2d5e1e2be2d0cb190d7d76eda2bd6241a7faf82c541b5b2a87c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "359512cfbe06c2d5e1e2be2d0cb190d7d76eda2bd6241a7faf82c541b5b2a87c", kill_on_drop: false }` [INFO] [stdout] 359512cfbe06c2d5e1e2be2d0cb190d7d76eda2bd6241a7faf82c541b5b2a87c