[INFO] crate tokkit 0.15.3 is already in cache [INFO] extracting crate tokkit 0.15.3 into work/ex/clippy-test-run/sources/stable/reg/tokkit/0.15.3 [INFO] extracting crate tokkit 0.15.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tokkit/0.15.3 [INFO] validating manifest of tokkit-0.15.3 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of tokkit-0.15.3 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing tokkit-0.15.3 [INFO] finished frobbing tokkit-0.15.3 [INFO] frobbed toml for tokkit-0.15.3 written to work/ex/clippy-test-run/sources/stable/reg/tokkit/0.15.3/Cargo.toml [INFO] started frobbing tokkit-0.15.3 [INFO] finished frobbing tokkit-0.15.3 [INFO] frobbed toml for tokkit-0.15.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tokkit/0.15.3/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting tokkit-0.15.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tokkit/0.15.3:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 314d73e5d379b32f28f509e4712fddee3064869eb1a7694b84caa45b68a61b5a [INFO] running `"docker" "start" "-a" "314d73e5d379b32f28f509e4712fddee3064869eb1a7694b84caa45b68a61b5a"` [INFO] [stderr] Checking backoff v0.1.2 [INFO] [stderr] Checking h2 v0.1.16 [INFO] [stderr] Checking uuid v0.7.2 [INFO] [stderr] Checking tokio v0.1.15 [INFO] [stderr] Checking hyper v0.12.23 [INFO] [stderr] Checking hyper-tls v0.3.1 [INFO] [stderr] Checking reqwest v0.9.9 [INFO] [stderr] Checking tokkit v0.15.3 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | query_parameter: query_parameter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `query_parameter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client.rs:214:13 [INFO] [stderr] | [INFO] [stderr] 214 | fallback_endpoint: fallback_endpoint, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fallback_endpoint` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/error.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | TokenInfoError { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parsers.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | active: active, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `active` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parsers.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | user_id: user_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `user_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parsers.rs:352:17 [INFO] [stderr] | [INFO] [stderr] 352 | scope: scope, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/error.rs:38:22 [INFO] [stderr] | [INFO] [stderr] 38 | TokenError { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | full_endpoint_url: full_endpoint_url, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `full_endpoint_url` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | client: client, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `client` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/mod.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | token_id: token_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `token_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/mod.rs:243:13 [INFO] [stderr] | [INFO] [stderr] 243 | token_provider: token_provider, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `token_provider` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | query_parameter: query_parameter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `query_parameter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client.rs:214:13 [INFO] [stderr] | [INFO] [stderr] 214 | fallback_endpoint: fallback_endpoint, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fallback_endpoint` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/error.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | TokenInfoError { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parsers.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | active: active, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `active` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parsers.rs:351:17 [INFO] [stderr] | [INFO] [stderr] 351 | user_id: user_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `user_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parsers.rs:352:17 [INFO] [stderr] | [INFO] [stderr] 352 | scope: scope, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scope` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/error.rs:38:22 [INFO] [stderr] | [INFO] [stderr] 38 | TokenError { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | full_endpoint_url: full_endpoint_url, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `full_endpoint_url` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | client: client, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `client` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/mod.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | token_id: token_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `token_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/token_manager/mod.rs:243:13 [INFO] [stderr] | [INFO] [stderr] 243 | token_provider: token_provider, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `token_provider` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/client.rs:344:12 [INFO] [stderr] | [INFO] [stderr] 344 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 345 | | if !url_prefix.ends_with('/') { [INFO] [stderr] 346 | | url_prefix.push('/'); [INFO] [stderr] 347 | | } [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 344 | } else if !url_prefix.ends_with('/') { [INFO] [stderr] 345 | url_prefix.push('/'); [INFO] [stderr] 346 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:465:9 [INFO] [stderr] | [INFO] [stderr] 465 | / return Err(TokenInfoErrorKind::NotAuthenticated(format!( [INFO] [stderr] 466 | | "The server refused the token: {}", [INFO] [stderr] 467 | | msg [INFO] [stderr] 468 | | )).into()); [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 465 | Err(TokenInfoErrorKind::NotAuthenticated(format!( [INFO] [stderr] 466 | "The server refused the token: {}", [INFO] [stderr] 467 | msg [INFO] [stderr] 468 | )).into()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:471:9 [INFO] [stderr] | [INFO] [stderr] 471 | return Err(TokenInfoErrorKind::Client(msg.to_string()).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenInfoErrorKind::Client(msg.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | return Err(TokenInfoErrorKind::Server(msg.to_string()).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenInfoErrorKind::Server(msg.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:477:9 [INFO] [stderr] | [INFO] [stderr] 477 | return Err(TokenInfoErrorKind::Other(msg.to_string()).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenInfoErrorKind::Other(msg.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/internals/mod.rs:132:34 [INFO] [stderr] | [INFO] [stderr] 132 | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.clone().into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/internals/mod.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | None => return Err(TokenErrorKind::NoToken(token_id.to_string()).into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenErrorKind::NoToken(token_id.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/mod.rs:381:34 [INFO] [stderr] | [INFO] [stderr] 381 | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.clone().into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/mod.rs:456:34 [INFO] [stderr] | [INFO] [stderr] 456 | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.clone().into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/mod.rs:458:21 [INFO] [stderr] | [INFO] [stderr] 458 | None => return Err(TokenErrorKind::NoToken(token_id.to_string()).into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenErrorKind::NoToken(token_id.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/client.rs:344:12 [INFO] [stderr] | [INFO] [stderr] 344 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 345 | | if !url_prefix.ends_with('/') { [INFO] [stderr] 346 | | url_prefix.push('/'); [INFO] [stderr] 347 | | } [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 344 | } else if !url_prefix.ends_with('/') { [INFO] [stderr] 345 | url_prefix.push('/'); [INFO] [stderr] 346 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:465:9 [INFO] [stderr] | [INFO] [stderr] 465 | / return Err(TokenInfoErrorKind::NotAuthenticated(format!( [INFO] [stderr] 466 | | "The server refused the token: {}", [INFO] [stderr] 467 | | msg [INFO] [stderr] 468 | | )).into()); [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 465 | Err(TokenInfoErrorKind::NotAuthenticated(format!( [INFO] [stderr] 466 | "The server refused the token: {}", [INFO] [stderr] 467 | msg [INFO] [stderr] 468 | )).into()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:471:9 [INFO] [stderr] | [INFO] [stderr] 471 | return Err(TokenInfoErrorKind::Client(msg.to_string()).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenInfoErrorKind::Client(msg.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | return Err(TokenInfoErrorKind::Server(msg.to_string()).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenInfoErrorKind::Server(msg.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:477:9 [INFO] [stderr] | [INFO] [stderr] 477 | return Err(TokenInfoErrorKind::Other(msg.to_string()).into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenInfoErrorKind::Other(msg.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/internals/mod.rs:132:34 [INFO] [stderr] | [INFO] [stderr] 132 | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.clone().into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/internals/mod.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | None => return Err(TokenErrorKind::NoToken(token_id.to_string()).into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenErrorKind::NoToken(token_id.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/mod.rs:381:34 [INFO] [stderr] | [INFO] [stderr] 381 | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.clone().into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/mod.rs:456:34 [INFO] [stderr] | [INFO] [stderr] 456 | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err.clone().into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/token_manager/mod.rs:458:21 [INFO] [stderr] | [INFO] [stderr] 458 | None => return Err(TokenErrorKind::NoToken(token_id.to_string()).into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TokenErrorKind::NoToken(token_id.to_string()).into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:313:22 [INFO] [stderr] | [INFO] [stderr] 313 | .map_err(|err| InitializationError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `InitializationError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:318:30 [INFO] [stderr] | [INFO] [stderr] 318 | .map_err(|err| InitializationError(err))?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `InitializationError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:327:58 [INFO] [stderr] | [INFO] [stderr] 327 | fallback_url_prefix: fallback_url_prefix.map(|fb| Arc::new(fb)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Arc::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/client.rs:339:5 [INFO] [stderr] | [INFO] [stderr] 339 | / if let &Some(query_parameter) = query_parameter { [INFO] [stderr] 340 | | if url_prefix.ends_with('/') { [INFO] [stderr] 341 | | url_prefix.pop(); [INFO] [stderr] 342 | | } [INFO] [stderr] ... | [INFO] [stderr] 347 | | } [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 339 | if let Some(query_parameter) = *query_parameter { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/client.rs:395:14 [INFO] [stderr] | [INFO] [stderr] 395 | .unwrap_or(Err(err)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Err(err))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parsers.rs:366:21 [INFO] [stderr] | [INFO] [stderr] 366 | .filter(|s| s.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | tokens: &'a BTreeMap>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | tokens: &'a BTreeMap>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / { [INFO] [stderr] 157 | | *token.lock().unwrap() = Ok(rsp.access_token) [INFO] [stderr] 158 | | }; [INFO] [stderr] | |______^ help: replace it with: `*token.lock().unwrap() = Ok(rsp.access_token);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:184:5 [INFO] [stderr] | [INFO] [stderr] 184 | / { [INFO] [stderr] 185 | | *token.lock().unwrap() = Err(TokenErrorKind::AccessTokenProvider(err.to_string())) [INFO] [stderr] 186 | | }; [INFO] [stderr] | |______^ help: replace it with: `*token.lock().unwrap() = Err(TokenErrorKind::AccessTokenProvider(err.to_string()));` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/mod.rs:123:17 [INFO] [stderr] | [INFO] [stderr] 123 | pub tokens: Arc>)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/token_manager/internals/mod.rs:130:38 [INFO] [stderr] | [INFO] [stderr] 130 | Some(&(_, ref guard)) => match &*guard.lock().unwrap() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 131 | | &Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 132 | | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] 133 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 130 | Some(&(_, ref guard)) => match *guard.lock().unwrap() { [INFO] [stderr] 131 | Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 132 | Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/token_manager/internals/mod.rs:229:28 [INFO] [stderr] | [INFO] [stderr] 229 | (d.as_secs() * 1000) + (d.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos() / 1_000_000)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/token_manager/internals/mod.rs:229:28 [INFO] [stderr] | [INFO] [stderr] 229 | (d.as_secs() * 1000) + (d.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/token_manager/token_provider/credentials/mod.rs:206:66 [INFO] [stderr] | [INFO] [stderr] 206 | let credentials_dir = credentials_dir_from_env().map_err(|msg| InitializationError(msg))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `InitializationError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:89:24 [INFO] [stderr] | [INFO] [stderr] 89 | Ok(url) => url.into(), [INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `url` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:99:31 [INFO] [stderr] | [INFO] [stderr] 99 | Ok(realm) => Some(realm.into()), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `realm` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | let status = rsp.status().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `rsp.status()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/token_manager/mod.rs:96:21 [INFO] [stderr] | [INFO] [stderr] 96 | .filter(|s| s.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/mod.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | tokens: Arc>)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/token_manager/mod.rs:361:49 [INFO] [stderr] | [INFO] [stderr] 361 | for (i, &(ref id, ref token)) in tokens.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/token_manager/mod.rs:379:38 [INFO] [stderr] | [INFO] [stderr] 379 | Some(&(_, ref guard)) => match &*guard.lock().unwrap() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 380 | | &Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 381 | | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] 382 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 379 | Some(&(_, ref guard)) => match *guard.lock().unwrap() { [INFO] [stderr] 380 | Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 381 | Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/mod.rs:403:13 [INFO] [stderr] | [INFO] [stderr] 403 | tokens: Arc>)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/token_manager/mod.rs:436:49 [INFO] [stderr] | [INFO] [stderr] 436 | for (i, &(ref id, ref token)) in tokens.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/token_manager/mod.rs:454:38 [INFO] [stderr] | [INFO] [stderr] 454 | Some(&(_, ref guard)) => match &*guard.lock().unwrap() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 455 | | &Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 456 | | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] 457 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 454 | Some(&(_, ref guard)) => match *guard.lock().unwrap() { [INFO] [stderr] 455 | Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 456 | Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/lib.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | self.scope.iter().find(|&s| s == scope).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&s| s == scope).is_some()` with `any(|&s| s == scope)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:313:22 [INFO] [stderr] | [INFO] [stderr] 313 | .map_err(|err| InitializationError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `InitializationError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:318:30 [INFO] [stderr] | [INFO] [stderr] 318 | .map_err(|err| InitializationError(err))?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `InitializationError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/client.rs:327:58 [INFO] [stderr] | [INFO] [stderr] 327 | fallback_url_prefix: fallback_url_prefix.map(|fb| Arc::new(fb)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Arc::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/client.rs:339:5 [INFO] [stderr] | [INFO] [stderr] 339 | / if let &Some(query_parameter) = query_parameter { [INFO] [stderr] 340 | | if url_prefix.ends_with('/') { [INFO] [stderr] 341 | | url_prefix.pop(); [INFO] [stderr] 342 | | } [INFO] [stderr] ... | [INFO] [stderr] 347 | | } [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 339 | if let Some(query_parameter) = *query_parameter { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/client.rs:395:14 [INFO] [stderr] | [INFO] [stderr] 395 | .unwrap_or(Err(err)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Err(err))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parsers.rs:366:21 [INFO] [stderr] | [INFO] [stderr] 366 | .filter(|s| s.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/token_manager/internals/request_scheduler.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | assert_eq!(0.75, row.refresh_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/token_manager/internals/request_scheduler.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | assert_eq!(0.75, row.refresh_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/token_manager/internals/request_scheduler.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | assert_eq!(0.85, row.warning_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/token_manager/internals/request_scheduler.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | assert_eq!(0.85, row.warning_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 112 [INFO] [stderr] --> src/token_manager/internals/request_scheduler.rs:283:5 [INFO] [stderr] | [INFO] [stderr] 283 | / fn scheduler_workflow() { [INFO] [stderr] 284 | | let (tx, rx) = mpsc::channel(); [INFO] [stderr] 285 | | let is_running = AtomicBool::new(true); [INFO] [stderr] 286 | | let clock = TestClock::new(); [INFO] [stderr] ... | [INFO] [stderr] 574 | | // and so on ..... [INFO] [stderr] 575 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | tokens: &'a BTreeMap>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | tokens: &'a BTreeMap>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / { [INFO] [stderr] 157 | | *token.lock().unwrap() = Ok(rsp.access_token) [INFO] [stderr] 158 | | }; [INFO] [stderr] | |______^ help: replace it with: `*token.lock().unwrap() = Ok(rsp.access_token);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:184:5 [INFO] [stderr] | [INFO] [stderr] 184 | / { [INFO] [stderr] 185 | | *token.lock().unwrap() = Err(TokenErrorKind::AccessTokenProvider(err.to_string())) [INFO] [stderr] 186 | | }; [INFO] [stderr] | |______^ help: replace it with: `*token.lock().unwrap() = Err(TokenErrorKind::AccessTokenProvider(err.to_string()));` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:306:25 [INFO] [stderr] | [INFO] [stderr] 306 | fn create_data() -> ( [INFO] [stderr] | _________________________^ [INFO] [stderr] 307 | | Vec>>, [INFO] [stderr] 308 | | BTreeMap<&'static str, (usize, Mutex>)>, [INFO] [stderr] 309 | | ) { [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | assert_eq!(0.75, row.refresh_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | assert_eq!(0.75, row.refresh_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:339:9 [INFO] [stderr] | [INFO] [stderr] 339 | assert_eq!(0.85, row.warning_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:339:9 [INFO] [stderr] | [INFO] [stderr] 339 | assert_eq!(0.85, row.warning_threshold); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:370:14 [INFO] [stderr] | [INFO] [stderr] 370 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 371 | | .get("token") [INFO] [stderr] 372 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:404:14 [INFO] [stderr] | [INFO] [stderr] 404 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 405 | | .get("token") [INFO] [stderr] 406 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:427:14 [INFO] [stderr] | [INFO] [stderr] 427 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 428 | | .get("token") [INFO] [stderr] 429 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:461:14 [INFO] [stderr] | [INFO] [stderr] 461 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 462 | | .get("token") [INFO] [stderr] 463 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:503:14 [INFO] [stderr] | [INFO] [stderr] 503 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 504 | | .get("token") [INFO] [stderr] 505 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:545:14 [INFO] [stderr] | [INFO] [stderr] 545 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 546 | | .get("token") [INFO] [stderr] 547 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:587:14 [INFO] [stderr] | [INFO] [stderr] 587 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 588 | | .get("token") [INFO] [stderr] 589 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/token_manager/internals/token_updater.rs:629:14 [INFO] [stderr] | [INFO] [stderr] 629 | &tokens [INFO] [stderr] | ______________^ [INFO] [stderr] 630 | | .get("token") [INFO] [stderr] 631 | | .unwrap() [INFO] [stderr] | |_________________________^ help: try this: `&tokens["token"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/internals/mod.rs:123:17 [INFO] [stderr] | [INFO] [stderr] 123 | pub tokens: Arc>)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/token_manager/internals/mod.rs:130:38 [INFO] [stderr] | [INFO] [stderr] 130 | Some(&(_, ref guard)) => match &*guard.lock().unwrap() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 131 | | &Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 132 | | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] 133 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 130 | Some(&(_, ref guard)) => match *guard.lock().unwrap() { [INFO] [stderr] 131 | Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 132 | Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/token_manager/internals/mod.rs:229:28 [INFO] [stderr] | [INFO] [stderr] 229 | (d.as_secs() * 1000) + (d.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos() / 1_000_000)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/token_manager/internals/mod.rs:229:28 [INFO] [stderr] | [INFO] [stderr] 229 | (d.as_secs() * 1000) + (d.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/token_manager/token_provider/credentials/mod.rs:206:66 [INFO] [stderr] | [INFO] [stderr] 206 | let credentials_dir = credentials_dir_from_env().map_err(|msg| InitializationError(msg))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `InitializationError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:89:24 [INFO] [stderr] | [INFO] [stderr] 89 | Ok(url) => url.into(), [INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `url` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:99:31 [INFO] [stderr] | [INFO] [stderr] 99 | Ok(realm) => Some(realm.into()), [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `realm` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/token_manager/token_provider/mod.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | let status = rsp.status().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `rsp.status()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/token_manager/mod.rs:96:21 [INFO] [stderr] | [INFO] [stderr] 96 | .filter(|s| s.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/mod.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | tokens: Arc>)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/token_manager/mod.rs:361:49 [INFO] [stderr] | [INFO] [stderr] 361 | for (i, &(ref id, ref token)) in tokens.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/token_manager/mod.rs:379:38 [INFO] [stderr] | [INFO] [stderr] 379 | Some(&(_, ref guard)) => match &*guard.lock().unwrap() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 380 | | &Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 381 | | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] 382 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 379 | Some(&(_, ref guard)) => match *guard.lock().unwrap() { [INFO] [stderr] 380 | Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 381 | Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/token_manager/mod.rs:403:13 [INFO] [stderr] | [INFO] [stderr] 403 | tokens: Arc>)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/token_manager/mod.rs:436:49 [INFO] [stderr] | [INFO] [stderr] 436 | for (i, &(ref id, ref token)) in tokens.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/token_manager/mod.rs:454:38 [INFO] [stderr] | [INFO] [stderr] 454 | Some(&(_, ref guard)) => match &*guard.lock().unwrap() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 455 | | &Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 456 | | &Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] 457 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 454 | Some(&(_, ref guard)) => match *guard.lock().unwrap() { [INFO] [stderr] 455 | Ok(ref token) => Ok(token.clone()), [INFO] [stderr] 456 | Err(ref err) => return Err(err.clone().into()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/lib.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | self.scope.iter().find(|&s| s == scope).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&s| s == scope).is_some()` with `any(|&s| s == scope)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `tokkit`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "314d73e5d379b32f28f509e4712fddee3064869eb1a7694b84caa45b68a61b5a"` [INFO] running `"docker" "rm" "-f" "314d73e5d379b32f28f509e4712fddee3064869eb1a7694b84caa45b68a61b5a"` [INFO] [stdout] 314d73e5d379b32f28f509e4712fddee3064869eb1a7694b84caa45b68a61b5a