[INFO] cloning repository https://github.com/bentonmize/aws_creds_setup
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bentonmize/aws_creds_setup" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbentonmize%2Faws_creds_setup", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbentonmize%2Faws_creds_setup'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 47e57a4b90bcdc7e4fec5ad8d4db3df605b41d59
[INFO] testing bentonmize/aws_creds_setup against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbentonmize%2Faws_creds_setup" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bentonmize/aws_creds_setup
[INFO] finished tweaking git repo https://github.com/bentonmize/aws_creds_setup
[INFO] tweaked toml for git repo https://github.com/bentonmize/aws_creds_setup written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bentonmize/aws_creds_setup on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bentonmize/aws_creds_setup 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" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded aws-credential-types v1.2.5
[INFO] [stderr]   Downloaded aws-smithy-runtime-api v1.9.0
[INFO] [stderr]   Downloaded assert_cmd v2.0.17
[INFO] [stderr]   Downloaded aws-smithy-json v0.61.4
[INFO] [stderr]   Downloaded aws-smithy-types v1.3.2
[INFO] [stderr]   Downloaded clap v4.5.46
[INFO] [stderr]   Downloaded aws-sdk-sso v1.81.0
[INFO] [stderr]   Downloaded aws-sdk-ssooidc v1.83.0
[INFO] [stderr]   Downloaded aws-config v1.8.5
[INFO] [stderr]   Downloaded aws-smithy-runtime v1.9.0
[INFO] [stderr]   Downloaded aws-sdk-sts v1.84.0
[INFO] [stderr]   Downloaded clap_builder v4.5.46
[INFO] [stderr]   Downloaded aws-sigv4 v1.3.4
[INFO] [stderr]   Downloaded regex-lite v0.1.7
[INFO] [stderr]   Downloaded aws-runtime v1.5.10
[INFO] [stderr]   Downloaded aws-smithy-http-client v1.1.0
[INFO] [stderr]   Downloaded aws-smithy-http v0.62.3
[INFO] [stderr]   Downloaded aws-smithy-xml v0.60.10
[INFO] [stderr]   Downloaded aws-types v1.3.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8a54ef35cfb2d15f0ba1882b045bddf16e72c1d9aa71f1898f2a00cf89d020d8
[INFO] running `Command { std: "docker" "start" "-a" "8a54ef35cfb2d15f0ba1882b045bddf16e72c1d9aa71f1898f2a00cf89d020d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a54ef35cfb2d15f0ba1882b045bddf16e72c1d9aa71f1898f2a00cf89d020d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a54ef35cfb2d15f0ba1882b045bddf16e72c1d9aa71f1898f2a00cf89d020d8", kill_on_drop: false }`
[INFO] [stdout] 8a54ef35cfb2d15f0ba1882b045bddf16e72c1d9aa71f1898f2a00cf89d020d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c97d8b5c4a64036654042b8f21a7a0fa2886e82ffc082fd2b1339e7c0e3b79c4
[INFO] running `Command { std: "docker" "start" "-a" "c97d8b5c4a64036654042b8f21a7a0fa2886e82ffc082fd2b1339e7c0e3b79c4", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling aws-lc-rs v1.13.3
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rustls v0.23.31
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling rustls-native-certs v0.8.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling aws-types v1.3.8
[INFO] [stderr]    Compiling regex-lite v0.1.7
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling bitflags v2.9.3
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling aws-smithy-xml v0.60.10
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling clap_builder v4.5.46
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling tempfile v3.21.0
[INFO] [stderr]    Compiling aws-lc-sys v0.30.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling clap v4.5.46
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling aws-smithy-async v1.2.5
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling aws-smithy-types v1.3.2
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling aws-smithy-runtime-api v1.9.0
[INFO] [stderr]    Compiling aws-smithy-json v0.61.4
[INFO] [stderr]    Compiling aws-smithy-query v0.60.7
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling aws-credential-types v1.2.5
[INFO] [stderr]    Compiling aws-smithy-http v0.62.3
[INFO] [stderr]    Compiling aws-smithy-observability v0.1.3
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling aws-sigv4 v1.3.4
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling rustls-webpki v0.103.4
[INFO] [stderr]    Compiling hyper-util v0.1.16
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling tokio-rustls v0.26.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling aws-smithy-http-client v1.1.0
[INFO] [stderr]    Compiling aws-smithy-runtime v1.9.0
[INFO] [stderr]    Compiling aws-runtime v1.5.10
[INFO] [stderr]    Compiling aws-sdk-sts v1.84.0
[INFO] [stderr]    Compiling aws-sdk-sso v1.81.0
[INFO] [stderr]    Compiling aws-sdk-ssooidc v1.83.0
[INFO] [stderr]    Compiling aws-config v1.8.5
[INFO] [stderr]    Compiling aws-switcher v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `credentials_file::CredentialsFile`
[INFO] [stdout]  --> src/storage/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use credentials_file::CredentialsFile;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProfileInfo`
[INFO] [stdout]   --> src/storage/mod.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use profile_manager::{ProfileManager, ProfileInfo};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate`, `supports_auto_refresh`, and `profile_type` are never used
[INFO] [stdout]    --> src/core/profile.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl ProfileConfig {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86  |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn supports_auto_refresh(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn profile_type(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/profile.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl ProfileRegistry {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 170 |     /// Create new empty registry
[INFO] [stdout] 171 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn add_profile(&mut self, profile: ProfileConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn get_profile(&self, name: &str) -> Option<&ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn remove_profile(&mut self, name: &str) -> Option<ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn profile_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn set_default_profile(&mut self, name: String) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn get_default_profile(&self) -> Option<&ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_expired`, `time_until_expiration`, `is_temporary`, and `validate` are never used
[INFO] [stdout]   --> src/core/credentials.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl AwsCredentials {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_expired(&self, threshold_seconds: i64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn time_until_expiration(&self) -> Option<chrono::Duration> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_temporary(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `needs_refresh`, and `is_valid` are never used
[INFO] [stdout]   --> src/core/credentials.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl CachedToken {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 80 |     /// Create new cached token
[INFO] [stdout] 81 |     pub fn new(credentials: AwsCredentials, refresh_threshold_seconds: i64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn needs_refresh(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/config.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout] 54  | impl ToolConfig {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 55  |     /// Create new tool configuration
[INFO] [stdout] 56  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61  |     pub fn from_toml(content: &str) -> Result<Self, toml::de::Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn to_toml(&self) -> Result<String, toml::ser::Error> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn add_profile(&mut self, profile: super::profile::ProfileConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn get_profile(&self, name: &str) -> Option<&super::profile::ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn remove_profile(&mut self, name: &str) -> Option<super::profile::ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     pub fn profile_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99  |     pub fn set_default_profile(&mut self, name: String) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn get_default_profile(&self) -> Option<&super::profile::ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn validate(&self) -> Result<(), Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `update_profile`, `remove_profile`, `default_path`, `cleanup_old_backups`, `exists`, and `path` are never used
[INFO] [stdout]    --> src/storage/credentials_file.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl CredentialsFile {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75  |     pub fn update_profile(&self, profile_name: &str, credentials: AwsCredentials) -> SwitcherResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn remove_profile(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn default_path() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn cleanup_old_backups(&self, keep_count: usize) -> SwitcherResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exists` is never used
[INFO] [stdout]    --> src/storage/config_file.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl ConfigFile {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/profile_manager.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl ProfileManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26  |     pub fn with_files(config_file: ConfigFile, credentials_file: CredentialsFile) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn remove_credentials(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn copy_credentials(&self, from_profile: &str, to_profile: &str) -> SwitcherResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn override_default(&self, source_profile: &str) -> SwitcherResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn credentials_file_exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn config_file_exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn has_valid_credentials(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `output` is never used
[INFO] [stdout]    --> src/storage/profile_manager.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl ProfileInfo {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn output(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `FilePermission` is never constructed
[INFO] [stdout]   --> src/errors/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum SwitcherError {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 45 |     FilePermission { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SwitcherError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SsoTokenExpired`, `AssumeRoleFailed`, and `MfaRequired` are never constructed
[INFO] [stdout]   --> src/errors/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum RefreshError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 53 |     #[error("SSO token expired and refresh failed")]
[INFO] [stdout] 54 |     SsoTokenExpired,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     AssumeRoleFailed { role_arn: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     MfaRequired,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RefreshError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ProfileNotFound` is never constructed
[INFO] [stdout]   --> src/errors/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum CredentialsFileError {
[INFO] [stdout]    |          -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 84 |     ProfileNotFound { profile: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CredentialsFileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `user_message` and `suggested_action` are never used
[INFO] [stdout]    --> src/errors/mod.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout] 90  | impl SwitcherError {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 91  |     /// Get a user-friendly error message with suggested actions
[INFO] [stdout] 92  |     pub fn user_message(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn suggested_action(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/utils/paths.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout] 7   | impl AwsPaths {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn switcher_config_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn switcher_config_file() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn switcher_cache_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54  |     pub fn ensure_aws_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     pub fn ensure_switcher_config_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn ensure_switcher_cache_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn is_readable(path: &PathBuf) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn is_writable(path: &PathBuf) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7m 29s
[INFO] running `Command { std: "docker" "inspect" "c97d8b5c4a64036654042b8f21a7a0fa2886e82ffc082fd2b1339e7c0e3b79c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c97d8b5c4a64036654042b8f21a7a0fa2886e82ffc082fd2b1339e7c0e3b79c4", kill_on_drop: false }`
[INFO] [stdout] c97d8b5c4a64036654042b8f21a7a0fa2886e82ffc082fd2b1339e7c0e3b79c4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dd0dcb611115f2952e2626b3dc90ceefcf9fbabe0bb354a3f79376f3f004b45a
[INFO] running `Command { std: "docker" "start" "-a" "dd0dcb611115f2952e2626b3dc90ceefcf9fbabe0bb354a3f79376f3f004b45a", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert_cmd v2.0.17
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling aws-smithy-async v1.2.5
[INFO] [stderr]    Compiling tokio-rustls v0.26.2
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling aws-smithy-types v1.3.2
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling aws-smithy-runtime-api v1.9.0
[INFO] [stderr]    Compiling aws-smithy-json v0.61.4
[INFO] [stderr]    Compiling aws-smithy-query v0.60.7
[INFO] [stderr]    Compiling aws-smithy-http v0.62.3
[INFO] [stderr]    Compiling aws-credential-types v1.2.5
[INFO] [stderr]    Compiling aws-smithy-observability v0.1.3
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling aws-sigv4 v1.3.4
[INFO] [stderr]    Compiling aws-types v1.3.8
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-util v0.1.16
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling aws-smithy-http-client v1.1.0
[INFO] [stderr]    Compiling aws-smithy-runtime v1.9.0
[INFO] [stderr]    Compiling aws-runtime v1.5.10
[INFO] [stderr]    Compiling aws-sdk-sso v1.81.0
[INFO] [stderr]    Compiling aws-sdk-sts v1.84.0
[INFO] [stderr]    Compiling aws-sdk-ssooidc v1.83.0
[INFO] [stderr]    Compiling aws-config v1.8.5
[INFO] [stderr]    Compiling aws-switcher v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AuthSource` and `RefreshStrategy`
[INFO] [stdout]    --> src/storage/profile_manager.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |     use crate::core::profile::{AuthSource, RefreshStrategy};
[INFO] [stdout]     |                                ^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]    --> src/storage/sso_cache.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |     use tempfile::TempDir;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthSource` and `RefreshStrategy`
[INFO] [stdout]    --> src/storage/profile_manager.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |     use crate::core::profile::{AuthSource, RefreshStrategy};
[INFO] [stdout]     |                                ^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]    --> src/storage/sso_cache.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |     use tempfile::TempDir;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `credentials_file::CredentialsFile`
[INFO] [stdout]  --> src/storage/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use credentials_file::CredentialsFile;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProfileInfo`
[INFO] [stdout]   --> src/storage/mod.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use profile_manager::{ProfileManager, ProfileInfo};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate`, `supports_auto_refresh`, and `profile_type` are never used
[INFO] [stdout]    --> src/core/profile.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl ProfileConfig {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86  |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn supports_auto_refresh(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn profile_type(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/profile.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl ProfileRegistry {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 170 |     /// Create new empty registry
[INFO] [stdout] 171 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn add_profile(&mut self, profile: ProfileConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn get_profile(&self, name: &str) -> Option<&ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn remove_profile(&mut self, name: &str) -> Option<ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn profile_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn set_default_profile(&mut self, name: String) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn get_default_profile(&self) -> Option<&ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_expired`, `time_until_expiration`, `is_temporary`, and `validate` are never used
[INFO] [stdout]   --> src/core/credentials.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl AwsCredentials {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_expired(&self, threshold_seconds: i64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn time_until_expiration(&self) -> Option<chrono::Duration> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_temporary(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `needs_refresh`, and `is_valid` are never used
[INFO] [stdout]   --> src/core/credentials.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl CachedToken {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 80 |     /// Create new cached token
[INFO] [stdout] 81 |     pub fn new(credentials: AwsCredentials, refresh_threshold_seconds: i64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn needs_refresh(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/config.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout] 54  | impl ToolConfig {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 55  |     /// Create new tool configuration
[INFO] [stdout] 56  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61  |     pub fn from_toml(content: &str) -> Result<Self, toml::de::Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn to_toml(&self) -> Result<String, toml::ser::Error> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn add_profile(&mut self, profile: super::profile::ProfileConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn get_profile(&self, name: &str) -> Option<&super::profile::ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn remove_profile(&mut self, name: &str) -> Option<super::profile::ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     pub fn profile_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99  |     pub fn set_default_profile(&mut self, name: String) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn get_default_profile(&self) -> Option<&super::profile::ProfileConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn validate(&self) -> Result<(), Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `update_profile`, `remove_profile`, `default_path`, `cleanup_old_backups`, `exists`, and `path` are never used
[INFO] [stdout]    --> src/storage/credentials_file.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl CredentialsFile {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75  |     pub fn update_profile(&self, profile_name: &str, credentials: AwsCredentials) -> SwitcherResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn remove_profile(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn default_path() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn cleanup_old_backups(&self, keep_count: usize) -> SwitcherResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exists` is never used
[INFO] [stdout]    --> src/storage/config_file.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl ConfigFile {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_credentials`, `credentials_file_exists`, `config_file_exists`, and `has_valid_credentials` are never used
[INFO] [stdout]    --> src/storage/profile_manager.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl ProfileManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn remove_credentials(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn credentials_file_exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn config_file_exists(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn has_valid_credentials(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `output` is never used
[INFO] [stdout]    --> src/storage/profile_manager.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl ProfileInfo {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn output(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `FilePermission` is never constructed
[INFO] [stdout]   --> src/errors/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum SwitcherError {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 45 |     FilePermission { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SwitcherError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SsoTokenExpired`, `AssumeRoleFailed`, and `MfaRequired` are never constructed
[INFO] [stdout]   --> src/errors/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum RefreshError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 53 |     #[error("SSO token expired and refresh failed")]
[INFO] [stdout] 54 |     SsoTokenExpired,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     AssumeRoleFailed { role_arn: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     MfaRequired,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RefreshError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `user_message` and `suggested_action` are never used
[INFO] [stdout]    --> src/errors/mod.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout] 90  | impl SwitcherError {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 91  |     /// Get a user-friendly error message with suggested actions
[INFO] [stdout] 92  |     pub fn user_message(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn suggested_action(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `switcher_cache_dir`, `ensure_aws_dir`, `ensure_switcher_config_dir`, `ensure_switcher_cache_dir`, `is_readable`, and `is_writable` are never used
[INFO] [stdout]    --> src/utils/paths.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout] 7   | impl AwsPaths {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn switcher_cache_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54  |     pub fn ensure_aws_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     pub fn ensure_switcher_config_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn ensure_switcher_cache_dir() -> SwitcherResult<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn is_readable(path: &PathBuf) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn is_writable(path: &PathBuf) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 37s
[INFO] running `Command { std: "docker" "inspect" "dd0dcb611115f2952e2626b3dc90ceefcf9fbabe0bb354a3f79376f3f004b45a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd0dcb611115f2952e2626b3dc90ceefcf9fbabe0bb354a3f79376f3f004b45a", kill_on_drop: false }`
[INFO] [stdout] dd0dcb611115f2952e2626b3dc90ceefcf9fbabe0bb354a3f79376f3f004b45a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e2edac60745ba3dbe1dd04513b172d66d2dc2249482fea0b9d3030ac9343dc69
[INFO] running `Command { std: "docker" "start" "-a" "e2edac60745ba3dbe1dd04513b172d66d2dc2249482fea0b9d3030ac9343dc69", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `AuthSource` and `RefreshStrategy`
[INFO] [stderr]    --> src/storage/profile_manager.rs:204:32
[INFO] [stderr]     |
[INFO] [stderr] 204 |     use crate::core::profile::{AuthSource, RefreshStrategy};
[INFO] [stderr]     |                                ^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tempfile::TempDir`
[INFO] [stderr]    --> src/storage/sso_cache.rs:200:9
[INFO] [stderr]     |
[INFO] [stderr] 200 |     use tempfile::TempDir;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `credentials_file::CredentialsFile`
[INFO] [stderr]  --> src/storage/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use credentials_file::CredentialsFile;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ProfileInfo`
[INFO] [stderr]   --> src/storage/mod.rs:10:43
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use profile_manager::{ProfileManager, ProfileInfo};
[INFO] [stderr]    |                                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `validate`, `supports_auto_refresh`, and `profile_type` are never used
[INFO] [stderr]    --> src/core/profile.rs:86:12
[INFO] [stderr]     |
[INFO] [stderr] 64  | impl ProfileConfig {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 86  |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn supports_auto_refresh(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn profile_type(&self) -> &'static str {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/core/profile.rs:171:12
[INFO] [stderr]     |
[INFO] [stderr] 169 | impl ProfileRegistry {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] 170 |     /// Create new empty registry
[INFO] [stderr] 171 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 179 |     pub fn add_profile(&mut self, profile: ProfileConfig) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 185 |     pub fn get_profile(&self, name: &str) -> Option<&ProfileConfig> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 190 |     pub fn remove_profile(&mut self, name: &str) -> Option<ProfileConfig> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub fn profile_names(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 207 |     pub fn set_default_profile(&mut self, name: String) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 217 |     pub fn get_default_profile(&self) -> Option<&ProfileConfig> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_expired`, `time_until_expiration`, `is_temporary`, and `validate` are never used
[INFO] [stderr]   --> src/core/credentials.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl AwsCredentials {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn is_expired(&self, threshold_seconds: i64) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn time_until_expiration(&self) -> Option<chrono::Duration> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn is_temporary(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `needs_refresh`, and `is_valid` are never used
[INFO] [stderr]   --> src/core/credentials.rs:81:12
[INFO] [stderr]    |
[INFO] [stderr] 79 | impl CachedToken {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 80 |     /// Create new cached token
[INFO] [stderr] 81 |     pub fn new(credentials: AwsCredentials, refresh_threshold_seconds: i64) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 94 |     pub fn needs_refresh(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 99 |     pub fn is_valid(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/core/config.rs:56:12
[INFO] [stderr]     |
[INFO] [stderr] 54  | impl ToolConfig {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 55  |     /// Create new tool configuration
[INFO] [stderr] 56  |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 61  |     pub fn from_toml(content: &str) -> Result<Self, toml::de::Error> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66  |     pub fn to_toml(&self) -> Result<String, toml::ser::Error> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71  |     pub fn add_profile(&mut self, profile: super::profile::ProfileConfig) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77  |     pub fn get_profile(&self, name: &str) -> Option<&super::profile::ProfileConfig> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82  |     pub fn remove_profile(&mut self, name: &str) -> Option<super::profile::ProfileConfig> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 94  |     pub fn profile_names(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 99  |     pub fn set_default_profile(&mut self, name: String) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub fn get_default_profile(&self) -> Option<&super::profile::ProfileConfig> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub fn validate(&self) -> Result<(), Vec<String>> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `update_profile`, `remove_profile`, `default_path`, `cleanup_old_backups`, `exists`, and `path` are never used
[INFO] [stderr]    --> src/storage/credentials_file.rs:75:12
[INFO] [stderr]     |
[INFO] [stderr] 15  | impl CredentialsFile {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 75  |     pub fn update_profile(&self, profile_name: &str, credentials: AwsCredentials) -> SwitcherResult<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82  |     pub fn remove_profile(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 243 |     pub fn default_path() -> SwitcherResult<PathBuf> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 253 |     pub fn cleanup_old_backups(&self, keep_count: usize) -> SwitcherResult<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 297 |     pub fn exists(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 302 |     pub fn path(&self) -> &PathBuf {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `exists` is never used
[INFO] [stderr]    --> src/storage/config_file.rs:170:12
[INFO] [stderr]     |
[INFO] [stderr] 13  | impl ConfigFile {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn exists(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `remove_credentials`, `credentials_file_exists`, `config_file_exists`, and `has_valid_credentials` are never used
[INFO] [stderr]    --> src/storage/profile_manager.rs:93:12
[INFO] [stderr]     |
[INFO] [stderr] 13  | impl ProfileManager {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 93  |     pub fn remove_credentials(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn credentials_file_exists(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 122 |     pub fn config_file_exists(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn has_valid_credentials(&self, profile_name: &str) -> SwitcherResult<bool> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `output` is never used
[INFO] [stderr]    --> src/storage/profile_manager.rs:168:12
[INFO] [stderr]     |
[INFO] [stderr] 152 | impl ProfileInfo {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 168 |     pub fn output(&self) -> Option<&str> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `FilePermission` is never constructed
[INFO] [stderr]   --> src/errors/mod.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 7  | pub enum SwitcherError {
[INFO] [stderr]    |          ------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 45 |     FilePermission { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SwitcherError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `SsoTokenExpired`, `AssumeRoleFailed`, and `MfaRequired` are never constructed
[INFO] [stderr]   --> src/errors/mod.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub enum RefreshError {
[INFO] [stderr]    |          ------------ variants in this enum
[INFO] [stderr] 53 |     #[error("SSO token expired and refresh failed")]
[INFO] [stderr] 54 |     SsoTokenExpired,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     AssumeRoleFailed { role_arn: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     MfaRequired,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RefreshError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `user_message` and `suggested_action` are never used
[INFO] [stderr]    --> src/errors/mod.rs:92:12
[INFO] [stderr]     |
[INFO] [stderr] 90  | impl SwitcherError {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] 91  |     /// Get a user-friendly error message with suggested actions
[INFO] [stderr] 92  |     pub fn user_message(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     pub fn suggested_action(&self) -> Option<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `switcher_cache_dir`, `ensure_aws_dir`, `ensure_switcher_config_dir`, `ensure_switcher_cache_dir`, `is_readable`, and `is_writable` are never used
[INFO] [stderr]    --> src/utils/paths.rs:49:12
[INFO] [stderr]     |
[INFO] [stderr] 7   | impl AwsPaths {
[INFO] [stderr]     | ------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 49  |     pub fn switcher_cache_dir() -> SwitcherResult<PathBuf> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54  |     pub fn ensure_aws_dir() -> SwitcherResult<PathBuf> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68  |     pub fn ensure_switcher_config_dir() -> SwitcherResult<PathBuf> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82  |     pub fn ensure_switcher_cache_dir() -> SwitcherResult<PathBuf> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 96  |     pub fn is_readable(path: &PathBuf) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn is_writable(path: &PathBuf) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `aws-switcher` (bin "aws-switcher" test) generated 17 warnings (run `cargo fix --bin "aws-switcher" --tests` to apply 4 suggestions)
[INFO] [stderr] warning: `aws-switcher` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/aws_switcher-ebce6dbd74d46249)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test storage::config_file::tests::test_parse_default_profile ... ok
[INFO] [stdout] test utils::paths::tests::test_aws_paths ... ok
[INFO] [stdout] test utils::paths::tests::test_switcher_paths ... ok
[INFO] [stdout] test storage::sso_cache::tests::test_resolve_sso_session ... ok
[INFO] [stdout] test storage::credentials_file::tests::test_parse_simple_credentials ... ok
[INFO] [stdout] test storage::config_file::tests::test_parse_sso_profile ... ok
[INFO] [stdout] test storage::credentials_file::tests::test_serialize_credentials ... ok
[INFO] [stdout] test storage::profile_manager::tests::test_list_profiles ... ok
[INFO] [stdout] test storage::profile_manager::tests::test_copy_credentials ... ok
[INFO] [stdout] test storage::profile_manager::tests::test_override_default ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/aws_switcher-dfaf508edab978cb)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test storage::sso_cache::tests::test_resolve_sso_session ... ok
[INFO] [stdout] test storage::config_file::tests::test_parse_default_profile ... ok
[INFO] [stdout] test storage::config_file::tests::test_parse_sso_profile ... ok
[INFO] [stdout] test utils::paths::tests::test_switcher_paths ... ok
[INFO] [stdout] test storage::profile_manager::tests::test_copy_credentials ... ok
[INFO] [stdout] test storage::credentials_file::tests::test_serialize_credentials ... ok
[INFO] [stdout] test utils::paths::tests::test_aws_paths ... ok
[INFO] [stdout] test storage::profile_manager::tests::test_list_profiles ... ok
[INFO] [stdout] test storage::profile_manager::tests::test_override_default ... ok
[INFO] [stdout] test storage::credentials_file::tests::test_parse_simple_credentials ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests aws_switcher
[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" "e2edac60745ba3dbe1dd04513b172d66d2dc2249482fea0b9d3030ac9343dc69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2edac60745ba3dbe1dd04513b172d66d2dc2249482fea0b9d3030ac9343dc69", kill_on_drop: false }`
[INFO] [stdout] e2edac60745ba3dbe1dd04513b172d66d2dc2249482fea0b9d3030ac9343dc69
