[INFO] updating cached repository alexlarsson/repo-manager [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/alexlarsson/repo-manager [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/alexlarsson/repo-manager" "work/ex/clippy-test-run/sources/stable/gh/alexlarsson/repo-manager"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/alexlarsson/repo-manager'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/alexlarsson/repo-manager" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/alexlarsson/repo-manager"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/alexlarsson/repo-manager'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 42d24d74e320c0b9cf8e74532fb28eb9d8906c61 [INFO] sha for GitHub repo alexlarsson/repo-manager: 42d24d74e320c0b9cf8e74532fb28eb9d8906c61 [INFO] validating manifest of alexlarsson/repo-manager 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 alexlarsson/repo-manager 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 alexlarsson/repo-manager [INFO] finished frobbing alexlarsson/repo-manager [INFO] frobbed toml for alexlarsson/repo-manager written to work/ex/clippy-test-run/sources/stable/gh/alexlarsson/repo-manager/Cargo.toml [INFO] started frobbing alexlarsson/repo-manager [INFO] finished frobbing alexlarsson/repo-manager [INFO] frobbed toml for alexlarsson/repo-manager written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/alexlarsson/repo-manager/Cargo.toml [INFO] crate alexlarsson/repo-manager has a lockfile. skipping [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 alexlarsson/repo-manager against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/alexlarsson/repo-manager:/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] d002a41b1313e15a5f845b0028ae3a05ed4c46d567d14306f0de422cfd7a0f87 [INFO] running `"docker" "start" "-a" "d002a41b1313e15a5f845b0028ae3a05ed4c46d567d14306f0de422cfd7a0f87"` [INFO] [stderr] Compiling num-traits v0.2.6 [INFO] [stderr] Compiling pq-sys v0.4.6 [INFO] [stderr] Compiling r2d2 v0.8.2 [INFO] [stderr] Checking h2 v0.1.12 [INFO] [stderr] Checking cookie v0.11.0 [INFO] [stderr] Compiling serde_derive v1.0.80 [INFO] [stderr] Checking error-chain v0.10.0 [INFO] [stderr] Checking diesel v1.3.3 [INFO] [stderr] Checking env_logger v0.5.13 [INFO] [stderr] Checking tokio-reactor v0.1.6 [INFO] [stderr] Checking dotenv v0.10.1 [INFO] [stderr] Compiling num-integer v0.1.39 [INFO] [stderr] Compiling chrono v0.4.6 [INFO] [stderr] Checking tokio-tcp v0.1.2 [INFO] [stderr] Checking tokio-udp v0.1.2 [INFO] [stderr] Checking tokio-uds v0.2.2 [INFO] [stderr] Checking tokio-signal v0.2.5 [INFO] [stderr] Checking tokio v0.1.11 [INFO] [stderr] Checking trust-dns-proto v0.4.3 [INFO] [stderr] Checking trust-dns-proto v0.5.0-alpha.3 [INFO] [stderr] Checking trust-dns-resolver v0.9.1 [INFO] [stderr] Checking jsonwebtoken v5.0.1 [INFO] [stderr] Checking trust-dns-resolver v0.10.0-alpha.3 [INFO] [stderr] Checking actix v0.7.5 [INFO] [stderr] Checking actix-net v0.1.1 [INFO] [stderr] Checking actix-web v0.7.13 [INFO] [stderr] Compiling migrations_internals v1.3.0 [INFO] [stderr] Compiling migrations_macros v1.3.0 [INFO] [stderr] Checking diesel_migrations v1.3.0 [INFO] [stderr] Checking repo-manager v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/api.rs:67:79 [INFO] [stderr] | [INFO] [stderr] 67 | Ok(token) => HttpResponse::Ok().json(TokenSubsetResponse{ token: token }), [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/api.rs:236:40 [INFO] [stderr] | [INFO] [stderr] 236 | .json(MissingObjectsResponse { missing: missing }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `missing` [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/main.rs:81:40 [INFO] [stderr] | [INFO] [stderr] 81 | .send(StopServer { graceful: graceful }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `graceful` [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/main.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | gpg_homedir: gpg_homedir, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gpg_homedir` [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/main.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | build_gpg_key: build_gpg_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `build_gpg_key` [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/main.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | main_gpg_key: main_gpg_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `main_gpg_key` [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/bin/gentoken.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | sub: sub, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/bin/gentoken.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | 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/bin/gentoken.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | sub: sub, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/bin/gentoken.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | 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/api.rs:67:79 [INFO] [stderr] | [INFO] [stderr] 67 | Ok(token) => HttpResponse::Ok().json(TokenSubsetResponse{ token: token }), [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/api.rs:236:40 [INFO] [stderr] | [INFO] [stderr] 236 | .json(MissingObjectsResponse { missing: missing }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `missing` [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/main.rs:81:40 [INFO] [stderr] | [INFO] [stderr] 81 | .send(StopServer { graceful: graceful }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `graceful` [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/main.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | gpg_homedir: gpg_homedir, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gpg_homedir` [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/main.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | build_gpg_key: build_gpg_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `build_gpg_key` [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/main.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | main_gpg_key: main_gpg_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `main_gpg_key` [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: length comparison to zero [INFO] [stderr] --> src/bin/gentoken.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | if scope.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `scope.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: length comparison to zero [INFO] [stderr] --> src/bin/gentoken.rs:89:8 [INFO] [stderr] | [INFO] [stderr] 89 | if prefix.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `prefix.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: length comparison to zero [INFO] [stderr] --> src/bin/gentoken.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | if scope.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `scope.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: length comparison to zero [INFO] [stderr] --> src/bin/gentoken.rs:89:8 [INFO] [stderr] | [INFO] [stderr] 89 | if prefix.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `prefix.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: single-character string constant used as pattern [INFO] [stderr] --> src/api.rs:301:39 [INFO] [stderr] | [INFO] [stderr] 301 | let v: Vec<&str> = name.splitn(2, ".").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/api.rs:305:34 [INFO] [stderr] | [INFO] [stderr] 305 | !v[0].contains(|c: char| !(c.is_digit(16) && !c.is_uppercase())) && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_uppercase() || !c.is_digit(16)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/api.rs:313:42 [INFO] [stderr] | [INFO] [stderr] 313 | let cd = field.content_disposition().ok_or( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 314 | | ApiError::BadRequest("No content disposition for multipart item".to_string()))?; [INFO] [stderr] | |______________________________________________________________________________________^ help: try this: `ok_or_else(|| ApiError::BadRequest("No content disposition for multipart item".to_string()))` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/api.rs:315:38 [INFO] [stderr] | [INFO] [stderr] 315 | let filename = cd.get_filename().ok_or( [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 316 | | ApiError::BadRequest("No filename for multipart item".to_string()))?; [INFO] [stderr] | |___________________________________________________________________________^ help: try this: `ok_or_else(|| ApiError::BadRequest("No filename for multipart item".to_string()))` [INFO] [stderr] | [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: redundant closure found [INFO] [stderr] --> src/db.rs:181:22 [INFO] [stderr] | [INFO] [stderr] 181 | .map_err(|e| From::from(e)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `From::from` [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/db.rs:203:22 [INFO] [stderr] | [INFO] [stderr] 203 | .map_err(|e| From::from(e)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `From::from` [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: single-character string constant used as pattern [INFO] [stderr] --> src/api.rs:301:39 [INFO] [stderr] | [INFO] [stderr] 301 | let v: Vec<&str> = name.splitn(2, ".").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/api.rs:305:34 [INFO] [stderr] | [INFO] [stderr] 305 | !v[0].contains(|c: char| !(c.is_digit(16) && !c.is_uppercase())) && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_uppercase() || !c.is_digit(16)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/api.rs:313:42 [INFO] [stderr] | [INFO] [stderr] 313 | let cd = field.content_disposition().ok_or( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 314 | | ApiError::BadRequest("No content disposition for multipart item".to_string()))?; [INFO] [stderr] | |______________________________________________________________________________________^ help: try this: `ok_or_else(|| ApiError::BadRequest("No content disposition for multipart item".to_string()))` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/api.rs:315:38 [INFO] [stderr] | [INFO] [stderr] 315 | let filename = cd.get_filename().ok_or( [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 316 | | ApiError::BadRequest("No filename for multipart item".to_string()))?; [INFO] [stderr] | |___________________________________________________________________________^ help: try this: `ok_or_else(|| ApiError::BadRequest("No filename for multipart item".to_string()))` [INFO] [stderr] | [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: redundant closure found [INFO] [stderr] --> src/db.rs:181:22 [INFO] [stderr] | [INFO] [stderr] 181 | .map_err(|e| From::from(e)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `From::from` [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/db.rs:203:22 [INFO] [stderr] | [INFO] [stderr] 203 | .map_err(|e| From::from(e)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `From::from` [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: length comparison to zero [INFO] [stderr] --> src/tokens.rs:23:12 [INFO] [stderr] | [INFO] [stderr] 23 | if rest.len() == 0 || rest.starts_with("/") { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rest.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: single-character string constant used as pattern [INFO] [stderr] --> src/tokens.rs:23:48 [INFO] [stderr] | [INFO] [stderr] 23 | if rest.len() == 0 || rest.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokens.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | if rest.len() == 0 || rest.starts_with(".") { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rest.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: single-character string constant used as pattern [INFO] [stderr] --> src/tokens.rs:36:48 [INFO] [stderr] | [INFO] [stderr] 36 | if rest.len() == 0 || rest.starts_with(".") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokens.rs:43:50 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn id_matches_one_prefix(id: &str, prefixes: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/tokens.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | |claims| { [INFO] [stderr] | ______________________^ [INFO] [stderr] 64 | | // Matches using a path-prefix style comparison: [INFO] [stderr] 65 | | // claim.sub == "build" should match required_sub == "build" or "build/N[/...]" [INFO] [stderr] 66 | | // claim.sub == "build/N" should only matchs required_sub == "build/N[/...]" [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/tokens.rs:86:22 [INFO] [stderr] | [INFO] [stderr] 86 | |claims| { [INFO] [stderr] | ______________________^ [INFO] [stderr] 87 | | if let Some(prefixes) = &claims.prefix { [INFO] [stderr] 88 | | id_matches_one_prefix(id, &prefixes) [INFO] [stderr] 89 | | } else { [INFO] [stderr] 90 | | false [INFO] [stderr] 91 | | } [INFO] [stderr] 92 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/jobs.rs:39:34 [INFO] [stderr] | [INFO] [stderr] 39 | fn generate_flatpakref(ref_name: &String, maybe_build_id: Option, config: &Arc) -> (String, String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/jobs.rs:197:54 [INFO] [stderr] | [INFO] [stderr] 197 | for line in output.split_terminator("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/jobs.rs:227:38 [INFO] [stderr] | [INFO] [stderr] 227 | build_refs: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[models::BuildRef]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/jobs.rs:304:59 [INFO] [stderr] | [INFO] [stderr] 304 | fn parse_ostree_ref (repo_path: &path::PathBuf, ref_name: &String) ->JobResult { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/jobs.rs:353:8 [INFO] [stderr] | [INFO] [stderr] 353 | if build_refs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `build_refs.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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/jobs.rs:390:28 [INFO] [stderr] | [INFO] [stderr] 390 | build_refs: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[models::BuildRef]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/jobs.rs:503:8 [INFO] [stderr] | [INFO] [stderr] 503 | if build_refs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `build_refs.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:143:39 [INFO] [stderr] | [INFO] [stderr] 143 | let bind_to = env::var("BIND_TO").unwrap_or("127.0.0.1:8080".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "127.0.0.1:8080".to_string())` [INFO] [stderr] | [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:151:40 [INFO] [stderr] | [INFO] [stderr] 151 | base_url: env::var("BASE_URL").unwrap_or("http://127.0.0.1:8080".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "http://127.0.0.1:8080".to_string())` [INFO] [stderr] | [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/tokens.rs:23:12 [INFO] [stderr] | [INFO] [stderr] 23 | if rest.len() == 0 || rest.starts_with("/") { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rest.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: single-character string constant used as pattern [INFO] [stderr] --> src/tokens.rs:23:48 [INFO] [stderr] | [INFO] [stderr] 23 | if rest.len() == 0 || rest.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokens.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | if rest.len() == 0 || rest.starts_with(".") { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rest.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: single-character string constant used as pattern [INFO] [stderr] --> src/tokens.rs:36:48 [INFO] [stderr] | [INFO] [stderr] 36 | if rest.len() == 0 || rest.starts_with(".") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokens.rs:43:50 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn id_matches_one_prefix(id: &str, prefixes: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/tokens.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | |claims| { [INFO] [stderr] | ______________________^ [INFO] [stderr] 64 | | // Matches using a path-prefix style comparison: [INFO] [stderr] 65 | | // claim.sub == "build" should match required_sub == "build" or "build/N[/...]" [INFO] [stderr] 66 | | // claim.sub == "build/N" should only matchs required_sub == "build/N[/...]" [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/tokens.rs:86:22 [INFO] [stderr] | [INFO] [stderr] 86 | |claims| { [INFO] [stderr] | ______________________^ [INFO] [stderr] 87 | | if let Some(prefixes) = &claims.prefix { [INFO] [stderr] 88 | | id_matches_one_prefix(id, &prefixes) [INFO] [stderr] 89 | | } else { [INFO] [stderr] 90 | | false [INFO] [stderr] 91 | | } [INFO] [stderr] 92 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/jobs.rs:39:34 [INFO] [stderr] | [INFO] [stderr] 39 | fn generate_flatpakref(ref_name: &String, maybe_build_id: Option, config: &Arc) -> (String, String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/jobs.rs:197:54 [INFO] [stderr] | [INFO] [stderr] 197 | for line in output.split_terminator("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/jobs.rs:227:38 [INFO] [stderr] | [INFO] [stderr] 227 | build_refs: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[models::BuildRef]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/jobs.rs:304:59 [INFO] [stderr] | [INFO] [stderr] 304 | fn parse_ostree_ref (repo_path: &path::PathBuf, ref_name: &String) ->JobResult { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/jobs.rs:353:8 [INFO] [stderr] | [INFO] [stderr] 353 | if build_refs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `build_refs.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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/jobs.rs:390:28 [INFO] [stderr] | [INFO] [stderr] 390 | build_refs: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[models::BuildRef]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/jobs.rs:503:8 [INFO] [stderr] | [INFO] [stderr] 503 | if build_refs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `build_refs.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:143:39 [INFO] [stderr] | [INFO] [stderr] 143 | let bind_to = env::var("BIND_TO").unwrap_or("127.0.0.1:8080".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "127.0.0.1:8080".to_string())` [INFO] [stderr] | [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:151:40 [INFO] [stderr] | [INFO] [stderr] 151 | base_url: env::var("BASE_URL").unwrap_or("http://127.0.0.1:8080".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "http://127.0.0.1:8080".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2m 09s [INFO] running `"docker" "inspect" "d002a41b1313e15a5f845b0028ae3a05ed4c46d567d14306f0de422cfd7a0f87"` [INFO] running `"docker" "rm" "-f" "d002a41b1313e15a5f845b0028ae3a05ed4c46d567d14306f0de422cfd7a0f87"` [INFO] [stdout] d002a41b1313e15a5f845b0028ae3a05ed4c46d567d14306f0de422cfd7a0f87