[INFO] updating cached repository atti1a/jsish-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/atti1a/jsish-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/atti1a/jsish-rust" "work/ex/clippy-test-run/sources/stable/gh/atti1a/jsish-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/atti1a/jsish-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/atti1a/jsish-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/atti1a/jsish-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/atti1a/jsish-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d539fd4be935768fc8034f6ea84a4e571ffe4e93 [INFO] sha for GitHub repo atti1a/jsish-rust: d539fd4be935768fc8034f6ea84a4e571ffe4e93 [INFO] validating manifest of atti1a/jsish-rust 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 atti1a/jsish-rust 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 atti1a/jsish-rust [INFO] finished frobbing atti1a/jsish-rust [INFO] frobbed toml for atti1a/jsish-rust written to work/ex/clippy-test-run/sources/stable/gh/atti1a/jsish-rust/Cargo.toml [INFO] started frobbing atti1a/jsish-rust [INFO] finished frobbing atti1a/jsish-rust [INFO] frobbed toml for atti1a/jsish-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/atti1a/jsish-rust/Cargo.toml [INFO] crate atti1a/jsish-rust 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 atti1a/jsish-rust 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/atti1a/jsish-rust:/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] 5c21ae01abfd2906bcdbb712001b74013b1ecc5f415f2f6c7daa2a96bf5bc54e [INFO] running `"docker" "start" "-a" "5c21ae01abfd2906bcdbb712001b74013b1ecc5f415f2f6c7daa2a96bf5bc54e"` [INFO] [stderr] Checking clap v2.29.0 [INFO] [stderr] Checking jsish-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:434:25 [INFO] [stderr] | [INFO] [stderr] 434 | Ok(((StIf(StIfData {guard: guard, th: Box::new(th), el: Box::new(el)})), [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `guard` [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/parser.rs:448:31 [INFO] [stderr] | [INFO] [stderr] 448 | Ok(((StWhile(StWhileData {guard: guard, body: Box::new(th)})), tk5)) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `guard` [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/parser.rs:486:36 [INFO] [stderr] | [INFO] [stderr] 486 | Ok((DeclInit(DeclInitData {id: id, src: Box::new(src)}), tk3)) [INFO] [stderr] | ^^^^^^ help: replace it with: `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: literal with an empty format string [INFO] [stderr] --> src/ast.rs:179:33 [INFO] [stderr] | [INFO] [stderr] 179 | write!(f, "{}", "{\n")?; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:181:21 [INFO] [stderr] | [INFO] [stderr] 181 | write!(f, "{}\n", stmt)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/ast.rs:183:33 [INFO] [stderr] | [INFO] [stderr] 183 | write!(f, "{}", "}") [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:210:17 [INFO] [stderr] | [INFO] [stderr] 210 | write!(f, "\n") [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:227:13 [INFO] [stderr] | [INFO] [stderr] 227 | write!(f, "{}\n", se)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:43:20 [INFO] [stderr] | [INFO] [stderr] 43 | Ok(Config {filename: filename, mode: mode}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename` [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/lib.rs:43:40 [INFO] [stderr] | [INFO] [stderr] 43 | Ok(Config {filename: filename, mode: mode}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mode` [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/parser.rs:434:25 [INFO] [stderr] | [INFO] [stderr] 434 | Ok(((StIf(StIfData {guard: guard, th: Box::new(th), el: Box::new(el)})), [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `guard` [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/parser.rs:448:31 [INFO] [stderr] | [INFO] [stderr] 448 | Ok(((StWhile(StWhileData {guard: guard, body: Box::new(th)})), tk5)) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `guard` [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/parser.rs:486:36 [INFO] [stderr] | [INFO] [stderr] 486 | Ok((DeclInit(DeclInitData {id: id, src: Box::new(src)}), tk3)) [INFO] [stderr] | ^^^^^^ help: replace it with: `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: literal with an empty format string [INFO] [stderr] --> src/ast.rs:179:33 [INFO] [stderr] | [INFO] [stderr] 179 | write!(f, "{}", "{\n")?; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:181:21 [INFO] [stderr] | [INFO] [stderr] 181 | write!(f, "{}\n", stmt)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/ast.rs:183:33 [INFO] [stderr] | [INFO] [stderr] 183 | write!(f, "{}", "}") [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:210:17 [INFO] [stderr] | [INFO] [stderr] 210 | write!(f, "\n") [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:227:13 [INFO] [stderr] | [INFO] [stderr] 227 | write!(f, "{}\n", se)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:43:20 [INFO] [stderr] | [INFO] [stderr] 43 | Ok(Config {filename: filename, mode: mode}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename` [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/lib.rs:43:40 [INFO] [stderr] | [INFO] [stderr] 43 | Ok(Config {filename: filename, mode: mode}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mode` [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: unneeded unit return type [INFO] [stderr] --> src/tokenizer.rs:326:40 [INFO] [stderr] | [INFO] [stderr] 326 | fn clear_whitespace(itr: &mut FStream) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | NumValue(i64), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | StringValue(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | BoolValue(bool), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | UndefinedValue [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `Value` [INFO] [stderr] --> src/interpreter.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | / enum Value { [INFO] [stderr] 17 | | NumValue(i64), [INFO] [stderr] 18 | | StringValue(String), [INFO] [stderr] 19 | | BoolValue(bool), [INFO] [stderr] 20 | | UndefinedValue [INFO] [stderr] 21 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/tokenizer.rs:326:40 [INFO] [stderr] | [INFO] [stderr] 326 | fn clear_whitespace(itr: &mut FStream) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | NumValue(i64), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | StringValue(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | BoolValue(bool), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/interpreter.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | UndefinedValue [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `Value` [INFO] [stderr] --> src/interpreter.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | / enum Value { [INFO] [stderr] 17 | | NumValue(i64), [INFO] [stderr] 18 | | StringValue(String), [INFO] [stderr] 19 | | BoolValue(bool), [INFO] [stderr] 20 | | UndefinedValue [INFO] [stderr] 21 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/tokenizer.rs:327:5 [INFO] [stderr] | [INFO] [stderr] 327 | / loop { [INFO] [stderr] 328 | | if let Some(&Ok(c)) = itr.peek() { [INFO] [stderr] 329 | | if (c as char).is_whitespace() { [INFO] [stderr] 330 | | itr.next(); [INFO] [stderr] ... | [INFO] [stderr] 338 | | } [INFO] [stderr] 339 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(&Ok(c)) = itr.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / match tk { [INFO] [stderr] 72 | | &ExpId(_) => true, [INFO] [stderr] 73 | | _ => false [INFO] [stderr] 74 | | } [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] 71 | match *tk { [INFO] [stderr] 72 | ExpId(_) => true, [INFO] [stderr] | [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/parser.rs:95:15 [INFO] [stderr] | [INFO] [stderr] 95 | op_pairs: &'a Vec<(Token, T)> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(Token, T)]` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | / loop { [INFO] [stderr] 161 | | if let Some(&(_, ref opr)) = search_for_op(&tk_cursor, &op_pairs) { [INFO] [stderr] 162 | | let tk2 = next_token(itr)?; [INFO] [stderr] 163 | | let (rht, tk3) = parse_opnd(itr, tk2.clone())?; [INFO] [stderr] ... | [INFO] [stderr] 172 | | } [INFO] [stderr] 173 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(&(_, ref opr)) = search_for_op(&tk_cursor, &op_pairs) { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/tokenizer.rs:327:5 [INFO] [stderr] | [INFO] [stderr] 327 | / loop { [INFO] [stderr] 328 | | if let Some(&Ok(c)) = itr.peek() { [INFO] [stderr] 329 | | if (c as char).is_whitespace() { [INFO] [stderr] 330 | | itr.next(); [INFO] [stderr] ... | [INFO] [stderr] 338 | | } [INFO] [stderr] 339 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(&Ok(c)) = itr.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / match tk { [INFO] [stderr] 72 | | &ExpId(_) => true, [INFO] [stderr] 73 | | _ => false [INFO] [stderr] 74 | | } [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] 71 | match *tk { [INFO] [stderr] 72 | ExpId(_) => true, [INFO] [stderr] | [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/parser.rs:95:15 [INFO] [stderr] | [INFO] [stderr] 95 | op_pairs: &'a Vec<(Token, T)> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(Token, T)]` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/parser.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | / loop { [INFO] [stderr] 161 | | if let Some(&(_, ref opr)) = search_for_op(&tk_cursor, &op_pairs) { [INFO] [stderr] 162 | | let tk2 = next_token(itr)?; [INFO] [stderr] 163 | | let (rht, tk3) = parse_opnd(itr, tk2.clone())?; [INFO] [stderr] ... | [INFO] [stderr] 172 | | } [INFO] [stderr] 173 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(&(_, ref opr)) = search_for_op(&tk_cursor, &op_pairs) { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/ast.rs:226:13 [INFO] [stderr] | [INFO] [stderr] 226 | for ref se in se_list { [INFO] [stderr] | ^^^^^^ ------- help: try: `let se = &se_list;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/lib.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | Mode::Ast => Ok(println!("{:?}", prog)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [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: passing a unit value to a function [INFO] [stderr] --> src/lib.rs:52:27 [INFO] [stderr] | [INFO] [stderr] 52 | Mode::Print => Ok(print!("{}", prog)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/ast.rs:226:13 [INFO] [stderr] | [INFO] [stderr] 226 | for ref se in se_list { [INFO] [stderr] | ^^^^^^ ------- help: try: `let se = &se_list;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/lib.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | Mode::Ast => Ok(println!("{:?}", prog)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [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: passing a unit value to a function [INFO] [stderr] --> src/lib.rs:52:27 [INFO] [stderr] | [INFO] [stderr] 52 | Mode::Print => Ok(print!("{}", prog)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [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 10.57s [INFO] running `"docker" "inspect" "5c21ae01abfd2906bcdbb712001b74013b1ecc5f415f2f6c7daa2a96bf5bc54e"` [INFO] running `"docker" "rm" "-f" "5c21ae01abfd2906bcdbb712001b74013b1ecc5f415f2f6c7daa2a96bf5bc54e"` [INFO] [stdout] 5c21ae01abfd2906bcdbb712001b74013b1ecc5f415f2f6c7daa2a96bf5bc54e