[INFO] cloning repository https://github.com/propenster/rustysec [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/propenster/rustysec" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpropenster%2Frustysec", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpropenster%2Frustysec'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 21b046df4bebdb4f1123966e106c0d9003647797 [INFO] testing propenster/rustysec against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpropenster%2Frustysec" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/propenster/rustysec [INFO] finished tweaking git repo https://github.com/propenster/rustysec [INFO] tweaked toml for git repo https://github.com/propenster/rustysec written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/propenster/rustysec on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/propenster/rustysec 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded path-clean v0.1.0 [INFO] [stderr] Downloaded oapi v0.1.2 [INFO] [stderr] Downloaded oapi_derive v0.1.2 [INFO] [stderr] Downloaded path-dedot v3.1.1 [INFO] [stderr] Downloaded sppparse_derive v0.1.3 [INFO] [stderr] Downloaded sppparse v0.1.4 [INFO] [stderr] Downloaded getset v0.1.2 [INFO] [stderr] Downloaded serde-xml-rs v0.5.1 [INFO] [stderr] Downloaded anstyle-wincon v3.0.1 [INFO] [stderr] Downloaded anstyle-parse v0.2.2 [INFO] [stderr] Downloaded clap v4.4.6 [INFO] [stderr] Downloaded clap_complete v4.4.3 [INFO] [stderr] Downloaded pest v2.7.4 [INFO] [stderr] Downloaded anstream v0.6.4 [INFO] [stderr] Downloaded path-absolutize v3.1.1 [INFO] [stderr] Downloaded clap_builder v4.4.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f8dc733e87c96754260e47a9f08ceb8f0cce81439c7226ca46cb4194bc254a67 [INFO] running `Command { std: "docker" "start" "-a" "f8dc733e87c96754260e47a9f08ceb8f0cce81439c7226ca46cb4194bc254a67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f8dc733e87c96754260e47a9f08ceb8f0cce81439c7226ca46cb4194bc254a67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f8dc733e87c96754260e47a9f08ceb8f0cce81439c7226ca46cb4194bc254a67", kill_on_drop: false }` [INFO] [stdout] f8dc733e87c96754260e47a9f08ceb8f0cce81439c7226ca46cb4194bc254a67 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 88a3498715fd9a2a9db5d85356f3eee7e88b684e84029097bb7c9ab222cae170 [INFO] running `Command { std: "docker" "start" "-a" "88a3498715fd9a2a9db5d85356f3eee7e88b684e84029097bb7c9ab222cae170", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling serde v1.0.189 [INFO] [stderr] Compiling libc v0.2.149 [INFO] [stderr] Compiling memchr v2.6.4 [INFO] [stderr] Compiling thiserror v1.0.49 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling utf8parse v0.2.1 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Compiling unicode-xid v0.2.4 [INFO] [stderr] Compiling anstyle-query v1.0.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling colorchoice v1.0.0 [INFO] [stderr] Compiling ryu v1.0.15 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling anstyle-parse v0.2.2 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling anstyle v1.0.4 [INFO] [stderr] Compiling once_cell v1.18.0 [INFO] [stderr] Compiling percent-encoding v2.3.0 [INFO] [stderr] Compiling unicode-bidi v0.3.13 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling serde_json v1.0.107 [INFO] [stderr] Compiling itoa v1.0.9 [INFO] [stderr] Compiling anstream v0.6.4 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling path-dedot v3.1.1 [INFO] [stderr] Compiling form_urlencoded v1.2.0 [INFO] [stderr] Compiling clap_lex v0.5.1 [INFO] [stderr] Compiling path-absolutize v3.1.1 [INFO] [stderr] Compiling path-clean v0.1.0 [INFO] [stderr] Compiling anyhow v1.0.75 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling xml-rs v0.8.19 [INFO] [stderr] Compiling log v0.4.20 [INFO] [stderr] Compiling clap_builder v4.4.6 [INFO] [stderr] Compiling aho-corasick v1.1.2 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling unicode-normalization v0.1.22 [INFO] [stderr] Compiling syn v2.0.38 [INFO] [stderr] Compiling getrandom v0.2.10 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling idna v0.4.0 [INFO] [stderr] Compiling url v2.4.1 [INFO] [stderr] Compiling clap v4.4.6 [INFO] [stderr] Compiling clap_complete v4.4.3 [INFO] [stderr] Compiling regex-automata v0.4.3 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling serde_derive v1.0.189 [INFO] [stderr] Compiling thiserror-impl v1.0.49 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling proc-macro-crate v0.1.5 [INFO] [stderr] Compiling getset v0.1.2 [INFO] [stderr] Compiling pest v2.7.4 [INFO] [stderr] Compiling sppparse_derive v0.1.3 [INFO] [stderr] Compiling oapi_derive v0.1.2 [INFO] [stderr] Compiling regex v1.10.2 [INFO] [stderr] Compiling semver-parser v0.10.2 [INFO] [stderr] Compiling serde_path_to_error v0.1.14 [INFO] [stderr] Compiling semver v0.11.0 [INFO] [stderr] Compiling serde_yaml v0.8.26 [INFO] [stderr] Compiling serde-xml-rs v0.5.1 [INFO] [stderr] Compiling sppparse v0.1.4 [INFO] [stderr] Compiling oapi v0.1.2 [INFO] [stderr] Compiling rustysec v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/openapi/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `oapi::OApi` [INFO] [stdout] --> src/openapi/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use oapi::OApi; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `oapi::OApiOperation` [INFO] [stdout] --> src/openapi/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use oapi::OApiOperation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clap::error` [INFO] [stdout] --> src/parser/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use clap::error; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OApi` [INFO] [stdout] --> src/parser/mod.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use oapi::{OApi, OApiDocument}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thiserror::Error` [INFO] [stdout] --> src/parser/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::BTreeMap` and `str::FromStr` [INFO] [stdout] --> src/parser/mod.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{collections::BTreeMap, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `EndpointPath`, `OpenApiDoc`, and `OpenApi` [INFO] [stdout] --> src/parser/mod.rs:10:22 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::openapi::{EndpointPath, Fixable, IssueScoreImpact, OpenApi, OpenApiDoc, WeightScore}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/parser/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuf` and `io::Error` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | io::Error, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 7 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `oapi::OApi` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use oapi::OApi; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sppparse::SparseRoot` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use sppparse::SparseRoot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OpenApi` and `PathData` [INFO] [stdout] --> src/main.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | openapi::{OpenApi, PathData, Scanner}, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser/mod.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 43 | Document::OpenAPI(_) => write!(f, "Open API"), [INFO] [stdout] | -------------------- matches all the relevant values [INFO] [stdout] 44 | _ => unimplemented!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser/mod.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 51 | Document::OpenAPI(_) => "OpenAPI".into(), [INFO] [stdout] | -------------------- matches all the relevant values [INFO] [stdout] 52 | _ => unimplemented!() [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `fixables` is never read [INFO] [stdout] --> src/parser/mod.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | let mut fixables: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/parser/mod.rs:119:20 [INFO] [stdout] | [INFO] [stdout] 119 | fn parse_soap_wsdl(text: &str) -> Result, ParserError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/parser/mod.rs:140:24 [INFO] [stdout] | [INFO] [stdout] 140 | fn parse_yaml_open_api(text: &str) -> Result<(), ParserError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_core` [INFO] [stdout] --> src/parser/mod.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | let mut final_core: u8 = 100; //final weight score... [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_core` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `master_piece` [INFO] [stdout] --> src/parser/mod.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | let master_piece: Value = serde_json::from_str(text).map_err(|e| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_piece` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/mod.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | let mut final_core: u8 = 100; //final weight score... [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser/mod.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 199 | Document::OpenAPI(d) => { [INFO] [stdout] | -------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 228 | _ => return Err(ParserError::IncompatibleSpecificationAndDocumentType(spec_type.to_string(), document.to_string())) [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `post_op` [INFO] [stdout] --> src/parser/mod.rs:218:41 [INFO] [stdout] | [INFO] [stdout] 218 | ... if let Some(post_op) = path_item.post(){ [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_post_op` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_data_validation_category_score` [INFO] [stdout] --> src/parser/mod.rs:193:45 [INFO] [stdout] | [INFO] [stdout] 193 | ..._data_validations(document: &Document, final_data_validation_category_score: &mut u8, spec_type: ApiSpecificationType) -> Result src/parser/mod.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | let mut fixables: Vec = Vec::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `paths` [INFO] [stdout] --> src/main.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | if let Some(paths) = json.get("paths") { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start`, `end`, and `literal` are never read [INFO] [stdout] --> src/lexer/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct TextSpan { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 5 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | end: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | literal: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TextSpan` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `length` is never used [INFO] [stdout] --> src/lexer/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl TextSpan { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn length(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `span` are never read [INFO] [stdout] --> src/lexer/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Token { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 24 | kind: TokenKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 25 | span: TextSpan, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer/mod.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 36 | HttpGet, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 37 | HttpPost, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 38 | HttpPut, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | HttpPatch, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | HttpDelete, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 41 | [INFO] [stdout] 42 | Http401, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 43 | Http403, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 44 | Http200, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | Http201, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 46 | Http202, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | Http429, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 48 | Http500, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | Quotes, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 59 | [INFO] [stdout] 60 | TempStopObjectToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `current_char`, `next_char`, `consume`, `extract_open_api_path`, and `is_whitespace` are never used [INFO] [stdout] --> src/lexer/mod.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 72 | impl<'a> Lexer<'a> { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 166 | fn current_char(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | fn next_char(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | fn consume(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn extract_open_api_path() -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn is_whitespace(c: &char) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Low`, `Medium`, and `High` are never constructed [INFO] [stdout] --> src/openapi/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum WeightScore { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 16 | Low, // 1 [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | Medium, // 2 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 18 | High, // 3 [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WeightScore` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ArrayWithoutMaxItems`, `StringPropertyWithoutMaxLength`, `StringPropertyWithoutREgexPattern`, and `NoServerBaseUrlDefined` are never constructed [INFO] [stdout] --> src/openapi/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum IssueScoreImpact{ [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 22 | ArrayWithoutMaxItems, //scoreImpact - 7 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | StringPropertyWithoutMaxLength, // ScoreImpact - 2 [MEDIUM 2] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | StringPropertyWithoutREgexPattern, // scoreImpace - 3 [MEDIUM 3] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | NoServerBaseUrlDefined, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `ARRAY_WITHOUT_MAX_ITEMS_VALUE`, `STRING_PROPERTY_WITHOUT_MAX_LENGTH_VALUE`, and `STRING_PROPERTY_WITHOUT_REGEX_PATTERN_VALUE` are never used [INFO] [stdout] --> src/openapi/mod.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 29 | impl IssueScoreImpact{ [INFO] [stdout] | --------------------- associated constants in this implementation [INFO] [stdout] 30 | pub const ARRAY_WITHOUT_MAX_ITEMS_VALUE: u8 = 7; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | pub const STRING_PROPERTY_WITHOUT_MAX_LENGTH_VALUE: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | pub const STRING_PROPERTY_WITHOUT_REGEX_PATTERN_VALUE: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `LOW_VALUE`, `MEDIUM_VALUE`, `HIGH_VALUE`, and `CRITICAL_VALUE` are never used [INFO] [stdout] --> src/openapi/mod.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 37 | impl WeightScore { [INFO] [stdout] | ---------------- associated constants in this implementation [INFO] [stdout] 38 | pub const LOW_VALUE: u8 = 1; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 39 | pub const MEDIUM_VALUE: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 40 | pub const HIGH_VALUE: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 41 | pub const CRITICAL_VALUE: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `error`, `line`, `weight_score`, and `fixable_type` are never read [INFO] [stdout] --> src/openapi/mod.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct Fixable { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 58 | error: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 59 | line: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 60 | weight_score: WeightScore, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 61 | fixable_type: FixableType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Fixable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/openapi/mod.rs:280:12 [INFO] [stdout] | [INFO] [stdout] 279 | impl OpenApiDoc { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 280 | pub fn new(version: impl Into) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/openapi/mod.rs:297:19 [INFO] [stdout] | [INFO] [stdout] 296 | impl EndpointPath { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 297 | pub(crate) fn new(url: &str) -> EndpointPath { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InvalidSOAPSpec` and `DataValidationError` are never constructed [INFO] [stdout] --> src/parser/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum ParserError { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | InvalidSOAPSpec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | DataValidationError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start` and `end` are never read [INFO] [stdout] --> src/parser/mod.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct Parser<'a> { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 85 | text: &'a str, [INFO] [stdout] 86 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 87 | end: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_yaml_open_api` is never used [INFO] [stdout] --> src/parser/mod.rs:140:4 [INFO] [stdout] | [INFO] [stdout] 140 | fn parse_yaml_open_api(text: &str) -> Result<(), ParserError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_non_empty_array_item` is never used [INFO] [stdout] --> src/parser/mod.rs:238:4 [INFO] [stdout] | [INFO] [stdout] 238 | fn has_non_empty_array_item(json_value: &Value, array_key: &str, array_item: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 198 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.60s [INFO] running `Command { std: "docker" "inspect" "88a3498715fd9a2a9db5d85356f3eee7e88b684e84029097bb7c9ab222cae170", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "88a3498715fd9a2a9db5d85356f3eee7e88b684e84029097bb7c9ab222cae170", kill_on_drop: false }` [INFO] [stdout] 88a3498715fd9a2a9db5d85356f3eee7e88b684e84029097bb7c9ab222cae170 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] d73ead1702ad59bc8f3e04ba274a19dc285076e569bfc92d40d004482cdd1929 [INFO] running `Command { std: "docker" "start" "-a" "d73ead1702ad59bc8f3e04ba274a19dc285076e569bfc92d40d004482cdd1929", kill_on_drop: false }` [INFO] [stderr] Compiling rustysec v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/openapi/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `oapi::OApi` [INFO] [stdout] --> src/openapi/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use oapi::OApi; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `oapi::OApiOperation` [INFO] [stdout] --> src/openapi/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use oapi::OApiOperation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clap::error` [INFO] [stdout] --> src/parser/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use clap::error; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OApi` [INFO] [stdout] --> src/parser/mod.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use oapi::{OApi, OApiDocument}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thiserror::Error` [INFO] [stdout] --> src/parser/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::BTreeMap` and `str::FromStr` [INFO] [stdout] --> src/parser/mod.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{collections::BTreeMap, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `EndpointPath`, `OpenApiDoc`, and `OpenApi` [INFO] [stdout] --> src/parser/mod.rs:10:22 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::openapi::{EndpointPath, Fixable, IssueScoreImpact, OpenApi, OpenApiDoc, WeightScore}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/parser/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuf` and `io::Error` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | io::Error, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 7 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `oapi::OApi` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use oapi::OApi; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sppparse::SparseRoot` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use sppparse::SparseRoot; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OpenApi` and `PathData` [INFO] [stdout] --> src/main.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | openapi::{OpenApi, PathData, Scanner}, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser/mod.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 43 | Document::OpenAPI(_) => write!(f, "Open API"), [INFO] [stdout] | -------------------- matches all the relevant values [INFO] [stdout] 44 | _ => unimplemented!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser/mod.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 51 | Document::OpenAPI(_) => "OpenAPI".into(), [INFO] [stdout] | -------------------- matches all the relevant values [INFO] [stdout] 52 | _ => unimplemented!() [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `fixables` is never read [INFO] [stdout] --> src/parser/mod.rs:103:17 [INFO] [stdout] | [INFO] [stdout] 103 | let mut fixables: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/parser/mod.rs:119:20 [INFO] [stdout] | [INFO] [stdout] 119 | fn parse_soap_wsdl(text: &str) -> Result, ParserError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/parser/mod.rs:140:24 [INFO] [stdout] | [INFO] [stdout] 140 | fn parse_yaml_open_api(text: &str) -> Result<(), ParserError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_core` [INFO] [stdout] --> src/parser/mod.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | let mut final_core: u8 = 100; //final weight score... [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_core` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `master_piece` [INFO] [stdout] --> src/parser/mod.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | let master_piece: Value = serde_json::from_str(text).map_err(|e| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_piece` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/mod.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | let mut final_core: u8 = 100; //final weight score... [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parser/mod.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 199 | Document::OpenAPI(d) => { [INFO] [stdout] | -------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 228 | _ => return Err(ParserError::IncompatibleSpecificationAndDocumentType(spec_type.to_string(), document.to_string())) [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `post_op` [INFO] [stdout] --> src/parser/mod.rs:218:41 [INFO] [stdout] | [INFO] [stdout] 218 | ... if let Some(post_op) = path_item.post(){ [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_post_op` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_data_validation_category_score` [INFO] [stdout] --> src/parser/mod.rs:193:45 [INFO] [stdout] | [INFO] [stdout] 193 | ..._data_validations(document: &Document, final_data_validation_category_score: &mut u8, spec_type: ApiSpecificationType) -> Result src/parser/mod.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | let mut fixables: Vec = Vec::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `paths` [INFO] [stdout] --> src/main.rs:44:17 [INFO] [stdout] | [INFO] [stdout] 44 | if let Some(paths) = json.get("paths") { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start`, `end`, and `literal` are never read [INFO] [stdout] --> src/lexer/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct TextSpan { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 5 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | end: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | literal: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TextSpan` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `length` is never used [INFO] [stdout] --> src/lexer/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl TextSpan { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn length(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `span` are never read [INFO] [stdout] --> src/lexer/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Token { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 24 | kind: TokenKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 25 | span: TextSpan, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer/mod.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 36 | HttpGet, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 37 | HttpPost, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 38 | HttpPut, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | HttpPatch, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | HttpDelete, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 41 | [INFO] [stdout] 42 | Http401, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 43 | Http403, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 44 | Http200, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | Http201, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 46 | Http202, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | Http429, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 48 | Http500, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | Quotes, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 59 | [INFO] [stdout] 60 | TempStopObjectToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `current_char`, `next_char`, `consume`, `extract_open_api_path`, and `is_whitespace` are never used [INFO] [stdout] --> src/lexer/mod.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 72 | impl<'a> Lexer<'a> { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 166 | fn current_char(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | fn next_char(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | fn consume(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn extract_open_api_path() -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn is_whitespace(c: &char) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Low`, `Medium`, and `High` are never constructed [INFO] [stdout] --> src/openapi/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum WeightScore { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 16 | Low, // 1 [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | Medium, // 2 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 18 | High, // 3 [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WeightScore` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ArrayWithoutMaxItems`, `StringPropertyWithoutMaxLength`, `StringPropertyWithoutREgexPattern`, and `NoServerBaseUrlDefined` are never constructed [INFO] [stdout] --> src/openapi/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum IssueScoreImpact{ [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 22 | ArrayWithoutMaxItems, //scoreImpact - 7 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 23 | StringPropertyWithoutMaxLength, // ScoreImpact - 2 [MEDIUM 2] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | StringPropertyWithoutREgexPattern, // scoreImpace - 3 [MEDIUM 3] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | NoServerBaseUrlDefined, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `ARRAY_WITHOUT_MAX_ITEMS_VALUE`, `STRING_PROPERTY_WITHOUT_MAX_LENGTH_VALUE`, and `STRING_PROPERTY_WITHOUT_REGEX_PATTERN_VALUE` are never used [INFO] [stdout] --> src/openapi/mod.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 29 | impl IssueScoreImpact{ [INFO] [stdout] | --------------------- associated constants in this implementation [INFO] [stdout] 30 | pub const ARRAY_WITHOUT_MAX_ITEMS_VALUE: u8 = 7; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | pub const STRING_PROPERTY_WITHOUT_MAX_LENGTH_VALUE: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | pub const STRING_PROPERTY_WITHOUT_REGEX_PATTERN_VALUE: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `LOW_VALUE`, `MEDIUM_VALUE`, `HIGH_VALUE`, and `CRITICAL_VALUE` are never used [INFO] [stdout] --> src/openapi/mod.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 37 | impl WeightScore { [INFO] [stdout] | ---------------- associated constants in this implementation [INFO] [stdout] 38 | pub const LOW_VALUE: u8 = 1; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 39 | pub const MEDIUM_VALUE: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 40 | pub const HIGH_VALUE: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 41 | pub const CRITICAL_VALUE: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `error`, `line`, `weight_score`, and `fixable_type` are never read [INFO] [stdout] --> src/openapi/mod.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct Fixable { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 58 | error: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 59 | line: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 60 | weight_score: WeightScore, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 61 | fixable_type: FixableType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Fixable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/openapi/mod.rs:280:12 [INFO] [stdout] | [INFO] [stdout] 279 | impl OpenApiDoc { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 280 | pub fn new(version: impl Into) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/openapi/mod.rs:297:19 [INFO] [stdout] | [INFO] [stdout] 296 | impl EndpointPath { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 297 | pub(crate) fn new(url: &str) -> EndpointPath { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InvalidSOAPSpec` and `DataValidationError` are never constructed [INFO] [stdout] --> src/parser/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum ParserError { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | InvalidSOAPSpec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | DataValidationError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start` and `end` are never read [INFO] [stdout] --> src/parser/mod.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct Parser<'a> { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 85 | text: &'a str, [INFO] [stdout] 86 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 87 | end: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_yaml_open_api` is never used [INFO] [stdout] --> src/parser/mod.rs:140:4 [INFO] [stdout] | [INFO] [stdout] 140 | fn parse_yaml_open_api(text: &str) -> Result<(), ParserError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_non_empty_array_item` is never used [INFO] [stdout] --> src/parser/mod.rs:238:4 [INFO] [stdout] | [INFO] [stdout] 238 | fn has_non_empty_array_item(json_value: &Value, array_key: &str, array_item: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `operationId` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 198 | operationId: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `requestBody` should have a snake case name [INFO] [stdout] --> src/openapi/mod.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | requestBody: RequestBody, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.51s [INFO] running `Command { std: "docker" "inspect" "d73ead1702ad59bc8f3e04ba274a19dc285076e569bfc92d40d004482cdd1929", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d73ead1702ad59bc8f3e04ba274a19dc285076e569bfc92d40d004482cdd1929", kill_on_drop: false }` [INFO] [stdout] d73ead1702ad59bc8f3e04ba274a19dc285076e569bfc92d40d004482cdd1929 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] e9cbdebf3a8b21ec8c242b67af805c4b55cf92c0d6d5d2daaf9eae6e72892d9a [INFO] running `Command { std: "docker" "start" "-a" "e9cbdebf3a8b21ec8c242b67af805c4b55cf92c0d6d5d2daaf9eae6e72892d9a", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::collections::BTreeMap` [INFO] [stderr] --> src/openapi/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::BTreeMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `oapi::OApi` [INFO] [stderr] --> src/openapi/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use oapi::OApi; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `oapi::OApiOperation` [INFO] [stderr] --> src/openapi/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use oapi::OApiOperation; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `clap::error` [INFO] [stderr] --> src/parser/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use clap::error; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OApi` [INFO] [stderr] --> src/parser/mod.rs:2:12 [INFO] [stderr] | [INFO] [stderr] 2 | use oapi::{OApi, OApiDocument}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `thiserror::Error` [INFO] [stderr] --> src/parser/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use thiserror::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `collections::BTreeMap` and `str::FromStr` [INFO] [stderr] --> src/parser/mod.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | use std::{collections::BTreeMap, fmt::Display, str::FromStr}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `EndpointPath`, `OpenApiDoc`, and `OpenApi` [INFO] [stderr] --> src/parser/mod.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | use crate::openapi::{EndpointPath, Fixable, IssueScoreImpact, OpenApi, OpenApiDoc, WeightScore}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/parser/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `PathBuf` and `io::Error` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | io::Error, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 7 | path::{Path, PathBuf}, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `oapi::OApi` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use oapi::OApi; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sppparse::SparseRoot` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use sppparse::SparseRoot; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `OpenApi` and `PathData` [INFO] [stderr] --> src/main.rs:16:15 [INFO] [stderr] | [INFO] [stderr] 16 | openapi::{OpenApi, PathData, Scanner}, [INFO] [stderr] | ^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/parser/mod.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 43 | Document::OpenAPI(_) => write!(f, "Open API"), [INFO] [stderr] | -------------------- matches all the relevant values [INFO] [stderr] 44 | _ => unimplemented!(), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/parser/mod.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 51 | Document::OpenAPI(_) => "OpenAPI".into(), [INFO] [stderr] | -------------------- matches all the relevant values [INFO] [stderr] 52 | _ => unimplemented!() [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: value assigned to `fixables` is never read [INFO] [stderr] --> src/parser/mod.rs:103:17 [INFO] [stderr] | [INFO] [stderr] 103 | let mut fixables: Vec = vec![]; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `text` [INFO] [stderr] --> src/parser/mod.rs:119:20 [INFO] [stderr] | [INFO] [stderr] 119 | fn parse_soap_wsdl(text: &str) -> Result, ParserError> { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `text` [INFO] [stderr] --> src/parser/mod.rs:140:24 [INFO] [stderr] | [INFO] [stderr] 140 | fn parse_yaml_open_api(text: &str) -> Result<(), ParserError> { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `final_core` [INFO] [stderr] --> src/parser/mod.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | let mut final_core: u8 = 100; //final weight score... [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_core` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `master_piece` [INFO] [stderr] --> src/parser/mod.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | let master_piece: Value = serde_json::from_str(text).map_err(|e| { [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_piece` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser/mod.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | let mut final_core: u8 = 100; //final weight score... [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/parser/mod.rs:228:17 [INFO] [stderr] | [INFO] [stderr] 199 | Document::OpenAPI(d) => { [INFO] [stderr] | -------------------- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 228 | _ => return Err(ParserError::IncompatibleSpecificationAndDocumentType(spec_type.to_string(), document.to_string())) [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unused variable: `post_op` [INFO] [stderr] --> src/parser/mod.rs:218:41 [INFO] [stderr] | [INFO] [stderr] 218 | ... if let Some(post_op) = path_item.post(){ [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_post_op` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `final_data_validation_category_score` [INFO] [stderr] --> src/parser/mod.rs:193:45 [INFO] [stderr] | [INFO] [stderr] 193 | ..._data_validations(document: &Document, final_data_validation_category_score: &mut u8, spec_type: ApiSpecificationType) -> Result src/parser/mod.rs:194:9 [INFO] [stderr] | [INFO] [stderr] 194 | let mut fixables: Vec = Vec::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `paths` [INFO] [stderr] --> src/main.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | if let Some(paths) = json.get("paths") { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths` [INFO] [stderr] [INFO] [stderr] warning: fields `start`, `end`, and `literal` are never read [INFO] [stderr] --> src/lexer/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct TextSpan { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 5 | start: usize, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 6 | end: usize, [INFO] [stderr] | ^^^ [INFO] [stderr] 7 | literal: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TextSpan` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method `length` is never used [INFO] [stderr] --> src/lexer/mod.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 9 | impl TextSpan { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 17 | pub fn length(&self) -> usize { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `kind` and `span` are never read [INFO] [stderr] --> src/lexer/mod.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub struct Token { [INFO] [stderr] | ----- fields in this struct [INFO] [stderr] 24 | kind: TokenKind, [INFO] [stderr] | ^^^^ [INFO] [stderr] 25 | span: TextSpan, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple variants are never constructed [INFO] [stderr] --> src/lexer/mod.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 35 | pub enum TokenKind { [INFO] [stderr] | --------- variants in this enum [INFO] [stderr] 36 | HttpGet, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 37 | HttpPost, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 38 | HttpPut, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 39 | HttpPatch, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 40 | HttpDelete, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 41 | [INFO] [stderr] 42 | Http401, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 43 | Http403, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 44 | Http200, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 45 | Http201, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 46 | Http202, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 47 | Http429, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 48 | Http500, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 58 | Quotes, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 59 | [INFO] [stderr] 60 | TempStopObjectToken, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `current_char`, `next_char`, `consume`, `extract_open_api_path`, and `is_whitespace` are never used [INFO] [stderr] --> src/lexer/mod.rs:166:8 [INFO] [stderr] | [INFO] [stderr] 72 | impl<'a> Lexer<'a> { [INFO] [stderr] | ------------------ associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 166 | fn current_char(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 169 | fn next_char(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 172 | fn consume(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 190 | pub fn extract_open_api_path() -> Option<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 195 | fn is_whitespace(c: &char) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `Low`, `Medium`, and `High` are never constructed [INFO] [stderr] --> src/openapi/mod.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub enum WeightScore { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] 16 | Low, // 1 [INFO] [stderr] | ^^^ [INFO] [stderr] 17 | Medium, // 2 [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 18 | High, // 3 [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WeightScore` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `ArrayWithoutMaxItems`, `StringPropertyWithoutMaxLength`, `StringPropertyWithoutREgexPattern`, and `NoServerBaseUrlDefined` are never constructed [INFO] [stderr] --> src/openapi/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub enum IssueScoreImpact{ [INFO] [stderr] | ---------------- variants in this enum [INFO] [stderr] 22 | ArrayWithoutMaxItems, //scoreImpact - 7 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 23 | StringPropertyWithoutMaxLength, // ScoreImpact - 2 [MEDIUM 2] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 24 | StringPropertyWithoutREgexPattern, // scoreImpace - 3 [MEDIUM 3] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 25 | NoServerBaseUrlDefined, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated constants `ARRAY_WITHOUT_MAX_ITEMS_VALUE`, `STRING_PROPERTY_WITHOUT_MAX_LENGTH_VALUE`, and `STRING_PROPERTY_WITHOUT_REGEX_PATTERN_VALUE` are never used [INFO] [stderr] --> src/openapi/mod.rs:30:15 [INFO] [stderr] | [INFO] [stderr] 29 | impl IssueScoreImpact{ [INFO] [stderr] | --------------------- associated constants in this implementation [INFO] [stderr] 30 | pub const ARRAY_WITHOUT_MAX_ITEMS_VALUE: u8 = 7; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 31 | pub const STRING_PROPERTY_WITHOUT_MAX_LENGTH_VALUE: u8 = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 32 | pub const STRING_PROPERTY_WITHOUT_REGEX_PATTERN_VALUE: u8 = 3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated constants `LOW_VALUE`, `MEDIUM_VALUE`, `HIGH_VALUE`, and `CRITICAL_VALUE` are never used [INFO] [stderr] --> src/openapi/mod.rs:38:15 [INFO] [stderr] | [INFO] [stderr] 37 | impl WeightScore { [INFO] [stderr] | ---------------- associated constants in this implementation [INFO] [stderr] 38 | pub const LOW_VALUE: u8 = 1; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 39 | pub const MEDIUM_VALUE: u8 = 2; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 40 | pub const HIGH_VALUE: u8 = 3; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 41 | pub const CRITICAL_VALUE: u8 = 4; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `error`, `line`, `weight_score`, and `fixable_type` are never read [INFO] [stderr] --> src/openapi/mod.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 57 | pub struct Fixable { [INFO] [stderr] | ------- fields in this struct [INFO] [stderr] 58 | error: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 59 | line: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] 60 | weight_score: WeightScore, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 61 | fixable_type: FixableType, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Fixable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/openapi/mod.rs:280:12 [INFO] [stderr] | [INFO] [stderr] 279 | impl OpenApiDoc { [INFO] [stderr] | --------------- associated function in this implementation [INFO] [stderr] 280 | pub fn new(version: impl Into) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/openapi/mod.rs:297:19 [INFO] [stderr] | [INFO] [stderr] 296 | impl EndpointPath { [INFO] [stderr] | ----------------- associated function in this implementation [INFO] [stderr] 297 | pub(crate) fn new(url: &str) -> EndpointPath { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `InvalidSOAPSpec` and `DataValidationError` are never constructed [INFO] [stderr] --> src/parser/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub enum ParserError { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 20 | InvalidSOAPSpec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 30 | DataValidationError(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `start` and `end` are never read [INFO] [stderr] --> src/parser/mod.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 84 | pub struct Parser<'a> { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 85 | text: &'a str, [INFO] [stderr] 86 | start: usize, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 87 | end: usize, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Parser` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `parse_yaml_open_api` is never used [INFO] [stderr] --> src/parser/mod.rs:140:4 [INFO] [stderr] | [INFO] [stderr] 140 | fn parse_yaml_open_api(text: &str) -> Result<(), ParserError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `has_non_empty_array_item` is never used [INFO] [stderr] --> src/parser/mod.rs:238:4 [INFO] [stderr] | [INFO] [stderr] 238 | fn has_non_empty_array_item(json_value: &Value, array_key: &str, array_item: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `operationId` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | operationId: String, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `requestBody` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | requestBody: RequestBody, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stderr] [INFO] [stderr] warning: structure field `operationId` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | operationId: String, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `requestBody` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | requestBody: RequestBody, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stderr] [INFO] [stderr] warning: structure field `operationId` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:190:5 [INFO] [stderr] | [INFO] [stderr] 190 | operationId: String, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `requestBody` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | requestBody: RequestBody, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stderr] [INFO] [stderr] warning: structure field `operationId` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | operationId: String, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `operation_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `requestBody` should have a snake case name [INFO] [stderr] --> src/openapi/mod.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | requestBody: RequestBody, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `request_body` [INFO] [stderr] [INFO] [stderr] warning: `rustysec` (bin "rustysec" test) generated 50 warnings (run `cargo fix --bin "rustysec" --tests` to apply 15 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/rustysec-676c295a6233e43c) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e9cbdebf3a8b21ec8c242b67af805c4b55cf92c0d6d5d2daaf9eae6e72892d9a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e9cbdebf3a8b21ec8c242b67af805c4b55cf92c0d6d5d2daaf9eae6e72892d9a", kill_on_drop: false }` [INFO] [stdout] e9cbdebf3a8b21ec8c242b67af805c4b55cf92c0d6d5d2daaf9eae6e72892d9a