[INFO] updating cached repository stpettersens/rakeinrust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/stpettersens/rakeinrust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/stpettersens/rakeinrust" "work/ex/clippy-test-run/sources/stable/gh/stpettersens/rakeinrust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/stpettersens/rakeinrust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/stpettersens/rakeinrust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/stpettersens/rakeinrust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/stpettersens/rakeinrust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4ff1a242be6bf6d91c50e212efb8ce15db059aae [INFO] sha for GitHub repo stpettersens/rakeinrust: 4ff1a242be6bf6d91c50e212efb8ce15db059aae [INFO] validating manifest of stpettersens/rakeinrust 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 stpettersens/rakeinrust 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 stpettersens/rakeinrust [INFO] finished frobbing stpettersens/rakeinrust [INFO] frobbed toml for stpettersens/rakeinrust written to work/ex/clippy-test-run/sources/stable/gh/stpettersens/rakeinrust/Cargo.toml [INFO] started frobbing stpettersens/rakeinrust [INFO] finished frobbing stpettersens/rakeinrust [INFO] frobbed toml for stpettersens/rakeinrust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/stpettersens/rakeinrust/Cargo.toml [INFO] crate stpettersens/rakeinrust 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 stpettersens/rakeinrust against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/stpettersens/rakeinrust:/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 -Dclippy::into_iter_on_array" "-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] fc9576aef70464ac9f571b2f597104b1e1aecf64cc5bbe160a39ca9cd1e2cb9f [INFO] running `"docker" "start" "-a" "fc9576aef70464ac9f571b2f597104b1e1aecf64cc5bbe160a39ca9cd1e2cb9f"` [INFO] [stderr] Checking clioptions v0.1.0 [INFO] [stderr] Checking memchr v1.0.1 [INFO] [stderr] Checking thread-id v3.1.0 [INFO] [stderr] Checking thread_local v0.3.3 [INFO] [stderr] Checking aho-corasick v0.6.3 [INFO] [stderr] Checking regex v0.2.2 [INFO] [stderr] Checking os_type v2.0.0 [INFO] [stderr] Checking rrake v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/task.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/rstruct.rs:14:13 [INFO] [stderr] | [INFO] [stderr] 14 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [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:579:9 [INFO] [stderr] | [INFO] [stderr] 579 | verbose: verbose, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `verbose` [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:580:9 [INFO] [stderr] | [INFO] [stderr] 580 | exit_codes: exit_codes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exit_codes` [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:581:9 [INFO] [stderr] | [INFO] [stderr] 581 | ignore: ignore, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `ignore` [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/task.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/rstruct.rs:14:13 [INFO] [stderr] | [INFO] [stderr] 14 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [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:579:9 [INFO] [stderr] | [INFO] [stderr] 579 | verbose: verbose, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `verbose` [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:580:9 [INFO] [stderr] | [INFO] [stderr] 580 | exit_codes: exit_codes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exit_codes` [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:581:9 [INFO] [stderr] | [INFO] [stderr] 581 | ignore: ignore, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `ignore` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | unit [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:95:16 [INFO] [stderr] | [INFO] [stderr] 95 | let unit = match n { [INFO] [stderr] | ________________^ [INFO] [stderr] 96 | | Some(unit) => unit as i32, [INFO] [stderr] 97 | | None => 0 as i32, [INFO] [stderr] 98 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | unit [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:95:16 [INFO] [stderr] | [INFO] [stderr] 95 | let unit = match n { [INFO] [stderr] | ________________^ [INFO] [stderr] 96 | | Some(unit) => unit as i32, [INFO] [stderr] 97 | | None => 0 as i32, [INFO] [stderr] 98 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:208:25 [INFO] [stderr] | [INFO] [stderr] 208 | Err(e) => v.set_value(""), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cap` [INFO] [stderr] --> src/main.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | for cap in p.captures_iter(&l) { [INFO] [stderr] | ^^^ help: consider using `_cap` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/main.rs:482:21 [INFO] [stderr] | [INFO] [stderr] 482 | let c = &task.get_params(); [INFO] [stderr] | ^ help: consider using `_c` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:208:25 [INFO] [stderr] | [INFO] [stderr] 208 | Err(e) => v.set_value(""), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cap` [INFO] [stderr] --> src/main.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | for cap in p.captures_iter(&l) { [INFO] [stderr] | ^^^ help: consider using `_cap` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/main.rs:482:21 [INFO] [stderr] | [INFO] [stderr] 482 | let c = &task.get_params(); [INFO] [stderr] | ^ help: consider using `_c` instead [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/variable.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | format!("{}", &self.key) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&self.key.to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/variable.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | format!("{}", &self.value) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&self.value.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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 variable `i` is used as a loop counter. Consider using `for (i, item) in &self.fields.enumerate()` or similar iterators [INFO] [stderr] --> src/rstruct.rs:35:18 [INFO] [stderr] | [INFO] [stderr] 35 | for f in &self.fields { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/rstruct.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | / let mut comma = ","; [INFO] [stderr] 37 | | if i == &self.fields.len() - 1 { [INFO] [stderr] 38 | | comma = ""; [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let comma = if i == &self.fields.len() - 1 { "" } else { "," };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:33:31 [INFO] [stderr] | [INFO] [stderr] 33 | let split = cfields.split(","); [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:39:18 [INFO] [stderr] | [INFO] [stderr] 39 | ff = format!("{}", &f[1..].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&f[1..].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:41:18 [INFO] [stderr] | [INFO] [stderr] 41 | ff = format!("{}", &f[0..f.len() - 1].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&f[0..f.len() - 1].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | ff = format!("{}", f.trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `f.trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:53:31 [INFO] [stderr] | [INFO] [stderr] 53 | let split = cvalues.split(","); [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:59:18 [INFO] [stderr] | [INFO] [stderr] 59 | vv = format!("{}", &v[1..].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&v[1..].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | vv = format!("{}", &v[0..v.len() - 1].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&v[0..v.len() - 1].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | vv = format!("{}", v.trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `v.trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:120:33 [INFO] [stderr] | [INFO] [stderr] 120 | fn process_struct_vars(structs: &Vec, mut pvars: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Struct]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:131:42 [INFO] [stderr] | [INFO] [stderr] 131 | fn parse_vars_in_task(task: &Task, vars: &Vec) -> Task { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [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/main.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | let split = task.get_params().split(" "); [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: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:141:41 [INFO] [stderr] | [INFO] [stderr] 141 | if var.get_key() == cap[1].to_owned() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `cap[1]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [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/main.rs:154:59 [INFO] [stderr] | [INFO] [stderr] 154 | fn invoke_rakefile(program: &str, rakefile: &str, stasks: &Vec, opts: &Options) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: the function has a cyclomatic complexity of 62 [INFO] [stderr] --> src/main.rs:154:1 [INFO] [stderr] | [INFO] [stderr] 154 | / fn invoke_rakefile(program: &str, rakefile: &str, stasks: &Vec, opts: &Options) { [INFO] [stderr] 155 | | let mut rf = String::new(); [INFO] [stderr] 156 | | let mut name = String::new(); [INFO] [stderr] 157 | | let mut depends = String::new(); [INFO] [stderr] ... | [INFO] [stderr] 489 | | exit(0); [INFO] [stderr] 490 | | } [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:167:26 [INFO] [stderr] | [INFO] [stderr] 167 | let split = rf.split("\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: trivial regex [INFO] [stderr] --> src/main.rs:172:32 [INFO] [stderr] | [INFO] [stderr] 172 | let mut p = Regex::new("^#").unwrap(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/main.rs:176:24 [INFO] [stderr] | [INFO] [stderr] 176 | p = Regex::new("^end").unwrap(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:218:36 [INFO] [stderr] | [INFO] [stderr] 218 | if s.get_name() == cap[2].trim().to_owned() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cap[2].trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/variable.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | format!("{}", &self.key) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&self.key.to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/variable.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | format!("{}", &self.value) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&self.value.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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 variable `i` is used as a loop counter. Consider using `for (i, item) in &self.fields.enumerate()` or similar iterators [INFO] [stderr] --> src/rstruct.rs:35:18 [INFO] [stderr] | [INFO] [stderr] 35 | for f in &self.fields { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/rstruct.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | / let mut comma = ","; [INFO] [stderr] 37 | | if i == &self.fields.len() - 1 { [INFO] [stderr] 38 | | comma = ""; [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let comma = if i == &self.fields.len() - 1 { "" } else { "," };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:33:31 [INFO] [stderr] | [INFO] [stderr] 33 | let split = cfields.split(","); [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:39:18 [INFO] [stderr] | [INFO] [stderr] 39 | ff = format!("{}", &f[1..].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&f[1..].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:41:18 [INFO] [stderr] | [INFO] [stderr] 41 | ff = format!("{}", &f[0..f.len() - 1].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&f[0..f.len() - 1].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | ff = format!("{}", f.trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `f.trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:53:31 [INFO] [stderr] | [INFO] [stderr] 53 | let split = cvalues.split(","); [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/main.rs:375:28 [INFO] [stderr] | [INFO] [stderr] 375 | if var.get_value().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!var.get_value().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/main.rs:378:35 [INFO] [stderr] | [INFO] [stderr] 378 | } else if var.get_value().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `var.get_value().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: useless use of `format!` [INFO] [stderr] --> src/main.rs:59:18 [INFO] [stderr] | [INFO] [stderr] 59 | vv = format!("{}", &v[1..].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&v[1..].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | vv = format!("{}", &v[0..v.len() - 1].trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&v[0..v.len() - 1].trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | vv = format!("{}", v.trim()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `v.trim().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:436:53 [INFO] [stderr] | [INFO] [stderr] 436 | let split = task.get_params().split(" "); [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/main.rs:120:33 [INFO] [stderr] | [INFO] [stderr] 120 | fn process_struct_vars(structs: &Vec, mut pvars: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Struct]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:131:42 [INFO] [stderr] | [INFO] [stderr] 131 | fn parse_vars_in_task(task: &Task, vars: &Vec) -> Task { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:484:37 [INFO] [stderr] | [INFO] [stderr] 484 | let _ = w.write_all("foo".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"foo"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [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/main.rs:509:54 [INFO] [stderr] | [INFO] [stderr] 509 | fn throw_not_found_failure(program: &str, rakefiles: &Vec<&str>) { [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/main.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | let split = task.get_params().split(" "); [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: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:141:41 [INFO] [stderr] | [INFO] [stderr] 141 | if var.get_key() == cap[1].to_owned() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `cap[1]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [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/main.rs:154:59 [INFO] [stderr] | [INFO] [stderr] 154 | fn invoke_rakefile(program: &str, rakefile: &str, stasks: &Vec, opts: &Options) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:589:5 [INFO] [stderr] | [INFO] [stderr] 589 | / let mut erakefile = String::new(); [INFO] [stderr] 590 | | if !srakefile.is_empty() { [INFO] [stderr] 591 | | erakefile = srakefile.clone(); [INFO] [stderr] 592 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let erakefile = if !srakefile.is_empty() { srakefile.clone() } else { String::new() };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:585:8 [INFO] [stderr] | [INFO] [stderr] 585 | if tasks.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tasks.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: the function has a cyclomatic complexity of 62 [INFO] [stderr] --> src/main.rs:154:1 [INFO] [stderr] | [INFO] [stderr] 154 | / fn invoke_rakefile(program: &str, rakefile: &str, stasks: &Vec, opts: &Options) { [INFO] [stderr] 155 | | let mut rf = String::new(); [INFO] [stderr] 156 | | let mut name = String::new(); [INFO] [stderr] 157 | | let mut depends = String::new(); [INFO] [stderr] ... | [INFO] [stderr] 489 | | exit(0); [INFO] [stderr] 490 | | } [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: useless use of `format!` [INFO] [stderr] --> src/main.rs:596:29 [INFO] [stderr] | [INFO] [stderr] 596 | erakefile = format!("{}", rakefile); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `rakefile.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:167:26 [INFO] [stderr] | [INFO] [stderr] 167 | let split = rf.split("\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: trivial regex [INFO] [stderr] --> src/main.rs:172:32 [INFO] [stderr] | [INFO] [stderr] 172 | let mut p = Regex::new("^#").unwrap(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/main.rs:176:24 [INFO] [stderr] | [INFO] [stderr] 176 | p = Regex::new("^end").unwrap(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:218:36 [INFO] [stderr] | [INFO] [stderr] 218 | if s.get_name() == cap[2].trim().to_owned() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cap[2].trim()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:375:28 [INFO] [stderr] | [INFO] [stderr] 375 | if var.get_value().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!var.get_value().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/main.rs:378:35 [INFO] [stderr] | [INFO] [stderr] 378 | } else if var.get_value().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `var.get_value().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/main.rs:436:53 [INFO] [stderr] | [INFO] [stderr] 436 | let split = task.get_params().split(" "); [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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:484:37 [INFO] [stderr] | [INFO] [stderr] 484 | let _ = w.write_all("foo".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"foo"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [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/main.rs:509:54 [INFO] [stderr] | [INFO] [stderr] 509 | fn throw_not_found_failure(program: &str, rakefiles: &Vec<&str>) { [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:589:5 [INFO] [stderr] | [INFO] [stderr] 589 | / let mut erakefile = String::new(); [INFO] [stderr] 590 | | if !srakefile.is_empty() { [INFO] [stderr] 591 | | erakefile = srakefile.clone(); [INFO] [stderr] 592 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let erakefile = if !srakefile.is_empty() { srakefile.clone() } else { String::new() };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:585:8 [INFO] [stderr] | [INFO] [stderr] 585 | if tasks.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tasks.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: useless use of `format!` [INFO] [stderr] --> src/main.rs:596:29 [INFO] [stderr] | [INFO] [stderr] 596 | erakefile = format!("{}", rakefile); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `rakefile.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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] Finished dev [unoptimized + debuginfo] target(s) in 6.47s [INFO] running `"docker" "inspect" "fc9576aef70464ac9f571b2f597104b1e1aecf64cc5bbe160a39ca9cd1e2cb9f"` [INFO] running `"docker" "rm" "-f" "fc9576aef70464ac9f571b2f597104b1e1aecf64cc5bbe160a39ca9cd1e2cb9f"` [INFO] [stdout] fc9576aef70464ac9f571b2f597104b1e1aecf64cc5bbe160a39ca9cd1e2cb9f